reloading01/threat-intelligence-dataset

GitHub: reloading01/threat-intelligence-dataset

基于真实威胁情报数据源构建的、经过逐条事实核查的大语言模型指令微调数据集,用于训练能够处理网络威胁情报分析任务的安全领域模型。

Stars: 0 | Forks: 0

# 用于 LLM Fine-Tuning 的 Cyber Threat Intelligence 数据集 [![Hugging Face Dataset](https://img.shields.io/badge/%F0%9F%A4%97%20Dataset-Hugging%20Face-yellow)](https://huggingface.co/datasets/reloading0101/threat-intelligence-dataset) [![License: CC BY 4.0](https://img.shields.io/badge/License-CC%20BY%204.0-blue.svg)](https://creativecommons.org/licenses/by/4.0/) 这是一个 instruction-tuning 数据集,旨在教导语言模型处理 cyber threat intelligence 工作:阅读 CVE 并解释实际存在的风险、根据 ATT&CK 技术分析威胁行为者、将 Sigma 规则转化为告警分类指南、映射攻击活动的 kill chain、为特定技术编写检测逻辑等。 数据文件存放在 [Hugging Face 数据集页面](https://huggingface.co/datasets/reloading0101/threat-intelligence-dataset);此仓库在 `data/` 目录下对它们进行了镜像,并记录了该数据集的构建方式。 ## 为什么需要另一个 CTI 数据集 市面上流传的大多数“CTI 数据集”只是少数几个模板,里面随机填入了各种 indicator。其中的 IP 地址是捏造的,hash 是无意义的噪音,而且 MITRE 技术 ID 经常与旁边的名称不匹配。基于此类数据训练出的模型,学会了听起来像是一份威胁报告,但在事实上却是错误的。 这个数据集的构建方式则截然相反。每一条记录都来源于真实的数据源 —— MITRE ATT&CK、CISA KEV、CWE、OSV、abuse.ch、ransomware.live、Sigma 等 —— 并且在保留记录之前,每一项事实陈述都会与其数据源进行核对。如果某个技术 ID、CVE、CWE 或 indicator 无法被验证,该记录就会被丢弃,而不会被发布。 ## 包含哪些内容 - 9,970 个单轮对话示例加上 1,500 个多轮对话 - 37 个类别,每个类别的示例均不少于 150 个 - 97.6% 的指令是唯一的 —— 这种措辞上的变化是刻意为之的,以防止模型仅仅习惯于某一种特定的提问方式 - 每一个 MITRE/CVE/CWE/IOC 引用都经过数据源验证 - 使用 embedding 剔除了近似重复项 ## 文件 | 文件 | 记录数 | 说明 | |------|--------:|------------| | `data/train.jsonl` | 9,172 | CTI 训练集,单轮 (`instruction` / `input` / `output`) | | `data/eval.jsonl` | 798 | 留出的评估集,按类别分层抽样 | | `data/train_blended.jsonl` | 12,229 | 混入了 25% 通用指令的训练集(防止模型遗忘如何探讨安全领域以外的话题) | | `data/train_multiturn.jsonl` | 1,500 | 采用 `messages` 格式的、基于真实实体的两轮对话,用于追问场景 | 从 Hugging Face 加载数据: ``` from datasets import load_dataset ds = load_dataset("reloading0101/threat-intelligence-dataset") # train + validation blended = load_dataset("reloading0101/threat-intelligence-dataset", "blended") # + 25% general chat = load_dataset("reloading0101/threat-intelligence-dataset", "multi_turn") # multi-turn ``` ## 格式 单轮记录采用标准的指令 / 输入 / 输出格式: ``` { "instruction": "Analyze CVE-2024-23897 and explain its exploitation risk.", "input": "CVE: CVE-2024-23897 (Jenkins CLI)", "output": "...grounded analysis...", "metadata": { "category": "vulnerabilities-cves", "task_type": "explain", "grounding": "CISA KEV + EPSS", "source_refs": { "cves": ["CVE-2024-23897"] } } } ``` 多轮记录使用标准的 `messages` 列表。两个 assistant 的回复轮次都是有根据的 —— 追问部分会从另一个角度回答关于同一个真实实体的问题(例如,先分析一个 CVE,然后问“我们是否应该优先修补它?”)。 ## 数据来源 MITRE ATT&CK v19.1 (Enterprise, Mobile, ICS)、MITRE ATLAS、MITRE CWE、CISA KEV、FIRST.org EPSS、AttackerKB、OSV.dev、SigmaHQ、abuse.ch (Feodo, SSLBL, URLhaus, ThreatFox)、MalwareBazaar、Malpedia、ransomware.live、OpenPhish,以及常见的公开框架 (OWASP Top 10 和 API Top 10, STRIDE, NIST SP 800-61, the Diamond Model, the Pyramid of Pain)。通用文本混合部分来自 databricks-dolly-15k。 ## 构建方式 1. 将数据源解析为干净的知识库 —— 例如,将技术与其 tactic 和 mitigation 相关联,将组织与其恶意软件相关联,将 CVE 与其 EPSS 分数相关联等。 2. 通过从该知识库中提取真实实体来生成记录。生成器永远不会捏造 ID、名称或关系;它只整理已存在的事实。 3. 由本地模型对每条指令进行改写,使得相同的任务不会共享相同的措辞。 4. 由本地模型将每个答案重写为易读的分析师行文,但在重写前设置了一道关卡,用于对比前后关键事实是否一致,并撤销模型发生偏移的任何内容。 5. 使用 embedding 移除近似重复项,并对每个类别进行平衡。 6. 最后的验证步骤会重新根据知识库检查每个 ID,并丢弃任何无法验证的内容。 ## 类别 共计 37 个,每个类别包含 150–300 个示例: `ai-ml-threats`, `api-security`, `attribution-analysis`, `botnet-infrastructure`, `campaign-analysis`, `cloud-saas-security`, `container-security`, `cryptojacking-mining`, `cyber-espionage-apt`, `dark-web-cybercrime`, `data-exfiltration`, `deception-technology`, `digital-risk-management`, `email-threats`, `geopolitical-threats`, `ics-ot-security`, `incident-response-forensics`, `insider-threats`, `malicious-campaigns`, `malware`, `mobile-iot-threats`, `network-based-threats`, `ransomware-operations`, `red-team-operations`, `security-monitoring-detection`, `social-engineering-fraud`, `supply-chain-attacks`, `threat-actors`, `threat-hunting`, `threat-intelligence`, `threat-intelligence-feeds`, `threat-intelligence-operations`, `threat-modeling`, `ttps-mitre-attack`, `vulnerabilities-cves`, `web-application-security`, `zero-day-exploits` ## 用于 Fine-Tuning 它旨在通过 LoRA 或 QLoRA,对已经进行过 instruction-tuning 的模型(如 Llama 3.x Instruct, Qwen2.5 Instruct 等)进行领域自适应。请基于 `train_blended.jsonl` 进行训练,而不是纯分类的数据 —— 那 25% 的通用混合比例可以防止模型过度专业化并丧失会话能力。保持 `eval.jsonl` 的纯度,以便它能够真正衡量 CTI 技能,并按类别细分分数,以查看模型的薄弱环节。 一个合理的起始参数:LoRA rank 为 16–32,在 cosine schedule 上的学习率为 1e-4 到 2e-4,进行 2–3 个 epoch 的同时监控评估损失,序列长度为 2048,并对 prompt 进行 masking,以便仅针对答案部分进行训练。 ## 局限性 - **它严重依赖于 ATT&CK。** 大约 61% 的记录引用了它。ATT&CK 是威胁情报的通用语言,所以这并非偶然,但在此处训练出的模型会习惯性地求助于 ATT&CK 框架。 - **部分类别规模较小。** Cryptojacking、邮件威胁和 social engineering 类别大约只有 150–175 条,因为现实中能获取的真实源材料就只有这么多。160 个真实示例胜过 300 个注水示例。 - **主要为单轮对话。** Instruct 基础模型已经能够处理多轮对话;`multi_turn` 配置对此进行了补充,但它在数据集中占比较小。 - 答案刻意遵循了报告的结构。这对于分析任务是合适的,但对于开放式聊天则不太合适。 ## 伦理与范围 专为防御性安全、教育和研究而构建。不包含可用的 exploit 或武器化代码,不包含 PII,不包含隐私数据。Indicator 要么是保留/合成的 IP 范围(RFC 5737 / 2606),要么是公开报告的、用于检测的 indicator。 ## 许可证 在 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 协议下发布。底层源数据保留其各自的条款 —— ATT&CK 的使用条款、CISA 的公共领域发布声明、Dolly 的 CC BY-SA 3.0 等 —— 因此在适用之处请指明原始来源。 ## 构建工具 改写和行文润色步骤是在本地使用开放权重的 `gpt-oss-20b` 模型运行的,而去重则使用了本地的 `nomic-embed-text` embedding 模型。生成过程中没有涉及任何付费 API。 ## 引用 ``` @misc{cti-instruction-tuning-dataset, title = {Cyber Threat Intelligence Instruction-Tuning Dataset}, author = {Reloading}, year = {2026}, url = {https://huggingface.co/datasets/reloading0101/threat-intelligence-dataset} } ``` 主题:cyber threat intelligence, CTI 数据集, LLM fine-tuning, instruction tuning, MITRE ATT&CK, CVE, threat hunting, detection engineering, incident response, malware analysis, security LLM, infosec 数据集。
标签:DLL 劫持, 人工智能, 大语言模型, 威胁情报, 安全, 开发者工具, 微调, 用户模式Hook绕过, 超时处理, 逆向工具