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, 云安全监控, 云资产可视化, 威胁情报, 安全规则引擎, 开发者工具, 恶意软件分析, 无后门, 逆向工具, 静态分析