收集 Tanium Discover 日志

支持的语言:

本文档介绍了如何使用 Tanium Connect 的原生 S3 导出功能,通过 Amazon S3 将 Tanium Discover 日志注入到 Google Security Operations。Tanium Discover 可自动发现您环境中的网络接口和资产,让您能够了解受管和不受管的端点、网络设备及其他已连接的系统。解析器从 JSON 日志中提取字段,转换 MAC 地址和操作系统信息等特定字段,并将它们映射到 UDM。它可处理各种数据类型,添加供应商和产品详细信息等元数据,并将提取的字段合并到最终的 UDM 事件结构中。

准备工作

请确保满足以下前提条件:

  • Google SecOps 实例
  • Tanium ConnectTanium Console 的特权访问权限
  • 已安装并配置 Tanium Discover 2.11 或更高版本
  • AWS(S3、IAM)的特权访问权限

为 Google SecOps 配置 AWS S3 存储桶和 IAM

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

配置 Amazon S3 存储桶的权限

  1. Amazon S3 控制台中,选择您之前创建的存储桶。
  2. 依次点击权限 > 存储分区政策
  3. 存储分区政策编辑器中,添加以下政策:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::YOUR_ACCOUNT_ID:user/tanium-connect-s3-user"
          },
          "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:GetObject",
            "s3:ListBucket"
          ],
          "Resource": [
            "arn:aws:s3:::tanium-discover-logs",
            "arn:aws:s3:::tanium-discover-logs/*"
          ]
        }
      ]
    }
    
  4. 执行以下变量替换操作:

    • YOUR_ACCOUNT_ID 更改为您的 AWS 账号 ID。
    • 如果不同,请将 tanium-discover-logs 更改为您的实际存储桶名称。
    • 如果不同,请将 tanium-connect-s3-user 更改为您的实际 IAM 用户名。
  5. 点击保存

配置 Tanium Connect 以导出到 S3

  1. 以管理员身份登录 Tanium Console
  2. 依次前往 Tanium Connect > Connections
  3. 点击 Create Connection
  4. 常规信息部分,提供以下配置详细信息:
    • 名称:输入一个描述性名称(例如 Tanium Discover to S3)。
    • 说明:输入有意义的说明(例如 Export Tanium Discover interface data to S3 for Google SecOps ingestion)。
    • 启用:选择以启用连接。
    • Log Level:选择 Information(默认),或根据需要进行调整。
  5. 配置部分的来源中,选择 Tanium Discover
  6. 配置“探索”来源设置:
    • 报告类型:选择要导出的界面类型:
      • 全部:导出 Google 探索中的所有界面。
      • 受管:导出已安装 Tanium 客户端的接口。
      • 非受管:未安装 Tanium 客户端的导出接口。
      • 已加标签:导出已应用标签的所有接口。
      • 未加标签:未应用任何标签的导出接口。
      • 忽略:导出标记为忽略的接口。
      • 不可管理:导出标记为不可管理的接口。
  7. 对于目标平台,请选择 AWS S3
  8. 提供以下配置详细信息:
    • 目标名称:输入一个名称(例如 Google SecOps S3 Bucket)。
    • AWS 访问密钥:输入之前创建的 IAM 用户的访问密钥 ID。
    • AWS 密钥:输入之前创建的 IAM 用户的私有访问密钥。
    • 存储桶名称:输入您的 S3 存储桶名称(例如 tanium-discover-logs)。
    • 存储分区路径:可选。输入路径前缀(例如 tanium/discover/)。
    • 区域:选择存储桶所在的 AWS 区域(例如 us-east-1)。
  9. 格式部分,配置输出格式:
    • 格式类型:选择 JSON
    • 包含列标题:选择是否要包含列标题。
    • 生成文档:取消选中此选项可发送原始 JSON 数据。
  10. 可选:在配置输出部分中,配置过滤条件:
    • 过滤:您可以使用过滤条件导出特定标签。例如,如果您想导出所有带有“丢失的接口”标记的接口,请应用正则表达式过滤条件,然后在“标签”目标列中输入“丢失的接口”作为要匹配的文本。
    • 自定义列:添加与您的使用情形相关的任何自定义列。
  11. 时间表部分,配置连接的运行时间:
    • 调度类型:选择 Cron
    • Cron 表达式:输入用于定期导出的 cron 表达式(例如,0 */6 * * * 表示每 6 小时导出一次)。
    • 开始日期:设置安排的开始日期。
  12. 点击保存更改
  13. Connect 概览页面中,前往连接
  14. 点击您创建的连接 (Tanium Discover to S3)。
  15. 点击立即运行以测试连接。
  16. 确认您要运行连接。
  17. 监控连接状态,并验证发现界面数据是否正在导出到您的 S3 存储桶。

可选:为 Google SecOps 创建只读 IAM 用户和密钥

  1. 依次前往 AWS 控制台 > IAM > 用户 > 添加用户
  2. 点击 Add users(添加用户)。
  3. 提供以下配置详细信息:
    • 用户:输入 secops-reader
    • 访问类型:选择访问密钥 - 以程序化方式访问
  4. 点击创建用户
  5. 附加最低限度的读取政策(自定义):用户 > secops-reader > 权限 > 添加权限 > 直接附加政策 > 创建政策
  6. 在 JSON 编辑器中,输入以下政策:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::tanium-discover-logs/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::tanium-discover-logs"
        }
      ]
    }
    
  7. 将名称设置为 secops-reader-policy

  8. 依次前往创建政策 > 搜索/选择 > 下一步 > 添加权限

  9. 依次前往安全凭据 > 访问密钥 > 创建访问密钥

  10. 下载 CSV(这些值会输入到 Feed 中)。

在 Google SecOps 中配置 Feed 以注入 Tanium Discover 日志

  1. 依次前往 SIEM 设置> Feed
  2. 点击 + 添加新 Feed
  3. Feed 名称字段中,输入 Feed 的名称(例如 Tanium Discover logs)。
  4. 选择 Amazon S3 V2 作为来源类型
  5. 选择 Tanium Discover 作为日志类型
  6. 点击下一步
  7. 为以下输入参数指定值:
    • S3 URIs3://tanium-discover-logs/tanium/discover/(如果您使用了其他存储桶名称或路径,请调整路径)。
    • 来源删除选项:根据您的偏好设置选择删除选项。
    • 文件存在时间上限:包含在过去指定天数内修改的文件。默认值为 180 天。
    • 访问密钥 ID:具有 S3 存储桶访问权限的用户访问密钥(来自上面创建的只读用户)。
    • Secret Access Key:具有 S3 存储桶访问权限的用户密钥(来自上面创建的只读用户)。
    • 资产命名空间资产命名空间
    • 注入标签:要应用于此 Feed 中事件的标签。
  8. 点击下一步
  9. 最终确定界面中查看新的 Feed 配置,然后点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
CentralizedNmap principal.asset.attribute.labels.key 值“CentralizedNmap”由解析器分配。
CentralizedNmap principal.asset.attribute.labels.value 直接从原始日志中的 CentralizedNmap 字段获取并转换为字符串。
IpAddress principal.asset.ip 直接从原始日志的 IpAddress 字段中获取。
IpAddress principal.ip 直接从原始日志的 IpAddress 字段中获取。
Labels principal.asset.attribute.labels.key 值“Labels”由解析器分配。
Labels principal.asset.attribute.labels.value 直接从原始日志的 Labels 字段中获取。
MacAddress principal.asset.mac 直接取自原始日志中的 MacAddress 字段,连字符替换为英文冒号,并将值转换为小写。
MacAddress principal.asset.product_object_id 将“TANIUM:”与 MacAddress 字段(在将其转换为小写并用英文冒号替换连字符后)连接起来。
MacAddress principal.mac 直接取自原始日志中的 MacAddress 字段,连字符替换为英文冒号,并将值转换为小写。
MacOrganization principal.asset.attribute.labels.key 值“MacOrganization”由解析器分配。
MacOrganization principal.asset.attribute.labels.value 直接从原始日志中的 MacOrganization 字段获取并转换为字符串。
Managed principal.asset.attribute.labels.key 值“Managed”由解析器分配。
Managed principal.asset.attribute.labels.value 直接从原始日志中的 Managed 字段获取并转换为字符串。
Os principal.asset.platform_software.platform 如果 Os 为“Windows”,则该值设置为“WINDOWS”。如果 Os 为“Linux”,则该值设置为“LINUX”。否则,该值设置为“UNKNOWN_PLATFORM”。
Os principal.platform 如果 Os 为“Windows”,则该值设置为“WINDOWS”。如果 Os 为“Linux”,则该值设置为“LINUX”。否则,该值设置为“UNKNOWN_PLATFORM”。
OsGeneration principal.asset.platform_software.platform_version 直接从原始日志中的 OsGeneration 字段获取并转换为字符串。
OsGeneration principal.platform_version 直接从原始日志中的 OsGeneration 字段获取并转换为字符串。
Ports principal.asset.attribute.labels.key “Ports”值由解析器分配。
Ports principal.asset.attribute.labels.value 直接从原始日志的 Ports 字段中获取。
Profile principal.asset.attribute.labels.key “Profile”值由解析器分配。
Profile principal.asset.attribute.labels.value 直接从原始日志的 Profile 字段中获取。
TaniumComputerId principal.asset.attribute.labels.key 值“TaniumComputerId”由解析器分配。
TaniumComputerId principal.asset.attribute.labels.value 直接从原始日志中的 TaniumComputerId 字段获取并转换为字符串。
Unmanageable principal.asset.attribute.labels.key “不可管理”值由解析器分配。
Unmanageable principal.asset.attribute.labels.value 直接从原始日志中的 Unmanageable 字段获取并转换为字符串。从原始日志的 time 字段中提取,经过解析并转换为纪元秒数。值“SCAN_NETWORK”由解析器分配。值“TANIUM_DISCOVER”由解析器分配。值“Discover”由解析器分配。值“Tanium”由解析器分配。直接从原始日志的 HostName 字段中获取。从原始日志的 time 字段中提取,经过解析并转换为纪元秒数。

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