RaminNietzsche/CVE-Radar
GitHub: RaminNietzsche/CVE-Radar
一款自托管的多人漏洞监控平台,聚合多个公开安全数据源,帮助团队针对自身技术栈持续追踪和管理 CVE 风险。
Stars: 1 | Forks: 2
# CVE Radar
[](https://github.com/RaminNietzsche/CVE-Radar/actions/workflows/ci-app.yml)
[](https://sonarcloud.io/summary/new_code?id=RaminNietzsche_CVE-Radar)
[](https://codecov.io/gh/RaminNietzsche/CVE-Radar)
[](LICENSE)
[](package.json)
[](package.json)
[](https://hub.docker.com/r/raminnietzsche/cve-radar)
针对您的基础设施栈的多源 **CVE 和漏洞监控**。仅使用免费的公共 API(NVD、OSV、GitHub Advisories、GitLab Advisories、CISA KEV、Linux 发行版源、安全 RSS)。支持 **RTL/LTR** 界面,提供浅色、深色和系统主题,以及 **六种界面语言**。

*仪表盘:严重性摘要、各工具的 CVE 卡片(HAProxy、Redis 等)、图表、带有栈工具的统一侧边栏、数据源新鲜度以及扫描控件。刷新截图:运行 `npm run docs:product-demo`。*
| 语言 | README |
|----------|--------|
| English | 当前页面 |
| فارسی | [README.fa.md](README.fa.md) |
| العربية | [README.ar.md](README.ar.md) |
| Русский | [README.ru.md](README.ru.md) |
| 中文 | [README.zh.md](README.zh.md) |
| Français | [README.fr.md](README.fr.md) |
**文档:** [https://blog.raminnietzsche.ir/CVE-Radar/](https://blog.raminnietzsche.ir/CVE-Radar/) · [扩展文档](extended-docs/docs/index.md)(源码) · [术语表](extended-docs/docs/glossary.md)
```
make extended-docs-serve # local preview http://127.0.0.1:8000
```
## 功能
- **全面扫描** — NVD + OSV + GitHub + GitLab + CISA KEV + Alpine/Ubuntu/Debian/Red Hat/Amazon Linux 发行版源 + The Hacker News + TuxCare RSS
- **快速监控** — 定期执行 OSV + GitHub(+ RSS),无需等待 NVD 延迟
- **仪表盘** — 严重性甜甜圈图、类型柱状图、各工具状态
- **过滤器** — 严重性、类型、工具、搜索、排序(严重性 / 日期 / CVSS)
- **国际化 (i18n)** — 波斯语、阿拉伯语、英语、俄语、中文、法语(界面及本地化的日期/数字格式)
- **主题** — 浅色 / 深色 / 系统
- **可选的波斯语翻译** — 通过 MyMemory / LibreTranslate / Ollama 在服务器端进行 EN→FA 翻译
- **数据源新鲜度** — 侧边栏显示每个数据源最后一次成功获取的时间
- **首次运行设置向导** — 在进入仪表盘前配置栈、设置和源 (v1.1.0)
- **扫描缓存** — 当栈匹配时,重新加载会恢复上一次扫描;仪表盘上显示缓存结果横幅
- **GitHub Models prompts** — 位于 [`.github/prompts/`](.github/prompts/README.md) 的可复用 AI prompts,用于引导和运维
- **多渠道监控告警** — 通过 `NotificationService` 支持 Slack、Discord、Telegram、电子邮件和通用 webhook
- **自托管企业级功能** — RBAC (`API_ROLE`)、可选的 PostgreSQL 多租户、扫描历史/趋势、Redis 缓存、Prometheus 指标、气隙镜像、K8s 栈发现
- **SSE 扫描流** — 使用 `POST /api/v1/scan/stream` 在全面扫描期间接收进度事件
**最新发布:** [v1.3.0](https://github.com/RaminNietzsche/CVE-Radar/releases/tag/v1.3.0) · 维护者指南:[docs/RELEASE.md](docs/RELEASE.md)
## 路线图
正在进行的工作在 [GitHub Issues](https://github.com/RaminNietzsche/CVE-Radar/issues) 中跟踪。当前的史诗(epics):
| 领域 | Epic | 备注 |
|------|------|-------|
| E2E 测试、夹具、覆盖率门禁 | [#78](https://github.com/RaminNietzsche/CVE-Radar/issues/78) | Playwright CSV 导出 + 约 257 个测试用例(约 94% 行覆盖率);计划增加更多集成镜像 |
| SonarCloud 可维护性 | [#134](https://github.com/RaminNietzsche/CVE-Radar/issues/134)–[#139](https://github.com/RaminNietzsche/CVE-Radar/issues/139) | 代码异味清理 |
基于 MIT 协议发布(无企业版分级):多渠道通知([#124](https://github.com/RaminNietzsche/CVE-Radar/issues/124), [#127](https://github.com/RaminNietzsche/CVE-Radar/issues/127))、Drizzle schema 基础([#125](https://github.com/RaminNietzsche/CVE-Radar/issues/125), [#128](https://github.com/RaminNietzsche/CVE-Radar/issues/128))、RBAC、多租户、PostgreSQL 扫描历史、Redis 共享缓存([#66](https://github.com/RaminNietzsche/CVE-Radar/issues/66))、Prometheus 指标、EPSS、气隙镜像 — 参见 [扩展文档第 11 章](extended-docs/docs/content/en/11-self-hosted.md)。
想要帮忙吗?领取一个 **`good first issue`** 标签,或者在提交 PR 之前在 epic 下发表评论。
## 快速开始
```
git clone https://github.com/RaminNietzsche/CVE-Radar.git
cd CVE-Radar
make setup
make dev
```
| 服务 | URL |
|---------|-----|
| Web UI | http://localhost:5173 |
| API 健康状态 | http://localhost:3001/api/health |
### 可选环境变量 (`.env`)
```
NVD_API_KEY= # https://nvd.nist.gov/developers/request-an-api-key
GITHUB_TOKEN= # higher GitHub Advisories rate limit
SCAN_DAYS=60
TRANSLATE_ENABLED=true
# RATE_LIMIT_SCAN_PER_MIN=12
# RATE_LIMIT_WATCH_PER_MIN=120
```
从 [`.env.example`](.env.example) 复制。**切勿提交 `.env` 文件。**
## 数据源
| 来源 | 作用 |
|--------|------|
| [NVD](https://nvd.nist.gov) | 官方 CVE 记录(全面扫描) |
| [OSV](https://osv.dev) | 开源软件包漏洞 |
| [GitHub Advisories](https://github.com/advisories) | GHSA / 经过审核的安全公告 |
| [GitLab Advisories](https://gitlab.com/gitlab-org/advisories-community) | 社区安全公告数据库(全面扫描 + 监控) |
| [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | 已知被利用的漏洞 |
| Alpine secdb | 映射栈工具的 OS 软件包 CVE |
| Ubuntu USN | Ubuntu 安全公告(预获取的 CVE 映射) |
| Red Hat Security Data | CVE 详情扩充(描述、CVSS) |
| Debian Security Tracker | Debian 软件包安全公告(可选启用) |
| Amazon Linux ALAS | 针对 Amazon Linux 软件包的 ALAS 更新信息 |
| MITRE CVE API | 可选的 JSON 5.x 详情扩充 (`MITRE_CVE_ENABLED`) |
| [The Hacker News](https://thehackernews.com) | 安全新闻 RSS |
| [TuxCare](https://tuxcare.com) | 安全博客 RSS |
## API
| 方法 | 路径 | 描述 |
|--------|------|-------------|
| `GET` | `/api/health` | 存活状态、版本、环境变量标志(运维可加 `?detailed=true`) |
| `GET` | `/metrics` | Prometheus 指标(当启用 `METRICS_ENABLED` 时) |
| `GET` | `/api/capabilities` | 限制、功能、翻译语言环境 |
| `GET` | `/api/sources` | 内置 + 默认的 RSS 目录 |
| `GET` | `/api/openapi.json` | OpenAPI 3.1 规范 |
| `POST` | `/api/scan/validate` | 验证栈/源(不执行扫描) |
| `POST` | `/api/scan` | 全面扫描(`stack`、`translate`、`locale`、`enabledBuiltin`、`customFeeds`) |
| `POST` | `/api/watch` | 监控轮询 + `newVulns` / `hasNew` |
| `POST` | `/api/translate` | 批量 CVE 文本翻译 |
| `POST` | `/api/v1/scan/stream` | 基于 SSE 的全面扫描 (v1) |
| `GET` | `/api/v1/scans/history` | 租户扫描历史 |
| `GET/POST` | `/api/v1/tenants/stacks` | 已保存栈的 CRUD 操作 |
| `GET` | `/api/v1/discovery/kubernetes` | K8s 镜像 → 工具发现(可选启用) |
核心扫描/元数据路由也存在于 `/api/v1/…` 下。完整参考:[扩展文档 API 章节](extended-docs/docs/content/en/06-api.md) · 运行 `make extended-docs-serve` → API Explorer 标签页。
## 生产部署
```
make build
make start # serves API + static dist on PORT (default 3001)
```
### Docker
**Docker Hub:** [`raminnietzsche/cve-radar`](https://hub.docker.com/r/raminnietzsche/cve-radar) · Hub 副本:[`docs/dockerhub/`](docs/dockerhub/overview.md)
```
docker pull raminnietzsche/cve-radar:latest
docker run --rm -p 3001:3001 raminnietzsche/cve-radar:latest
# 或使用 compose:docker compose -f docker-compose.hub.yml up -d
```
从源码构建:
```
docker compose up --build
# UI + API → http://localhost:3001
```
详情:[`docs/DOCKER.md`](docs/DOCKER.md)。
### 自托管运维
所有高级功能 — 审计日志、RBAC、多租户扫描历史、Prometheus 指标、EPSS、合规性映射、Kubernetes 发现、离线镜像 — 均**包含在 MIT 协议下**,无任何企业版分级。**多语言指南:** 扩展文档[第 11 章](extended-docs/docs/content/en/11-self-hosted.md)(en · fa · ar · ru · zh · fr) · 维护者拆分版本:[`docs/self-hosted/`](docs/self-hosted/README.md)。
### GitHub Pages (扩展文档)
已发布的站点:[blog.raminnietzsche.ir/CVE-Radar/](https://blog.raminnietzsche.ir/CVE-Radar/)。Pages 部署遇到问题(404)?请参见 [docs/GITHUB_PAGES.md](docs/GITHUB_PAGES.md)。
栈示例:[`examples/stack.json`](examples/stack.json)。OpenAPI:[`docs/OPENAPI.md`](docs/OPENAPI.md)。
## 项目结构
完整结构图请参见 **[ARCHITECTURE.md](ARCHITECTURE.md)**。
```
├── src/ # React + Vite UI (see src/README.md)
├── server/ # Express API + feeds (see server/README.md)
├── extended-docs/ # Canonical MkDocs site (6 languages, CI deploy)
├── docs/ # ADRs, Docker/Pages/OpenAPI guides (see docs/README.md)
├── tests/ # API + unit tests
├── scripts/ # Tooling (screenshots, OpenAPI check, icons)
├── examples/ # Sample stack JSON
├── public/ # Static assets (favicon, brand icons)
├── .github/ # CI, Pages, Docker Hub, CODEOWNERS
└── Makefile
```
## Makefile
```
make help
make check # lint + typecheck + test
make test
make docs-serve # optional: MkDocs Material site
```
## 免责声明
本工具**聚合公共数据源**以提高安全意识。请务必根据供应商的安全公告和您的变更管理流程验证发现的结果。RSS 条目可能无法与 CVE ID 建立 1:1 的映射关系。
## 贡献
请参见 [CONTRIBUTING.md](CONTRIBUTING.md)、[SECURITY.md](SECURITY.md)、[CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) 和 [CHANGELOG.md](CHANGELOG.md)。
## 许可证
[MIT](LICENSE)
标签:CVE, Docker, Express, React, Syscalls, 子域名突变, 安全防御评估, 搜索引擎查询, 数字签名, 测试用例, 漏洞监控, 自动化攻击, 自托管, 请求拦截