模块 5:检测和事故响应

捕获和收集

停止使用不同类型的发现性控制。例如,清点资产及其详细属性可促进更有效的决策制定(和生命周期控制),从而帮助建立运营基准。在 AWS 中,您可以通过处理日志、事件和监控来实施检测控制,从而允许审计、自动分析和警报。下面,我们来看一项用于捕获和收集账户信息的服务。

AWS CloudTrail

AWS CloudTrail 是一项可实现您的 AWS 账户的监管、合规性检查、操作审计和风险审计的服务。借助 CloudTrail,您可以记录日志、持续监控并保留与 AWS 账户中的操作相关的账户活动和 API 使用情况。借助 CloudTrail,您可以获取账户的 AWS API 调用历史记录,包括通过 AWS 管理控制台、AWS SDK、命令行工具和更高级别的 AWS 服务(例如 AWS CloudFormation)进行的 API 调用。CloudTrail 提供的历史记录有助于进行安全检查、资源转换跟踪和合规性审计。默认情况下,您的 AWS 账户已经启用 CloudTrail。

API 安全相关信息

AWS CloudTrail 记录了关于每个 API 调用的重要信息,包括 API 名称、调用者的身份、API 调用发生的时间、发起调用的位置、请求参数以及 AWS 服务返回的响应元素。这些信息可以帮助您追踪对 AWS 资源所做的更改、排查操作问题并确保遵守内部策略和监管标准。 您可以使用 CloudTrail 生成的 AWS API 调用历史记录来跟踪 AWS 资源的更改,包括对 Amazon EC2 实例和 Amazon VPC 安全组等 AWS 资源的创建、修改和删除。以下日志文件记录示例显示,名为 Alice 的 IAM 用户通过使用 AWS CLI 中的 ec2-stop-instances 命令调用了 Amazon EC2 StopInstances 操作。

alt text

要了解更多信息,请分别展开以下三个类别。

谁?

以下日志文件示例显示,名为 Alice 的 IAM 用户执行了一项操作。您可以验证该用户的账户 ID 和访问密钥 ID。现在,看看该调用是什么时候发出的。

何时何地?

您可以验证该请求的日期以及发出该请求的源 IP 地址。还有 eventName(所请求的操作),以及 userAgent(确定请求是通过什么发出的)。在这里我们可以看到,Alice 通过使用 AWS CLI 调用了 Amazon EC2 StopInstances 操作。现在,我们来看一看该请求涉及了哪个 Amazon EC2 实例。

什么?

在这里我们可以看到,ID 为 i-ebeaf9e2 的 Amazon EC2 实例是该请求中的资源。该实例的先前和当前状态表明调用已成功。

必须跟踪此类资源的更改、回答有关用户活动的简单问题、证明合规性、进行故障排除或执行安全分析的客户可以使用 CloudTrail 并检测威胁和提供安全性。

具有内置日志的服务

AWS 管理控制台结合 AWS CLI,可以为多个监管、标准和行业机构中的审计人员生成有力的结果。各种 AWS 服务支持的内置日志记录功能可以为多个监管、标准和行业机构中的审计人员提供重要信息。用于审计的关键服务包括 Amazon S3、ELB、CloudWatch、CloudTrail 和 Amazon VPC。

要了解更多信息,请选择每个带编号的标记。

alt text

监控和通知

企业通常会将安全警报集成到他们的运营和平台中。能够检测到更改、确定更改是否适当,然后将这些信息路由到正确的修复工作流,这些至关重要。在 AWS 中,您可以使用 Amazon CloudWatch 监控资源和日志、发送通知以及触发自动操作以进行修复。

Amazon CloudWatch

是一项监控和可观察性服务,旨在收集作为日志、指标和事件的监控和运营数据。这为您提供了在 AWS 以及本地服务器上运行的 AWS 资源、应用程序和服务的统一视图。Amazon CloudWatch Logs 支持您使用现有系统、应用程序和自定义日志文件来监控系统与应用程序,并进行故障排除。借助 CloudWatch Logs,您可以近乎实时地监控日志中的特定短语、值或模式。 Amazon CloudWatch Events 是一个描述 AWS 资源更改的系统事件流。该事件流扩充了现有的 CloudWatch 指标和日志流,以提供更为完整的应用程序运行状况和状态概况。您可以编写声明式规则,将您关注的事件与要执行的自动化操作关联起来。

alt text

应用发现性控制的最佳实践

使用 AWS 提供的检测控制的第一步是定义要求,以帮助您检测和调查安全事件。确定您的工作负载的组织、法律和合规性要求,然后评估并确定可以用来提供帮助的 AWS 资源。 收集指标并制定基准,了解潜在安全威胁。

定义日志、警报和指标的要求 配置服务和应用程序日志记录 集中分析日志

事故响应基础知识

事故响应

事故指的是 IT 服务的计划外中断或 IT 服务质量的下降。事故响应是企业用于响应和管理安全漏洞或网络攻击的方法。这是一种处理和管理攻击后果的有组织的方法。

企业中的所有 AWS 用户都应对安全事故响应流程有基本的了解,安全人员必须深入了解如何应对安全问题。虽然培训和准备工作是实现这一目标的关键组成部分,但我们建议您通过模拟来练习这些技能,以迭代和改进流程。在云中成功实施事故响应计划的基础在于培训、准备、模拟和迭代。

要了解更多信息,请选择每个标记。

alt text

AWS 上的事故响应

在很多情况下,与传统数据中心或 IT 运营相比,AWS 云中的事故响应更快、更经济实惠、更有效,也更易于管理。利用 AWS 可增强您的检测、响应和恢复能力。 使用 API 激活自动化 快速收集取证数据 在无尘室中部署和操作 访问详细日志记录 管理事故生命周期

事故生命周期

Incident Manager 作为 AWS Systems Manager 的一项功能,是一种事故生命周期管理工具。Incident Manager 的主要目标是尽快加速 AWS 托管应用程序恢复正常。Incident Manager 针对事故生命周期的各个阶段提供工具和最佳实践:警报和参与、分类、调查和缓解以及事故后分析。

要了解更多信息,请选择每个带编号的标记。

alt text

AWS Systems Manager Incident Manager

响应计划将联系人、上报计划和运行手册联系在一起。发生事故时,响应计划定义了参与对象、参与方式、要启动的运行手册以及要监控的指标。通过创建明确定义的响应计划,可以节省安全团队介入的时间。您可以使用响应计划为事故早做打算,并定义如何响应事故。响应计划在事故发生时提供模板。此模板包括有关参与对象、事件的预期严重性、要启动的自动运行手册和要监控的指标等信息。

运行手册可推动事故缓解和响应。您可以使用 Incident Manager 在一个集中位置收集运行手册。您的响应人员可以专注于缓解,而不是寻求后续步骤。您可以使用自动化文档设置和配置运行手册,然后通过在响应计划中定义这些运行手册,将其与事故关联起来。

1 AWSIncidents-CriticalIncidentRunbookTemplate:AWSIncidents-CriticalIncidentRunbookTemplate 是一个通过手动步骤提供 Incident Manager 事故生命周期的模板。这些虽然是一般步骤,可以在大多数应用程序中使用,但足够详细,方便响应人员处理事故。

2 使用现有运行手册:如果您的企业目前已迁移到云或正在使用现有的自动化框架(例如 Ansible 或 Chef),则可以将它们集成到您的运行手册中。AWS‑ApplyAnsiblePlaybook 或 AWS-ApplyChefRecipes 是命令文档,您可以找到并使用这些文档来运行现有的 Ansible 行动手册或 Chef 配方,它们可能与事故响应流程中的运行手册相关。

自定义响应

自动化是 AWS Systems Manager 中的一项功能,可让您执行多种操作来响应事故。要考虑的一项特定操作是调用 Lambda 函数。这可以帮助您在独特的环境中构建特定的工作流和事故响应。Lambda 函数也可以由我们介绍过的其他服务调用,例如 CloudWatch。让我们来详细了解 Lambda 函数以及如何将其用于实现事故响应自动化。

AWS Lambda

利用 AWS Lambda,您无需预置或管理服务器即可运行代码。借助 Lambda,您几乎可以运行任何类型的应用程序或后端服务的代码,而无需进行任何管理。只需上传您的代码,Lambda 就会处理运行和扩展代码所需的一切工作,同时实现高可用性。您可以将代码设置为从其他 AWS 服务自动触发,或直接从任何 Web 或移动应用程序调用。

在 Lambda 上运行的代码称为 Lambda 函数。函数采用的是模块化结构。不要使用名为 file processor 的函数执行压缩、缩略和索引操作,而要考虑使用三个不同的函数,每个函数负责执行一项任务。 创建 Lambda 函数后,它始终可以在触发后立即运行,就像电子表格中的公式一样。

Lambda 函数无状态,与底层基础设施没有关联。这意味着 Lambda 可以根据需要快速启动尽可能多的函数副本,以根据传入事件的速率进行扩展。

alt text