hnytgl/Malware-Analysis-System

GitHub: hnytgl/MalGuard

MalGuard 是一套融合静态特征提取、动态沙箱日志归一化与静动态关联分析的 Python 自动化恶意软件分析系统,帮助安全团队高效完成样本研判和威胁情报提取。

Stars: 1 | Forks: 0

# MalGuard 自动化恶意软件分析系统 MalGuard 是一个面向防御与应急响应场景的 Python 工具,融合静态特征提取、动态沙箱日志归一化、静动态关联分析、HTML/JSON/STIX 报告导出能力,用于辅助识别木马样本中的网络反连地址、持久化驻留机制、本机文件与注册表修改、账号后门痕迹和可疑注入行为。 ## 功能概览 - 预处理与格式识别:识别 PE、ELF、Mach-O、ZIP 等常见文件格式,并可选调用外部解包器。 - 静态分析:提取 ASCII/Unicode 字符串、文件哈希、PE 导入导出表、节区熵、ELF 基础头信息。 - IOC 提取:通过正则识别 IPv4、域名、URL、邮箱,并对域名进行轻量 DGA 可疑度评分。 - 行为线索识别:检测敏感 API 调用序列、进程注入模式、持久化位置、账号后门相关命令和字符串。 - YARA 集成:支持加载自定义 YARA 规则匹配已知木马家族或组织内规则。 - 动态分析接入:归一化 ProcMon CSV、strace 文本、MalGuard JSONL 等事件源。 - 关联分析:比对静态 C2 IOC 与动态网络连接,合并持久化机制,生成行为时间线并标注恶意置信度。 - 报告输出:生成统一 JSON 报告、HTML 可视化报告和 STIX 2.1 IOC Bundle。 ## 项目结构 malware-analysis-system/ malguard/ cli.py # 命令行入口 static_analysis.py # 静态分析引擎 dynamic.py # 动态日志归一化与安全沙箱 runner correlate.py # 静动态关联分析 report.py # JSON/HTML/STIX 报告生成 ioc.py # IOC 与 DGA 评分 rules/ suspicious_trojan.yar samples/ dynamic_events.jsonl tests/ ## 安装 建议使用 Python 3.10 或更高版本: cd C:\Users\user\Desktop\1\malware-analysis-system python -m venv .venv .\.venv\Scripts\Activate.ps1 python -m pip install -e .[dev,pe,yara] 如果暂时不需要 PE 深度解析或 YARA,可只安装核心包: python -m pip install -e . ## 快速使用 ### 1. 静态分析 malguard static .\path\to\sample.exe -o .\out\static.json --yara .\rules\suspicious_trojan.yar 输出 JSON 会包含: - 样本基础信息与哈希 - 文件格式与结构信息 - 字符串与 IOC - 敏感 API 序列 - 持久化与账号后门线索 - YARA 命中结果 ### 2. 归一化动态日志 支持三类输入: - ProcMon 导出的 CSV - Linux `strace` 文本日志 - 已经是 MalGuard 事件结构的 JSON Lines malguard dynamic-normalize .\samples\dynamic_events.jsonl -o .\out\dynamic.jsonl 标准动态事件格式: {"ts_ms": 1532, "category": "network", "action": "connect", "data": {"dst_ip": "203.0.113.10", "dst_port": 443, "protocol": "tcp"}, "source": "sandbox"} ### 3. 静动态关联 malguard correlate --static .\out\static.json --dynamic .\out\dynamic.jsonl -o .\out\correlation.json 关联分析会: - 将静态 IOC 与动态网络连接进行命中比对 - 合并并去重持久化行为 - 生成毫秒级行为时间线 - 为动态事件计算恶意置信度 ### 4. 生成报告 malguard report ` --static .\out\static.json ` --dynamic .\out\dynamic.jsonl ` --correlation .\out\correlation.json ` --json .\out\report.json ` --html .\out\report.html ` --stix .\out\ioc-stix.json HTML 报告会高亮 IOC,并以表格展示行为时间线;STIX 2.1 文件可导入威胁情报平台。 ## 沙箱接入建议 推荐在隔离虚拟机中运行动态分析: - Windows 10/11:ProcMon、Wireshark、API Monitor、Sysmon。 - Ubuntu 22.04:strace、tcpdump、auditd、eBPF/bpftrace。 - 网络:断开公网,或重定向到 INetSim、FakeNet-NG、内网模拟 C2。 - 快照:每次运行样本前恢复干净快照。 - 超时:默认建议 120 秒,可按样本类型调整。 如确需使用内置 runner: malguard sandbox-run .\sample.exe -o .\out\sandbox.jsonl --timeout 120 --i-understand-risk 该 runner 只记录基础进程启动和退出信息。完整文件、注册表、网络、账号、注入行为应由 ProcMon、strace、Sysmon、tcpdump 等外部监控工具采集后再导入 MalGuard。 ## 事件类别 | 类别 | 示例行为 | | --- | --- | | `network` | TCP/UDP/HTTP/HTTPS 连接、五元组、前 256 字节载荷 | | `file` | 创建、修改、删除、复制、隐藏,记录路径与前后哈希 | | `registry` | Windows 注册表键值创建、修改、删除 | | `account` | 创建/删除用户、改密、加入管理员组 | | `persistence` | 服务、计划任务、Run 键、启动目录、crontab、systemd、`.bashrc` | | `process` | 进程树、退出码、远程线程、内存修改、Hook | | `anti_analysis` | 反调试、反沙箱、延迟执行、检测特定进程或注册表 | ## 持续维护计划 - 增加更多日志后端解析器:Sysmon EVTX、tcpdump/pcap、Wireshark JSON、auditd。 - 扩展 PE/ELF/Mach-O 深度结构解析。 - 增加更细粒度的 DGA 模型与家族聚类规则。 - 增加可配置评分策略和 MITRE ATT&CK 技术映射。 - 增加 Docker/VM 沙箱编排脚本,但默认保持安全拒绝执行策略。 ## 合规用途 本工具仅用于授权环境下的恶意软件检测、应急响应、威胁情报提取、实验室分析和安全研究。请勿将其用于未授权的样本投递、攻击验证或规避检测。
标签:DAST, IP 地址批量处理, Python, 威胁情报, 库, 应急响应, 开发者工具, 恶意软件分析, 无后门, 逆向工具