收集 Cisco Umbrella 审核日志

支持的语言:

本文档介绍了如何使用 AWS S3 存储桶将 Cisco Umbrella 审核日志收集到 Google Security Operations Feed 中。解析器会标准化原始 CSV 日志数据,处理不同的分隔符和潜在的格式不一致问题。然后,根据日志类型(DNS 或审核),将提取的字段映射到相应的 UDM 架构,通过添加更多上下文信息来丰富数据,并标准化表示形式以供进一步分析。

准备工作

  • 确保您拥有 Google SecOps 实例。
  • 确保您拥有对 AWS IAM 和 S3 的特权访问权限。
  • 确保您拥有对 Cisco Umbrella 的特权访问权限。

配置由 Cisco 管理的 Amazon S3 存储桶

  1. 登录 Cisco Umbrella 信息中心。
  2. 前往管理 > 日志管理
  3. 选择 Use a Cisco-managed Amazon S3 bucket 选项。
  4. 提供以下配置详细信息:
    • 选择区域:选择离您较近的区域,以缩短延迟时间。
    • 选择保留时长:选择时间段。保留时长为 7 天、14 天或 30 天。在所选时间段过后,数据会被删除,且无法恢复。如果您的提取周期规律,请使用较短的时间段。您可以稍后更改保留时长。
  5. 点击保存
  6. 点击继续以确认您的选择,并接收启用通知。
    在随即显示的激活完成窗口中,系统会显示访问密钥密钥值。
  7. 复制访问密钥密钥值。如果您丢失了这些密钥,则必须重新生成它们。
  8. 依次点击知道了 > 继续
  9. 系统会显示一个摘要页面,其中包含配置和存储桶名称。您可以根据组织的要求关闭或开启日志记录。不过,系统会根据保留时长清除日志,而不会考虑是否添加了新数据。

可选:为自行管理的 AWS S3 存储桶配置用户访问密钥

  1. 登录 AWS Management Console
  2. 按照以下用户指南创建用户创建 IAM 用户
  3. 选择创建的用户
  4. 选择安全凭据标签页。
  5. 访问密钥部分中,点击创建访问密钥
  6. 选择第三方服务作为使用情形
  7. 点击下一步
  8. 可选:添加说明标记。
  9. 点击创建访问密钥
  10. 点击 Download CSV file(下载 CSV 文件),保存访问密钥不公开的访问密钥以供日后使用。
  11. 点击完成
  12. 选择权限标签页。
  13. 权限政策部分中,点击添加权限
  14. 选择添加权限
  15. 选择直接附加政策
  16. 搜索并选择 AmazonS3FullAccess 政策。
  17. 点击下一步
  18. 点击添加权限

可选:配置自行管理的 Amazon S3 存储桶

  1. 登录 AWS Management Console

  2. 前往 S3

  3. 点击创建存储分区

  4. 提供以下配置详细信息:

    • 存储桶名称:为 Amazon S3 存储桶提供名称。
    • 区域:选择一个区域。
  5. 点击创建

可选:为自行管理的 AWS S3 存储桶配置存储桶政策

  1. 点击新创建的存储桶以将其打开。
  2. 依次选择属性 > 权限
  3. 权限列表中,点击添加存储桶政策
  4. 按如下方式输入预配置的存储桶政策:

    {
      "Version": "2008-10-17",
      "Statement": [
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::568526795995:user/logs"
          },
          "Action": "s3:PutObject",
          "Resource": "arn:aws:s3:::BUCKET_NAME/*"
        },
        {
          "Sid": "",
          "Effect": "Deny",
          "Principal": {
            "AWS": "arn:aws:iam::568526795995:user/logs"
          },
          "Action": "s3:GetObject",
          "Resource": "arn:aws:s3:::BUCKET_NAME/*"},
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::568526795995:user/logs"
          },
          "Action": "s3:GetBucketLocation",
          "Resource": "arn:aws:s3:::BUCKET_NAME"
        },
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::568526795995:user/logs"
          },
          "Action": "s3:ListBucket",
          "Resource": "arn:aws:s3:::BUCKET_NAME"
        }
      ]
    }
    
    • BUCKET_NAME 替换为您提供的 Amazon S3 存储桶名称。
  5. 点击保存

可选:自行管理的 Amazon S3 存储桶需要进行验证

  1. Cisco Umbrella 信息中心内,依次选择 Admin > Log management > Amazon S3
  2. Bucket name 字段中,指定确切的 Amazon S3 存储桶名称,然后点击 Verify
  3. 在验证过程中,系统会将名为 README_FROM_UMBRELLA.txt 的文件从 Cisco Umbrella 上传到您的 Amazon S3 存储桶。您可能需要刷新浏览器才能在上传后看到 README 文件。
  4. 下载 README_FROM_UMBRELLA.txt 文件,然后使用文本编辑器打开该文件。
  5. 复制并保存文件中的唯一 Cisco Umbrella 令牌。
  6. 前往 Cisco Umbrella 信息中心。
  7. 令牌编号字段中,指定令牌,然后点击保存
  8. 如果验证成功,您的信息中心会显示一条确认消息,表明存储桶已成功通过验证。如果您收到一条错误消息,指出您的存储桶无法验证,请重新检查存储桶名称的语法并检查配置。

在 Google SecOps 中配置 Feed 以注入 Cisco Umbrella 审核日志

  1. 依次前往 SIEM 设置> Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称,例如 Cisco Umbrella 审核日志
  4. 选择 Amazon S3 V2 作为来源类型
  5. 选择 Cisco Umbrella 审核作为日志类型
  6. 点击下一步
  7. 为以下输入参数指定值:

    • S3 URI:存储桶 URI。
      • s3:/BUCKET_NAME
        • BUCKET_NAME 替换为存储桶的实际名称。
    • 来源删除选项:根据您的偏好设置选择删除选项。
  8. 点击下一步

  9. 最终确定界面中查看新的 Feed 配置,然后点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
action_type security_result.action_details 直接从原始日志字段 action_type 映射。
action_type security_result.action 如果 action_type 包含 allow(不区分大小写),则设置为 ALLOW。如果 action_type 包含 block(不区分大小写),则设置为 BLOCK
additionalValue additional.fields{}.key 设置为 Additional Value
additionalValue additional.fields{}.value.string_value 直接从原始日志字段 additionalValue 映射。
blocked_categories additional.fields{}.key 设置为 blocked_categories
blocked_categories additional.fields{}.value.string_value 直接从原始日志字段 blocked_categories 映射。
categories security_result.category_details 直接从原始日志字段 categories 映射,并按逗号拆分。
第 1 列 metadata.product_log_id 如果日志是审核日志,则从原始日志字段 column1 映射。
第 1 列 date_time 如果日志是 DNS 日志,则从原始日志字段 column1 映射。
column10 categories 直接从原始日志字段 column10 映射。
column11 most_granular_identity_type 直接从原始日志字段 column11 映射。
column12 identity_types 直接从原始日志字段 column12 映射。
column13 blocked_categories 直接从原始日志字段 column13 映射。
第 2 列 date_time 如果日志是审核日志,则从原始日志字段 column2 映射。
第 2 列 most_granular_identity 如果日志是 DNS 日志,则从原始日志字段 column2 映射。
第 3 列 principal.user.email_addresses 如果日志是审核日志,则从原始日志字段 column3 映射。
第 3 列 身份 如果日志是 DNS 日志,则从原始日志字段 column3 映射。
column4 principal.user.userid 如果日志是审核日志,则从原始日志字段 column4 映射。
column4 internal_ip 如果日志是 DNS 日志,则从原始日志字段 column4 映射。
column5 security_result.rule_name 如果日志是审核日志,则从原始日志字段 column5 映射。
column5 external_ip 如果日志是 DNS 日志,则从原始日志字段 column5 映射。
column6 action_type 直接从原始日志字段 column6 映射。
column7 principal.ip 如果日志是审核日志,则从原始日志字段 column7 映射。
column7 dns_query_type 如果日志是 DNS 日志,则从原始日志字段 column7 映射。
column8 additionalValue 如果日志是审核日志,则从原始日志字段 column8 映射。
column8 dns_response_code 如果日志是 DNS 日志,则从原始日志字段 column8 映射。
column9 域名 直接从原始日志字段 column9 映射。
date_time metadata.event_timestamp.seconds date_time 字段中提取的纪元时间戳。
dns_query_type network.dns.questions.type 使用正则表达式从 dns_query_type 字段中提取,并转换为整数。
dns_response_code network.dns.response_code dns_response_code 字段映射,根据 DNS 响应代码值转换为整数。
域名 network.dns.questions.name 直接从 domain 字段映射。
external_ip principal.ip 如果 external_ip 字段不为空且不等于 internal_ip,则从该字段映射。
身份 principal.location.name 如果对应的 identity_types 字段为 Networks,则从 identities 字段映射。
身份 principal.hostname 如果对应的 identity_types 字段为 AD ComputersRoaming ComputersAnyconnect Roaming Client,则从 identities 字段进行映射。
身份 principal.asset.hostname 如果对应的 identity_types 字段为 AD ComputersRoaming ComputersAnyconnect Roaming Client,则从 identities 字段进行映射。
身份 principal.location.city 如果对应的 identity_types 字段为 Sites,则从 identities 字段映射。
identity_types additional.fields{}.key 设置为 identities_types
identity_types additional.fields{}.value.string_value 直接从原始日志字段 identity_types 映射。
internal_ip principal.ip 如果 internal_ip 字段不为空,则从该字段映射。
most_granular_identity additional.fields{}.key 设置为 most_granular_identity
most_granular_identity additional.fields{}.value.string_value 直接从原始日志字段 most_granular_identity 映射。
most_granular_identity_type additional.fields{}.key 设置为 most_granular_identity_type
most_granular_identity_type additional.fields{}.value.string_value 直接从原始日志字段 most_granular_identity_type 映射。
metadata.event_type 如果日志是 DNS 日志,则设置为 NETWORK_DNS
metadata.event_type 如果日志是审核日志且 principal_ip 不为空,则设置为 STATUS_UPDATE
metadata.event_type 如果日志是审核日志且 principal_ip 为空,则设置为 GENERIC_EVENT
metadata.vendor_name 设置为 CISCO UMBERLLA
metadata.product_name 设置为 CISCO UMBERLLA
metadata.log_type 设置为 AUDITD
network.application_protocol 如果日志是 DNS 日志,则设置为 DNS

需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。