MARSMORAN/dep-shield

GitHub: MARSMORAN/dep-shield

多语言依赖供应链安全扫描器,实时交叉比对 CVE 数据库识别已知漏洞和恶意包,支持自动生成修复 PR 和合规 SBOM 报告。

Stars: 1 | Forks: 0

# 🛡️ dep-shield **依赖供应链安全扫描器** —— 主动识别整个代码库中的漏洞、过时的软件包和恶意依赖项。 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/Python-3.11-blue?logo=python)](https://www.python.org/) [![Code Style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Security](https://img.shields.io/badge/security-scanned-brightgreen?logo=snyk)](https://snyk.io/) [![Downloads](https://img.shields.io/pypi/dm/dep-shield?color=blue)](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, 上游代理, 云安全监控, 代码安全, 依赖分析, 包管理安全, 安全扫描, 无后门, 时序注入, 漏洞修复, 漏洞枚举, 结构化查询, 网络安全培训, 自动化安全, 软件开发工具包, 静态分析