SecurityM/IntegrityGap
GitHub: SecurityM/IntegrityGap
一款零依赖的静态二进制分析器,通过评估 PE/ELF 文件中六个完整性维度的行为缺失来识别潜在威胁。
Stars: 0 | Forks: 0
# IntegrityGap
**静态二进制分析器,用于检测 PE 和 ELF 可执行文件中的行为完整性缺失。**
与传统的寻找已知恶意模式的漏洞扫描器不同,IntegrityGap 专门分析那些*缺失*的部分——从未编写的错误检查、从未释放的资源、未完成的加密序列、被跳过的输入验证。它会为每个函数生成一份行为完整性概况,并输出聚合的威胁分类。
## 概念
IntegrityGap 将二进制文件视为一种行为产物。每个函数都会在六个完整性维度上进行评分:
| 维度 | 测量内容 |
|---|---|
| **错误处理** | 在下一个相关操作之前,未检查关键 API(网络、文件、加密、进程、内存)返回值的调用 |
| **资源生命周期** | 在函数内获取资源(`malloc`、`CreateFile`、`socket` 等)与释放资源(`free`、`CloseHandle`、`closesocket`)之间的不平衡 |
| **输入验证** | 在可观察到的 null/有效性检查之前进行指针解引用;没有边界检查的内存复制操作 |
| **加密** | 不完整的加密序列(初始化而没有结束、操作而没有销毁、硬编码的 IV 模式) |
| **日志记录 / 可审计性** | 在其他情况下使用日志记录的二进制文件中,缺乏相应日志调用的高风险操作 |
| **清理** | 导致已获取资源未被释放的退出路径,尤其是在错误分支上 |
每个函数在每个维度上都会获得一个**缺失评分**(0–100)。评分会根据二进制文件自身的函数群进行本地归一化,以凸显异常函数。
聚合结果会产生一个**威胁分类**:
| 分类 | 含义 |
|---|---|
| `No_Material_Gap` | 未检测到实质性的完整性缺失 |
| `Implant` | 稀疏、高置信度的异常,与定向植入物特征一致 |
| `Dropper` | 资源生命周期失衡,暗示存在载荷提取行为 |
| `RAT` | 具有糟糕的错误处理且无审计追踪的高风险操作 |
| `Ransomware` | 加密 + 资源生命周期 + 错误处理异常 |
| `Legitimate_Anomalous` | 偏离本地规范,但没有明确的威胁特征 |
## 构建
需要 [Zig 0.13.0](https://ziglang.org/download/)。
```
zig build
```
## 使用说明
```
IntegrityGap --target [--json out.json] [--plain] [--dot out.dot]
IntegrityGap --target --diff [--json diff.json]
IntegrityGap --target --baseline [--json diff.json]
```
### 选项
| 标志 | 描述 |
|---|---|
| `--target ` | 要分析的 PE/ELF 二进制文件 |
| `--json ` | 结构化 JSON 输出 |
| `--plain` | 人类可读的摘要 |
| `--dot ` | 函数和缺失情况的 Graphviz DOT 图 |
| `--diff ` | 与另一个二进制文件进行比较 |
| `--baseline ` | 将目标与已知的安全基线进行比较 |
| `--max-bytes ` | 读取的最大字节数(默认:256 MB) |
| `--verbose`, `-v` | 将进度日志输出到 stderr |
| `--help`, `-h` | 打印用法 |
### 示例
```
# 分析二进制文件,默认输出 JSON 到 stdout
./integritygap --target /bin/ls
# 分析并保存结构化 JSON
./integritygap --target sample.exe --json report.json
# 人类可读摘要
./integritygap --target sample.exe --plain
# 与已知干净的 baseline 进行比较
./integritygap --target suspicious.bin --baseline clean.bin --json diff.json
```
## 输出
JSON 输出包含每个函数的概况,具有:
- **函数跨度**(起始/结束 VA、指令计数)
- 六个完整性维度的**评分**
- **聚合缺失**评分和**异常置信度**
- **证据**列表,包含具体地址、类别、严重性级别和描述
- 用于交叉引用分析的**调用图**边
- 包含威胁分类的**摘要**
## 许可证
CC BY-NC-ND 4.0 — 参见 [许可证](LICENSE)。
标签:Homebrew安装, Zig, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 逆向工程, 静态分析