sanaullahcode/ai-malware-analysis-assistant

GitHub: sanaullahcode/ai-malware-analysis-assistant

一款纯静态的 AI 驱动恶意软件分析助手,通过 PE 解析、熵值检查、IOC 提取和威胁情报查询,在不执行样本的前提下生成风险评分和行为解读报告。

Stars: 1 | Forks: 0

# AI 驱动的恶意软件分析助手 由 **Sana Ullah** 开发 [![Python](https://img.shields.io/badge/Python-3.10%2B-3776AB?logo=python&logoColor=white)](https://www.python.org/) [![pefile](https://img.shields.io/badge/Static%20Analysis-pefile-8A2BE2)](https://github.com/erocarrera/pefile) [![VirusTotal](https://img.shields.io/badge/Threat%20Intel-VirusTotal%20v3-393939)](https://www.virustotal.com/) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) 给它一个可疑文件。它会返回该文件是什么、它接触了什么, 以及它有多危险——而无需执行它。 ## 它的功能 仅限静态分析。此工具绝不会运行样本。它读取 文件结构和内容,以便在任何人在沙箱中 引爆它之前构建其意图的全貌。 1. **指纹识别** — 计算 MD5、SHA1 和 SHA256 以供识别和查询 2. **结构扫描** — 解析 PE 头、节区和导入表 3. **熵值检查** — 通过节区熵值标记加壳或加密的 payload 4. **IOC 扫描** — 从字符串中提取嵌入的 IP 地址、域名和 URL 5. **威胁情报交叉检查** — 可选通过 hash 查询 VirusTotal 6. **AI 分类** — Claude 解释行为并指出可能的类别 7. **评分** — 上述所有内容汇总为一个 0–100 的风险评分 ## 风险评分指南 | 评分 | 含义 | 建议操作 | |---|---|---| | 0–24 | 未发现强烈的指标 | 记录并继续 | | 25–49 | 存在一些可疑特征 | 建议人工审查 | | 50–74 | 存在多个强烈指标 | 隔离主机,升级处理 | | 75–100 | 高置信度恶意 | 立即遏制 | ## 标记内容 | 信号 | 重要性 | |---|---| | `VirtualAlloc`, `WriteProcessMemory`, `CreateRemoteThread` | 经典的进程注入原语 | | `SetWindowsHookEx` | 常见于键盘记录器 | | `URLDownloadToFile`, `InternetOpen` | 第二阶段 payload 获取 | | 节区熵值超过 7.2 | 可能是加壳、加密或混淆的代码 | | `IsDebuggerPresent` | 反分析 / 沙箱逃避行为 | ## 示例报告输出 ``` { "file": "invoice_march.exe", "risk_score": 82, "hashes": { "sha256": "a3f1c9..." }, "static_analysis": { "overall_entropy": 7.61, "suspicious_imports": ["VirtualAlloc", "WriteProcessMemory", "CreateRemoteThread"] }, "iocs": { "ip_addresses": ["185.220.101.14"], "urls": [] }, "ai_analysis": "This sample allocates remote memory in another process and writes shellcode into it, consistent with a process injection loader..." } ``` ## 项目结构 ``` ai-malware-analysis-assistant/ ├── src/ │ ├── malware_assistant.py # CLI entry point │ ├── static_analyzer.py # PE parsing, hashing, entropy │ ├── ioc_extractor.py # string and IOC extraction │ └── vt_lookup.py # VirusTotal hash lookup ├── data/samples/ # place suspicious files here for testing ├── reports/ # generated analysis reports ├── tests/ │ └── test_ioc_extractor.py ├── requirements.txt └── .env.example ``` ## 快速开始 ``` git clone https://github.com/sanaullahcode/ai-malware-analysis-assistant.git cd ai-malware-analysis-assistant pip install -r requirements.txt cp .env.example .env ``` 在 `.env` 中添加你的密钥: ``` ANTHROPIC_API_KEY=your_key_here VIRUSTOTAL_API_KEY=optional_but_recommended ``` 运行它: ``` python src/malware_assistant.py data/samples/suspicious_file.exe ``` 尚未配置 API 密钥也没关系——该工具仍可基于规则 分析和本地回退文本运行,因此无需任何计费 设置即可进行演示。 ## 测试 ``` pytest tests/ ``` ## 安全提示 本项目专为防御性安全教育和个人实验室 使用而构建。仅进行静态分析是安全的,但请务必将可疑文件保存在 隔离的 VM 或沙箱环境中。切勿在宿主机上执行可疑文件,并在未事先检查您所在组织的数据处理政策的情况下,切勿将包含敏感或专有 数据的文件提交给 VirusTotal 等第三方服务。 ## 当前限制 - 结构解析仅支持 PE 格式;非 PE 文件仍会进行 hash、 熵值和 IOC 分析,但没有导入表检查 - 尚无 YARA 规则匹配,检测依赖于导入和熵值启发式 - VirusTotal 查询仅基于 hash,未知 hash 不返回结果 ## 路线图 - 在基于导入的启发式基础上加入 YARA 规则匹配 - 集成沙箱引爆以进行行为分析 - 除 PE 外,支持基于 ELF 和脚本的样本 ## 许可证 基于 [MIT 许可证](LICENSE) 发布。 ## 作者 **Sana Ullah** 软件工程学士,FUUAST 伊斯兰堡 专注领域:网络安全、AI/ML、软件工程 GitHub: [sanaullahcode](https://github.com/sanaullahcode)
标签:AI辅助分析, DAST, DNS 反向解析, PE文件解析, Python, 云安全监控, 威胁情报, 安全规则引擎, 开发者工具, 恶意软件分析, 无后门, 网络信息收集, 逆向工具, 静态分析