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, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 逆向工程, 静态分析