SuperAPI AI 工具集

building-threat-intelligence-feed-integration

安全与审计

查看项目

更新于 10-15 14:59

技能介绍

用途

当 SOC 团队需要将威胁情报源自动摄取到 SIEM 平台、需要把多个 TI 源规范化为 STIX 2.1 通用格式、需要让检测系统基于网络与终端遥测实时匹配 IOC,或需要建立情报源质量评估与去重流程时,可使用本技能。

不适用场景:手动 IOC 查询。临时查询应使用专用富化工具(如 VirusTotal、AbuseIPDB)。

前提条件

  • 用于情报源聚合的 MISP 实例或威胁情报平台(TIP)
  • STIX/TAXII 客户端库(taxii2-client、stix2 Python 包)
  • 已配置 TI 框架的 SIEM 平台(Splunk ES、Elastic Security 或 Sentinel)
  • 商业与开源情报源的 API key(AlienVault OTX、Abuse.ch、CISA AIS)
  • Python 3.8+ 用于情报源处理自动化

工作流

步骤 1:识别并编目情报源

按类型、格式和更新频率梳理可用情报源。资料列出以下示例:

情报源 格式 IOC 类型 更新频率 成本
AlienVault OTX STIX/JSON IP、Domain、Hash、URL 实时 免费
Abuse.ch URLhaus CSV/JSON URL、Domain 每 5 分钟 免费
Abuse.ch MalwareBazaar JSON API 文件 Hash 实时 免费
CISA AIS STIX/TAXII 2.1 全部类型 每日 免费(美国政府)
CrowdStrike Intel STIX/JSON 全部类型 + Actor TTP 实时 商业
Mandiant Advantage STIX 2.1 全部类型 + 报告 实时 商业

步骤 2:摄取 STIX/TAXII 情报源

通过 taxii2client.v21 的 Server 与 Collection 连接 TAXII 2.1 服务器并下载 indicator。示例中使用 CISA AIS 的 TAXII 地址,配合用户名密码认证;可先遍历 server.api_roots 与 api_root.collections 列出可用集合,再用 collection.get_objects(added_after=..., type=["indicator"]) 拉取最近 24 小时新增的 indicator,并用 stix2.parse 解析出 type、pattern、valid_until、confidence 等字段。

步骤 3:摄取开源情报源

  • Abuse.ch URLhaus:通过 requests 下载 csv_recent 端点,用 csv.reader 解析(逗号分隔),跳过以 # 开头的注释行,提取 id、dateadded、url、url_status、threat、tags;可筛选 url_status 为 online 的活跃威胁。
  • AlienVault OTX:使用 OTXv2 与 API key,通过 otx.getall(modified_since=...) 获取订阅的 pulse,遍历 pulse 的 name、tags 与 indicators。
  • Abuse.ch Feodo Tracker(C2 IP):下载 ipblocklist_recommended.json,读取 ip_address、port、malware、first_seen、last_online 等字段。

步骤 4:规范化与去重

将所有情报源转换为 STIX 2.1 格式以实现标准化。示例提供 create_stix_indicator 函数,通过 pattern_map 将 ipv4、domain、url、sha256、md5 映射为对应的 STIX pattern,返回带有 name、pattern、pattern_type、valid_from、confidence、labels 及自定义属性 x_source_feed 的 Indicator 对象。去重时对 "{type}:{value}" 计算 sha256 作为唯一哈希,跳过已见过的 IOC,最后用 Bundle 封装去重后的指标。

步骤 5:推送至 SIEM 威胁情报框架

  • Splunk ES:向 /services/data/threat_intel/item/ip_intel 端点 POST 数据,携带 ip、description、weight(confidence // 10)、threat_key、source_feed 字段;示例中通过 SKIP_TLS_VERIFY 环境变量控制是否校验证书,用于实验室自签名证书场景。
  • MISP:使用 pymisp 的 PyMISP、MISPEvent、MISPAttribute,创建事件(info、threat_level_id、analysis),为每个指标添加属性(type 依据 pattern 判断为 ip-dst 或 domain,value 从 pattern 中提取,to_ids 置为 True,comment 标注来源),最后调用 misp.add_event 提交。

步骤 6:监测情报源健康度与质量

提供一段 Splunk 查询,统计各 source_feed 的 total_iocs、unique_iocs、feed_count,并关联 notable 事件中的匹配数,计算 match_rate(matches / unique_iocs * 100),按 match_rate 降序排列。

关键概念

  • STIX 2.1:结构化威胁信息表达,用于共享威胁情报对象的标准 JSON 格式
  • TAXII:可信自动化指标信息交换,通过 REST API 共享 STIX 数据的传输协议
  • TIP:威胁情报平台,用于聚合、评分和分发威胁情报的集中式系统
  • IOC Scoring:基于来源可靠性和相互印证为指标分配置信值的流程
  • Feed Deduplication:在保留多源归因的同时移除跨源重复 IOC
  • IOC Expiration:移除老化指标的存活期策略(IP:30 天,Domain:90 天,Hash:1 年)

工具与系统

  • MISP:开源威胁情报平台,用于情报源聚合、关联和共享
  • AlienVault OTX:免费威胁情报共享平台,提供社区 pulse 情报源
  • Abuse.ch:免费威胁情报源套件(URLhaus、MalwareBazaar、Feodo Tracker、ThreatFox)
  • OpenCTI:支持 STIX 2.1 原生存储的开源网络威胁情报平台
  • TAXII2 Client:用于连接 STIX/TAXII 2.1 服务器自动获取指标的 Python 库

常见场景

  • 新情报源接入:评估情报源质量、将字段映射到 STIX、配置自动摄取管道
  • 多 SIEM 分发:将 MISP 中规范化后的 IOC 同时推送到 Splunk、Elastic 和 Sentinel
  • 降低误报:按来源数量和时效为 IOC 评分,自动使过期指标失效
  • 情报源质量审计:对比各情报源的检测匹配率,识别最高价值来源
  • 事件 IOC 共享:将调查 IOC 打包为 STIX bundle,通过 TAXII 与 ISAC 共享

输出格式

技能提供每日威胁情报源状态报告示例,包含日期、活跃指标总数,以及各情报源的 IOC 数、匹配数、匹配率和状态(如 HEALTHY),并列出当日操作:新增摄取 IOC 数、过期 IOC 数、移除重复数、SIEM 匹配数(生成 notable 事件数)、误报数。