

# SEC04-BP01 配置服务和应用程序日志记录
<a name="sec_detect_investigate_events_app_service_logging"></a>

保留服务和应用程序的安全事件日志。这是审计、调查和运营使用案例的基本安全原则，也是由监管、风险与合规性（GRC）标准、政策和程序驱动的共同安全要求。

 **期望结果：**当需要履行内部流程或义务（如安全事件响应）时，组织应能够及时、可靠且一致地从 AWS 服务和应用程序中检索安全事件日志。考虑将日志集中起来，以取得更好的运营成果。 

 **常见反模式：** 
+  日志被永久存储或过早删除。 
+  每个人都可以访问日志。 
+  完全依赖手动流程进行日志治理和使用。 
+  存储每一种类型的日志，以备不时之需。 
+  仅在必要时检查日志完整性。 

 **建立此最佳实践的好处：**为安全事件实施根本原因分析（RCA）机制，并为您的监管、风险与合规性义务提供证据来源。 

 **在未建立这种最佳实践的情况下暴露的风险等级：**高 

## 实施指导
<a name="implementation-guidance"></a>

 在安全调查或基于要求的其他使用案例期间，您需要能够查看相关日志，以记录并了解事件的来龙去脉和时间线。警报生成也需要日志，以指示发生了某些感兴趣的操作。选择、启用、存储和设置查询、检索机制以及警报至关重要。 

 **实施步骤** 
+  **选择并启用日志源。** 进行安全调查之前，您需要捕获相关日志，以便以回溯方式重建 AWS 账户 中的活动。选择并启用与工作负载相关的日志源。 

   日志源的选择标准应基于业务所需的使用案例。使用 AWS CloudTrail 或 AWS Organizations 跟踪为每个 AWS 账户 建立跟踪，并为其配置 Amazon S3 存储桶。 

   AWS CloudTrail 是一项日志记录服务，可跟踪针对 AWS 账户 捕获 AWS 服务活动所进行的 API 调用。它默认情况下启用，管理事件保留 90 天，可以使用 AWS 管理控制台、AWS CLI 或 AWS SDK [通过 CloudTrail 事件历史记录](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)检索这些事件。为了更长久地保留和了解数据事件，请[创建 CloudTrail 跟踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)并将其与 Amazon S3 存储桶关联，也可以选择与 Amazon CloudWatch 日志组关联。或者，您可以创建 [CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html)，这可保留 CloudTrail 日志长达七年之久，并提供基于 SQL 的查询工具 

   AWS 建议使用 VPC 的客户分别使用 [VPC 流日志](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)和 [Amazon Route 53 解析器查询日志](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-query-logs.html)启用网络流量和 DNS 日志，并将其流式传输到 Amazon S3 存储桶或 CloudWatch 日志组。您可以为 VPC、子网或网络接口创建 VPC 流日志。对于 VPC 流日志，您可以选择使用流日志的方式和位置，以降低成本。 

   AWS CloudTrail 日志、VPC 流日志和 Route 53 解析器查询日志是支持 AWS 中安全调查的基本日志记录源。您还可以使用[亚马逊安全数据湖](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)以 Apache Parquet 格式和开放网络安全架构框架（OCSF）收集、标准化和存储这些日志数据，以便于查询。安全数据湖还支持其他 AWS 日志和来自第三方的日志。 

   AWS 服务可以生成基本日志源未捕获到的日志，如 Elastic Load Balancing 日志、AWS WAF 日志、AWS Config 记录器日志、Amazon GuardDuty 调查结果、Amazon Elastic Kubernetes Service（Amazon EKS）审计日志，以及 Amazon EC2 实例操作系统和应用程序日志。有关日志记录和监控选项的完整列表，请参阅 [AWS 安全事件响应指南](https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/detection.html)的[附录 A：云功能定义 – 日志记录和事件](https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/logging-and-events.html)。 
+  **研究每项 AWS 服务和应用程序的日志记录功能：**每项 AWS 服务和应用程序都为您提供了日志存储选项，每个选项都有自己的保留和生命周期功能。两种很常见的日志存储服务是 Amazon Simple Storage Service（Amazon S3）和 Amazon CloudWatch。如果保留期较长，建议使用 Amazon S3，因为它具有成本效益和灵活的生命周期功能。如果主要日志记录选项是 Amazon CloudWatch Logs，作为一种选择，您应该考虑将不太经常访问的日志存档到 Amazon S3。 
+  **选择日志存储：**日志存储的选择通常与您使用的查询工具、保留能力、熟悉程度和成本有关。日志存储的主要选项是 Amazon S3 存储桶或 CloudWatch 日志组。 

   Amazon S3 存储桶提供持久且经济高效的存储，并具有可选的生命周期策略。可以使用 Amazon Athena 等服务查询存储在 Amazon S3 存储桶中的日志。 

   CloudWatch 日志组通过 CloudWatch Logs Insights 提供持久存储和内置查询工具。 
+  **确定适当的日志保留时长：**使用 Amazon S3 存储桶或 CloudWatch 日志组存储日志时，必须为每个日志源建立足够的生命周期，以优化存储和检索成本。客户通常可以查询三个月到一年的日志，日志保留期长达七年。可用性和保留时长的选择应与您的安全要求以及法律法规和业务授权的综合因素相一致。 
+  **使用适当的保留时长和生命周期策略为每个 AWS 服务和应用程序启用日志记录：**对于组织内的每个 AWS 服务或应用程序，请查找特定的日志记录配置指南： 
  + [配置 AWS CloudTrail 跟踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
  + [配置 VPC 流日志](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)
  + [配置 Amazon GuardDuty 调查结果导出](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_exportfindings.html)
  + [配置 AWS Config 记录](https://docs.aws.amazon.com/systems-manager/latest/userguide/quick-setup-config.html)
  + [配置 AWS WAF Web ACL 流量](https://docs.aws.amazon.com/waf/latest/developerguide/logging.html)
  + [配置 AWS Network Firewall 网络流量日志](https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-logging.html)
  + [配置 Elastic Load Balancing 访问日志](https://docs.aws.amazon.com/)
  + [配置 Amazon Route 53 解析器查询日志](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-query-logs.html)
  + [配置 Amazon RDS 日志](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html)
  + [配置 Amazon EKS 控制面板日志](https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html)
  + [为 Amazon EC2 实例和本地服务器配置 Amazon CloudWatch 代理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)
+  **选择和实施日志查询机制：**对于日志查询，可以使用 [CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) 对存储在 CloudWatch 日志组中的数据进行查询，使用 [Amazon Athena](https://aws.amazon.com/athena/) 和 [Amazon OpenSearch Service](https://aws.amazon.com/opensearch-service/) 对存储在 Amazon S3 中的数据进行查询。您还可以使用第三方查询工具，如安全信息和事件管理（SIEM）服务。 

   选择日志查询工具的过程中，应考虑安全运营的人员、流程和技术方面。选择一款能够满足运营、业务和安全要求并可长期使用和维护的工具。请记住，当要扫描的日志数量保持在工具的限制范围内时，日志查询工具的工作状态最佳。由于成本或技术限制，拥有多款查询工具的情况并不罕见。 

   例如，您可能使用第三方安全信息和事件管理（SIEM）工具对过去 90 天的数据执行查询，但由于 SIEM 的日志提取成本较高，使用 Athena 来执行 90 天以上的查询。无论采用何种实施方式，都要验证您的方法能够尽可能地减少充分提高运营效率所需的工具数量，尤其在安全事件调查期间。 
+  **使用日志发出警报：**AWS 通过多项安全服务提供警报功能： 
  +  [AWS Config](https://aws.amazon.com/config/) 监控和记录您的 AWS 资源配置，并允许您对照所需的配置自动执行评估和修复。 
  +  [Amazon GuardDuty](https://aws.amazon.com/guardduty/) 是一项威胁检测服务，可持续监控恶意活动和未经授权的行为，以保护您的 AWS 账户 和工作负载。GuardDuty 可从 AWS CloudTrail 管理和数据事件、DNS 日志、VPC 流日志和 Amazon EKS 审计日志等来源提取、聚合和分析信息。GuardDuty 可直接从 CloudTrail、VPC 流日志、DNS 查询日志和 Amazon EKS 提取独立的数据流。您无需管理 Amazon S3 存储桶策略，也无需修改日志的收集和存储方式。仍建议保留这些日志，以便您自己进行调查和遵守法规。 
  +  [AWS Security Hub CSPM](https://aws.amazon.com/security-hub/) 集中聚合、组织和优先处理来自多个 AWS 服务和可选第三方产品的安全警报或调查结果，以使您全面了解安全警报和合规性状态。 

   您也可以使用自定义警报生成引擎来处理这些服务未涵盖的安全警报或与您的环境相关的特定警报。有关构建这些警报和检测的信息，请参阅 [AWS 安全事件响应指南中的“检测”](https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/detection.html)。 

## 资源
<a name="resources"></a>

 **相关最佳实践：** 
+  [SEC04-BP02 集中分析日志、结果和指标](sec_detect_investigate_events_analyze_all.md) 
+  [SEC07-BP04 定义数据生命周期管理](sec_data_classification_lifecycle_management.md) 
+  [SEC10-BP06 预部署工具](sec_incident_response_pre_deploy_tools.md) 

 **相关文档：** 
+ [AWS 安全事件响应指南](https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/aws-security-incident-response-guide.html)
+ [亚马逊安全数据湖入门](https://aws.amazon.com/security-lake/getting-started/)
+ [入门：Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_GettingStarted.html)
+  [安全合作伙伴解决方案：日志记录和监控](https://aws.amazon.com/security/partner-solutions/#logging-monitoring) 

 **相关视频：** 
+ [AWS re:Invent 2022 - 介绍亚马逊安全数据湖](https://www.youtube.com/watch?v=V7XwbPPjXSY)

 **相关示例：** 
+ [专为 AWS 提供的 Assisted Log Enabler](https://github.com/awslabs/assisted-log-enabler-for-aws/)
+ [AWS Security Hub CSPM 调查结果历史导出](https://github.com/aws-samples/aws-security-hub-findings-historical-export)

 **相关工具：** 
+ [Snowflake 增强网络安全](https://www.snowflake.com/en/data-cloud/workloads/cybersecurity/)