rexcoleman/ai-supply-chain-scanner
GitHub: rexcoleman/ai-supply-chain-scanner
AI供应链安全扫描器,专注于检测ML项目依赖和Hugging Face模型中传统扫描器遗漏的特有风险。
Stars: 0 | Forks: 0
# AI 供应链安全扫描器
**AI 模型界的 Snyk。扫描 ML 项目依赖和 Hugging Face 模型,发现传统扫描器遗漏的供应链风险。**
## 关键结果
| 指标 | 数值 |
|--------|-------|
| 总发现数 | 跨 5 个 ML 项目共 20 个 |
| CRITICAL 严重级别 | 13 (65%) |
| #1 风险 | 不安全的 pickle/joblib 序列化 (20 个发现中的 10 个) |
| 传统扫描器遗漏的风险类别 | 7 个中的 4 个 |
| 开发者可修复 | 所有发现的 75% |
| 发现的已知 ML CVE | 3 个 (LangChain, PyTorch, scikit-learn) |
## 传统扫描器遗漏的内容
| 风险类别 | Snyk/Dependabot? | 本扫描器 |
|---------------|-----------------|--------------|
| 不安全序列化 (pickle/joblib) | 否 | CRITICAL |
| 已知 ML 库 CVE | 部分 | HIGH |
| 缺失模型溯源 | 否 | MEDIUM |
| 不受信任的模型来源 | 否 | MEDIUM |
| 已弃用的 ML 算法 | 否 | MEDIUM |
| 许可证风险 | 部分 (FOSSA) | LOW |
| 依赖过期 | 是 | LOW |
**核心洞察:** 65% 的发现为 CRITICAL 严重级别,且 7 个风险类别中有 4 个对传统供应链扫描器不可见。不安全序列化 (pickle/joblib) 是 ML 项目中的主要风险。
## 快速开始
```
git clone https://github.com/rexcoleman/ai-supply-chain-scanner.git
cd ai-supply-chain-scanner
conda env create -f environment.yml
conda activate ai-supply-scan
# 扫描项目依赖
python src/cli.py check --repo ~/your-ml-project
# 扫描 Hugging Face 模型
python src/cli.py model --id bert-base-uncased
# 详细输出与修复建议
python src/cli.py check --repo ~/your-ml-project --verbose --output report.json
```
## 架构
```
src/
cli.py # CLI entry point
scanners/
dependency_scanner.py # Project dependency + serialization scanning
model_scanner.py # Hugging Face model metadata scanning
scoring/ # Risk scoring engine
core/
risk_categories.py # 7 risk categories + severity definitions
```
## 方法论
本项目验证了**对抗性可控性分析**方法论(第 6 域)。供应链风险因素按可控性分类:
- **开发者可控 (75%):** 序列化格式选择、依赖版本锁定、模型来源选择
- **库可控:** 上游补丁、CVE 修复
- **不可控:** 零日供应链攻击、受损的模型注册表
详见 [FINDINGS.md](FINDINGS.md) 查看详细结果。
## 由 [govML](https://github.com/rexcoleman/govML) 治理
构建时在整个 pipeline 中强制执行可复现性和决策可追溯性。
## 许可证
[MIT](LICENSE)
标签:CVE, DevSecOps, Hugging Face, Known Exploited Vulnerabilities, MLSec, Pickle, PyTorch, scikit-learn, 上游代理, 云安全监控, 人工智能安全, 人工智能安全, 反序列化漏洞, 合规性, 合规性, 后门检测, 数字签名, 文档安全, 文档结构分析, 模型扫描, 软件开发工具包, 逆向工具, 静态分析, 风险评分