收集 Tanium Comply 日志
本文档介绍了如何使用 Tanium Connect 的原生 S3 导出功能,通过 Amazon S3 将 Tanium Comply 日志注入到 Google Security Operations。解析器会将 JSON 日志数据转换为统一数据模型 (UDM)。它会提取关键漏洞信息(例如 CVE ID、CVSS 分数、受影响的 IP 地址和时间戳),然后将这些信息重构为标准化的 UDM 格式,以便进行一致的安全分析。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- 对 Tanium Connect 和 Tanium Console 的特权访问权限
- 已安装并配置 Tanium Comply 2.1 或更高版本
- 对 AWS(S3、IAM)的特权访问权限
为 Google SecOps 配置 AWS S3 存储桶和 IAM
- 按照以下用户指南创建 Amazon S3 存储桶:创建存储桶
- 保存存储桶名称和区域以供日后参考(例如
tanium-comply-logs
)。 - 按照以下用户指南创建用户:创建 IAM 用户。
- 选择创建的用户。
- 选择安全凭据标签页。
- 在访问密钥部分中,点击创建访问密钥。
- 选择第三方服务作为使用情形。
- 点击下一步。
- 可选:添加说明标记。
- 点击创建访问密钥。
- 点击 Download CSV file(下载 CSV 文件),保存访问密钥和不公开的访问密钥以供日后使用。
- 点击完成。
- 选择权限标签页。
- 在权限政策部分中,点击添加权限。
- 选择添加权限。
- 选择直接附加政策
- 搜索并选择 AmazonS3FullAccess 政策。
- 点击下一步。
- 点击添加权限。
配置 Amazon S3 存储桶的权限
- 在 Amazon S3 控制台中,选择您之前创建的存储桶。
- 依次点击权限 > 存储分区政策。
在存储分区政策编辑器中,添加以下政策:
{ "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-comply-logs", "arn:aws:s3:::tanium-comply-logs/*" ] } ] }
执行以下变量替换操作:
- 将
YOUR_ACCOUNT_ID
更改为您的 AWS 账号 ID。 - 如果不同,请将
tanium-comply-logs
更改为您的实际存储桶名称。 - 如果不同,请将
tanium-connect-s3-user
更改为您的实际 IAM 用户名。
- 将
点击保存。
配置 Tanium Connect 以导出到 S3
- 以管理员身份登录 Tanium Console。
- 依次前往 Tanium Connect > Connections。
- 点击 Create Connection。
- 在常规信息部分,提供以下配置详细信息:
- 名称:输入一个描述性名称(例如
Tanium Comply to S3
)。 - 说明:输入有意义的说明(例如
Export Tanium Comply findings to S3 for Google SecOps ingestion
)。 - 启用:选择以启用连接。
- Log Level:选择 Information(默认),或根据需要进行调整。
- 名称:输入一个描述性名称(例如
在配置部分中,针对来源,选择 Tanium Comply(发现)。
配置 Comply 来源设置:
- 发现结果类型:选择要导出的发现结果类型(全部、合规性或漏洞)。
- 包含已解决的发现结果:选择是否包含已解决的发现结果。
- 计算机组:选择要纳入导出范围的计算机组(默认:所有计算机)。
对于目标平台,请选择 AWS S3。
提供以下配置详细信息:
- 目标名称:输入一个名称(例如
Google SecOps S3 Bucket
)。 - AWS 访问密钥:输入之前创建的 IAM 用户的访问密钥 ID。
- AWS 密钥:输入之前创建的 IAM 用户的私有访问密钥。
- 存储桶名称:输入您的 S3 存储桶名称(例如
tanium-comply-logs
)。 - 存储分区路径:可选。输入路径前缀(例如
tanium/comply/
)。 - 区域:选择存储桶所在的 AWS 区域(例如
us-east-1
)。
- 目标名称:输入一个名称(例如
在格式部分,配置输出格式:
- 格式类型:选择 JSON。
- 包含列标题:选择是否要包含列标题。
- 生成文档:取消选中此选项可发送原始 JSON 数据。
可选:在配置输出部分中,根据需要配置过滤条件和自定义列。
在时间安排部分,配置连接的运行时间:
- 调度类型:选择 Cron。
- Cron 表达式:输入用于定期导出的 cron 表达式(例如,
0 */4 * * *
表示每 4 小时导出一次)。 - 开始日期:设置安排的开始日期。
点击保存更改。
在 Connect 概览页面中,前往连接。
点击您创建的连接 (Tanium Comply to S3)。
点击立即运行以测试连接。
确认您要运行连接。
监控连接状态,并验证合规性调查结果是否正在导出到您的 S3 存储桶。
可选:为 Google SecOps 创建只读 IAM 用户和密钥
- 依次前往 AWS 控制台 > IAM > 用户 > 添加用户。
- 点击 Add users(添加用户)。
- 提供以下配置详细信息:
- 用户:输入
secops-reader
。 - 访问类型:选择访问密钥 - 以程序化方式访问。
- 用户:输入
- 点击创建用户。
- 附加最低限度的读取政策(自定义):用户 > secops-reader > 权限 > 添加权限 > 直接附加政策 > 创建政策。
在 JSON 编辑器中,输入以下政策:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::tanium-comply-logs/*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::tanium-comply-logs" } ] }
将名称设置为
secops-reader-policy
。依次前往创建政策 > 搜索/选择 > 下一步 > 添加权限。
依次前往安全凭据 > 访问密钥 > 创建访问密钥。
下载 CSV(这些值会输入到 Feed 中)。
在 Google SecOps 中配置 Feed 以注入 Tanium Comply 日志
- 依次前往 SIEM 设置> Feed。
- 点击 + 添加新 Feed。
- 在Feed 名称字段中,输入 Feed 的名称(例如
Tanium Comply logs
)。 - 选择 Amazon S3 V2 作为来源类型。
- 选择 Tanium Comply 作为日志类型。
- 点击下一步。
- 为以下输入参数指定值:
- S3 URI:
s3://tanium-comply-logs/tanium/comply/
(如果您使用了其他存储桶名称或路径,请调整路径)。 - 来源删除选项:根据您的偏好设置选择删除选项。
- 文件存在时间上限:包含在过去指定天数内修改的文件。默认值为 180 天。
- 访问密钥 ID:具有 S3 存储桶访问权限的用户访问密钥(来自上面创建的只读用户)。
- Secret Access Key:具有 S3 存储桶访问权限的用户密钥(来自上面创建的只读用户)。
- 资产命名空间:资产命名空间。
- 注入标签:要应用于此 Feed 中事件的标签。
- S3 URI:
- 点击下一步。
- 在最终确定界面中查看新的 Feed 配置,然后点击提交。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
计算机名称 | entity.entity.asset.hostname | 直接从“计算机名称”字段映射,并将空格替换为下划线。 |
CVE | entity.entity.asset.vulnerabilities.cve_id | 直接从“CVE”字段映射。 |
CVSS v3 评分 | entity.entity.asset.vulnerabilities.cvss_base_score | 直接从“CVSS v3 Score”字段映射,重命名为 cvss_base_score。 |
CVSS v3 严重程度 | entity.entity.asset.vulnerabilities.severity_details | 直接从“CVSS v3 严重程度”字段映射。 |
CVSS v3 矢量 | entity.entity.asset.vulnerabilities.cvss_vector | 直接从“CVSS v3 Vector”字段映射。 |
首次发现日期 | entity.entity.asset.vulnerabilities.first_found | 从“首次发现日期”字段解析并转换为 RFC 3339 UTC 格式。如果日期包含“-”,则会附加“T00:00:00Z”。否则,系统会使用 grok 提取日期,然后进行转换。 |
IP 地址 | entity.entity.asset.ip | “IP 地址”数组中的每个 IP 地址都会映射到 UDM 中的单独“ip”字段。 |
上次发现日期 | entity.entity.asset.vulnerabilities.last_found | 从“上次发现日期”字段解析并转换为 RFC 3339 UTC 格式。如果日期包含“-”,则会附加“T00:00:00Z”。否则,系统会使用 grok 提取日期,然后进行转换。 |
标题 | entity.entity.asset.vulnerabilities.name | 直接从“标题”字段映射。 |
collection_time.nanos | entity.metadata.collected_timestamp.nanos | 直接从“collection_time.nanos”字段映射。 |
collection_time.seconds | entity.metadata.collected_timestamp.seconds | 直接从“collection_time.seconds”字段映射。 |
时间 | entity.metadata.interval.start_time | 从“time”字段解析并转换为 RFC 3339 UTC 格式。 |
- | entity.metadata.entity_type | 设置为“ASSET”。 |
- | entity.metadata.product_entity_id | 设置为“Tanium: ”与“computerName”字段的值串联而成。 |
- | entity.metadata.product_name | 设置为“Comply”。 |
- | entity.metadata.vendor_name | 设置为“Tanium”。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。