亚马逊AWS官方博客
使用 Amazon GuardDuty 中的新增功能,检测 Amazon ECS 和 AWS Fargate 中的运行时安全威胁
今天,我们宣布推出 Amazon GuardDuty ECS 运行时监控功能,以帮助检测在 AWS Fargate 和 Amazon Elastic Compute Cloud(Amazon EC2)上运行的 Amazon Elastic Container Service(Amazon ECS)集群中可能出现的运行时安全问题。
对于各种 AWS 数据来源,GuardDuty 将机器学习(ML)、异常检测、网络监控和恶意文件发现功能相结合。当检测到威胁时,GuardDuty 会生成安全调查结果,并自动将它们发送给 AWS Security Hub、Amazon EventBridge 和 Amazon Detective。这些集成有助于集中监控 AWS 和合作伙伴服务、自动进行响应以及启动安全调查。
GuardDuty ECS 运行时监控功能可以帮助检测运行时事件,例如文件访问、进程执行以及可能表明运行时威胁的网络连接。它会检查数百个威胁矢量和指标,并能够生成 30 多种不同类型的调查结果。例如,它可以检测权限升级尝试操作、加密挖矿程序或恶意软件生成的活动或者表明攻击者正在进行侦测的活动。这是对 GuardDuty 的主要检测类别进行的补充。
GuardDuty ECS 运行时监控功能使用一个托管式轻量级安全代理,可以进一步深入了解个别容器运行时行为。当使用 AWS Fargate 时,您无需安装、配置、管理或更新此代理。我们将为您完成这些操作。这样就简化了集群的管理工作,并降低了不对某些任务进行监控的风险。这样还可以帮助改善您的安全状况,并通过有关运行时威胁的监管合规性和认证。
可以直接在控制台中看到 GuardDuty ECS 运行时监控功能的调查结果。您可以配置 GuardDuty,以便将其调查结果发送给多个 AWS 服务或者连接到您的安全运营中心(SOC)的第三方监控系统。
随着此次发布,Amazon Detective 现在可以收到来自 GuardDuty ECS 运行时监控功能的安全调查结果,并将它们包含在其数据集合中以进行分析和调查。Detective 可以帮助分析、调查和快速确定潜在安全问题或可疑活动的根本原因。它会从 AWS 资源收集日志数据,并利用机器学习、统计分析和图论构建一组相关联的数据,以使您能够轻松地执行安全调查。
在 AWS Fargate 上配置 GuardDuty ECS 运行时监控
对于此演示,我选择展示为 AWS Fargate 提供的体验。当使用 Amazon ECS 时,您必须确保为您的 EC2 实例安装了 GuardDuty 代理。您可以手动安装此代理并将其放到您的 AMI 中,或者利用 GuardDuty 提供的 AWS Systems Manager 文档安装此代理(请转到控制台中的“Systems Manager”,选择“文档”,然后搜索 GuardDuty)。此文档包含有关如何在 EC2 实例上安装此代理的更多详细信息。
当从 GuardDuty 管理员账户执行操作时,我可以在组织级别启用 GuardDuty ECS 运行时监控功能,以监控所有组织的 AWS 账户中的所有 ECS 集群。
在此演示中,我通过 AWS 管理控制台启用运行时监控。在控制台中启用 GuardDuty ECS 运行时监控功能会影响您的所有集群。
当我希望 GuardDuty 在 Fargate 上自动部署 GuardDuty ECS 运行时监控代理时,我会启用 GuardDuty 代理管理功能。要将个别集群排除在自动管理范围之外,我可以使用 GuardDutyManaged=false
来标记这些集群。在控制台中启用 ECS 运行时监控功能之前,我需要确保标记了这些集群。当我不希望使用自动管理选项时,我可以禁用此选项,然后使用标签 GuardDutyManaged=true
选择性地选择要监控的集群。
Amazon ECS 或 AWS Fargate 集群管理员必须有权管理集群上的标签。
您为任务附加的 IAM TaskExecutionRole
必须有权从私有 ECR 存储库中下载 GuardDuty 代理。当您使用 AmazonECSTaskExecutionRolePolicy
托管式 IAM policy 时,会自动完成此操作。
这是我启用了运行时监控和代理管理功能之后的控制台视图。
我可以评估所有 ECS 集群的覆盖范围统计数据,以跟踪安全代理的部署情况。
启用监控之后,无需执行其他任何操作。我们来看一下它在我的简单演示集群上检测到了哪些调查结果。
查看 GuardDuty ECS 运行时安全调查结果
当 GuardDuty ECS 运行时监控功能检测到潜在威胁时,这些威胁将显示在一个类似于如下所示的列表中。
我选择了一个特定的调查结果,以查看有关它的更多详细信息。
注意事项
默认情况下,Fargate 任务是不可改变的。GuardDuty 不会部署此代理以监控现有任务上的容器。如果希望监控已经在运行的任务的容器,必须在启用 GuardDuty ECS 运行时监控功能之后停止并启动这些任务。同样,当使用 Amazon ECS 服务时,必须实施一个新的部署,以确保使用此代理重新启动任务。正如我已经提到的,请确保这些任务拥有从 Amazon ECR 下载 GuardDuty 监控代理的 IAM 权限。
尽管我们设计的 GuardDuty 代理对性能影响很小,但您应在 Fargate 任务大小调整计算中为此做好规划。
当您选择自动管理代理时,GuardDuty 还会创建一个 VPC 端点,以允许此代理与 GuardDuty API 进行通信。当您像我这样使用 CDK 或 CloudFormation 脚本创建集群,以便在一段时间之后删除集群(例如在持续集成场景中)时,请记住,必须手动删除 VPC 端点,以允许 CloudFormation 删除您的堆栈。
定价和可用性
您现在可以在 AWS Fargate 和 Amazon EC2 实例上使用 GuardDuty ECS 运行时监控功能。有关推出了 GuardDuty ECS 运行时监控功能的区域的完整列表,请访问我们的特定区域的功能可用性页面。
您可以免费试用 GuardDuty ECS 运行时监控功能 30 天。当首次启用 GuardDuty 时,必须明确启用 GuardDuty ECS 运行时监控功能。当试用期结束后,我们将按每小时每 vCPU 向您收取监控代理费用。GuardDuty 定价页面包含所有详细信息。
深入了解您的容器面临的威胁,并立即启用 GuardDuty ECS 运行时监控。