SemClone/binarysniffer

GitHub: SemClone/binarysniffer

一款通过语义特征匹配对二进制文件、移动应用和 ML 模型进行开源组件识别、许可证检测和安全风险分析的工具。

Stars: 3 | Forks: 0

# BinarySniffer - 二进制组件检测与安全分析 [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![PyPI version](https://img.shields.io/pypi/v/binarysniffer.svg)](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生成, 二进制分析, 云安全监控, 云安全运维, 开源组件检测, 机器学习模型安全, 逆向工具, 静态分析