收集 Anomali ThreatStream IOC 日志

支持的语言:

本文档介绍了如何使用 API 将 Anomali ThreatStream IOC 日志注入到 Google Security Operations。解析器会将 IOC 数据从 JSON 或 CEF 格式转换为统一数据模型 (UDM)。该代码首先尝试将输入解析为 JSON,如果失败,则检查“CEF:”前缀,以将其作为 CEF 消息进行处理,提取 IOC 属性并将其映射到 UDM 字段。

准备工作

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

  • Google SecOps 实例
  • Anomali ThreatStream 企业租户的特权访问权限

创建专用 API 用户

  1. 登录 ThreatStream。如果您使用的是 Anomali Enterprise,请切换到经典版界面
  2. 依次前往管理 > 用户
  3. 点击 + 添加用户(或选择现有服务账号)。
  4. 填写以下详细信息:
    • 电子邮件地址:服务账号电子邮件地址(例如 anomali_ioc_secops@example.com)。
    • 身份验证来源:选择标准
    • 用户类型:选择 API 用户
    • 角色:选择只读(足以列出指标)。
  5. 点击保存
  6. 系统会向新账号发送一封激活电子邮件;请完成激活。

生成 API 密钥

  1. API 用户身份登录 ThreatStream
  2. 依次前往个人资料头像 > 我的 API 密钥
  3. 点击生成新密钥
  4. 输入说明(例如 Google SecOps export)。
  5. 点击保存
  6. 复制并保存密钥下显示的值,并将其保存在安全位置。系统不会再显示该密钥值。
  1. 依次前往管理 > 组织设置
  2. 选择 IP 许可名单标签页。
  3. 点击添加
  4. 输入您的 Google SecOps 租户地址,然后点击保存

设置 Feed

  1. 依次前往 SIEM 设置> Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称(例如 Anomali TS IOC)。
  4. 选择第三方 API 作为来源类型
  5. 选择 Anomali 日志类型。
  6. 点击下一步
  7. 为以下输入参数指定值:
    • 用户名:输入新创建的 API 用户。
    • Secret:输入之前复制的生成的 API Key
    • 资产命名空间资产命名空间
    • 注入标签:应用于此 Feed 中事件的标签。
  8. 点击下一步
  9. 最终确定界面中检查 Feed 配置,然后点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
obj.asn entity.administrative_domain 原始日志中的 asn 字段会映射到 UDM 实体对象中的 administrative_domain 字段。
obj.confidence ioc.confidence_score 原始日志中的置信度字段会映射到 UDM ioc 对象中的 confidence_score 字段。
obj.country entity.location.country_or_region 原始日志中的“国家/地区”字段会映射到 UDM 实体对象中的“country_or_region”字段。
obj.created_ts entity.metadata.creation_timestamp 原始日志中的 created_ts 字段会映射到 UDM 实体对象中的 creation_timestamp 字段。
obj.created_ts ioc.active_timerange.start 原始日志中的 created_ts 字段会映射到 UDM ioc 对象中的 start 字段。
obj.created_ts entity.metadata.threat.first_discovered_time 原始日志中的 created_ts 字段会映射到 UDM 威胁对象中的 first_discovered_time 字段。
obj.expiration_ts entity.metadata.interval.end_time 原始日志中的 expiration_ts 字段会映射到 UDM 实体对象中的 end_time 字段。
obj.expiration_ts ioc.active_timerange.end 原始日志中的 expiration_ts 字段会映射到 UDM ioc 对象中的 end 字段。
obj.id entity.metadata.product_entity_id 原始日志中的 id 字段会映射到 UDM 实体对象中的 product_entity_id 字段。
obj.ip entity.entity.ip 原始日志中的 IP 字段会合并到 UDM 实体对象中的 IP 字段。
obj.ip ioc.ip_and_ports.ip_address 原始日志中的 ip 字段会映射到 UDM ioc 对象中的 ip_address 字段。
obj.itype ioc.categorization 原始日志中的 itype 字段会映射到 UDM ioc 对象中的 categorization 字段。
obj.itype entity.metadata.threat.category_details 原始日志中的 itype 字段会合并到 UDM 威胁对象中的 category_details 字段。
obj.latitude entity.entity.location.region_latitude 原始日志中的纬度字段会映射到 UDM 实体对象中的 region_latitude 字段。
obj.longitude entity.entity.location.region_longitude 原始日志中的经度字段会映射到 UDM 实体对象中的 region_longitude 字段。
obj.meta.detail2 ioc.description 原始日志中的 detail2 字段会映射到 UDM ioc 对象中的说明字段。
obj.meta.detail2 entity.metadata.threat.description 原始日志中的 detail2 字段会映射到 UDM 威胁对象中的说明字段。
obj.meta.severity ioc.raw_severity 原始日志中的严重程度字段会映射到 UDM ioc 对象中的 raw_severity 字段。
obj.meta.severity entity.metadata.threat.severity 原始日志中的严重程度字段会映射到 UDM 威胁对象中的严重程度字段。如果严重程度为“非常高”,则映射为“严重”。
obj.meta.severity entity.metadata.threat.severity_details 原始日志中的严重程度字段会映射到 UDM 威胁对象中的 severity_details 字段。
obj.modified_ts entity.metadata.threat.last_updated_time 原始日志中的 modified_ts 字段会映射到 UDM 威胁对象中的 last_updated_time 字段。
obj.org entity.entity.administrative_domain 原始日志中的组织字段会映射到 UDM 实体对象中的 administrative_domain 字段。
obj.resource_uri entity.metadata.threat.url_back_to_product 原始日志中的 resource_uri 字段会映射到 UDM 威胁对象中的 url_back_to_product 字段。
obj.retina_confidence entity.metadata.threat.confidence_score 原始日志中的 retina_confidence 字段会映射到 UDM 威胁对象中的 confidence_score 字段。
obj.source ioc.feed_name 原始日志中的源字段会映射到 UDM ioc 对象中的 feed_name 字段。
obj.source entity.metadata.threat.threat_name 原始日志中的源字段会映射到 UDM 威胁对象中的 threat_name 字段。
obj.status entity.metadata.threat.threat_status 原始日志中的状态字段会映射到 UDM 威胁对象中的 threat_status 字段。
obj.subtype entity.entity.file.sha1 如果子类型为“SHA1”,则原始日志中的子类型字段会映射到 UDM 实体对象中的 sha1 字段。
obj.subtype entity.entity.file.sha256 如果子类型为“SHA256”,则原始日志中的子类型字段会映射到 UDM 实体对象中的 sha256 字段。
obj.tags entity.metadata.source_labels 原始日志中的“tags”字段会映射到 UDM 实体对象中的“source_labels”字段。
obj.tags.id entity.metadata.source_labels 原始日志的标记数组中的 id 字段会映射到 UDM 实体的 source_labels 字段。
obj.tags.name entity.metadata.source_labels 原始日志的标记数组中的“name”字段会映射到 UDM 实体对象中的“source_labels”字段。
obj.threatscore entity.metadata.threat.risk_score 原始日志中的 threatscore 字段会映射到 UDM 威胁对象中的 risk_score 字段。
obj.threat_type entity.metadata.threat.detection_fields 原始日志中的 threat_type 字段会映射到 UDM 威胁对象中的 detection_fields 字段。
obj.type entity.entity.file.md5 如果类型为“md5”,则原始日志中的类型字段会映射到 UDM 实体对象中的 md5 字段。
obj.type entity.entity.hostname 如果类型为“网域”,则原始日志中的类型字段会映射到 UDM 实体对象中的主机名。
obj.type entity.entity.ip 如果类型为“ip”或“ipv6”,则原始日志中的类型字段会合并到 UDM 实体对象中的 ip 字段。
obj.type entity.entity.url 如果原始日志中的 type 字段为“url”或“string”,则该字段会映射到 UDM 实体对象中的 url 字段。
obj.type entity.entity.user.email_addresses 如果类型为“email”,则原始日志中的 type 字段会合并到 UDM 实体对象中的 email_addresses 字段。
obj.type entity.metadata.entity_type 原始日志中的类型字段会映射到 UDM 实体对象中的 entity_type 字段。如果类型为“ip”或“ipv6”,则映射到“IP_ADDRESS”。如果类型为“domain”,则映射到“DOMAIN_NAME”。如果类型为“md5”或 itype 字段包含“md5”,则会映射到“FILE”。如果类型为“url”或“string”,则映射到“网址”。如果类型为“电子邮件”,则映射到“USER”。否则,它会映射到“UNKNOWN_ENTITYTYPE”。
obj.uuid entity.additional.fields 原始日志中的 uuid 字段会映射到 UDM 实体对象中的 fields 字段。
obj.value entity.entity.ip 如果类型字段为“ip”,且 IP 字段为空,则原始日志中的值字段会合并到 UDM 实体对象的 IP 字段中。
obj.value entity.entity.ip 如果 ip_field_not_exists 字段为 true 且值字段为 IP 地址,则原始日志中的值字段会合并到 UDM 实体对象中的 ip 字段。
obj.value entity.entity.url 如果类型字段为“url”或“string”,则原始日志中的值字段会映射到 UDM 实体对象中的网址字段。
obj.value ioc.domain_and_ports.domain 如果类型字段不是“ip”,则原始日志中的值字段会映射到 UDM ioc 对象中的网域字段。
obj.value ioc.ip_and_ports.ip_address 如果类型字段为“ip”且 ip 字段为空,则原始日志中的值字段会映射到 UDM ioc 对象中的 ip_address 字段。
cn1 ioc.confidence_score 原始日志中的 cn1 字段会映射到 UDM ioc 对象中的 confidence_score 字段。
cn2 entity.metadata.threat.rule_id 原始日志中的 cn2 字段会映射到 UDM 威胁对象中的 rule_id 字段。
cs1 ioc.raw_severity 原始日志中的 cs1 字段会映射到 UDM ioc 对象中的 raw_severity 字段。
cs2 entity.metadata.threat.threat_name 原始日志中的 cs2 字段会映射到 UDM 威胁对象中的 threat_name 字段。
cs3 entity.metadata.threat.threat_status 原始日志中的 cs3 字段映射到 UDM 威胁对象中的 threat_status 字段。如果 cs3 字段为“active”,则映射到“ACTIVE”。如果 cs3 字段为“已清除”,则映射到“CLEARED”。如果 cs3 字段为“falsePositive”或“falsepos”,则映射到“FALSE_POSITIVE”。如果 cs3 字段为“threat_status_unspecified”,则会映射到“THREAT_STATUS_UNSPECIFIED”。
cs4 entity.entity.administrative_domain 原始日志中的 cs4 字段会映射到 UDM 实体对象中的 administrative_domain 字段。
cs5 ioc.description 原始日志中的 cs5 字段会映射到 UDM ioc 对象中的说明字段。
cs5 entity.metadata.threat.detection_fields 原始日志中的 cs5 字段会映射到 UDM 威胁对象中的 detection_fields 字段。
cs5 entity.metadata.threat.description 原始日志中的 cs5 字段会映射到 UDM 威胁对象中的说明字段。
cs6 entity.metadata.threat.category_details 原始日志中的 cs6 字段会合并到 UDM 威胁对象中的 category_details 字段。
device_product entity.metadata.product_name 原始日志中的 device_product 字段会映射到 UDM 实体对象中的 product_name 字段。
device_vendor entity.metadata.vendor_name 原始日志中的 device_vendor 字段会映射到 UDM 实体对象中的 vendor_name 字段。
device_version entity.metadata.product_version 原始日志中的 device_version 字段会映射到 UDM 实体对象中的 product_version 字段。
msg entity.metadata.threat.summary 原始日志中的 msg 字段会映射到 UDM 威胁对象中的 summary 字段。
shost entity.entity.hostname 原始日志中的 shost 字段会映射到 UDM 实体对象中的 hostname 字段。
shost entity.entity.url 原始日志中的 shost 字段会映射到 UDM 实体对象中的 url 字段。
shost ioc.domain_and_ports.domain 原始日志中的 shost 字段会映射到 UDM ioc 对象中的网域字段。
src entity.entity.ip 原始日志中的 src 字段会合并到 UDM 实体对象中的 ip 字段。
src ioc.ip_and_ports.ip_address 原始日志中的 src 字段会映射到 UDM ioc 对象中的 ip_address 字段。
entity.metadata.threat.confidence HIGH_CONFIDENCE 如果 confidence_score 字段的值大于或等于 75,则 UDM 威胁对象中的 confidence 字段会设置为“HIGH_CONFIDENCE”。
entity.metadata.threat.confidence LOW_CONFIDENCE 如果 confidence_score 字段小于或等于 50,则 UDM 威胁对象中的置信度字段会设置为“LOW_CONFIDENCE”。
entity.metadata.threat.confidence MEDIUM_CONFIDENCE 如果 confidence_score 字段的值大于 50 且小于或等于 74,则 UDM 威胁对象中的置信度字段会设置为“MEDIUM_CONFIDENCE”。
entity.metadata.threat.confidence UNKNOWN_CONFIDENCE 如果 confidence_score 字段不是有效的整数,则 UDM 威胁对象中的置信度字段会设置为“UNKNOWN_CONFIDENCE”。
entity.metadata.vendor_name ANOMALI_IOC UDM 实体对象中的 vendor_name 字段设置为“ANOMALI_IOC”。

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