0xCyberLiTech/CVE
GitHub: 0xCyberLiTech/CVE
基于NVD数据源的轻量级CVE漏洞追踪仪表板,通过自动化采集与静态JSON分发实现零依赖的实时漏洞情报监控。
Stars: 0 | Forks: 0
Cybersécurité
• Linux Debian
• NVD / CVSS
## 关于与目标
**CVE Tracker** 是一个用于生产环境的漏洞监控仪表板,由 NIST 的官方 **NVD (National Vulnerability Database)** 数据源提供支持。
目标:实时显示发布的 CVE 及其 CVSS 评分、exploit 参考、CISA KEV 条目和时间演变——无需从浏览器发起任何 API 调用。
### 项目功能
- 📡 **自动收集** — cron 脚本每天通过 NVD API 检索 3 次 CVE
- 🔒 **服务端 API 密钥** — 存储在 nginx 中,从不向浏览器或脚本暴露
- 📦 **静态 JSON 文件** — 由 Apache/nginx 直接提供服务,零外部依赖
- 📊 **交互式仪表板** — 严重程度过滤、CVSS/日期/ID 排序、CSV 导出、演变图表
- 🕐 **最近更新** — 基于 NVD `lastModified` 的 7 天滑动窗口
### 在线演示
## 架构
```
flowchart TD
NVD["🌐 NVD — services.nvd.nist.gov\nAPI officielle NIST"]
subgraph SRV["🖥️ Serveur — Debian 13"]
direction TB
CRON["⏱️ cron-cve-fetch.sh\n3×/jour — bash + curl"]
PROXY["🔒 nginx /api/nvd/\nProxy local — injecte la clé API\ndepuis /etc/nginx/api-keys.conf"]
DATA["📦 /assets/data/\ncve-YYYY-MM.json mois complets\ncve-recent.json 7j lastModified\nindex.json liste des mois"]
RSYNC["🔄 rsync optionnel\n→ serveur web distant"]
CRON -->|"http://127.0.0.1/api/nvd/"| PROXY
PROXY -->|"HTTPS + apiKey header"| NVD
NVD -->|"JSON réponse"| PROXY
PROXY --> CRON
CRON -->|"Écriture atomique"| DATA
DATA -.->|"optionnel"| RSYNC
end
subgraph CLIENT["🌍 Navigateur Client"]
direction TB
HTML["cve.html + cve-fetcher.js"]
NOTE["✔ Aucun appel API NVD direct\n✔ Aucune clé API exposée\n✔ Zéro dépendance externe"]
HTML --- NOTE
end
DATA -->|"Fichiers JSON statiques HTTP"| CLIENT
```
### 核心安全原则:API 密钥绝不离开服务器
```
# /etc/nginx/api-keys.conf (绝对不要版本控制此文件)
set $nvd_api_key "votre-cle-api-ici";
```
```
# NVD 代理 — 仅可从 localhost 访问
location /api/nvd/ {
allow 127.0.0.1;
deny all;
proxy_pass https://services.nvd.nist.gov/rest/json/cves/2.0/;
proxy_set_header apiKey $nvd_api_key;
proxy_hide_header apiKey;
}
```
cron 脚本查询 `http://127.0.0.1/api/nvd/` — nginx 注入密钥并在响应中将其屏蔽。**浏览器和应用程序日志都看不到该密钥。**
## 仓库内容
```
CVE/
├── README.md
├── CHANGELOG.md
├── scripts/
│ ├── cron-cve-fetch.sh # Collecte quotidienne (3×/jour)
│ ├── backfill-cve.sh # Backfill historique (1 seule fois)
│ └── nginx-nvd-proxy.conf # Exemple config proxy nginx
└── docs/
└── data-format.md # Format des fichiers JSON générés
```
## 安装
### 1. 前置条件
```
apt-get install curl jq python3 nginx
```
### 2. NVD API 密钥(免费)
在 [https://nvd.nist.gov/developers/request-an-api-key](https://nvd.nist.gov/developers/request-an-api-key) 获取密钥
| 模式 | 配额 |
|------|-------|
| 无密钥 | 5 次请求 / 30 秒 |
| 有密钥 | 50 次请求 / 30 秒 |
### 3. 配置 nginx
```
# 创建密钥文件(绝对不要版本控制)
echo 'set $nvd_api_key "VOTRE_CLE_NVD";' > /etc/nginx/api-keys.conf
chmod 600 /etc/nginx/api-keys.conf
# 在您的 vhost 中包含该代理
# 将 scripts/nginx-nvd-proxy.conf 中的代码块复制到您的 vhost 中
nginx -t && systemctl reload nginx
```
### 4. 部署脚本
```
mkdir -p /opt/cve-tracker
cp scripts/cron-cve-fetch.sh /opt/cve-tracker/
cp scripts/backfill-cve.sh /opt/cve-tracker/
chmod 700 /opt/cve-tracker/*.sh
# 修改脚本中的 DATA_DIR
# DATA_DIR=/var/www/html/assets/data
```
### 5. 历史数据回填(仅执行一次)
```
/opt/cve-tracker/backfill-cve.sh >> /var/log/cve-backfill.log 2>&1
```
### 6. 自动化 Cron
```
# /etc/cron.d/cve-fetch
0 6 * * * root /opt/cve-tracker/cron-cve-fetch.sh >> /var/log/cve-fetch.log 2>&1
0 13 * * * root /opt/cve-tracker/cron-cve-fetch.sh >> /var/log/cve-fetch.log 2>&1
0 21 * * * root /opt/cve-tracker/cron-cve-fetch.sh >> /var/log/cve-fetch.log 2>&1
```
## 数据格式
### `cve-YYYY-MM.json`
包含 CVE 2.0 格式 NVD 漏洞的 JSON 数组:
```
[
{
"cve": {
"id": "CVE-2025-XXXXX",
"published": "2025-01-15T10:00:00.000",
"lastModified": "2025-01-16T08:00:00.000",
"vulnStatus": "Analyzed",
"descriptions": [
{ "lang": "en", "value": "Description de la vulnérabilité..." }
],
"metrics": {
"cvssMetricV31": [{
"cvssData": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
}
}]
},
"references": [
{ "url": "https://...", "tags": ["Exploit", "Third Party Advisory"] }
]
}
}
]
```
### `index.json`
自动生成的可用月份索引:
```
{
"generated": "2025-04-05T06:00:00Z",
"months": ["2025-04", "2025-03", "2025-02", "2025-01", "2024-12"]
}
```
### `cve-recent.json`
过去 7 天滑动窗口内修改的 CVE,按 `lastModified` 降序排列。格式与月度文件相同。
## 仪表板功能
| 功能 | 详情 |
|----------------|--------|
| **严重程度过滤** | CRITICAL / HIGH / MEDIUM / LOW |
| **排序** | 按日期、CVSS 评分、CVE ID |
| **搜索** | 针对 ID、描述、CWE 的全文搜索 |
| **时间段** | 月份/年份选择器 |
| **最近更新** | 7 天内修改的 CVE (NVD lastModified) |
| **CSV 导出** | 导出所有已过滤的 CVE |
| **指标** | 平均 CVSS、exploit 比率、CISA KEV、主要 CWE |
| **图表** | 每日发布演变 |
| **分布** | CRITICAL/HIGH/MEDIUM/LOW 比例条 |
| **风险指数** | 按严重程度加权的综合评分 |
## 安全性 — 本仓库中不包含的内容
```
✔ Aucune clé API NVD
✔ Aucune IP ou hostname d'infrastructure
✔ Aucun fichier JSON de données CVE (données live)
✔ Aucun token, mot de passe ou clé SSH
✔ Les chemins sont génériques — à adapter à votre serveur
```
| 🖥️ Infrastructure & Sécurité | 💻 Développement & Web | 🤖 Intelligence Artificielle |
|
|
|
|
🔒 由 0xCyberLiTech 提供的项目 • 与 Claude AI (Anthropic) 合作开发 🔒
标签:CISA KEV, CVE追踪, CVSS, Debian, GPT, NVD, PB级数据处理, XSS, 多模态安全, 威胁情报, 安全仪表盘, 安全运维, 密码管理, 应用安全, 开发者工具, 开源安全工具, 数据可视化, 渗透测试信息收集, 漏洞分析, 漏洞情报, 漏洞管理, 网络安全, 路径探测, 逆向工具, 逆向工程平台, 隐私保护