基于 MISP 的威胁情报采集工作流实战指南:从社区 Feed、TAXII 同步到 IOC 导出(Anthropic-Cybersecurity-Skills)
2026/9/12 2:05:22 网站建设 项目流程

基于 MISP 的威胁情报采集工作流实战指南:从社区 Feed、TAXII 同步到 IOC 导出(Anthropic-Cybersecurity-Skills)

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills

导读

本篇技术指南围绕 Anthropic-Cybersecurity-Skills 仓库中collecting-threat-intelligence-with-misp技能及其 workflows.md 文档展开,系统梳理 MISP(Malware Information Sharing Platform)在威胁情报采集场景下的五条核心工作流:自动化 Feed 采集流水线、人工情报录入、TAXII Feed 集成、多实例同步以及面向防御工具的 IOC 导出。读完本文后,你将掌握每条工作流的端到端执行步骤、底层 PyMISP API 调用方式,以及仓库脚本(agent.py、process.py)中可直接复用的采集与导出实现。

MISP 采集工作流全景

MISP 采用事件(Event)驱动模型组织威胁情报:事件包含属性(Attribute,即 IOC)、对象(Object,属性的结构化分组)、星系(Galaxy,威胁组织/恶意软件簇,可关联 MITRE ATT&CK)以及用于分类的标签(Tag)。本技能的 SKILL.md 将其概括为四种可消费的数据源:

  • MISP Feeds:原生 JSON/CSV 格式,来自 MISP 社区(CIRCL OSINT、botvrij.eu);
  • Freetext Feeds:非结构化文本源,解析出 IOC(如 abuse.ch、Feodo Tracker);
  • TAXII Feeds:符合 STIX/TAXII 2.1 的商用与政府来源;
  • CSV Feeds:可配置列映射的结构化 CSV。

workflows.md 正是围绕这些数据源与 MISP 的能力,归纳出五条可落地的采集/分发工作流。下文逐条展开,并结合仓库脚本给出可直接运行的操作细节。

工作流一:自动化 Feed 采集流水线

该工作流是 MISP 采集能力的核心,流水线示意如下(引自 workflows.md):

[Community Feeds] --> [MISP Feed Manager] --> [Event Creation] --> [Correlation Engine] | | | | v v v v - CIRCL OSINT - Schedule fetch - Auto-tag with - Deduplicate - Botvrij.eu - Parse formats TLP/PAP - Cross-reference - abuse.ch - Validate IOCs - Set distribution - Cluster similar - PhishTank - Filter warninglists - Publish/unpublish events

六步执行过程

  1. Feed 注册(Feed Registration):通过 Web UI 或 PyMISP API 添加 Feed,需指定source_formaturl与可选的headers。仓库脚本 process.py 中add_custom_feed()展示了最小可用配置:
feed_config = { "name": name, "provider": provider, "url": url, "source_format": source_format, # 常见取值: json, csv, freetext, taxii "input_source": "network", # network 表示从 URL 拉取 "publish": False, # 拉取的 Feed 事件默认不自动发布 "enabled": True, "distribution": 0, # 0=组织内部分发,1=本社区,2=互联社区,3=全部 "default": False, "lookup_visible": True, } result = self.misp.add_feed(feed_config)
  1. 定时拉取(Scheduled Fetch):配置 cron 任务或 MISP 自带调度器,按固定间隔拉取 Feed。仓库 SKILL.md 的验证标准明确指出"自动 Feed 拉取需按计划运行(cron 或 MISP scheduler)"。
  2. 解析与校验(Parsing and Validation):MISP 解析 Feed 内容、校验 IOC 格式,并通过Warninglists剔除已知良性指标(如 Alexa Top 1M、Office 365 IP 段),降低误报。详见 standards.md。
  3. 事件生成(Event Generation):每次拉取会根据解析结果创建或更新事件与属性。
  4. 关联(Correlation):MISP 将新属性与存量数据关联,识别重叠。脚本get_correlation_summary()(process.py)可遍历属性的RelatedAttribute,输出关联事件 ID 列表。
  5. 分发(Distribution):按 TLP 标签与共享组(sharing group)配置分发事件。

启用默认社区 Feed 的实现

process.py 的enable_default_feeds()会按名称匹配启用并立即拉取五类社区 Feed:CIRCL OSINT Feed、Botvrij.eu、abuse.ch URLhaus、The Botnet Channel、Phishtank online valid phishing,核心逻辑为:

for feed in feeds: if any(default in feed_name for default in default_feeds): self.misp.enable_feed(feed_id) self.misp.fetch_feed(feed_id)

对应 PyMISP 三连操作enable_feed/cache_feed/fetch_feed的完整示例见 SKILL.md。运行方式:

python skills/collecting-threat-intelligence-with-misp/scripts/process.py \ --url https://misp.local --key YOUR_API_KEY --action feeds --enable-defaults

工作流二:人工情报录入与富化

当情报来自分析师报告、专报或非自动渠道时,采用人工录入流程(引自 workflows.md):

[Analyst Report] --> [Manual Event Creation] --> [Attribute Addition] --> [Enrichment] | v [Galaxy Tagging] | v [Publication]

六步执行过程

  1. 事件创建(Event Creation):创建事件,填写描述性info、日期、分发范围与 TLP 标签。
  2. IOC 录入(IOC Entry):按正确的类别(category)与类型(type)添加属性。仓库 api-reference.md 给出了常用属性类型速查表:
TypeCategoryExample
ip-dstNetwork activity198.51.100.42
domainNetwork activityevil.example.com
urlNetwork activityhttps://evil.com/mal
sha256Payload deliverya1b2c3...
md5Payload deliveryd41d8c...
email-srcPayload deliveryattacker@evil.com
filenamePayload deliverymalware.exe
  1. 对象构建(Object Construction):将关联属性组织成 MISP 对象(如 file、domain-ip、email 对象),提升事件结构性与可消费性。
  2. 星系关联(Galaxy Linking):将事件关联到 MITRE ATT&CK 技术(T-code)、威胁组织簇、恶意软件家族。本技能在 SKILL.md 的 front matter 中即声明了所覆盖的 ATT&CK 技术(T1071.001、T1588.001、T1583.001、T1566.001、T1587.001)与 NIST CSF 控制项(ID.RA-01、ID.RA-05、DE.CM-01、DE.AE-02),可作为人工打标时的参考映射。
  3. 富化(Enrichment):借助 MISP 模块(VirusTotal、Shodan、CIRCL PassiveDNS)对属性做外部情报富化。
  4. 复核与发布(Review and Publish):分析师复核,设置to_ids标志(标记可用于 IDS 检测),然后发布供社区共享。

按标签采集人工事件的实现可参考collect_events_by_tag()(process.py),它会连同事件的威胁等级、分析状态、属性列表一并导出为结构化字典,便于后续人工复核或归档。

工作流三:TAXII Feed 集成

TAXII 2.1 是 CTI 分享的传输协议,MISP 既能消费 TAXII Feed,也能充当 TAXII 服务端(详见 standards.md)。集成链路(引自 workflows.md):

[TAXII Server] --> [TAXII Client] --> [STIX Parser] --> [MISP Import] --> [Correlation]

六步执行过程

  1. 发现(Discovery):查询 TAXII 服务端的 discovery 端点,枚举可用的 API roots。
  2. 集合枚举(Collection Enumeration):列出可用 collection 及其元数据。
  3. 对象拉取(Object Retrieval):从 collection 分页获取 STIX 2.1 对象,支持按added_aftertypeversion过滤。
  4. STIX 到 MISP 映射(STIX-to-MISP Mapping):将 STIX 的IndicatorMalwareThreat Actor对象映射为 MISP 事件/属性;STIX 关系类型(usestargetsattributed-toindicatesmitigates)用于重建事件间关联。
  5. 导入(Import):由 STIX bundle 创建 MISP 事件。
  6. 关联(Correlation):对导入数据与存量 MISP 数据执行关联分析。

STIX 2.1 相关能力在脚本中亦有体现:export_stix2()(agent.py)调用misp.get_stix_event()导出单个事件的 STIX bundle;process.py 的export_stix2()则支持按事件 ID 或标签批量导出 STIX 2.1 并写入 JSON 文件。导入方向的 PyMISP 支持参见官方 API(本仓库不包含导入实现代码,仅在工作流层面给出步骤)。

工作流四:多实例同步

MISP 采用基于 HTTPS 的拉/推(pull/push)同步模型,以 API Key 认证(SKILL.md)。多实例拓扑(引自 workflows.md):

[MISP Instance A] <--sync--> [MISP Instance B] <--sync--> [MISP Instance C] | | | v v v [Org A Events] [Shared Events] [Org C Events]

六步执行过程

  1. 服务器注册(Server Registration):注册远端 MISP 实例,配置 URL、API Key 与组织信息。
  2. 同步配置(Sync Configuration):设置同步方向(push/pull)、过滤规则与预览模式。
  3. 拉取同步(Pull Sync):按过滤条件从远端实例拉取事件。
  4. 推送同步(Push Sync):依据分发级别将本地事件推送至远端实例。
  5. 冲突解决(Conflict Resolution):依据优先级规则处理属性冲突。
  6. 审计日志(Audit Logging):记录全部同步活动,满足合规与排障需求。

同步过程中,"事件按 TLP 与共享组配置分发"的约束(工作流一步骤 6)在实例间同样生效——只有分发级别允许的事件才会被推送,这也是 MISP 同步模型控制情报扩散边界的关键机制。

工作流五:面向防御工具的 IOC 导出

采集与关联的最终价值在于落地到检测与响应工具。导出链路(引自 workflows.md):

[MISP Events] --> [Export Module] --> [Format Conversion] --> [Defensive Tool] | +--------+--------+ | | | v v v [Suricata] [Bro/Zeek] [SIEM] Rules Intel CSV/JSON

六步执行过程

  1. 过滤选择(Filter Selection):按标签、日期范围、威胁等级、to_ids标志筛选事件。
  2. 格式选择(Format Selection):选择输出格式(Suricata、Snort、Bro/Zeek、CSV、STIX、OpenIOC)。
  3. 规则生成(Rule Generation):由网络 IOC 生成 IDS/IPS 规则。
  4. SIEM 导出(SIEM Export):导出 CSV/JSON 供 Splunk、Elastic、QRadar 等 SIEM 消费。
  5. 自动化(Automation):通过 ZMQ/Kafka 发布实现 IOC 实时分发。
  6. 反馈闭环(Feedback Loop):追踪导出 IOC 的命中数并回写 MISP,用于指标评分。

仓库脚本中的导出实现

SKILL.md 给出了三种典型的return_format导出调用:

# 导出为 STIX 2.1 bundle stix_output = misp.search(controller='events', return_format='stix2', tags=['tlp:white'], published=True) # 导出 IDS 标记属性为 Suricata 规则 suricata_rules = misp.search(controller='attributes', return_format='suricata', to_ids=True, type_attribute=['ip-dst', 'domain', 'url']) # 导出 CSV 供 SIEM 消费 csv_output = misp.search(controller='attributes', return_format='csv', type_attribute='ip-dst', to_ids=True)

命令行一键导出(process.py):

# 导出 STIX 2.1(写入 misp_stix.json) python skills/collecting-threat-intelligence-with-misp/scripts/process.py \ --url https://misp.local --key YOUR_API_KEY --action export --format stix2 # 导出 Suricata 规则(写入 misp_suricata.rules) python skills/collecting-threat-intelligence-with-misp/scripts/process.py \ --url https://misp.local --key YOUR_API_KEY --action export --format suricata # 导出 CSV(写入 misp_iocs_export.csv) python skills/collecting-threat-intelligence-with-misp/scripts/process.py \ --url https://misp.local --key YOUR_API_KEY --action export --format csv

其中export_csv()输出的字段为type, value, category, event_id, timestamp, to_ids, commentexport_suricata()则限定ip-dstip-srcdomainurl四类网络属性并回看最近--days(默认 7)天。

采集管线的质量过滤与统计

在导出前,推荐对采集到的 IOC 做 Warninglist 过滤,这是工作流一步骤 3 的落地实现。脚本filter_warninglists()调用misp.values_in_warninglist([...])批量比对已知良性指标:

result = self.misp.values_in_warninglist([ioc["value"]]) if not result or not result.get(ioc["value"]): filtered.append(ioc) # 不在 Warninglist 中,保留 else: # 命中已知良性,剔除并计数 self.stats["warninglist_filtered"] += 1

同时,MISPCollector内部维护统计字典events_processed / attributes_collected / iocs_exported / feeds_enabled / warninglist_filtered(见 process.py),每次运行结束通过print_stats()输出,可直接对接到仓库模板 template.md 中的采集统计表(事件数、新增事件、属性数、IDS 标记指标、Warninglist 过滤数、活跃 Feed 数、关联数)与导出汇总表(格式/目的地/记录数/时间戳),形成完整的情报采集报告。

端到端自动化采集示例

将上述能力串成一条完整流水线:先用--action feeds --enable-defaults开启社区 Feed,再用--action collect采集近 N 天 IDS 标记 IOC、经 Warninglist 过滤后导出 CSV;collect分支在脚本中的实际执行顺序为(process.py):

python skills/collecting-threat-intelligence-with-misp/scripts/process.py \ --url https://misp.local --key YOUR_API_KEY \ --action collect --days 7 --tags tlp:amber --output misp_iocs_export.csv

该命令会调用collect_recent_iocs(days=7)遍历ip-dst, ip-src, domain, hostname, url, md5, sha1, sha256, email-src等 IOC 类型,配合可选标签过滤,最后filter_warninglists()去噪并落盘 CSV——对应 SKILL.md 中"启用至少 3 个社区 Feed、PyMISP 脚本可认证/搜索/取回 IOC、导出合法 STIX 2.1 bundle、定时拉取正常运行"的验证标准。

附:PyMISP 客户端初始化与常用调用

所有工作流都以 PyMISP 客户端为入口(api-reference.md):

from pymisp import PyMISP import os misp = PyMISP( url="https://misp.example.org", key=os.environ["MISP_API_KEY"], ssl=True # 自签名环境可改为 ssl=False(见 SKILL.md 示例) )

常用调用速查:

# 事件搜索:按标签 / 日期范围 / 仅已发布 misp.search("events", tags=["tlp:white", "type:OSINT"], pythonify=True) misp.search("events", date_from="2025-01-01", date_to="2025-01-31", pythonify=True) misp.search("events", published=True, limit=100, pythonify=True) # 属性搜索:按类型 / 事件 / 取值 misp.search("attributes", type_attribute="ip-dst", to_ids=True, pythonify=True) misp.search("attributes", eventid=42, pythonify=True) misp.search("attributes", value="198.51.100.42", pythonify=True) # Feed 管理 misp.feeds() # 列出 Feed misp.enable_feed(feed_id=1) # 启用 Feed misp.fetch_feed(feed_id=1) # 拉取并缓存

对应 REST 层(curl)为POST /events/restSearchGET /events/view/42GET /events/restSearch/stix2,均以Authorization头携带 API Key(api-reference.md)。轻量版客户端初始化与事件/属性检索也可直接参考 agent.py,其search_events()extract_attributes()collect_iocs_by_type()三个函数覆盖了本文工作流一、二、五的核心检索逻辑,可作为最小可运行模板。

小结

本文以 workflows.md 的五条工作流为主线,完整覆盖了 MISP 从数据接入(社区 Feed、人工录入、TAXII)、实例间同步,到面向 Suricata/Zeek/SIEM 的 IOC 导出全链路。结合仓库 SKILL.md、api-reference.md、standards.md 与 process.py 脚本,你可以在自己的环境中直接复现:部署 MISP(Docker Compose,详见 SKILL.md 第一步)、启用社区 Feed、配置定时任务,并用--action collect/export/feeds把采集、过滤、导出固化为可审计、可统计的自动化采集管线。

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询