3Basit/threat_intelligence-Asset_Monitor

GitHub: 3Basit/threat_intelligence-Asset_Monitor

一个集成资产发现、多源威胁情报丰富与威胁压力因子计算的风险评估流水线,通过CPE版本感知匹配将CVE精准关联到存活资产,输出结构化数据以支撑网络风险的财务量化预测。

Stars: 0 | Forks: 0

# Cyber Risk Dollarizer — 威胁情报模块 **Cyber Risk Dollarizer** 毕业设计项目的一部分。该模块负责: 1. 发现和监控 Web 资产(HTTP 指纹识别 + Nmap + 技术 + WAF 检测) 2. 从 CISA KEV 获取已被确认利用的漏洞 3. 使用 CVSS 评分 + CPE 版本范围(NVD)以及被利用概率(EPSS)来丰富 CVE 信息 4. 检查公开漏洞利用的可用性(Exploit-DB) 5. 使用 vendor、product 和 CPE 版本范围将 CVE 匹配到存活资产 6. 计算每个 CVE-资产对的威胁压力因子 (TPF) 7. 将 `threat_intelligence_output.json` 发送到预测模型 ## 项目结构 ``` grad.project.C/ │ ├── main.py # Full pipeline runner ├── asset_monitor.py # Phase 1+2+3: HTTP + Nmap + Tech/WAF detection ├── cisa_kev.py # Fetches CISA KEV catalog ├── nvd_fetch.py # Enriches CVEs with NVD + EPSS + CPE ranges ├── exploit_db.py # Checks public exploit availability ├── matching.py # Matches CVEs to assets (CPE version-aware) ├── threat_pressure.py # Computes TPF + generates alerts ├── database.py # SQLite schema + all DB functions ├── check_db.py # DB inspection utility │ ├── targets.json # Scan targets (config — edit this) ├── assets.json # Discovered assets (auto-generated) ├── threat_intelligence_output.json # ← sent to Prediction Model ├── alerts.json # New/escalated alerts (auto-generated) ├── asset_changes.json # Detected infrastructure changes │ ├── threat_intelligence.db # SQLite database (11 tables) ├── requirements.txt └── README.md ``` ## 数据库架构(11 个表) | 表 | 内容 | |---|---| | `assets` | 发现的 Web 资产 | | `asset_services` | 来自 Nmap 的开放端口和服务 | | `asset_technologies` | 检测到的技术(CMS、框架、JS 库) | | `asset_waf_info` | WAF 检测结果 | | `cisa_kev` | 原始 CISA KEV 目录 | | `enriched_cves` | 包含 CVSS + EPSS + CPE 范围的丰富化 CVE | | `exploitdb_cves` | 每个 CVE 的公开漏洞利用可用性 | | `matched_cves` | CVE-资产匹配(仅高置信度) | | `threat_intelligence` | 最终 TPF 输出 | | `alerts` | 告警历史 | ## 配置说明 ### 前置条件 - Python 3.13 - Nmap 安装在 `C:\Program Files (x86)\Nmap\nmap.EXE` - 从 [nvd.nist.gov](https://nvd.nist.gov/developers/request-an-api-key) 获取的免费 NVD API 密钥 ### 安装依赖 ``` pip install -r requirements.txt ``` ### 配置目标 编辑 `targets.json`: ``` [ { "target_id": "TARGET-001", "url": "http://your-target.com", "business_criticality": "high", "internet_facing": true, "authorized": true, "scan_profile": "default" } ] ``` ## 运行流水线 ``` $env:NVD_API_KEY="your-key-here" python main.py python check_db.py ``` **流水线步骤:** ``` init_db() → creates/migrates SQLite schema (11 tables) asset_monitor.py → scans targets, discovers assets + technologies + WAF cisa_kev.py → fetches ~1500+ confirmed-exploited CVEs nvd_fetch.py → enriches CVEs with CVSS + EPSS + CPE version ranges exploit_db.py → checks Exploit-DB for public exploits per CVE matching.py → matches CVEs to assets (CPE version-aware) threat_pressure.py → computes TPF, generates alerts, writes output ``` ## 流水线流程 ``` targets.json │ ▼ Asset Monitor Phase 1: HTTP fingerprinting (vendor, product, server header) Phase 2: Nmap service + version detection Phase 3A: Technology detection (HTML, cookies, JS libs, headers) Phase 3B: WAF detection (Cloudflare, Akamai, AWS, F5, etc.) │ ▼ CISA KEV → NVD (CVSS + CPE ranges) + EPSS → Exploit-DB → Matching → TPF │ ▼ threat_intelligence_output.json ← sent to Prediction Model alerts.json ``` ## 威胁压力因子 (TPF) TPF 是一个乘数(1.0–2.0): ``` Final Risk = base_probability × threat_pressure_factor ``` **组成部分:** | 组件 | 条件 | 权重 | |---|---|---| | CVSS 评分 | ≥9.0 严重 | +0.20 | | CVSS 评分 | ≥7.0 高危 | +0.13 | | CVSS 评分 | ≥4.0 中危 | +0.07 | | EPSS 评分 | ≥0.7 | +0.20 | | EPSS 评分 | ≥0.4 | +0.13 | | EPSS 评分 | ≥0.1 | +0.07 | | KEV 存在性 | 始终(所有记录) | +0.13 | | 漏洞类型 | RCE | +0.20 | | 漏洞类型 | SQLi / 身份验证绕过 | +0.15 | | 漏洞类型 | 路径遍历 / SSRF | +0.12 | | 漏洞类型 | XSS | +0.08 | | 业务重要性 | 关键 | +0.20 | | 业务重要性 | 高 | +0.13 | | 业务重要性 | 中 | +0.07 | | 时效性 | KEV 添加时间 ≤30 天 | +0.10 | | 时效性 | KEV 添加时间 ≤90 天 | +0.06 | | 时效性 | KEV 添加时间 ≤365 天 | +0.03 | | 已知勒索软件 | 如果为真 | +0.07 | | 版本已确认 | 仅 CPE 范围 | +0.05 | | 公开漏洞利用 | Exploit-DB 已确认 | +0.10 | **告警级别:** | TPF | 告警级别 | |---|---| | ≥ 1.7 | 严重 (CRITICAL) | | ≥ 1.5 | 高危 (HIGH) | | ≥ 1.3 | 中危 (MEDIUM) | | < 1.3 | 低危 (LOW) | ## 版本确认 系统采用两次验证的方法来确认检测到的版本是否存在漏洞: **第一轮 — CPE 范围(高置信度)** 使用结构化的 NVD CPE 数据来检查 Nmap 检测到的版本是否落在易受攻击的范围内。TPF 增加 +0.05。报告为 `confirmation_method: "cpe_range"`。 **第二轮 — 文本搜索(中置信度,后备方案)** 当 NVD 没有结构化的 CPE 数据时,在 CVE 描述文本中搜索版本字符串。不增加 TPF 加成。报告为 `confirmation_method: "text_search"`。 **无匹配** `version_confirmed: false`,`confirmation_method: "none"`。 ## 数据来源 | 来源 | URL | 提供的内容 | |---|---|---| | CISA KEV | cisa.gov | 已确认被利用的漏洞 | | NVD | nvd.nist.gov | CVSS + CPE 版本范围 + 发布日期 | | EPSS | first.org | 30 天被利用概率 | | Exploit-DB | exploit-db.com | 公开漏洞利用可用性 | | Nmap | nmap.org | 存活服务版本检测 | ## 团队集成 ``` Pentest Model → Threat Intelligence Module (this) ↓ threat_intelligence_output.json ↓ Prediction Model → LLM Recommendations ``` 有关完整的字段文档,请参阅 `THREAT_INTELLIGENCE_OUTPUT_GUIDE.md`。 ## 法律声明 仅扫描您经授权测试的系统。演示目标(`testphp.vulnweb.com`、`testasp.vulnweb.com`)是由 Acunetix 提供的合法测试环境。
标签:CISA KEV, CPE版本匹配, CTI, CVE匹配, CVSS, EPSS, Exploit-DB, GPT, Nmap, NVD, Python, SQLite, Web资产, 公开漏洞利用, 威胁压力计算, 威胁情报, 实时处理, 密码管理, 开发者工具, 无后门, 毕业设计, 漏洞管理, 网络安全, 网络指纹识别, 自动化安全扫描, 虚拟驱动器, 资产监控, 逆向工具, 量化风险, 隐私保护