收集 AWS Inspector 日志
解析器版本:1.0
本文档介绍了如何使用 Amazon S3 将 AWS Inspector 日志注入到 Google Security Operations。
Amazon Inspector 是一项漏洞管理服务,可自动发现工作负载并持续扫描工作负载,以查找软件漏洞和意外网络暴露。它会扫描 Amazon EC2 实例、Amazon ECR 中的容器映像和 AWS Lambda 函数,并生成包含严重程度得分和补救建议的详细结果。此集成使用 Amazon Inspector 的内置发现结果导出功能,将 JSON 格式的发现结果报告发送到 S3 存储桶,然后 Google SecOps 使用 Amazon S3 V2 Feed 提取这些报告。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- 对 AWS 管理控制台的特权访问权限,并拥有以下管理权限:
- Amazon Inspector(发现结果、报告)
- Amazon S3(存储桶、存储桶政策)
- AWS KMS(密钥政策)
- AWS IAM(角色、政策、用户)
配置 S3 存储桶以导出 Amazon Inspector 发现结果
Amazon Inspector 会先使用 AWS KMS 密钥对调查结果报告进行加密,然后再将其存储在 S3 存储桶中。您必须同时配置 S3 存储桶政策和 KMS 密钥政策,以允许 Amazon Inspector 访问。
创建和配置 S3 存储桶
- 按照以下用户指南创建 Amazon S3 存储桶:创建存储桶。
保存存储桶名称和区域以供日后参考(例如
inspector-findings-to-secops)。在 https://console.aws.amazon.com/s3 的 Amazon S3 控制台中,选择已创建的存储桶。
选择权限标签页。
在存储桶政策部分,点击修改。
将以下语句添加到存储桶政策中(将
inspector-findings-to-secops替换为您的存储桶名称,将111122223333替换为您的 AWS 账号 ID,将us-east-1替换为您的 AWS 区域):{ "Version": "2012-10-17", "Statement": [ { "Sid": "allow-inspector", "Effect": "Allow", "Principal": { "Service": "inspector2.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::inspector-findings-to-secops/*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:inspector2:us-east-1:111122223333:report/*" } } } ] }点击保存更改。
配置 AWS KMS 密钥
Amazon Inspector 需要使用客户管理的对称加密 AWS KMS 密钥(与 S3 存储桶位于同一区域)来加密调查结果报告。
- 访问 https://console.aws.amazon.com/kms,打开 AWS KMS 控制台。
- 在导航窗格中,选择客户管理的密钥。
- 选择要使用的 KMS 密钥(或创建新的对称加密密钥)。
- 选择密钥政策标签页,然后点击修改。
将以下语句添加到密钥政策中(将
111122223333替换为您的 AWS 账号 ID,将us-east-1替换为您的 AWS 区域):{ "Sid": "Allow Amazon Inspector to use the key", "Effect": "Allow", "Principal": { "Service": "inspector2.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:inspector2:us-east-1:111122223333:report/*" } } }点击保存更改。
将 Amazon Inspector 发现结果导出到 S3
- 访问 https://console.aws.amazon.com/inspector/v2/home,登录 Amazon Inspector 控制台。
- 在导航窗格中,依次前往发现 > 所有发现。
可选:使用检测结果表格上方的过滤条件栏,指定要在报告中纳入哪些检测结果。
点击导出发现结果。
在导出设置部分,为导出文件类型选择 JSON。
在导出位置下,对于 S3 URI,点击 Browse S3 并选择 S3 存储桶
inspector-findings-to-secops。对于 KMS 密钥,请选择您配置的 AWS KMS 密钥。
点击导出。
使用 AWS CLI 自动导出发现结果
如需定期导出发现结果报告,请使用 AWS CLI create-findings-report 命令。您可以使用 Amazon EventBridge Scheduler 或 cron 作业来安排此命令。
示例命令:
aws inspector2 create-findings-report \ --report-format JSON \ --s3-destination bucketName=inspector-findings-to-secops,keyPrefix=findings/,kmsKeyArn=arn:aws:kms:us-east-1:111122223333:key/your-kms-key-id
如需了解详情,请参阅 create-findings-report AWS CLI 参考文档。
为 Google SecOps 配置 IAM 用户
Google SecOps 需要一个对 S3 存储桶具有读取权限的 IAM 用户,才能注入导出的发现结果。
- 按照此用户指南创建用户:创建 IAM 用户。
- 选择创建的用户。
- 选择安全凭据标签页。
- 在访问密钥部分中,点击创建访问密钥。
- 选择第三方服务作为使用情形。
- 点击下一步。
- 可选:添加说明标记。
- 点击创建访问密钥。
- 点击下载 .csv 文件以保存访问密钥和密钥,供日后参考。
- 点击完成。
- 选择权限标签页。
- 在权限政策部分中,点击添加权限。
- 选择添加权限。
- 选择直接附加政策。
- 搜索 AmazonS3FullAccess 政策。
- 选择相应政策。
- 点击下一步。
- 点击添加权限。
在 Google SecOps 中配置 Feed 以注入 AWS Inspector 日志
- 前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 为Feed 名称输入一个唯一的名称。
- 选择 Amazon S3 V2 作为来源类型。
- 选择 AWS Inspector 作为日志类型。
- 点击下一步,然后点击提交。
为以下字段指定值:
- S3 URI:
s3://inspector-findings-to-secops/findings/ - 来源删除选项:根据您的偏好选择删除选项
- 文件存在时间上限:包含过去指定天数内修改过的文件(默认值为 180 天)
- 访问密钥 ID:有权访问 S3 存储桶的用户访问密钥
- 私有访问密钥:具有 S3 存储桶访问权限的用户私有密钥
- 资源命名空间:资源命名空间
- 注入标签:要应用于此 Feed 中事件的标签
- S3 URI:
点击下一步,然后点击提交。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
duration_ms_label |
additional.fields |
已合并 |
evnt_app_class_label |
additional.fields |
已合并 |
evnt_cloud_application_class_label |
additional.fields |
已合并 |
evnt_cloud_sandbox_md5_label |
additional.fields |
已合并 |
evnt_cloudapp_rule_label |
additional.fields |
已合并 |
evnt_content_type_label |
additional.fields |
已合并 |
evnt_customer_label |
additional.fields |
已合并 |
evnt_department_label |
additional.fields |
已合并 |
evnt_location_label |
additional.fields |
已合并 |
evnt_lpclagg_label |
additional.fields |
已合并 |
evnt_lpcltype_label |
additional.fields |
已合并 |
evnt_network_service_label |
additional.fields |
已合并 |
evnt_tenant_label |
additional.fields |
已合并 |
evnt_url_category_label |
additional.fields |
已合并 |
exception_label |
additional.fields |
已合并 |
function_label |
additional.fields |
已合并 |
id_label |
additional.fields |
已合并 |
level_no_label |
additional.fields |
已合并 |
line_label |
additional.fields |
已合并 |
location_label |
additional.fields |
已合并 |
logger_field |
additional.fields |
已合并 |
msg_location_label |
additional.fields |
已合并 |
msg_record_functionName_label |
additional.fields |
已合并 |
msg_record_functionVersion_label |
additional.fields |
已合并 |
msg_record_initializationType_label |
additional.fields |
已合并 |
msg_record_instancId_label |
additional.fields |
已合并 |
msg_record_instanceMaxMemory_label |
additional.fields |
已合并 |
msg_record_phase_label |
additional.fields |
已合并 |
msg_service_label |
additional.fields |
已合并 |
msg_type_label |
additional.fields |
已合并 |
msg_xray_trace_id_label |
additional.fields |
已合并 |
protocol_label |
additional.fields |
已合并 |
record_version_label |
additional.fields |
已合并 |
repr_label |
additional.fields |
已合并 |
service_label |
additional.fields |
已合并 |
sourcetype_label |
additional.fields |
已合并 |
thread_name_label |
additional.fields |
已合并 |
type_label |
additional.fields |
已合并 |
xray_trace_id_label |
additional.fields |
已合并 |
evnt_device_hostname |
intermediary.hostname |
直接映射 |
evnt_fwd_method_label |
intermediary.resource.attribute.labels |
已合并 |
desc_msg |
metadata.description |
直接映射 |
message |
metadata.description |
直接映射 |
msg |
metadata.description |
直接映射 |
msg_desc_msg |
metadata.description |
直接映射 |
msg_record_desc_msg |
metadata.description |
直接映射 |
msg_text |
metadata.description |
直接映射 |
msg.time |
metadata.event_timestamp |
已解析为 ISO8601 |
repr_time |
metadata.event_timestamp |
解析为 ISO8601 |
timestamp |
metadata.event_timestamp |
解析为 ISO8601 |
has_host |
metadata.event_type |
已映射:true → STATUS_UPDATE |
has_user |
metadata.event_type |
已映射:true → USER_COMMUNICATION、true → USER_UNCATEGORIZED |
msg_record_module |
metadata.product_event_type |
直接映射 |
id_1 |
metadata.product_log_id |
直接映射 |
evnt_bytes_in |
network.received_bytes |
直接映射 |
evnt_bytes_out |
network.sent_bytes |
直接映射 |
evnt_app_name |
principal.application |
直接映射 |
msg_record_process_name |
principal.application |
直接映射 |
evnt_device_app_version_label |
principal.asset.attribute.labels |
已合并 |
evnt_ssl_policy_label |
principal.asset.attribute.labels |
已合并 |
evnt_server_ip |
principal.asset.ip |
已合并 |
evnt_src_ip |
principal.asset.ip |
已合并 |
evnt_src_translated_ip |
principal.asset.ip |
已合并 |
msg_record_file_path |
principal.file.full_path |
直接映射 |
msg_record_file_name |
principal.file.names |
已合并 |
evnt_hostname |
principal.hostname |
直接映射 |
host |
principal.hostname |
直接映射 |
evnt_server_ip |
principal.ip |
已合并 |
evnt_src_ip |
principal.ip |
已合并 |
evnt_src_translated_ip |
principal.ip |
已合并 |
evnt_os |
principal.platform |
已映射:Windows → WINDOWS,Linux → LINUX |
evnt_src_port |
principal.port |
直接映射 |
port_number |
principal.port |
直接映射 |
msg_record_process_id |
principal.process.pid |
直接映射 |
cmd_status_label |
principal.resource.attribute.labels |
已合并 |
evnt_format_label |
principal.resource.attribute.labels |
已合并 |
evnt_os_label |
principal.resource.attribute.labels |
已合并 |
msg_record_runtimeVersionArn_label |
principal.resource.attribute.labels |
已合并 |
msg_record_runtimeVersion_label |
principal.resource.attribute.labels |
已合并 |
record_requestId_labels |
principal.resource.attribute.labels |
已合并 |
requestId_labels |
principal.resource.attribute.labels |
已合并 |
msg_record_name |
principal.resource.name |
直接映射 |
id |
principal.resource.product_object_id |
直接映射 |
evnt_url |
principal.url |
直接映射 |
evnt_device_owner |
principal.user.user_display_name |
直接映射 |
evnt_user |
principal.user.userid |
直接映射 |
msg_extra_desc_msg_body_account_id |
principal.user.userid |
直接映射 |
evnt_action |
security_result.action |
已映射:allow → security_result_action |
security_result_action |
security_result.action |
已合并 |
security_result_category_details |
security_result.category_details |
已合并 |
security_result_url_super_category |
security_result.category_details |
已合并 |
elapsed_time_label |
security_result.detection_fields |
已合并 |
evnt_session_count_label |
security_result.detection_fields |
已合并 |
evnt_ssl_decrypted_label |
security_result.detection_fields |
已合并 |
evnt_url_class_label |
security_result.detection_fields |
已合并 |
level_icon_label |
security_result.detection_fields |
已合并 |
level |
security_result.severity |
已映射:INFO → INFORMATIONAL,WARNING → MEDIUM |
msg_level |
security_result.severity |
已映射:INFO → INFORMATIONAL,WARNING → MEDIUM |
evnt_dest_ip |
target.ip |
已合并 |
evnt_dest_country |
target.location.country_or_region |
直接映射 |
evnt_dest_port |
target.port |
直接映射 |
dst_url |
target.url |
直接映射 |
| 不适用 | metadata.event_type |
常量:USER_COMMUNICATION |
| 不适用 | metadata.product_name |
常量:AWS Inspector |
| 不适用 | metadata.vendor_name |
常量:AWS Inspector |
| 不适用 | network.ip_protocol |
常量:UDP |
| 不适用 | principal.platform |
常量:WINDOWS |
| 不适用 | security_result.detection_fields |
常量:client_tunnel_ip_label |
| 不适用 | security_result.severity |
常量:INFORMATIONAL |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。