joemunene-by/ghostbox

GitHub: joemunene-by/ghostbox

ghostbox 是一款纯静态的恶意软件分析沙箱,通过哈希、文件解析、IOC 提取、熵计算和可选 YARA 规则为可疑文件生成可解释的威胁评分,且绝不执行样本。

Stars: 0 | Forks: 0

# ghostbox 一个用于授权分类的静态恶意软件分析沙箱。ghostbox 会检查可疑文件,并仅使用安全的静态技术生成可解释的威胁评估。 ## 安全性 ghostbox 仅执行静态分析。它绝不执行、引爆或运行任何样本。它只读取字节:进行哈希计算、识别文件类型、解析文件头、提取导入表、字符串和入侵指标 (IOC)、计算熵、应用可选的 YARA 规则,并将这些发现汇总为一个分数。这里没有动态沙箱,也绝不会调用样本中的任何代码。 ## 授权使用 仅在您有权分析的文件上使用 ghostbox。它是一款防御和取证工具,专为事件响应人员、威胁分析师和研究人员设计,用于对其有权检查的样本进行分类。 ## 安装说明 需要 Python 3.11 或更高版本。 ``` git clone https://github.com/joemunene-by/ghostbox cd ghostbox python -m venv .venv && . .venv/bin/activate pip install -e . ``` 可选的附加功能可以启用更丰富的解析和 YARA 扫描: ``` pip install -e ".[pe]" # pefile backend for PE imports pip install -e ".[elf]" # pyelftools backend for ELF symbols pip install -e ".[yara]" # yara-python for rule matching pip install -e ".[full]" # all optional backends pip install -e ".[dev]" # pytest and ruff for development ``` ghostbox 在没有任何可选后端的情况下也能工作:它内置了 PE 和 ELF 的备用解析器,并在缺少 yara-python 时干净地禁用 YARA。 ## 快速开始 ``` ghostbox analyze suspicious.sh ``` 良性构造样本的控制台输出示例(一个包含 IOC 字符串的小脚本,此处仅用于演示提取过程): ``` ╭──────────────── ghostbox static analysis ────────────────╮ │ sample.sh (295 B) │ ╰──────────────────────────────────────────────────────────╯ Identity type sh script sha256 74bdfcf6a5692843bf0a704bc5d1964fd03966b6573e674dd06c1ea6ad486854 Capabilities networking 6 string:https?:// persistence 12 CurrentVersion\Run, schtasks crypto-ransomware 14 your files have been encrypted process-execution 6 powershell IOCs urls http://malicious.example.com/payload.bin ipv4 203.0.113.45 domains evil-domain.top registry_keys HKLM\Software\Microsoft\Windows\CurrentVersion\Run Threat score score 51/100 band SUSPICIOUS ``` 用于流水线的 JSON 输出: ``` ghostbox analyze suspicious.bin --format json --output report.json ``` 递归分拣目录,仅报告达到或超过指定分数的文件: ``` ghostbox scan ./samples --min-score 40 --format json ``` ## 命令 - `analyze `:分析单个文件。 - `scan `:递归分析目录中的每个常规文件。 - `rules --yara-dir `:列出将要加载的 YARA 规则文件。 - `version`:打印 ghostbox 版本。 常用标志:`--format {console,json}`,`--yara-dir`,`--min-score`,`--output`,`--max-strings`,`--verbose`。 ## 分析器 ghostbox 运行一个由模块化分析器组成的流水线。每个分析器都是隔离的:任何分析器中的失败都会被记录为警告,并且绝不会中止运行。 1. hashing:md5、sha1、sha256 和文件大小。 2. filetype:magic-byte 检测(PE、ELF、Mach-O、PDF、OLE 和 OOXML Office、脚本、归档文件、图像),无需 libmagic 依赖。 3. pe:DOS 和 NT 头、包含每个 section 熵值的 section 表,以及导入表。安装后使用 pefile,否则使用内置的备用解析器。标记可疑导入,如 VirtualAlloc、WriteProcessMemory 和 CreateRemoteThread。 4. elf:ELF 头、section 表和动态符号。安装后使用 pyelftools,否则使用内置的 32 位和 64 位备用解析器。 5. entropy:整个文件和每个 section 的香农熵 (Shannon entropy),并带有已知加壳检测(UPX、ASPack、Themida、VMProtect 等)。 6. strings_ioc:ASCII 和 UTF-16LE 字符串,随后是 URL、IPv4 地址、域名、电子邮件、Windows 路径、注册表项和互斥锁 (mutex)。 7. capabilities:将导入表和字符串模式映射到行为标签(网络、进程注入、持久化、反调试、加密和勒索软件指标、发现、进程执行、键盘记录)。 8. yara:可选的规则匹配,依赖于 yara-python。 ## 威胁评分 每个分析器都会发出加权信号。分数是这些权重在 0 到 100 分制上的钳制 (clamped) 总和,映射到不同的区间: - clean:分数低于 25。 - suspicious:分数 25 到 59。 - malicious:分数 60 及以上。 该评分具有完全的可解释性。每份报告都会列出每个贡献信号及其权重和简短的理由,因此分析师可以确切地看到文件是如何被评分的。代表性权重包括已知加壳 (15)、进程注入能力 (18)、可疑导入(按数量缩放)、YARA 匹配(按数量缩放)以及网络 IOC(按数量缩放)。 ## YARA 用法 将 ghostbox 指向一个包含 `.yar` 或 `.yara` 文件的目录: ``` pip install -e ".[yara]" ghostbox analyze suspicious.bin --yara-dir rules ghostbox rules --yara-dir rules ``` ghostbox 会(递归地)编译该目录下的每个规则文件,并报告每个匹配项。示例规则集位于 `rules/` 下。如果未安装 yara-python,则会禁用 YARA 扫描,分析的其余部分将继续进行。 ## 开发说明 ``` pip install -e ".[dev]" ruff check . pytest ``` 测试完全离线,并以编程方式构建自己的良性样本(微型有效的 PE 和 ELF 文件、最小化的 PDF 和 Office 容器,以及带有 IOC 字符串的脚本)。不使用也不需要真实的恶意软件。 ## 路线图 - 超越 magic 检测的 Mach-O 结构解析。 - PDF 对象和 JavaScript 检查,以及 OLE 宏流提取。 - PE 的导入哈希 和 rich-header 指纹识别。 - 可配置的评分权重和规则包。 - 在附加功能背后的可选模糊哈希,默认安装中不包含。 ## 许可证 MIT。请参阅 [LICENSE](LICENSE)。
标签:DAST, DNS 反向解析, Python, YARA, 云安全监控, 云资产可视化, 威胁情报, 安全规则引擎, 开发者工具, 恶意软件分析, 无后门, 逆向工具, 静态分析