亚马逊AWS官方博客
如何自动导入第三方威胁情报 Feeds 到 Amazon GuardDuty
Amazon GuardDuty 是 AWS 推出的威胁检测服务,致力于保护您的 AWS 账号,以及通过持续监控针对您的工作负载的恶意和未授权访问行为。您可以通过 AWS 管理控制台一键启动该服务,其通过分析您的AWS账户中的数十亿个事件,并使用机器学习来检测账户和工作负载活动中的异常。然后它引用集成的威胁情报源来识别可疑的攻击者。在AWS区域内,GuardDuty 处理来自 AWS CloudTrail 日志,VPC 流日志,和 DNS 日志的数据,并且所有的日志在传输过程中加密。GuardDuty 从日志中提取各种字段以进行性能分析和异常检测,然后丢弃日志。 GuardDuty 的威胁情报调查结果基于来自 AWS 的内部威胁情报以及来自第三方供应商 CrowdStrike 和 Proofpoint 的威胁情报源。
除了使用内置的威胁源外,您还可以通过两种方式来自定义您的保护。如果您需要实施行业特定的威胁源(例如金融服务或医疗保健领域的威胁源),则自定义功能就非常有用。第一种自定义选项是可以自己提供白名单的IP列表。第二种是可以上传第三方的威胁列表到 GuardDuty 来生成调查结果。但是,维持 Guard Duty 中第三方威胁列表的最新状态需要许多手动步骤,您需要:
- 授权管理员访问权限
- 从第三方提供商处下载列表
- 将生成的文件上传到服务
- 替换过时的威胁源
这篇文章将向您展示如何在使用第三方威胁源时,自动执行这些步骤。我们将使用 FireEye iSIGHT威胁情报源作为例子,来展示如何将获得许可的威胁源上传到 GuardDuty,这个解决方案也可以适用于其他威胁情报源。如果使用默认参数来部署,则构建的环境如下图所示:
此解决方案中使用以下资源:
- 一个定期调用 AWS Lambda 函数的 Amazon CloudWatch 事件。默认情况下,CloudWatch 将每六天调用一次该函数,但如果您愿意,您可以修改该值。
- AWS Systems Manager 参数存储,可安全地存储您提供的公钥和私钥。下载威胁源时需要这些密钥。
- AWS Lambda 函数,由一个脚本组成,该脚本以编程方式将许可的 FireEye iSIGHT 威胁情报源导入 Amazon GuardDuty。
- 一个 AWS 身份和访问管理(IAM)角色,使 Lambda 函数可以访问以下内容:
- a. GuardDuty,列出,创建,获取和更新威胁列表。
- b. CloudWatch 日志,用于监控,存储和访问 AWS Lambda 生成的日志文件。
- c. Amazon S3,用于在 Amazon S3 上传威胁列表并将其提取到 GuardDuty。
- 用于存储威胁列表的 Amazon Simple Storage Service(S3)存储桶。部署解决方案后,除非您手动删除,否则将保留该存储桶。
- Amazon GuardDuty,需要在要部署解决方案的同一 AWS 区域中启用。
注意⚠️:在所有地区启用 GuardDuty 是一种最佳安全实践。
实施部署:
完成先决条件后,请按照下列步骤操作:
- 点击下面链接来启动您账号里的 CloudFormation 堆栈。CloudFormation 堆栈大约需要5分钟才能完成部署:
注意⚠️:如果您邀请其他帐户来启用 GuardDuty 并与您的AWS账户关联(以便您可以代表他们查看和管理他们的 GuardDuty 调查结果),请从主账户运行此解决方案。 在此处可以找到有关管理主人和成员 GuardDuty 帐户的更多信息。 从主帐户执行此解决方案可确保 Guard Duty 使用导入的威胁列表报告来自所有成员帐户的结果。
该模板将在美国东部(弗吉尼亚北部)地区启动。 要在其他 AWS 区域中启动解决方案,请使用控制台导航栏中的区域选择器。 这是因为 Guard Duty 是一项针对特定地区的服务。
所有代码在:https://github.com/aws-samples/amazon-guardduty-threat-feed
- 在“选择模板”页面上,选择“下一步”
- 在“指定详细信息”页面上,为您的解决方案堆栈命名。
- 在“参数”下,查看模板的默认参数并根据需要修改相应的值。
Parameter | Value | Description |
Public Key | <Requires input> | FireEye iSIGHT Threat Intelligence public key. |
Private Key | <Requires input> | FireEye iSIGHT Threat Intelligence private key |
Days Requested | 7 | The maximum age (in days) of the threats you want to collect. (min 1 – max 30) |
Frequency | 6 | The number of days between executions – when the solution downloads a new threat feed (min 1 – max 29) |
- 选择“下一步”
- 在“选项”页面,您能给您的资源指定 tags (键值对)
- 在“预览”页面,预览和确认配置,并确认勾选“模板将使用自定义名称创建 AWS Identity and Access Management(IAM)资源“
- 点击”创建“
大概5分钟后,栈将新建完成,您可以通过“事件”选项卡来确认
在您配置解决方案部署成功后,Lambda 函数会立即更新 GuardDuty 威胁列表。它还设置为定期运行以保持您的环境更新。但是,在需要更快更新威胁情报列表的情况下,例如发现新的 Zero Day 漏洞,您可以手动运行 Lambda 函数以避免延迟等到 Lambda 函数计划的更新事件。 要手动运行Lambda 函数,请按照此处描述的步骤创建并将新下载的威胁源提取到 Amazon GuardDuty 中。
总结:
我们通过该文描述了如何部署自动化的解决方案,该解决方案可以下载您从第三方提供商(如FireEye)获得许可的最新威胁情报源到 GuardDuty。 该解决方案为 GuardDuty 提供了大量的个人威胁情报数据,以便处理和报告调查结果。 此外,由于FireEye(或您选择的威胁情报提供商)发布了较新的威胁,它们将自动被导入到 GuardDuty。
Original article: https://aws.amazon.com/blogs/security/how-to-automate-import-third-party-threat-intelligence-feeds-into-amazon-guardduty/