CyberSaR-KAUST/LLM-MFC-A-Large-Language-Model-Based-Malware-Family-Classification-Dataset

GitHub: CyberSaR-KAUST/LLM-MFC-A-Large-Language-Model-Based-Malware-Family-Classification-Dataset

一个面向大语言模型研究的大规模恶意软件家族分类数据集,提供涵盖反编译代码、汇编、函数调用图等多种二进制分析工件。

Stars: 0 | Forks: 0

# LLM-MFC:基于大语言模型的恶意软件家族分类数据集 此数据集包含了大量恶意软件和良性可执行文件的全面二进制分析工件。 它被组织成多种格式和集合,旨在促进逆向工程、静态分析、二进制机器学习以及网络威胁情报研究。 ## 📑 快速导航 - [🗂️ 数据集结构](#-dataset-structure) - [📊 数据集分布](#-dataset-distribution) - [📚 数据集来源](#-dataset-sources) - [🏗️ 数据库架构与集合](#️-database-architecture--collections) - [🛠️ 如何使用此数据集](#️-how-to-use-the-dataset) - [💾 还原 MongoDB 数据库](#-restoring-the-mongodb-database) ## 🗂️ 数据集结构 该数据集包含为不同分析需求量身定制的多种文件格式,以及一个完整的 MongoDB 转储文件,用于还原原始工作数据库。它在类别上被划分为**良性**和**恶意软件**集合。 ``` ├── README.MD ├── dataset_structure.md ├── quantum_dataset.mongodb_archive.zst # Compressed MongoDB dump ├── json/ # Standard JSON dumps │ ├── benign/ │ └── malware/ ├── jsonl/ # JSON-Lines formats (best for iterative processing) │ ├── benign/ │ └── malware/ └── parquet/ # Parquet formats (best for DataFrame / ML operations) ├── benign/ └── malware/ ``` ### 支持的格式 * **JSON/JSONL:** 非常适合单独记录检查或使用 Python 进行文本处理。`jsonl` 文件是以行分隔的,最适合处理大型数据流,而无需将其全部保留在内存中。 * **Parquet:** 强类型、高压缩的列式数据。非常适合使用 Pandas、Polars 或 PySpark 等数据科学工具进行处理。 * **MongoDB Archive:** 完整的数据库转储。有关数据库还原说明,请参见下文。 ## 📥 下载完整数据集 完整的 LCCD 数据集非常大,并未完全托管在此 GitHub 仓库中。 完整数据集的大小**超过 200 GB**。由于 GitHub 的存储限制,此处仅提供仓库文档、元数据、脚本和支持文件。 要下载完整数据集,请使用官方的 KAUST 仓库链接: 🔗 **下载完整数据集:** http://hdl.handle.net/10754/709488 ## 📊 数据集分布 ### 所有恶意软件家族 (总计: 39) | 家族 | 数量 | |--------|-------| | winwebsec | 4400 | | unknown | 3895 | | zbot | 2100 | | mediyes | 1450 | | benign | 975 | | Conti | 951 | | AsyncRAT | 890 | | GuLoader | 779 | | zeroaccess | 690 | | NjRAT | 385 | | locker | 310 | | CoinMiner | 301 | | XMRig | 284 | | Metasploit | 257 | | CobaltStrike | 244 | | Emotet | 184 | | DarkComet | 178 | | Remcos | 115 | | AgentTesla | 106 | | LockBit | 102 | | Petya | 85 | | TrickBot | 81 | | LokiBot | 74 | | QakBot | 23 | | Zeus | 23 | | WannaCry | 23 | | Conficker | 22 | | WannaMine | 21 | | BazarLoader | 16 | | Azorult | 15 | | REvil | 13 | | RedLine | 11 | | SmokeLoader | 7 | | QuasarRAT | 7 | | BlackCat | 4 | | Ryuk | 3 | | Raccoon | 2 | | Poison Ivy | 2 | | IcedID | 2 | ### 所有恶意软件类别 (总计: 18) | 类别 | 数量 | |----------|-------| | virus | 8950 | | backdoor | 3801 | | downloader | 2424 | | benign | 975 | | ransomware | 663 | | dropper | 613 | | keylogger | 453 | | trojan | 286 | | miner | 150 | | loader | 144 | | botnet | 132 | | stealer | 119 | | unknown | 101 | | rat | 97 | | spyware | 48 | | rootkit | 41 | | infostealer | 23 | | worm | 10 | ## 📚 数据集来源 此数据集汇总了以下来源的恶意软件和良性样本: - [基于深度学习算法的恶意软件检测 PE 分析数据集](https://figshare.com/articles/dataset/Malware_Detection_PE-Based_Analysis_Using_Deep_Learning_Algorithm_Dataset/6635642?file=12149696):由 Anh Pham Tuan、An Tran Hung Phuong、Nguyen Vu Thanh 和 Toan Nguyen Van 编写。该数据集包含 8,970 个恶意软件和 1,000 个良性二进制可执行文件。恶意软件样本分为五个家族:Locker (300)、Mediyes (1,450)、Winwebsec (4,400)、Zbot (2,100) 和 Zeroaccess (690)。恶意软件文件收集自 VirusShare 和 Malicia 项目,而良性可执行文件则收集自各类正版软件的安装目录(下载自 CNET)。文件已通过 VirusTotal 进行验证,以确认样本标签。 - [MalwareBazaar](https://bazaar.abuse.ch/):MalwareBazaar 是 abuse.ch 和 Spamhaus 旗下的一个平台,致力于与信息安全社区、防病毒供应商和威胁情报提供商共享恶意软件样本。 ## 🏗️ 数据库架构与集合 如果您还原了 MongoDB 存档或正在查询原始 JSON 文件,该数据集会原生映射到多个不同的集合。 ### 锚点:`metadata` 集合 `metadata` 集合作为每个被分析可执行文件的中央锚点。每个文档的 `_id` 通常是样本的 SHA-256 哈希值或主要标识符。 `metadata` 中的关键字段: * `_id`:唯一的文档标识符(样本哈希)。 * `file_info`:名称、原始文件描述符。 * `cti`:网络威胁情报上下文(`malware_family`、`malware_category`、分类标签和分类器)。 * `file_stats`:核心统计信息(文件大小等)。 * `hashes`:子哈希值,如 MD5、SHA1、SHA256 和 SSDEEP。 * `file_type` / `pe_analysis`:解析后的 Windows Portable Executable 头、导入表、熵、节和富头工件。 * `representations`:**关系链接。** 此子文档包含对异步存储在其他数据库集合中实际分析内容的引用。 **示例 `representations` 链接:** ``` "representations": { "c_retdec": { "collection": "c_retdec", "id": "6968e1260dbf4e9d2d29a333", "generation_tool": "retdec", "type": "c" } } ``` 此处的 `id` 值允许您在 `c_retdec` 集合中查找完全对应的文档。 ### 次要工件集合 其他每个集合都包含两个主要字段:`_id`(与元数据的 representations 中引用的 ID 匹配)和 `content`(包含原始工件)。 1. **`c_retdec`**:使用 RetDec 反编译器生成的反编译 C 代码。 2. **`assembly_retdec`**:通过 RetDec 提取的带注释的汇编代码。 3. **`fcg_retdec`**:表示为**邻接表**的函数调用图 (FCG) 数据,通过 RetDec、DotParser 和 Graphology 建模。 4. **`fcg_svg`**:函数调用图的可渲染可缩放矢量图形 (SVG)(通过 Graphviz 生成)。 5. **`hex_dump`**:通过标准 `xxd` 编译的完整原始文件字节转储。 ## 🛠️ 如何使用此数据集 ### 使用 Parquet 数据 (数据科学 / 机器学习) Parquet 文件非常适合快速的分析加载。由于某些集合非常大,它们可能会在各自的类目录中被拆分为多个 `.parquet` 数据块。由于所有拆分的 parquet 文件都位于同一个 `benign/` 或 `malware/` 目录中,因此您必须使用名称通配符将它们单独筛选出来。 通过 Polars 加载(非常适合通过惰性求值处理大于 RAM 的数据集): ``` import polars as pl # 懒加载扫描 malware 目录中 'assembly_retdec' 集合的所有拆分 parquet 文件 df_lazy = pl.scan_parquet('parquet/malware/assembly_retdec_part*.parquet') # 执行操作并计算 (注意: MongoDB 的主键导出为 _id) df_result = df_lazy.filter(pl.col("_id") == "6968e1260dbf4e9d2d29a333").collect() print(df_result) ``` 使用 Pandas 通过 Python 加载数据集: ``` import pandas as pd import glob # 收集某个集合的所有分块 parquet 文件 assembly_files = glob.glob('parquet/malware/assembly_retdec_part*.parquet') # 将它们动态读取到内存中 df_assembly = pd.concat((pd.read_parquet(f) for f in assembly_files), ignore_index=True) print(df_assembly.head()) ``` ### 使用 JSONL (迭代处理) 当您想要遍历数百万条记录而不占用大量 RAM 时,请使用 `jsonl` 文件。 ``` import json with open("jsonl/benign/metadata.jsonl", "r") as f: for line in f: doc = json.loads(line) # Parse document metadata representations = doc.get("representations", {}) ``` ## 💾 还原 MongoDB 数据库 `dataset.mongodb_archive.zst` 文件是一个使用 Zstandard (zstd) 压缩的有效 mongodump 存档。 **前置条件:** 确保您已安装 MongoDB Database Tools (`mongorestore`) 和 `zstd`。`zstd` 在各操作系统上得到广泛支持,可以通过标准包管理器进行安装: * **Linux:** `sudo apt install zstd` 或 `sudo yum install zstd` * **macOS:** `brew install zstd` * **Windows:** 可通过 MSYS2、Scoop (`scoop install zstd`) 或 Chocolatey (`choco install zstandard`) 获取。 **还原命令:** 您可以通过管道序列直接解压并还原整个数据库: ``` zstd -d -c dataset.mongodb_archive.zst | mongorestore --archive ``` 如果需要还原到特定的端口/主机: ``` zstd -d -c dataset.mongodb_archive.zst | mongorestore --archive --host 127.0.0.1 --port 27018 ``` 完成后,将配置一个名为 `binary-analysis` 的数据库,其中包含的集合(`metadata`、`c_retdec`、`assembly_retdec` 等)与此处包含的平面文件完全对应。 ## 📜 引用 如果您使用了此数据集,请引用: ``` @article{jalil2026llm, title={LLM-MFC: A Large Language Model-Based Malware Family Classification Dataset}, author={Jalil Hadi, Hassan and Pohlenz, Christopher G Pedraza and Hassan, Ali and Shoker, Ali}, year={2026} } ``` ## 👨‍💻 维护者 **CyberSar Lab** 🔗 https://cybersar.kaust.edu.sa/
标签:AI安全, Apex, Chat Copilot, DAST, DLL 劫持, DNS 反向解析, Homebrew安装, JSON, JSONL, LLM, MongoDB, Parquet, Polars, PySpark, Unmanaged PE, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 人工智能安全, 合规性, 大数据, 大语言模型, 威胁情报, 安全数据科学, 开发者工具, 恶意软件分析, 恶意软件家族分类, 数据科学, 时序数据库, 机器学习, 特征提取, 目录扫描, 网络安全, 良性软件分类, 资源验证, 逆向工具, 逆向工程, 防御规避识别, 隐私保护, 静态分析