SemClone/binarysniffer
GitHub: SemClone/binarysniffer
一款通过语义特征匹配对二进制文件、移动应用和 ML 模型进行开源组件识别、许可证检测和安全风险分析的工具。
Stars: 3 | Forks: 0
# BinarySniffer - 二进制组件检测与安全分析
[](https://opensource.org/licenses/Apache-2.0)
[](https://www.python.org/downloads/)
[](https://pypi.org/project/binarysniffer/)
一款高性能的 CLI 工具和 Python 库,通过语义特征匹配检测二进制文件中的开源组件和安全威胁。专用于分析移动应用 (APK/IPA)、Java 归档文件、ML 模型和源代码,以识别 OSS 组件、其许可证以及潜在的安全风险。
## 功能
- **二进制组件检测**:使用语义特征识别编译二进制文件中的 188+ 个 OSS 组件
- **ML 模型安全分析**:全面的安全扫描并映射 MITRE ATT&CK
- **多格式支持**:APK/IPA、JAR/WAR、ELF/PE/Mach-O、ML 模型 (pickle, ONNX, SafeTensors)
- **SEMCL.ONE 集成**:与 osslili、purl2notices 及其他生态工具无缝协作
## 安装
```
pip install binarysniffer
```
用于开发:
```
git clone https://github.com/SemClone/binarysniffer.git
cd binarysniffer
pip install -e .
```
包含性能扩展:
```
pip install binarysniffer[fast]
```
## 快速开始
```
# 分析二进制文件
binarysniffer analyze /path/to/binary
# ML model 安全扫描
binarysniffer ml-scan model.pkl --deep
# 生成 SBOM
binarysniffer analyze app.apk --format cyclonedx -o sbom.json
```
## 使用说明
### CLI 使用
```
# 基础分析
binarysniffer analyze app.apk
# ML model 安全分析
binarysniffer ml-scan model.pkl --risk-threshold 0.5
# 递归目录扫描
binarysniffer analyze /path/to/project -r
# 生成 CycloneDX SBOM
binarysniffer analyze app.jar --format sbom -o app-sbom.json
# 提取包清单
binarysniffer inventory app.apk --with-hashes -o inventory.json
```
### Python API
```
from binarysniffer import EnhancedBinarySniffer
# 初始化分析器
sniffer = EnhancedBinarySniffer()
# 分析文件
result = sniffer.analyze_file("app.apk")
for match in result.matches:
print(f"{match.component} - {match.confidence:.2%}")
print(f"License: {match.license}")
# ML 安全分析
from binarysniffer.ml_security import MLSecurityAnalyzer
analyzer = MLSecurityAnalyzer()
risks = analyzer.analyze_model("model.pkl")
```
## 核心能力
### 二进制分析
- 通过 LIEF 提供高级格式支持 (ELF, PE, Mach-O)
- Android DEX 字节码分析
- 静态库 (.a) 支持
- 符号和导入提取
### 归档支持
- 移动应用 (APK, IPA)
- Java 归档文件 (JAR, WAR)
- Python 包 (wheel, egg)
- Linux 包 (DEB, RPM)
- 扩展格式 (7z, RAR, Zstandard)
### ML 模型安全 (v1.10.0+)
- Safe pickle 文件分析
- ONNX 和 SafeTensors 验证
- PyTorch/TensorFlow 原生格式
- 对已知漏洞利用实现 100% 检测率
- 输出 SARIF 用于 CI/CD 集成
### 特征数据库
- 涵盖 188 个 OSS 组件
- 1,400+ 个高质量特征
- 自动许可证检测
- 安全严重性分类
## 与 SEMCL.ONE 集成
BinarySniffer 是 SEMCL.ONE 生态系统的重要组成部分:
- 补充 **osslili** 以进行源代码许可证检测
- 与 **purl2notices** 配合实现全面归因
- 集成 **ospac** 进行策略评估
- 支持 **upmex** 进行包元数据提取
## 配置
```
# ~/.binarysniffer/config.json
{
"signature_sources": [
"https://signatures.binarysniffer.io/core.xmdb"
],
"min_confidence": 0.5,
"parallel_workers": 4,
"auto_update": true
}
```
## 文档
- [用户指南](docs/USER_GUIDE.md) - 全面的使用示例
- [API 参考](docs/API_REFERENCE.md) - Python API 文档
- [ML 安全](docs/ML_SECURITY.md) - ML 模型安全分析
- [特征管理](docs/SIGNATURE_MANAGEMENT.md) - 创建和管理特征
- [架构](docs/ARCHITECTURE.md) - 系统设计和内部原理
## 进阶主题
- [TLSH 模糊匹配](docs/TLSH_FUZZY_MATCHING.md) - 检测已修改的组件
- [创建特征](docs/CREATING_SIGNATURES.md) - 贡献新特征
- [安装指南](docs/INSTALLATION.md) - 特定于平台的安装设置
- [包验证](docs/PACKAGE_VERIFICATION.md) - 归档分析
## 支持
如需支持和提问:
- [GitHub Issues](https://github.com/SemClone/binarysniffer/issues) - Bug 报告和功能请求
- [文档](https://github.com/SemClone/binarysniffer) - 完整的项目文档
- [SEMCL.ONE 社区](https://semcl.one) - 生态系统支持和讨论
## 许可证
Apache License 2.0 - 详见 [LICENSE](LICENSE) 文件。
## 作者
贡献者列表请参见 [AUTHORS.md](AUTHORS.md)。
* [SEMCL.ONE](https://semcl.one) 生态系统的一部分,用于全面的 OSS 合规和代码分析。*
标签:SBOM生成, 二进制分析, 云安全监控, 云安全运维, 开源组件检测, 机器学习模型安全, 逆向工具, 静态分析