欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

在 AWS 云环境中滥用 VPC 流量镜像抓取网络流量

来源:本站整理 作者:佚名 时间:2019-10-07 TAG: 我要投稿

云环境下的网络检测问题
人们可能希望监视云环境中的网络流量有很多原因——出于攻击和防御的目的。 被动的网络检查在云环境中可能很困难,而且在这之前需要对网络配置进行重大修改,以确保每台主机都被监控,并且不会被恶意用户绕过。 这意味着作为一个攻击者,监视整个网络会产生数量难以置信的噪声,而且破坏任何东西也变得非常危险。
对于在云端进行通用网络检查遇到的困难,渗透测试人员采用了其他更简单的方法,比如审查 Elastic Load Balancer 访问日志。 这些日志可以为 你提供一些信息,但与全面的网络流量检查相比,这些日志里面的信息非常有限。
然而,AWS 最近在今年六月的 re: Inforce 上发布了一个被动网络检测的新功能,称为“ VPC 流量镜像”。 使用这个新特性,我们创建了一个名为“ malmirror”的脚本,用于部署必要的基础设施来镜像和提取 VPC 流量。
VPC  流量镜像: 一种潜在的 AWS 网络监测解决方案
VPC  流量镜像是在 VPC 中复制 EC2实例的入站和出站流量,而不需要在实例中安装任何东西。 这些重复的流量通常会被发送到类似于网络入侵预防系统服务器(IDS)之类的地方进行分析和监控。
随着 VPC 流量镜像的发布,AWS 中的 VPC 网络检测变得更加容易,无论是进攻还是防守。 现在只需要一些 AWS API 调用(以及使用这些 API 的必要权限) ,就可以在 AWS VPC 中监视网络流量。
恶意 VPC 流量镜像的影响及其可能性
恶意的 VPC  流量镜像可能产生极大的影响,因为在 VPC  内移动的网络流量通常包含对攻击者有用的敏感信息。 实现恶意的 VPC 流量镜像的可能性也非常高,因为通过 VPC 往往有大量的明文流量。 使用明文流量的一个常见原因是,在流量镜像之前,流量不太可能被探测到,所以风险不大。
这方面的一个例子是今年1月发布的一个特性,即用于网络负载均衡的 TLS 终止。 通常的做法是,环境在其负载均衡器处终止 TLS,然后以明文形式将请求传递给后端服务器。 这意味着在 VPC 中将会有大量的明文流量被我们恶意的 VPC 镜像抓取。 关于负载均衡器的 TLS 终止的更多信息可以在这里找到,关于最佳实践的一些讨论可以在这里找到。
由于 TLS 对性能的巨大影响,所以许多公司还将在其内部网络中使用明文协议。 以前做这些事情感觉很安全,尤其是知道传统的中间人攻击 或 ARP 欺骗变的不可能发生。
由于这些原因,我们可以合理地假设,作为攻击者,在流量镜像攻击期间,我们至少会获得一些明文流量。使用 AWS 凭证部署恶意镜像作为一家主要关注攻击性研究的公司,我们希望将这一过程自动化,以使其能够快速、简单和可重复的执行。 因此,出于这个原因,我们编写了一个概念验证脚本,它将接受 AWS 凭证作为输入参数,并部署必要的基础设施,以便在目标 VPC-malmirror 中开始对所有支持的 EC2实例进行镜像。 值得注意的是,VPC 流量镜像只支持由 AWS Nitro 系统驱动的 EC2实例类型,VPC 镜像目标必须与被镜像的任何主机在同一个 VPC 中。在接下来的几节中,我们将介绍 malmirror 的工作原理、它的功能以及如何分析提取数据。 这个脚本可以在我们的 GitHub 上找到。malmirror 是如何工作的malmirror 将以下资源部署到一个账户中:
·将流量镜像到的 EC2实例
·该 EC2实例的 EC2安全组
·一个 VPC 镜像目标,指向已创建的 EC2实例
·配置为镜像所有流量的 VPC 镜像过滤器
·在这个帐户中的每个支持的 EC2实例的 VPC 镜像会话

一个简单的图表演示了在将镜像基础结构部署到一个小型 VPC 中之后,该小型 VPC 中的流量流可能是什么样的(请注意,为了简单起见,该图中遗漏了许多资源)。
在一切都部署完毕后,流量将开始镜像到创建好的 EC2实例。 Ec2实例将开始侦听并以 PCAP 格式记录接收到的所有镜像网络流量。 在实例上本地存储了大约100mb 的数据之后,它将自动将该数据转移到 你选择的 S3 存储桶中(可能在 你自己的 AWS 帐户中) ,并从系统中删除本地文件。 这样可以防止实例耗尽磁盘空间,并允许我们以自动的方式提取镜像流量。 请注意,100mb 的限制是任意设置的,对于一些流量较大的网络来说可能太小了。之所以要以这种方式提取流量,是因为似乎没有一个简单的方法来镜像交叉帐户的流量,这似乎是一个可靠的方式来确保数据转移到外部环境。
由于流量正在被转移到 S3 存储桶中, 你可以在本地下载以便进行分析。 一个简单的方法是使用 AWS CLI 提供的 S3“同步”命令,这样 你只需下载上次与 存储桶同步时丢失的数据。使用 malmirror 的先决条件要使用 malmirror,你需要:一个用于将镜像流量转移到的 S3 存储桶 (这个存储桶可能在你自己的 AWS 账户中)存储在 AWS CLI 配置文件中的AWS 凭证(可能属于 你自己 AWS 帐户中的用户)。 这个用户应该有访问将 PCAP 文件提取到的 S3 存储桶的 write/s3:PutObject 权限
存储在 AWS CLI 配置文件中的带有以下 IAM 权限 的AWS 凭证(这个凭证是你将镜像部署到的目标帐户) :
·ec2:DescribeInstances
    ·识别要镜像的 EC2实例
·ec2:RunInstances
    ·创建一个将作为 VPC 镜像目标的 EC2实例
·ec2:CreateSecurityGroup
    ·为我们的 EC2实例创建安全组
·ec2:AuthorizeSecurityGroupIngress
    ·允许入站访问我们的 EC2实例
·ec2:CreateTrafficMirrorTarget
    ·将 EC2实例指定为 VPC 镜像目标
·ec2:CreateTrafficMirrorSession
    ·要为我们想要镜像的每个 EC2实例创建镜像会话
·ec2:CreateTrafficMirrorFilter
    ·为镜像会话创建流量过滤器
·ec2:CreateTrafficMirrorFilterRule

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载