Bạn là một chuyên gia bảo mật và mỗi ngày phải đối mặt với hàng chục, thậm chí hàng trăm lỗ hổng CVE cần đánh giá. Việc phân tích một CVE đơn lẻ đã đòi hỏi phải mở hàng tá tab trình duyệt — NVD để tra điểm CVSS, EPSS để xem xác suất khai thác, CISA KEV để kiểm tra trạng thái khai thác thực tế, GitHub để tìm bản vá, VirusTotal để quét mã độc… Đối với 50 CVE, điều đó tiêu t cả cả một ngày làm việc. CVE MCP Server chính là giải pháp: một máy chủ MCP (Model Context Protocol) cấp production-grade được xây dựng bằng Python, giúp Claude trở thành một chuyên gia phân tích bảo mật toàn diện với 27 công cụ kết nối 21 nguồn dữ liệu bảo mật khác nhau, chỉ qua một câu hỏi duy nhất.
🏗️ Kiến trúc hệ thống
CVE MCP Server sử dụng kiến trúc giao tiếp qua stdio với MCP Client (như Claude Desktop hoặc Claude Code). Toàn bộ traffic chỉ đi ra ngoài qua HTTPS — không mở port inbound nào.

Sơ đồ kiến trúc bao gồm các thành phần chính:
- 27 MCP Tools — tập hợp đầy đủ các công cụ bảo mật
- Composite Risk Engine — bộ máy tính điểm rủi ro tổng hợp từ 0–100
- SQLite Cache + Audit Log — bộ nhớ đệm cục bộ và nhật ký kiểm toán
- Async HTTP Client (httpx) — với Rate Limiter và Response Cache tích hợp
- Broker tầng API — kết nối đến 3 nhóm nguồn dữ liệu: Vulnerability Intelligence, Network Intelligence, và Threat Intelligence
Toàn bộ hoạt động thông qua giao thức Model Context Protocol qua stdio, với mọi request đều là HTTPS outbound. API key được load từ environment variables và không bao giờ được ghi vào log.
🔍 Danh mục 27 Công cụ chi tiết
Toàn bộ 27 công cụ được chia thành 5 nhóm chức năng. Dưới đây là phân tích từng nhóm:
Nhóm 1: Core Vulnerability Intelligence — Thông tin lỗ hổng cốt lõi (8 công cụ)
Đây là nhóm công cụ nền tảng, cho phép truy vấn, tìm kiếm và phân tích chi tiết các CVE.
| Công cụ | Mô tả | Cần API Key? | Ví dụ sử dụng |
|---|---|---|---|
lookup_cve |
Truy vấn chi tiết bản ghi CVE từ NVD bao gồm điểm CVSS, CWE, sản phẩm bị ảnh hưởng, tài liệu tham khảo và timeline | Miễn phí / Không bắt buộc (khuyến nghị có) | lookup_cve("CVE-2024-3400") |
search_cves |
Tìm kiếm CVE trên NVD theo từ khóa, tên sản phẩm, mức độ nghiêm trọng hoặc khoảng thời gian | Miễn phí / Không bắt buộc | search_cves(keyword="Apache Log4j", severity="CRITICAL") |
get_epss_score |
Lấy điểm EPSS — xác suất khai thác (0–1) và phần trăm xếp hạng cho một hoặc nhiều CVE | Miễn phí / Không cần | get_epss_score("CVE-2024-3400") |
check_kev_status |
Kiểm tra CVE có nằm trong danh sách CISA Known Exploited Vulnerabilities hay không | Miễn phí / Không cần | check_kev_status("CVE-2021-44228") |
get_cvss_details |
Phân tích và giải thích vector string CVSS v3.1 với chi tiết từng metric | Miễn phí / Không cần | get_cvss_details("CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H") |
get_cwe_info |
Tra cứu chi tiết CWE (Common Weakness Enumeration) theo ID từ database nhúng | Miễn phí / Không cần | get_cwe_info("CWE-79") |
get_cve_references |
Trích xuất và phân loại tất cả link tham chiếu cho một CVE (bản vá, khuyến cáo, exploit) | Miễn phí / Không bắt buộc | get_cve_references("CVE-2023-44487") |
bulk_cve_lookup |
Truy vấn hàng loạt tối đa 20 CVE trong một lần gọi, với enrichment song song | Miễn phí / Không bắt buộc | bulk_cve_lookup(["CVE-2024-3400", "CVE-2023-44487"]) |
Nhóm 2: Exploit & Attack Intelligence — Thông tin khai thác và tấn công (4 công cụ)
Nhóm này tập trung vào việc xác địnhexistence khai thác, ánh xạ chiến thuật tấn công:
| Công cụ | Mô tả | Cần API Key? | Ví dụ |
|---|---|---|---|
search_exploits |
Tìm kiếm trên GitHub các proof-of-concept khai thác và mã exploit công khai | GITHUB_TOKEN (tùy chọn) | search_exploits("CVE-2024-3400") |
get_mitre_techniques |
Ánh xạ CVE hoặc CWE sang các kỹ thuật MITRE ATT&CK, chiến thuật và biện pháp giảm thiểu | Miễn phí / Không cần | get_mitre_techniques("CVE-2021-44228") |
check_poc_availability |
Xác định xem đã có mã proof-of-concept công khai cho CVE trên nhiều nguồn khác nhau chưa | GITHUB_TOKEN (tùy chọn) | check_poc_availability("CVE-2024-3400") |
get_attack_patterns |
Truy xuất chi tiết mẫu tấn công CAPEC liên quan đến một CWE hoặc CVE | Miễn phí / Không cần | get_attack_patterns("CWE-89") |
Nhóm 3: Advanced Risk & Reporting — Đánh giá rủi ro và báo cáo nâng cao (4 công cụ)
Nhóm công cụ then chốt giúp tự động hóa việc xếp hạng ưu tiên và tạo báo cáo:
| Công cụ | Mô tả | Cần API Key? | Ví dụ |
|---|---|---|---|
calculate_risk_score |
Tính điểm rủi ro tổng hợp 0–100 dựa trên CVSS, EPSS, KEV status và PoC availability | Miễn phí / Không bắt buộc | calculate_risk_score("CVE-2024-3400") |
generate_risk_report |
Tạo báo cáo bảo mật executive được định dạng cho một hoặc nhiều CVE với khuyến nghị | Miễn phí / Không bắt buộc | generate_risk_report(["CVE-2024-3400"]) |
prioritize_cves |
Xếp hạng danh sách CVE theo điểm rủi ro tổng hợp để ưu tiên xử lý | Miễn phí / Không bắt buộc | prioritize_cves(["CVE-2024-3400", "CVE-2023-4966"]) |
get_trending_cves |
Truy xuất các CVE đang trending dựa trên điểm EPSS cao và mới được thêm vào KEV | Miễn phí / Không cần | get_trending_cves(days=7, min_epss=0.5) |
Nhóm 4: Network Intelligence — Thông tin mạng (4 công cụ)
Công cụ phục vụ điều tra mạng, kiểm tra IP, domain:
| Công cụ | Mô tả | Cần API Key? | Ví dụ |
|---|---|---|---|
lookup_ip_reputation |
Kiểm tra lịch sử abuse của địa IP và điểm confidence qua AbuseIPDB | ABUSEIPDB_API_KEY | lookup_ip_reputation("185.220.101.34") |
check_ip_noise |
Truy vấn GreyNoise về hoạt động scan/attack của IP, phân loại và CVE liên quan | GREYNOISE_API_KEY | check_ip_noise("185.220.101.34") |
shodan_host_lookup |
Lấy thông tin port mở, dịch vụ, banner và lỗ hổng của IP qua Shodan | SHODAN_API_KEY | shodan_host_lookup("8.8.8.8") |
passive_dns_lookup |
Truy xuất dữ liệu phân giải DNS lịch sử cho domain từ CIRCL Passive DNS | CIRCL_PDNS_USER + CIRCL_PDNS_PASSWORD | passive_dns_lookup("example.com") |
Nhóm 5: Threat Intelligence — Thông tin mối đe dọa (4 công cụ)
Phục vụ phân tích mã độc, IOC (Indicator of Compromise) và ransomware:
| Công cụ | Mô tả | Cần API Key? | Ví dụ |
|---|---|---|---|
virustotal_lookup |
Phân tích hash file, URL, domain hoặc IP bằng hơn 70 antivirus engine | VIRUSTOTAL_API_KEY | virustotal_lookup(hash="44d88612...") |
search_malware |
Tìm kiếm MalwareBazaar cho sample mã độc theo hash, tag hoặc signature | ABUSECH_AUTH_KEY (tùy chọn) | search_malware(tag="Emotet") |
search_iocs |
Truy vấn ThreatFox để tìm Indicator of Compromise liên quan đến các họ malware | ABUSECH_AUTH_KEY (tùy chọn) | search_iocs(malware="CobaltStrike") |
check_ransomware |
Tra cứu địa chỉ thanh toán ransomware và dữ liệu giao dịch từ Ransomwhere | Miễn phí / Không cần | check_ransomware(address="bc1q...") |
Nhóm 6: DevSecOps — Bảo mật chuỗi cung ứng phần mềm (3 công cụ)
Nhóm công cụ dành cho DevSecOps, kiểm tra dependency và quét URL:
| Công cụ | Mô tả | Cần API Key? | Ví dụ |
|---|---|---|---|
scan_dependencies |
Quét tên package và phiên bản trên OSV.dev để tìm lỗ hổng đã biết | Miễn phí / Không cần | scan_dependencies(ecosystem="PyPI", packages={"requests": "2.28.0"}) |
scan_github_advisories |
Tìm kiếm GitHub Security Advisories theo ecosystem, package hoặc severity | GITHUB_TOKEN (tùy chọn) | scan_github_advisories(ecosystem="pip", package="django") |
urlscan_check |
Gửi URL để quét hoặc lấy kết quả quét trước đó từ URLScan.io | URLSCAN_API_KEY | urlscan_check("https://suspicious-site.com") |
📊 Cơ chế tính điểm rủi ro (Risk Score) chi tiết
Một trong những tính năng nổi bật nhất là bộ máy tính điểm rủi ro tổng hợp từ 0 đến 100. Công thức được thiết kế phản ánh đúng mức độ ưu tiên trong thực tế:
Công thức tính
Risk Score = (CVSS × 0.20) + (EPSS × 0.35) + (KEV × 0.30) + (PoC × 0.15)
| Thành phần | Trọng số | Ý nghĩa phản ánh |
|---|---|---|
| CVSS v3.1 Base Score | 20% | Mức độ nghiêm trọng lý thuyết xấu nhất |
| EPSS Probability | 35% | Xác suất khai thác thống kê trong 30 ngày tới |
| CISA KEV Status | 30% | Đã xác nhận khai thác thực tế trong môi trường thực |
| PoC Availability | 15% | Mã exploit công khai làm giảm rào cản cho kẻ tấn công |
Hệ số tăng cường (Boost Multipliers)
- KEV + active PoC → ×1.15
- CVSS ≥ 9.0 + EPSS > 0.7 → ×1.10
- Published < 7 ngày trước → ×1.05
- Điểm tối đa được giới hạn ở 100.
Lý giải trọng số
EPSS nhận trọng số cao nhất 35% vì nó là chỉ số dự đoán tốt nhất về khả năng khai thác thực tế — vượt xa CVSS đơn thuần. Một CVE có CVSS 10.0 nhưng EPSS chỉ 0.01 thì trên lý thuyết rất nguy hiểm nhưng thực tế lại rất ít khả năng bị khai thác. KEV ở mức 30% vì đây là dữ liệu thực tế xác nhận (ground truth). CVSS ở 20% cung cấp ngữ cảnh mức độ nghiêm trọng cho các CVE mới chưa đủ dữ liệu EPSS. PoC ở 15% phản ánh việc code khai thác công khai thúc đẩy tấn công trong thực tế.
Nhãn phân loại rủi ro
| Điểm | Nhãn | Hành động khuyến nghị |
|---|---|---|
| 0 – 25 | LOW | Lên lịch vá ở kỳ bảo trì tiếp theo |
| 26 – 50 | MEDIUM | Vá trong vòng 30 ngày theo SLA |
| 51 – 75 | HIGH | Vá trong vòng 7 ngày; báo cáo lên team lead |
| 76 – 100 | CRITICAL | Vá trong vòng 24–48 giờ. Khẩn cấp. |
🌐 21 Nguồn dữ liệu được tích hợp
Dự án kết nối đến 21 nguồn dữ liệu bảo mật khác nhau:
| # | Nguồn | Dữ liệu cung cấp | Xác thực | Giới hạn (Free) |
|---|---|---|---|---|
| 1 | NVD | Chi tiết CVE, CVSS, CWE, CPE | apiKey header (tùy chọn) | 5 req/30s (50 với key) |
| 2 | EPSS | Xác suất và phần trăm khai thác | Không | 1.000 req/min |
| 3 | CISA KEV | Danh mục CVE đang được khai thác | Không | File tĩnh |
| 4 | OSV.dev | Lổ hổng package open-source | Không | Không giới hạn |
| 5 | GitHub Advisories | GHSA advisories, bản vá, phiên bản ảnh hưởng | Bearer token | 60/hr (5.000 với PAT) |
| 6 | MITRE ATT&CK | TTPs, kỹ thuật, biện pháp giảm thiểu | Không | Không giới hạn |
| 7 | AbuseIPDB | IP abuse confidence, reports, ISP, geo | Key header | 1.000 checks/ngày |
| 8 | GreyNoise | Hoạt động scan/attack IP, phân loại | key header | 50 queries/tuần |
| 9 | Shodan | Port mở, dịch vụ, banner, CVE | key query param | Basic lookups |
| 10 | VirusTotal | Kết quả multi-AV scan, reputation | x-apikey header | 500/ngày, 4/phút |
| 11 | MalwareBazaar | Sample mã độc, hash, signature | Auth-Key header | Fair use |
| 12 | ThreatFox | IOC liên quan đến họ malware | Auth-Key header | Fair use |
| 13 | Ransomwhere | Địa chỉ BTC ransomware, giao dịch | Không | Không giới hạn |
| 14 | URLScan.io | Quét URL, screenshot, DOM | API-Key header | 5.000 scan/ngày |
| 15 | CIRCL PDNS | Bản ghi passive DNS lịch sử | HTTP Basic Auth | Partner access |
| 16 | GitHub Code Search | Tìm kiếm repo PoC exploit | Bearer token | Chia sẻ GHSA |
| 17 | Exploit-DB | Database exploit công khai (CSV) | Không | Không giới hạn |
| 18 | Nuclei Templates | Template phát hiện cộng đồng | Không | Không giới hạn |
| 19 | MSRC | Microsoft security advisories | Không | Không giới hạn |
| 20 | Red Hat Security | Red Hat CVE advisories | Không | Không giới hạn |
| 21 | Ubuntu Security | Ubuntu CVE tracker | Không | Không giới hạn |
📦 Cài đặt chi tiết
Yêu cầu trước
- Python 3.10+ (khuyến nghị 3.11 hoặc 3.12)
- pip hoặc uv package manager
- Git để clone repository
- Terminal có quyền truy cập environment variables
Cài đặt từng bước
# 1. Clone repository
git clone https://github.com/mukul975/cve-mcp-server.git
cd cve-mcp-server
# 2. Tạo và kích hoạt virtual environment
python -m venv venv
# macOS / Linux:
source venv/bin/activate
# Windows (PowerShell):
.\venv\Scripts\Activate.ps1
# Windows (CMD):
venv\Scripts\activate.bat
# 3. Cài đặt dependencies
pip install -e .
# 4. Copy và cấu hình biến môi trường
cp .env.example .env
# Chỉnh sửa .env với API keys
# 5. Kiểm tra server khởi động
python -m cve_mcp.server
Cài đặt với uv (nhanh hơn)
git clone https://github.com/mukul975/cve-mcp-server.git
cd cve-mcp-server
uv venv
source .venv/bin/activate # hoặc .venv\Scripts\activate trên Windows
uv pip install -e .
cp .env.example .env
Cấu hình Claude Desktop
Tạo/chỉnh file JSON tại:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"cve-mcp": {
"command": "python",
"args": ["-m", "cve_mcp.server"],
"cwd": "/absolute/path/to/cve-mcp-server",
"env": {
"NVD_API_KEY": "your-key-here",
"GITHUB_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx",
"ABUSEIPDB_KEY": "your-abuseipdb-key",
"GREYNOISE_API_KEY": "your-greynoise-key",
"SHODAN_KEY": "your-shodan-key"
}
}
}
}
⚠️ Quan trọng: Luôn sử dụng đường dẫn tuyệt đối. Thoát hoàn toàn Claude Desktop (Cmd+Q / Alt+F4) sau khi thay đổi config — chỉ reload là không đủ.
Cấu hình Claude Code
# Setup cơ bản
claude mcp add cve-mcp -- python -m cve_mcp.server
# Với biến môi trường từ file .env
claude mcp add cve-mcp --env-file .env -- python -m cve_mcp.server
# Kiểm tra kết nối
claude mcp list
🔑 Thiết lập API Keys theo tầng ưu tiên
Tier 1: Ưu tiên cao (miễn phí, truy cập ngay, phủ sóng tối đa)
| Biến ENV | Kích hoạt | Giới hạn Free Tier |
|---|---|---|
NVD_API_KEY |
Tra cứu NVD nhanh 10× (50 req/30s thay vì 5) | 50 requests/30 giây |
GITHUB_TOKEN |
GitHub Advisory search + PoC search | 5.000 requests/giờ |
Tier 2: Khuyến nghị (tài khoản miễn phí, giá trị cao)
| Biến ENV | Kích hoạt | Giới hạn Free Tier |
|---|---|---|
ABUSEIPDB_KEY |
IP reputation lookups | 1.000 checks/ngày |
VIRUSTOTAL_KEY |
Quét file/URL/domain/IP với 70+ AV engine | 500/ngày, 4/phút |
GREYNOISE_API_KEY |
IP noise/scan activity intelligence | 50 queries/tuần (community) |
SHODAN_KEY |
Host/port/service reconnaissance | Basic host lookups |
Tier 3: Tùy chọn (mở rộng thông tin)
| Biến ENV | Kích hoạt | Giới hạn Free Tier |
|---|---|---|
URLSCAN_KEY |
URL scanning và website analysis | 5.000 public scans/ngày |
CIRCL_PDNS_USER / CIRCL_PDNS_PASS |
CIRCL Passive DNS lookups | Partner access only |
⚡ Zero-key start: 8 công cụ hoạt động mà không cần bất kỳ API key nào — EPSS, CISA KEV, OSV.dev, MITRE ATT&CK, CWE lookups, CVSS parsing, Ransomwhere và NVD (với tốc độ giảm). Bạn có thể bắt đầu sử dụng ngay và bổ sung key dần dần.
💬 Ví dụ sử dụng thực tế
Kịch bản 1: “Có nên vá Log4Shell ngay không?”
Bạn hỏi: “Phân tích CVE-2021-44228 (Log4Shell) xem có cần vá ngay không. Cho tôi điểm rủi ro và khuyến nghị.”
Claude sẽ tự động điều phối nhiều công cụ:
→ lookup_cve("CVE-2021-44228")
CVSS 3.1: 10.0 (CRITICAL) | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
→ get_epss_score("CVE-2021-44228")
EPSS: 0.97531 (97.5%) | Percentile: 99.99%
→ check_kev("CVE-2021-44228")
✅ IN CISA KEV — Added 2021-12-10 | Known ransomware use: Yes
→ check_poc_exists("CVE-2021-44228")
✅ WEAPONIZED — 300+ public PoC repositories found
→ calculate_risk_score("CVE-2021-44228")
Risk Score: 97/100 (CRITICAL) | Urgency: PATCH IMMEDIATELY
Claude trả lời: “CVE-2021-44228 đạt 97/100 (CRITICAL). Remote code execution trong Apache Log4j, CVSS 10.0, xác suất EPSS 97.5%, xác nhận khai thác thực tế trong CISA KEV bao gồm chiến dịch ransomware, hơn 300 exploit công khai. Vá ngay lập tức.”
Kịch bản 2: “Quét requirements.txt Python”
Bạn hỏi: “Quét các dependency: requests==2.28.0, flask==2.2.0, django==3.2.0, pillow==9.0.0, cryptography==37.0.0”
→ scan_dependencies(ecosystem="PyPI", packages={...})
Found 12 vulnerabilities across 4 packages
Claude trả lời với khuyến nghị nâng cấp cụ thể cho từng package có lỗ hổng.
Kịch bản 3: “Điều tra IP khả nghi”
Bạn hỏi: “Điều tra IP khả nghi 185.220.101.34 — có phải mã độc không?”
→ check_ip_reputation("185.220.101.34")
AbuseIPDB Confidence: 100% | Reports: 4.832 | ISP: Tor Exit Node
→ check_ip_noise("185.220.101.34")
GreyNoise: MALICIOUS | Tags: [Tor Exit Node, Web Scanner]
CVEs targeted: CVE-2024-3400, CVE-2023-46805
→ shodan_host_lookup("185.220.101.34")
Open ports: 22, 80, 443, 9001 | OS: Linux
Kịch bản 4: “Tạo báo cáo bảo mật executive”
Bạn hỏi: “Tạo báo cáo bảo mật executive cho: CVE-2024-3400, CVE-2023-44487, CVE-2023-4966, CVE-2024-21887”
Claudy sẽ biên soạn từ NVD, EPSS, KEV, PoC availability, MITRE ATT&CK mapping và tạo: bảng xếp hạng rủi ro, timeline khắc phục, tóm tắt executive.
🏛️ Chi tiết cấu trúc source code
src/cve_mcp/
├── server.py # FastMCP server — tất cả 27 @mcp.tool() definitions
├── config.py # Cấu hình môi trường và API base URLs
├── models.py # Pydantic models (CVERecord, KEVEntry, EPSSScore, ...)
├── audit.py # Rotating audit log (50MB, 5 backups)
├── api/
│ ├── nvd_client.py # NVD REST API v2.0
│ ├── osv_client.py # OSV.dev package vulnerability API
│ ├── epss_client.py # FIRST EPSS API
│ ├── kev_client.py # CISA KEV catalog
│ ├── ip_intel.py # AbuseIPDB + GreyNoise
│ ├── domain_intel.py # crt.sh + CIRCL passive DNS
│ ├── shodan_client.py # Shodan host intelligence
│ ├── hash_intel.py # MalwareBazaar + VirusTotal
│ ├── url_safety.py # URLScan.io
│ ├── malware_intel.py # ThreatFox IOC lookup
│ ├── ransomware_intel.py# Ransomwhere Bitcoin address lookup
│ ├── exploit_intel.py # GitHub PoC/exploit search
│ ├── vendor_advisory.py # MSRC + Red Hat + Ubuntu advisories
│ ├── attack_mapping.py # MITRE ATT&CK STIX mapping
│ ├── cve_timeline.py # CVE event timeline builder
│ ├── dependency_scan.py # OSV-based dependency scanning
│ ├── poc_checker.py # GitHub + Exploit-DB + Nuclei PoC search
│ ├── report_generator.py# Vuln report + CVE comparison matrix
│ └── rate_limiter.py # Token bucket rate limiter cho NVD
├── cache/
│ └── sqlite_cache.py # Async SQLite cache với per-key TTL
└── utils/
├── validators.py # CVE ID normalization, IP/hash validation
└── risk_scorer.py # Composite risk score computation
Chiến lược Caching
Dữ liệu được cache cục bộ trên SQLite với TTL riêng cho từng loại:
| Tài nguyên | TTL (Thời gian sống) |
|---|---|
| CVE records (NVD) | 1 giờ |
| EPSS scores | 6 giờ |
| KEV catalog | 1 giờ |
| IP / domain intel | 1 giờ |
| Exploit-DB CSV | 24 giờ |
| ATT&CK STIX data | 24 giờ |
| Ransomware intel | 24 giờ |
Audit Log
Mỗi lần gọi tool đều được ghi vào ~/.cve-mcp/audit.log. Ví dụ format:
{
"timestamp": "2026-04-14T10:23:45.123Z",
"tool": "lookup_cve",
"parameters": {"cve_id": "CVE-2024-3400"},
"duration_ms": 342,
"cache_hit": false,
"status": "ok"
}
API keys và response payloads không bao giờ được ghi vào audit log.
🔐 Bảo mật và Quyền riêng tư
Dữ liệu rời khỏi máy của bạn
- Chỉ HTTPS outbound — không mở port inbound, không telemetry
- CVE IDs, IPs, hashes, domains và tên package được gửi đến respective API để tra cứu
- Phản hồi API được cache cục bộ trong SQLite — dữ liệu cached luôn nằm trên máy bạn
Chặn Private IP
Tất cả công cụ network intelligence khóa các dải IP private và reserved trước khi gọi API:
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16(RFC 1918)127.0.0.0/8(loopback),169.254.0.0/16(link-local)::1,fc00::/7(IPv6 private)
Bảo vệ API Key
- Keys chỉ được load từ environment variables — không hardcode
- File
.envđược gitignore - Keys không bao giờ ghi log, cache hoặc đưa vào audit entries
An toàn XML
defusedxml được sử dụng cho mọi việc parse XML để ngăn chặn tấn công XML bomb (billion laughs, XXE injection).
🧪 Chạy Tests
# Chạy full test suite
pytest tests/ -v
# Chạy specific test files
pytest tests/test_validators.py tests/test_risk_scorer.py -v
# Chạy với coverage
pytest tests/ -v --cov=src/cve_mcp --cov-report=term-missing
Test với MCP Inspector
npx @modelcontextprotocol/inspector python -m cve_mcp.server
Mở tại http://localhost:6274 — test tương tác từng tool, xem input schema và inspect response format.
Phạm vi tests bao gồm
- Unit tests: Tính toán risk score, parse CVSS vector, validation input
- Integration tests: Tool registration, parameter validation, error handling khi thiếu key
- Cache tests: SQLite cache writes, TTL expiration, cache hit/miss
- Security tests: Chặn private IP, bảo vệ XML bomb (defusedxml), sanitize input
🗺️ Những gì Server KHÔNG làm
Để minh bạch, dự án nêu rõ các giới hạn:
- Không active scanning — chỉ lookup/intelligence, không quét hạ tầng của bạn
- Không write operations — chỉ đọc từ API ngoài (trừ URLScan submissions)
- Không hỗ trợ CVSS v4.0 — calculator tích hợp chỉ xử lý v3.1; điểm v4.0 từ NVD được hiển thị nhưng không tính lại
Giới hạn API đã biết
- NVD trả về tối đa 2.000 kết quả mỗi truy vấn
- Điểm EPSS cho CVE mới (< 24 giờ) có thể chưa có
- CISA KEV chỉ cập nhật vào ngày làm việc (US)
- GreyNoise community tier: 50 queries/tuần
- VirusTotal free tier: 4 requests/phút
- CIRCL PDNS yêu cầu đăng ký và phê duyệt thủ công
- Ransomwhere có embargo 90 ngày cho địa chỉ mới
Cải tiến dự kiến trong tương lai
- Calculator CVSS v4.0 cục bộ
- Webhook/alerting cho KEV additions và thay đổi EPSS trên watchlist CVE
- Export STIX 2.1 cho tích hợp SIEM
- Docker container với zero-install deployment
- Streamable HTTP transport (MCP SSE)
- Thêm nguồn: Censys, SecurityTrails, VulnCheck
Tổng kết
CVE MCP Server là một giải pháp production-grade thực sự ấn tượng cho bất kỳ ai làm trong lĩnh vực bảo mật thông tin. Thay vì phải thủ công truy vấn hàng chục nguồn dữ liệu khác nhau để phân tích một CVE, giờ đây chỉ cần hỏi Claude một câu và hệ thống sẽ tự động:
- Truy vấn song song nhiều nguồn dữ liệu (NVD, EPSS, CISA KEV, GitHub, VirusTotal…)
- Tính toán điểm rủi ro tổng hợp dựa trên công thức có trọng số khoa học
- Xếp hạng ưu tiên CVE để team biết cái gì cần vá trước
- Tạo báo cáo executive sẵn sàng trình ban lãnh đạo
Với 27 công cụ, 21 nguồn dữ liệu, khả năng zero-key start (8 công cụ không cần API key), và kiến trúc bảo mật vững chắc (chặn private IP, bảo vệ API key, audit log), đây là một dự án đáng để mọi security professional thử nghiệm và áp dụng vào quy trình làm việc hàng ngày.
Source link: CVE MCP Server – mukul975






