MARSMORAN/dep-shield
GitHub: MARSMORAN/dep-shield
多语言依赖供应链安全扫描器,实时交叉比对 CVE 数据库识别已知漏洞和恶意包,支持自动生成修复 PR 和合规 SBOM 报告。
Stars: 1 | Forks: 0
# 🛡️ dep-shield
**依赖供应链安全扫描器** —— 主动识别整个代码库中的漏洞、过时的软件包和恶意依赖项。
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/)
[](https://github.com/psf/black)
[](https://snyk.io/)
[](https://pypi.org/project/dep-shield/)
## 🚀 安装
```
pip install dep-shield
```
## 📖 快速入门
### 命令行界面
```
# 扫描单个目录
dep-shield scan --path .
# 使用自定义配置进行扫描
dep-shield scan --path ./my-project --config .dep-shield.yaml
# 生成 SBOM 报告
dep-shield sbom --path . --format cyclonedx-json
# 仅检查供应链威胁
dep-shield threats --path .
```
### Python API
```
from dep_shield import DependencyScanner
# 初始化 scanner
scanner = DependencyScanner()
# 扫描项目
results = scanner.scan('/path/to/project')
# 访问 findings
for vulnerability in results.vulnerabilities:
print(f" {vulnerability.package}: {vulnerability.cve}")
# 生成报告
scanner.generate_report(results, output_format='json')
```
### 高级用法
```
from dep_shield import DependencyScanner, Config
# 自定义配置
config = Config(
fail_on_severity='high',
exclude_patterns=['node_modules', '.git'],
enable_pr_generation=True
)
scanner = DependencyScanner(config=config)
results = scanner.scan(path='.', recursive=True)
# 导出为多种格式
results.export_sbom('sbom.json', format='cyclonedx')
results.export_report('security-report.html', format='html')
```
## ✨ 功能特性
| 特性 | 描述 |
|---------|-------------|
| 🎯 **多语言依赖解析** | 解析 `package.json`、`requirements.txt`、`Cargo.toml`、`.csproj` 并支持传递性依赖解析 |
| 🔍 **CVE 数据库交叉比对** | 查询 NVD、OSV 和 Snyk API 以获取带有 CVSS 评分的实时漏洞情报 |
| 🛡️ **供应链攻击检测** | 使用模糊匹配检测误植域名、恶意软件包和可疑的发布模式 |
| 🤖 **自动化 PR 生成** | 创建包含版本升级、变更日志参考和安全公告链接的 pull request |
| 📋 **SBOM 与合规性** | 生成符合 SPDX 和 CycloneDX 标准的报告,用于审计跟踪和监管合规 |
## 📁 项目结构
```
dep-shield/
├── src/dep_shield/
│ ├── __init__.py # Package initialization
│ ├── cli.py # Command-line interface
│ ├── config.py # Configuration management
│ ├── parsers.py # Multi-language dependency parsers
│ ├── reporting.py # Report generation engine
│ ├── supply_chain.py # Supply chain threat detection
│ └── vulnerability_db.py # CVE database integration
├── tests/
│ ├── test_parsers.py
│ └── test_vulnerability_db.py
├── examples/
│ └── basic_scan.py # Usage examples
├── pyproject.toml # Project configuration
└── LICENSE # MIT License
```
## ⚙️ 配置
在项目根目录下创建一个 `.dep-shield.yaml` 文件:
```
# 安全扫描配置
fail_on_severity: high
exclude_patterns:
- node_modules/
- .git/
- "*.min.js"
# 启用自动化 PR 生成
pr_generation:
enabled: true
branch_prefix: "dep-shield/fix/"
auto_merge: false
# CVE 数据库来源
vulnerability_sources:
- nvd
- osv
- snyk
```
### 开发环境设置
```
# 克隆与设置
git clone https://github.com/your-org/dep-shield.git
cd dep-shield
# 创建 virtual environment
python -m venv .venv
source .venv/bin/activate
# 以开发模式安装
pip install -e ".[dev]"
# 运行 linting 和测试
ruff check src/
pytest tests/ --cov=src/
```
## 📄 许可证
本项目基于 **MIT 许可证** 授权 —— 详情请参见 [LICENSE](LICENSE) 文件。
## 💡 专业提示
- **CI/CD 集成**:将 `dep-shield` 添加到您的 CI 流水线中,以在出现严重漏洞时阻止构建
- **基线化现有问题**:使用 `--baseline` 标志来跟踪新增与现有漏洞
- **自定义严重性映射**:在配置文件中配置特定于软件包的严重性阈值
## 🔗 相关项目
- [OWASP Dependency-Check](https://owasp.org/www-project-dependency-check/)
- [Snyk CLI](https://snyk.io/docs/snyk-cli/)
- [Trivy](https://aquasecurity.github.io/trivy/)
**由 GreenForge 团队用 ❤️ 制作**
标签:DevSecOps, LLM防护, LNA, Python, SBOM生成, Typosquatting检测, WebSocket, 上游代理, 云安全监控, 代码安全, 依赖分析, 包管理安全, 安全扫描, 无后门, 时序注入, 漏洞修复, 漏洞枚举, 结构化查询, 网络安全培训, 自动化安全, 软件开发工具包, 静态分析