kryptologyst/Vulnerability-Assessment-Tool
GitHub: kryptologyst/Vulnerability-Assessment-Tool
一款面向安全研究与教育的漏洞评估工具,通过依赖分析、SBOM 解析与风险评分帮助发现和量化已知漏洞。
Stars: 0 | Forks: 0
# 漏洞评估工具
一个用于安全研究和教育的漏洞评估工具。该工具提供全面的漏洞扫描功能,包括依赖项分析、软件物料清单(SBOM)解析和风险评分。
## 免责声明
**本工具仅供防御性安全研究和教育用途。不适用于生产环境安全操作或漏洞利用。工具可能包含不准确之处,不应作为专业安全工具或安全运营中心(SOC)操作的替代品。**
## 功能
- **依赖项漏洞扫描**:分析 Python 包及其依赖项是否存在已知漏洞
- **软件物料清单(SBOM)处理**:解析并分析 SBOM 文件以识别安全风险
- **CVE 数据库集成**:与通用漏洞披露(CVE)数据库进行比对
- **风险评分**:计算已识别漏洞的 CVSS 分数和风险等级
- **交互式仪表板**:基于 Web 的界面,用于漏洞评估和报告
- **综合报告**:生成详细的漏洞报告并提供修复建议
## 快速开始
### 安装
```
# 克隆仓库
git clone https://github.com/kryptologyst/Vulnerability-Assessment-Tool.git
cd Vulnerability-Assessment-Tool
# 安装依赖
pip install -e .
# 安装开发依赖(可选)
pip install -e ".[dev]"
```
### 基本用法
```
from src.vulnerability_assessment import VulnerabilityScanner
# 初始化扫描器
scanner = VulnerabilityScanner()
# 扫描 Python 项目
results = scanner.scan_project("path/to/project")
# 生成报告
scanner.generate_report(results, "vulnerability_report.html")
```
### 交互式演示
```
# 启动 Streamlit 仪表板
streamlit run demo/streamlit_app.py
# 或启动 Gradio 界面
python demo/gradio_app.py
```
## 数据集架构
### 漏洞数据库架构
```
{
"cve_id": "CVE-2023-1234",
"description": "Vulnerability description",
"cvss_score": 7.5,
"severity": "HIGH",
"affected_packages": ["package_name>=1.0.0,<2.0.0"],
"published_date": "2023-01-01",
"last_modified": "2023-01-15"
}
```
### SBOM 架构
```
{
"bomFormat": "CycloneDX",
"specVersion": "1.4",
"components": [
{
"type": "library",
"name": "package_name",
"version": "1.2.3",
"purl": "pkg:pypi/package_name@1.2.3"
}
]
}
```
## 配置
该工具使用 YAML 配置文件进行自定义:
```
# configs/default.yaml
scanner:
cve_database_url: "https://cve.mitre.org/data/downloads/allitems.xml"
max_concurrent_scans: 10
timeout: 30
risk_scoring:
cvss_thresholds:
critical: 9.0
high: 7.0
medium: 4.0
low: 0.1
```
## 训练与评估
### 训练命令
```
# 训练漏洞检测模型
python scripts/train_model.py --config configs/training.yaml
# 评估模型性能
python scripts/evaluate_model.py --model models/vuln_detector.pkl
```
### 评估指标
- **检测准确率**:精确率、召回率、F1 分数
- **风险评估**:CVSS 分数相关性
- **误报率**:错误的漏洞识别
- **覆盖率**:已识别已知漏洞的百分比
## 演示用法
### Streamlit 仪表板
1. 启动仪表板:`streamlit run demo/streamlit_app.py`
2. 上传 requirements.txt 或 SBOM 文件
3. 配置扫描参数
4. 查看漏洞发现和风险评分
5. 导出详细报告
### Gradio 界面
1. 运行界面:`python demo/gradio_app.py`
2. 使用网页界面:
- 上传项目文件
- 配置漏洞扫描
- 查看交互式漏洞报告
- 下载评估结果
## 性能指标与限制
### 性能指标
- **扫描速度**:约 100 个包/分钟
- **准确率**:对已知 CVE 达到 95% 以上
- **覆盖率**:支持 Python、Node.js 和 Java 生态系统
- **误报率**:对于维护良好的包低于 5%
### 限制
- **数据库覆盖范围**:仅限于公开的 CVE 数据
- **语言支持**:主要侧重于 Python
- **实时更新**:CVE 数据库更新可能存在延迟
- **私有漏洞**:无法检测未公开的漏洞
## 隐私与安全
- **数据处理**:所有扫描数据均在本地处理
- **无数据传输**:漏洞数据库在本地缓存
- **个人身份信息(PII)保护**:项目路径和敏感数据均被匿名化
- **审计日志**:所有扫描活动均记录以符合合规要求
## 许可证
MIT 许可证 - 详细信息请参阅 LICENSE 文件。
## 支持
如有疑问或技术支持:
- 在 GitHub 上创建问题
- 查看 `docs/` 目录中的文档
- 查看 `configs/` 中的示例配置
# 漏洞评估工具
标签:AES-256, CVE, CVSS, Gradio, Kubernetes, SBOM, Streamlit, WebSocket, Web仪表板, 依赖分析, 教育工具, 数字签名, 漏洞披露, 漏洞评估, 硬件无关, 网络安全, 访问控制, 跌倒检测, 软件物料清单, 逆向工具, 隐私保护, 风险评分