Anthropic-Cybersecurity-Skills 实战:构建自动化威胁情报 Feed 集成管线(STIX/TAXII → SIEM)

发布时间:2026/9/10 19:14:09

Anthropic-Cybersecurity-Skills 实战:构建自动化威胁情报 Feed 集成管线(STIX/TAXII → SIEM) Anthropic-Cybersecurity-Skills 实战构建自动化威胁情报 Feed 集成管线STIX/TAXII → SIEM【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, 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导读本篇指南以 building-threat-intelligence-feed-integration 技能为核心系统讲解如何在 SOC 场景下构建一条多源情报采集 → STIX 2.1 标准化 → 去重评分 → 推送 SIEM/MISP → 健康度监控的自动化威胁情报TIFeed 集成管线。读完本文你将掌握 TAXII 2.1 服务器接入、Abuse.ch / AlienVault OTX / CISA AIS 等开源与商业 Feed 的摄取方法、STIX 2.1 归一化与去重实现以及将 IOC 推送到 Splunk ES 威胁情报框架和 MISP 的完整工程实践。技能定位何时启用、何时禁用该技能位于本仓库soc-operationsSOC 运营子域下YAML frontmatter 中标注了完整的框架映射NIST CSF 2.0 的DE.CM-01持续监控、DE.AE-02不良事件分析、RS.MA-01事件管理、DE.AE-06事件关联分析以及 MITRE ATTCK 的T1071应用层协议、T1105入侵工具传输、T1588.001获取能力恶意软件/工具。适用场景SOC 团队需要将威胁情报 Feed 自动接入 SIEM 平台实现 IOC 与网络/端点遥测的实时匹配告警多个 TI 源需要归一化为统一格式STIX 2.1后再分发需要建立 Feed 质量评估与跨源去重流程。明确不适用该技能不用于单条 IOC 的人工查证——临时查询请使用 VirusTotal、AbuseIPDB 等专用富化工具本技能聚焦的是批量的、自动化的、可运营的情报流水线。前置条件用于聚合的 MISP 实例或威胁情报平台TIPSTIX/TAXII 客户端库Python 包taxii2-client≥2.3与stix2≥3.0以及 HTTP 库requests≥2.28已配置 TI 框架的 SIEM 平台Splunk ES、Elastic Security 或 Microsoft Sentinel商业及开源 Feed 的 API KeyAlienVault OTX、Abuse.ch、CISA AISPython 3.8 用于 Feed 处理自动化。仓库配套脚本 scripts/agent.py 是这条管线的最小可运行实现其顶部导入即对应上述依赖import requests from taxii2client.v21 import Collection from stix2 import Indicator, Bundle, parse依赖版本约束可参考 references/api-reference.mdrequests2.28、taxii2-client2.3、stix23.0。六步工作流Step 1识别并编目情报源按类型、格式与更新频率建立 Feed 台账这是整条管线的选型依据Feed 源格式IOC 类型更新频率成本AlienVault OTXSTIX/JSONIP、域名、Hash、URL实时免费Abuse.ch URLhausCSV/JSONURL、域名每 5 分钟免费Abuse.ch MalwareBazaarJSON API文件 Hash实时免费CISA AISSTIX/TAXII 2.1全部类型每日免费美国政府CrowdStrike IntelSTIX/JSON全部类型 攻击者 TTP实时商业Mandiant AdvantageSTIX 2.1全部类型 报告实时商业编目时需为每个源记录格式决定解析器、IOC 类型决定 STIX pattern 映射、更新频率决定调度窗口与成本/许可决定是否可进入生产。在仓库配套脚本中每个源对应一个独立的摄取函数ingest_taxii_feed()、ingest_urlhaus_feed()、ingest_feodotracker()互不耦合便于后续按需增删源。Step 2摄取 STIX/TAXII FeedTAXII 2.1 是 STIX 数据的标准传输协议REST API。接入 CISA AIS 风格服务器的完整流程如下from taxii2client.v21 import Server, Collection from stix2 import parse # 连接 TAXII 服务器示例CISA AIS server Server( https://taxii.cisa.gov/taxii2/, useryour_username, passwordyour_password ) # 列出可用集合 for api_root in server.api_roots: print(fAPI Root: {api_root.title}) for collection in api_root.collections: print(f Collection: {collection.title} (ID: {collection.id})) # 从集合拉取指标 collection Collection( https://taxii.cisa.gov/taxii2/collections/COLLECTION_ID/, useryour_username, passwordyour_password ) # 获取过去 24 小时新增的指标 from datetime import datetime, timedelta added_after (datetime.utcnow() - timedelta(days1)).strftime(%Y-%m-%dT%H:%M:%S.000Z) response collection.get_objects(added_afteradded_after, type[indicator]) for obj in response.get(objects, []): indicator parse(obj) print(fType: {indicator.type}) print(fPattern: {indicator.pattern}) print(fValid Until: {indicator.valid_until}) print(fConfidence: {indicator.confidence}) print(---)仓库实现ingest_taxii_feed()scripts/agent.py将上述逻辑封装为可复用函数关键点是collection.get_objects(added_after..., type[indicator])仅拉取指定时间窗内新增的indicator类型对象避免重复消费历史数据hours_back参数默认为 24 小时。该函数会把原始 STIX 对象精简为id、pattern、valid_from、source四个字段进入统一内部表示。Step 3摄取开源 FeedAbuse.ch URLhaus 源CSV 格式注意跳过#注释行import requests import csv from io import StringIO # 下载 URLhaus 近期 URL response requests.get(https://urlhaus.abuse.ch/downloads/csv_recent/) reader csv.reader(StringIO(response.text), delimiter,) indicators [] for row in reader: if row[0].startswith(#): continue indicators.append({ id: row[0], dateadded: row[1], url: row[2], url_status: row[3], threat: row[5], tags: row[6] }) print(fIngested {len(indicators)} URLs from URLhaus) # 只保留在线活跃威胁 active [i for i in indicators if i[url_status] online] print(fActive threats: {len(active)})仓库实现ingest_urlhaus_feed()scripts/agent.py改用 URLhaus 官方 JSON APIhttps://urlhaus-api.abuse.ch/v1/urls/recent/limit/100/POST并显式设置timeout30避免网络阻塞拖死整个调度任务。两种方式可根据网络环境选择CSV 全量快照适合一次性回填JSON API 适合增量轮询。AlienVault OTX Pulse 源from OTXv2 import OTXv2, IndicatorTypes otx OTXv2(YOUR_OTX_API_KEY) # 获取最近订阅的 pulses过去 24 小时 pulses otx.getall(modified_since2024-03-14T00:00:00) for pulse in pulses: print(fPulse: {pulse[name]}) print(fTags: {pulse[tags]}) for indicator in pulse[indicators]: print(f IOC: {indicator[indicator]} ({indicator[type]}))Abuse.ch Feodo TrackerC2 IP 列表response requests.get(https://feodotracker.abuse.ch/downloads/ipblocklist_recommended.json) c2_data response.json() for entry in c2_data: print(fIP: {entry[ip_address]}:{entry[port]}) print(fMalware: {entry[malware]}) print(fFirst Seen: {entry[first_seen]}) print(fLast Online: {entry[last_online]})仓库实现ingest_feodotracker()scripts/agent.py对每条 C2 记录提取ip_address、port、malware、first_seen统一标注type: ipv4与source: feodotracker为下一步归一化做好准备。Step 4归一化与去重STIX 2.1不同源的字段命名各异必须统一转换为 STIX 2.1 的Indicator对象。核心是pattern 映射表每种 IOC 类型对应一种标准 STIX 模式语言表达式from stix2 import Indicator, Bundle import hashlib def create_stix_indicator(ioc_value, ioc_type, source, confidence50): 将原始 IOC 转换为 STIX 2.1 indicator pattern_map { ipv4: f[ipv4-addr:value {ioc_value}], domain: f[domain-name:value {ioc_value}], url: f[url:value {ioc_value}], sha256: f[file:hashes.SHA-256 {ioc_value}], md5: f[file:hashes.MD5 {ioc_value}], } return Indicator( namef{ioc_type}: {ioc_value}, patternpattern_map[ioc_type], pattern_typestix, valid_from2024-03-15T00:00:00Z, confidenceconfidence, labels[source], custom_properties{x_source_feed: source} ) # 跨源去重 seen_iocs set() unique_indicators [] for ioc in all_collected_iocs: ioc_hash hashlib.sha256(f{ioc[type]}:{ioc[value]}.encode()).hexdigest() if ioc_hash not in seen_iocs: seen_iocs.add(ioc_hash) unique_indicators.append( create_stix_indicator(ioc[value], ioc[type], ioc[source]) ) bundle Bundle(objectsunique_indicators) print(fUnique indicators: {len(unique_indicators)})仓库实现将这一过程拆为两个独立函数职责单一normalize_to_stix()scripts/agent.py用 lambda 表达式构造pattern_map未知类型回退到url模式保证任何源的数据都不会因类型缺失而中断deduplicate()scripts/agent.py以sha256(type:value)为键做去重日志会明确输出Deduplicated: N - M unique indicators便于观测 Feed 重叠率。去重的语义要点去重仅丢弃重复值但labels与x_source_feed自定义属性保留了多源归因信息这是后续 Feed 质量评分的基础——一个被多个独立源共同标记的 IOC其可信度显著高于单一来源。Step 5推送至 SIEM 威胁情报框架与 MISP推送至 Splunk ES Threat Intelligenceimport requests splunk_url https://splunk.company.com:8089 headers {Authorization: fBearer {splunk_token}} for indicator in unique_indicators: # 从 STIX pattern 中提取 IOC 值 ioc_value indicator.pattern.split()[1] # 上传至 Splunk ES 威胁情报集合 data { ip: ioc_value, description: indicator.name, weight: indicator.confidence // 10, threat_key: indicator.id, source_feed: indicator.get(x_source_feed, unknown) } requests.post( f{splunk_url}/services/data/threat_intel/item/ip_intel, headersheaders, datadata, verifynot os.environ.get(SKIP_TLS_VERIFY, ).lower() true, # 实验室环境自签名证书可设 SKIP_TLS_VERIFYtrue )仓库实现push_to_splunk_ti()scripts/agent.py有两个值得注意的工程细节认证头使用fSplunk {session_key}会话 key 模式与上方示例的 Bearer Token 模式对应不同认证体系请以你部署环境实际支持的鉴权方式为准以 HTTP 201 作为成功判定标准计数pushed未逐条抛错而是汇总日志——生产环境中应改为批量接口或异步队列以提升吞吐。推送至 MISP 集中管理from pymisp import PyMISP, MISPEvent, MISPAttribute misp PyMISP(https://misp.company.com, YOUR_MISP_API_KEY) # 为本次批量导入创建事件 event MISPEvent() event.info fTI Feed Import - {datetime.now().strftime(%Y-%m-%d)} event.threat_level_id 2 # 中危 event.analysis 2 # 已完成分析 # 将指标作为属性添加 for ioc in unique_indicators: attr MISPAttribute() attr.type ip-dst if ipv4 in ioc.pattern else domain attr.value ioc.pattern.split()[1] attr.to_ids True attr.comment fSource: {ioc.get(x_source_feed, mixed)} event.add_attribute(**attr) result misp.add_event(event) print(fMISP Event created: {result[Event][id]})attr.type的判断体现了从 STIX pattern 反推 MISP 属性类型的常见适配技巧pattern 含ipv4-addr则映射为ip-dst否则归为domain。to_ids True标记该属性进入 IDS 告警匹配comment保留来源便于溯源。Step 6监控 Feed 健康度与质量持续运营的核心是匹配率评估——某个 Feed 的 IOC 在 SIEM 中实际命中告警的比例直接决定其取舍。以下 Splunk SPL 查询统计各 Feed 的匹配率indexthreat_intel sourcetypethreat_intel_manager | stats count AS total_iocs, dc(threat_key) AS unique_iocs, dc(source_feed) AS feed_count by source_feed | join source_feed [ search indexnotable sourceThreat Intelligence | stats count AS matches by source_feed ] | eval match_rate round(matches / unique_iocs * 100, 2) | sort - match_rate | table source_feed, unique_iocs, matches, match_rate该查询先用threat_intel索引统计每个 Feed 的唯一 IOC 数再与notable事件即告警按source_feed关联计算命中率并按降序排列——高匹配率 Feed 保持、低匹配率 Feed 需要排查质量或过期问题。核心概念速查术语定义STIX 2.1结构化威胁信息表达Structured Threat Information Expression——共享威胁情报对象的标准 JSON 格式TAXII可信自动化指标信息交换Trusted Automated eXchange of Indicator Information——通过 REST API 共享 STIX 数据的传输协议TIP威胁情报平台——集中聚合、评分与分发威胁情报的系统IOC 评分基于来源可靠性与多方佐证为指标赋予置信度的过程Feed 去重跨源移除重复 IOC同时保留多源归因信息IOC 过期基于 TTL 策略清理过期指标IP30 天域名90 天Hash1 年配套脚本与工具仓库为该技能提供了完整可运行的参考实现 scripts/agent.py 与函数级 API 文档 references/api-reference.md。CLI 用法# 从多个源摄取 python agent.py --urlhaus --feodo --output ti_bundle.json # 从 TAXII Feed 摄取 python agent.py --taxii-url https://taxii.example.com/taxii2/ \ --taxii-collection https://taxii.example.com/taxii2/collections/abc/ \ --taxii-user user --taxii-pass pass脚本的main()scripts/agent.py清晰展示了整条管线的编排顺序分源摄取 → 汇总 →deduplicate()→normalize_to_stix()→export_stix_bundle()导出为 JSON 格式的 STIX Bundle 文件。外部 API 依赖关系汇总如下源自 references/api-reference.mdAPI端点认证用途TAXII 2.1可配置Basic authSTIX 指标摄取URLhaushttps://urlhaus-api.abuse.ch/v1/无恶意 URL FeedFeodo Trackerhttps://feodotracker.abuse.ch/downloads/无C2 IP 黑名单Splunk REST/services/data/threat_intel/item/ip_intelSession keyTI 推送生态中的常用系统还包括MISP开源威胁情报平台聚合/关联/共享、AlienVault OTX免费社区 Pulse Feed、Abuse.chURLhaus、MalwareBazaar、Feodo Tracker、ThreatFox 免费 Feed 套件、OpenCTI原生支持 STIX 2.1 存储的开源威胁情报平台、TAXII2 Client连接 STIX/TAXII 2.1 服务器自动取数的 Python 库。常见场景与运营建议新 Feed 接入先评估质量、将字段映射到 STIX、再配置自动摄取管线对应 Step 1–2多 SIEM 分发以 MISP 为中转将归一化后的 IOC 同时推送至 Splunk、Elastic、Sentinel对应 Step 5误报削减按来源数量与时效对 IOC 打分自动过期陈旧指标Feed 质量审计对比各 Feed 的检测命中率识别最高价值情报源对应 Step 6 的 SPL 查询事件 IOC 共享将调查所得的 IOC 打包为 STIX Bundle通过 TAXII 与 ISAC信息共享与分析中心共享。输出与验收每日情报 Feed 状态报告管道落地后建议以如下格式产出每日运营报告作为 Feed 健康度的验收依据示例数据THREAT INTEL FEED STATUS — Daily Report ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Date: 2024-03-15 Total IOCs: 45,892 active indicators Feed Health: Feed IOCs Matches Match Rate Status Abuse.ch URLhaus 12,340 47 0.38% HEALTHY AlienVault OTX 18,567 23 0.12% HEALTHY Abuse.ch Feodo 1,203 12 1.00% HEALTHY CISA AIS 8,945 8 0.09% HEALTHY CrowdStrike Intel 4,837 31 0.64% HEALTHY Actions Today: New IOCs ingested: 1,247 IOCs expired: 892 Duplicates removed: 156 SIEM matches: 121 notable events generated False positives: 3 (CDN IPs removed from feed)报告中的Match Rate直接对应 Step 6 的 SPL 计算结果Actions Today则反映管线各环节的增量吞吐。当某个 Feed 长期匹配率为 0 或误报集中在特定类型如 CDN 共享 IP时应触发降权或剔除流程。至此一条可运营、可度量、可审计的威胁情报 Feed 集成管线即告建成——这也是本技能在 NIST CSF 2.0 检测与响应 与 MITRE ATTCK 框架映射下所对应的实战落地形态。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, 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),仅供参考
延伸阅读

更多相关文章

2026/9/10 19:09:09

Comsol超声波探测与回波信号仿真实践指南

1. Comsol超声波探测与回波信号仿真概述 超声波探测技术在工业无损检测、医学成像等领域应用广泛,而Comsol Multiphysics作为一款强大的多物理场仿真软件,能够精确模拟超声波在不同介质中的传播特性。我在过去五年中完成了二十多个超声波相关仿真项目&am…

2026/9/10 19:09:09

Agent记忆系统设计:从数据库存储到语义涟漪激活

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 19:59:15

Android手势识别开发指南:从基础到高级实现

1. Android手势操作基础解析在移动应用开发中,手势交互是最自然的用户界面操作方式之一。Android系统提供了完整的手势识别框架,让开发者能够轻松实现各种复杂的手势交互。与简单的点击事件不同,手势操作能够识别用户在触摸屏上的连续动作&am…

2026/9/10 19:59:15

OpenClaw报错unsafe workspace file:从排查到修复的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 19:59:15

SAP ABAP字符串拼接技巧与性能优化

1. SAP ABAP字符串拼接基础概念在ABAP开发中,字符串拼接是最基础却最频繁使用的操作之一。不同于其他编程语言,ABAP提供了多种字符串处理方式,每种方法都有其特定的使用场景和性能特点。我们先从最基础的CONCATENATE语句开始讲起。CONCATENAT…

2026/9/10 19:59:14

三款AI写作辅助网站亲测:从构思到提交怎么选才不踩坑?

写论文这事,最怕的不是写不出来,而是写得心里没底。 题目改了七八版还怕选重了,文献下载了两百篇越读越乱,参考文献格式调到崩溃,交稿前还得担心重复率和AIGC检测。今年开学季一到,又有一波人在搜“AI论文工…

2026/9/10 19:59:14

现在口碑好的AI论文写作工具有哪些品牌?学生党亲测反馈

每到期末、毕业答辩、课题申报阶段,很多学生都会陷入论文写作的困境:选题毫无头绪、大纲搭建逻辑混乱、正文撰写耗时长、参考文献格式出错、查重重复率偏高、AIGC检测告警、本校论文排版标准复杂。依靠纯人工从零开始撰写,反复修改格式和降重…

2026/9/10 19:54:14

半桥LLC并联均流控制:硬件均流与PI+PFM链路解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 0:00:55

目录对比去重实战:用哈希算法精准清理重复文件

我电脑里现在还有一块换了三次机的“数据墓地”硬盘,里面存着2016年以前所有旧笔记本的完整备份。平时不觉得有什么,直到前阵子想把它整理归档,发现同一个安装包、同一批照片、同一份论文草稿,在几个不同的备份目录里反复出现。更…

2026/9/10 0:00:55

Leaflet离线地图完整Demo合集:内网部署与坐标纠偏实战

简介:这是一份面向Web GIS开发者的LeafLet离线地图示例合集,帮助开发者快速掌握离线地图从搭建到交互的完整流程。压缩包共723个文件,大小14.06MB,以319个js脚本、175个html页面和29个css样式文件为主体,配合png/svg图…

2026/9/10 0:00:55

MATLAB读取Rinex 3.02观测文件:多系统GNSS数据解析实战

简介:基于MATLAB开发的Rinex3.02版观测文件(o文件)读取代码包,面向卫星定位导航方向的学习者与研究人员,用于解决新版观测文件的数据解析、历元提取与时间转换问题。压缩包共4个文件,包含两个m脚本、一个19…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码