本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
入门 GuardDuty
本教程提供了动手操作介绍 GuardDuty。步骤 1 中介绍了以独立账户或 GuardDuty 管理员 GuardDuty 身份启用的最低要求。 Amazon Organizations 第 2 步到第 5 步涵盖使用推荐的其他功能, GuardDuty 以充分利用您的发现。
主题
开始前的准备工作
GuardDuty 是一项威胁检测服务,用于监控基础数据来源 Amazon CloudTrail 管理事件、Amazon VPC 流日志和 Amazon Route 53 Resolver DNS 查询日志等。 GuardDuty还会分析与其保护类型相关的功能,前提是您单独启用了这些功能。功能包括 Kubernetes 审核日志、RDS 登录活动、亚马逊 S3 Amazon CloudTrail 的数据事件、亚马逊 EBS 卷、运行时监控和 Lambda 网络活动日志。使用这些数据源和功能(如果启用), GuardDuty 可以为您的账户生成安全调查结果。
启用后 GuardDuty,它会根据基础数据源中的活动开始监控您的账户是否存在潜在威胁。默认情况下,扩展威胁检测对所有已启用的用户 Amazon Web Services 账户 都处于启用状态 GuardDuty。此功能可检测您账户中跨越多个基础数据源、 Amazon 资源和时间的多阶段攻击序列。要检测特定 Amazon 资源面临的潜在威胁,您可以选择启用以用例为中心的保护计划。 GuardDuty 有关更多信息,请参阅 的特点 GuardDuty。
您无需显式启用任何基础数据源。启用 S3 防护后,您无需显式启用 Amazon S3 数据事件记录。同样,启用 EKS 防护后,您也无需显式启用 Amazon EKS 审计日志。Amazon 直接从这些服务中 GuardDuty 提取独立的数据流。
对于新 GuardDuty 账户,默认情况下,支持的一些可用保护类型已启用并包含在 30 天免费试用期内。 Amazon Web Services 区域 您可以选择退出其中任何一个或全部退出。如果您已 GuardDuty 启用保护计划,则可以选择启用您所在地区可用的任何或全部保护计划。 Amazon Web Services 账户 有关防护计划的简介以及默认情况下将启用哪些防护计划,请参阅 定价在 GuardDuty。
启用时 GuardDuty,请考虑以下各项:
-
GuardDuty 是一项区域服务,这意味着您在此页面上遵循的任何配置过程都必须在要监控的每个区域中重复执行 GuardDuty。
我们强烈建议您在所有支持的 Amazon 区域 GuardDuty 中启用。这样 GuardDuty ,即使在您未积极使用的区域,也可以生成有关未经授权或异常活动的调查结果。这还 GuardDuty 允许监控 IAM 等全球 Amazon 服务 Amazon CloudTrail 的事件。如果 GuardDuty 未在所有支持的区域中都启用该功能,则其检测涉及全球服务的活动的能力就会降低。有关可用地区的完整列表,请参阅区域和端点。 GuardDuty
-
Amazon 账户中任何具有管理员权限的用户都可以启用 GuardDuty,但是,按照最低权限的安全最佳实践,建议您创建一个 IAM 角色、用户或群组来 GuardDuty专门管理。有关启用所需的权限的信息, GuardDuty 请参阅启用 GuardDuty 所需的权限。
-
当您在任何区域 GuardDuty 首次启用时 Amazon Web Services 区域,默认情况下,它还会启用该区域支持的所有可用保护类型,包括针对的恶意软件防护 EC2。 GuardDuty 为您的账户创建一个名为的服务关联角色。
AWSServiceRoleForAmazonGuardDuty
此角色包括权限和信任策略, GuardDuty 允许直接使用和分析来自的事件GuardDuty 基础数据源以生成安全调查结果。的恶意软件防护会为您的账户 EC2 创建另一个名为的服务关联角色。AWSServiceRoleForAmazonGuardDutyMalwareProtection
此角色包括允许恶意软件防护 EC2 执行无代理扫描以检测您 GuardDuty 账户中的恶意软件的权限和信任策略。它 GuardDuty 允许在您的账户中创建 EBS 卷快照,并与 GuardDuty 服务账户共享该快照。有关更多信息,请参阅 的服务相关角色权限 GuardDuty。有关服务相关角色的更多信息,请参阅使用服务相关角色。 -
当您在任何地区 GuardDuty 首次启用时,您的 Amazon 账户将自动注册该地区的 30 天 GuardDuty 免费试用。
以下视频说明了如何开始使用管理员帐户 GuardDuty 并在多个成员帐户中启用该帐户。
第 1 步:启用 Amazon GuardDuty
使用的第一步 GuardDuty 是在您的账户中将其启用。启用后, GuardDuty将立即开始监控当前区域中的安全威胁。
如果您想以 GuardDuty 管理员身份管理组织内其他账户的 GuardDuty 调查结果,则必须添加成员账户并同时 GuardDuty 为其启用。
注意
如果您想在不启用 S3 的情况下启用 GuardDuty 恶意软件防护 GuardDuty,则有关步骤,请参阅GuardDuty S3 的恶意软件防护。
步骤 2:生成示例调查发现并浏览基本操作
当 GuardDuty 发现安全问题时,它会生成调查结果。 GuardDuty 调查结果是一个数据集,其中包含与该独特安全问题相关的详细信息。调查发现的详细信息可以帮助您调查问题。
GuardDuty 支持生成带有占位符值的样本发现,在需要响应发现的实际安全问题之前,这些占位符值可用于测试 GuardDuty 功能并熟悉调查结果。 GuardDuty按照以下指南为中提供的每种发现类型生成样本调查结果 GuardDuty,有关生成样本调查结果的其他方法,包括在您的账户中生成模拟安全事件,请参阅示例发现结果。
要创建和浏览示例调查发现
-
在导航窗格中,选择设置。
-
在设置页面上的示例调查发现下,选择生成示例调查发现。
-
在导航窗格中,选择调查发现。示例调查发现显示在当前调查发现页面上,并带有前缀 [SAMPLE]。
-
从列表中选择一个调查发现,显示该调查发现的详细信息。
-
您可以查看调查发现详细信息窗格中可用的不同信息字段。不同类型的调查发现可能有不同的字段。有关所有调查发现类型中的可用字段的更多信息,请参阅 调查发现详细信息。在详细信息窗格中,您可以执行以下操作:
-
选择窗格顶部的调查发现 ID 以打开调查发现的完整 JSON 详细信息。也可以从此面板下载完整的 JSON 文件。JSON 包含控制台视图中未包含的一些附加信息,并且是可以由其他工具和服务摄取的格式。
-
查看受影响的资源部分。实际发现中,此处的信息将帮助您确定账户中应进行调查的资源,并将包括指向相应 Amazon Web Services Management Console 可操作资源的链接。
-
选择“+”或“-”视镜图标,为详细信息创建包含或排除筛选条件。有关调查发现筛选条件的更多信息,请参阅 筛选搜索结果 GuardDuty。
-
-
-
存档所有示例调查发现
-
选中列表顶部的复选框以选择所有调查发现。
-
取消选择您要保留的所有调查发现。
-
选择操作菜单,然后选择存档以隐藏示例调查发现。
注意
要查看存档的调查发现,选择当前,然后选择已存档以切换调查发现视图。
-
步骤 3:配置将 GuardDuty 结果导出到 Amazon S3 存储桶
GuardDuty 建议配置设置以导出调查结果,因为它允许您将调查结果导出到 S3 存储桶,以便在 GuardDuty 90 天保留期之后无限期存储。这使您可以记录发现结果或跟踪 Amazon 环境中一段时间内的问题。 GuardDuty 使用 Amazon Key Management Service (Amazon KMS key) 对 S3 存储桶中的发现数据进行加密。要配置设置,必须为 GuardDuty 该权限提供 KMS 密钥。有关更多详细步骤,请参阅将生成的调查发现导出到 Amazon S3。
将 GuardDuty 调查结果导出到 Amazon S3 存储桶
将策略附加到 KMS 密钥
-
登录 Amazon Web Services Management Console 并在 https://console.aws.amazon.com/km
s 处打开 Amazon Key Management Service (Amazon KMS) 控制台。 -
要更改 Amazon Web Services 区域,请使用页面右上角的区域选择器。
-
在导航窗格中,选择客户托管密钥。
-
选择现有的 KMS 密钥,或执行Amazon Key Management Service 开发人员指南中的创建对称加密 KMS 密钥的步骤。
您的 KMS 密钥和 Amazon S3 存储桶所在的区域必须相同。
将密钥 ARN 复制到记事本中,以便在后续步骤中使用。
-
在 KMS 密钥的密钥策略部分,选择编辑。如果显示切换到策略视图,请选择该选项以显示密钥策略,然后选择编辑。
-
将以下策略块复制到您的 KMS 密钥策略中:
{ "Sid": "AllowGuardDutyKey", "Effect": "Allow", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "
KMS key ARN
", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012", "aws:SourceArn": "arn:aws:guardduty:Region2
:123456789012
:detector/SourceDetectorID
" } } }通过替换策略示例
red
中格式化的以下值来编辑策略:-
KMS key ARN
替换为 KMS 密钥的亚马逊资源名称 (ARN)。要查找密钥 ARN,请参阅《Amazon Key Management Service 开发人员指南》中的 Finding the key ID and ARN。 -
替换为
123456789012
拥有导出调查结果的 GuardDuty 账户的 Amazon Web Services 账户 ID。 -
Region2
替换为生成 GuardDuty 结果 Amazon Web Services 区域 的位置。 -
SourceDetectorID
替换detectorID
为生成调查结果的特定区域的 GuardDuty 账户。要查找与您的账户和当前地区
detectorId
对应的,请参阅https://console.aws.amazon.com/guardduty/控制台中的设置页面,或者运行 ListDetectorsAPI。
-
-
将策略附加到 Amazon S3 存储桶
如果您还没有要将这些调查发现导出到的 Amazon S3 存储桶,请参阅《Amazon S3 用户指南》中的创建存储桶。
-
执行《Amazon S3 用户指南》中创建或编辑存储桶策略下的步骤,直到出现编辑存储桶策略页面。
-
示例策略显示了如何授予将调查结果导出到 Amazon S3 存储桶的 GuardDuty权限。如果在配置调查发现导出后更改路径,则必须修改策略以授予对新位置的权限。
复制以下示例策略并将其粘贴到存储桶策略编辑器中。
如果在最后一条语句之前添加了策略语句,请在添加该语句之前添加一个逗号。确保 KMS 密钥策略的 JSON 语法有效。
S3 存储桶示例策略
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow GetBucketLocation", "Effect": "Allow", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "s3:GetBucketLocation", "Resource": "
Amazon S3 bucket ARN
", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012
", "aws:SourceArn": "arn:aws:guardduty:Region2
:123456789012
:detector/SourceDetectorID
" } } }, { "Sid": "Allow PutObject", "Effect": "Allow", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "Amazon S3 bucket ARN/[optional prefix]
/*", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012
", "aws:SourceArn": "arn:aws:guardduty:Region2
:123456789012
:detector/SourceDetectorID
" } } }, { "Sid": "Deny unencrypted object uploads", "Effect": "Deny", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "Amazon S3 bucket ARN/[optional prefix]
/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "aws:kms" } } }, { "Sid": "Deny incorrect encryption header", "Effect": "Deny", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "Amazon S3 bucket ARN/[optional prefix]
/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption-aws-kms-key-id": "KMS key ARN
" } } }, { "Sid": "Deny non-HTTPS access", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "Amazon S3 bucket ARN/[optional prefix]
/*", "Condition": { "Bool": { "aws:SecureTransport": "false" } } } ] } -
通过替换策略示例
red
中格式化的以下值来编辑策略:-
Amazon S3 bucket ARN
替换为 Amazon S3 存储桶的亚马逊资源名称 (ARN)。您可以在控制台的编辑存储桶策略页面上找到存储桶 ARN。https://console.aws.amazon.com/s3/ -
替换为
123456789012
拥有导出调查结果的 GuardDuty 账户的 Amazon Web Services 账户 ID。 -
Region2
替换为生成 GuardDuty 结果 Amazon Web Services 区域 的位置。 -
SourceDetectorID
替换detectorID
为生成调查结果的特定区域的 GuardDuty 账户。要查找与您的账户和当前地区
detectorId
对应的,请参阅https://console.aws.amazon.com/guardduty/控制台中的设置页面,或者运行 ListDetectorsAPI。 -
将
[optional prefix]
部分占位S3 bucket ARN/[optional prefix]
符值替换为要将结果导出到的可选文件夹位置。有关使用前缀的更多信息,请参阅《Amazon S3 用户指南》中的使用前缀组织对象。当您提供尚不存在的可选文件夹位置时,仅当与 S3 存储桶关联的账户与导出结果的账户相同时,才 GuardDuty 会创建该位置。如果您将调查发现导出到属于其他账户的 S3 存储桶,则文件夹位置必须已经存在。
-
替换为
KMS key ARN
与导出到 S3 存储桶的结果的加密相关的 KMS 密钥的 Amazon 资源名称 (ARN)。要查找密钥 ARN,请参阅《Amazon Key Management Service 开发人员指南》中的 Finding the key ID and ARN。
-
-
GuardDuty 控制台中的步骤
打开 GuardDuty 控制台,网址为https://console.aws.amazon.com/guardduty/
。 -
在导航窗格中,选择 Settings(设置)。
-
在设置页面的调查发现导出选项下,对于 S3 存储桶,选择立即配置(或根据需要进行编辑)。
-
对于 S3 存储桶 ARN,输入您要向其发送调查结果的。
bucket ARN
要查看存储桶 ARN,请参阅 A mazon S3 用户指南中的查看 S3 存储桶的属性。 -
对于 KMS 密钥 ARN,请输入
key ARN
。要找到密钥 ARN,请参阅开发者指南中的查找密钥 ID 和密钥 ARN。Amazon Key Management Service -
选择保存。
第 4 步:通过 SNS 设置 GuardDuty 查找提醒
GuardDuty 与 Amazon 集成 EventBridge,可用于将调查结果数据发送到其他应用程序和服务进行处理。通过将查找事件与 EventBridge 目标(例如 Amazon Lambda 函数、Amazon Sy EC2 stems Manager 自动化、Amazon Simple Notification Service (SNS) Simple Notification Service 等)关联起来,您可以使用 GuardDuty 调查结果启动对发现结果的自动响应。
在此示例中,您将创建一个 SNS 主题作为 EventBridge 规则的目标,然后使用它 EventBridge 来创建从中 GuardDuty捕获结果数据的规则。生成的规则会将调查发现详细信息转发到电子邮件地址。要了解如何将调查发现发送到 Slack 或 Amazon Chime,以及如何修改发送警报的调查发现类型,请参阅 设置 Amazon SNS 主题和端点。
要为您的调查发现警报创建 SNS 主题
-
在 v3/home 上打开亚马逊 SNS 控制台。https://console.aws.amazon.com/sns/
-
在导航窗格中,选择 Topics(主题)。
-
选择创建主题。
-
对于类型,选择标准。
-
对于名称,请输入
GuardDuty
。 -
选择创建主题。这将打开新主题的主题详细信息。
-
在订阅部分中,选择创建订阅。
-
对于协议,选择电子邮件。
-
对于端点,输入要向其发送通知的电子邮件地址。
-
选择创建订阅。
创建订阅后,必须通过电子邮件确认订阅。
-
要查看订阅消息,请进入您的电子邮件收件箱,然后在订阅消息中选择确认订阅。
注意
要查看电子邮件确认状态,请进入 SNS 控制台,然后选择订阅。
创建用于捕获 GuardDuty 发现结果并对其进行格式化的 EventBridge 规则
-
打开 EventBridge 控制台,网址为https://console.aws.amazon.com/events/
。 -
在导航窗格中,选择规则。
-
选择创建规则。
-
为规则输入名称和描述。
规则不能与同一区域中的另一个规则和同一事件总线上的名称相同。
-
对于事件总线,选择默认。
-
对于规则类型,选择具有事件模式的规则。
-
选择下一步。
-
对于事件源,选择 Amazon 事件。
-
对于事件模式,选择事件模式表。
-
对于事件源,选择Amazon 服务。
-
对于 Amazon Service,选择 GuardDuty。
-
对于 “事件类型”,选择 “GuardDuty查找”。
-
选择下一步。
-
对于目标类型,选择Amazon 服务。
-
对于选择目标,选择 SNS 主题;对于主题,选择您先前创建的 SNS 主题的名称。
-
在其他设置部分,对于配置目标输入,选择输入转换器。
添加输入转换器会将从中发送的 JSON 查找数据格式 GuardDuty 化为人类可读的消息。
-
选择 Configure input transformer(配置输入转换器)。
-
在目标输入转换器部分,对于输入路径,粘贴以下代码:
{ "severity": "$.detail.severity", "Finding_ID": "$.detail.id", "Finding_Type": "$.detail.type", "region": "$.region", "Finding_description": "$.detail.description" }
-
要设置电子邮件格式,则对于模板,请粘贴以下代码,并确保将红色文本替换为适合您所在区域的值:
"You have a severity
severity
GuardDuty finding typeFinding_Type
in theRegion_Name
Region." "Finding Description:" "Finding_Description
." "For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?region=region
#/findings?search=id%3DFinding_ID
" -
选择确认。
-
选择下一步。
-
(可选)为规则输入一个或多个标签。有关更多信息,请参阅《亚马逊 EventBridge 用户指南》中的亚马逊 EventBridge 标签。
-
选择下一步。
-
查看规则详细信息并选择创建规则。
-
(可选)使用步骤 2 中的过程生成示例调查发现来测试新规则。对于生成的每个示例调查发现,您都会收到一封电子邮件。
后续步骤
在您继续使用时 GuardDuty,您将逐渐了解与您的环境相关的发现类型。每当收到新调查发现时,您都可以从调查发现详细信息窗格上的调查发现描述中选择了解更多,或在 GuardDuty 查找类型 上搜索调查发现名称来查找信息,包括有关调查发现的修复建议。
以下功能将帮助您进行调整, GuardDuty 使其能够为您的 Amazon 环境提供最相关的发现:
-
要根据特定标准(例如实例 ID、账户 ID、S3 存储桶名称等)轻松对结果进行排序,您可以在其中创建和保存筛选条件 GuardDuty。有关更多信息,请参阅 筛选搜索结果 GuardDuty。
-
如果您收到有关环境中预期行为的调查发现,则可以根据您使用抑制规则定义的标准自动存档调查发现。
-
为了防止从受信任的子集生成调查结果 IPs,或者将 GuardDuty 监视器置于正常监控范围 IPs 之外,您可以设置可信 IP 和威胁列表。