Research

EPSS corta o ruído de 40k CVEs/ano — só 5-7% valem ação imediata

Com 40.000+ CVEs publicados em 2024 (~110/dia), EPSS entrega probabilidade de exploração em 30 dias via XGBoost com 1.400 features — score ≥0.50 já justifica patch urgente, ≥0.90 é incêndio.

CVSS mede severidade teórica; EPSS mede chance real de exploit em produção dentro de 30 dias. O modelo usa gradient boosting alimentado por exploit databases, telemetria dark web, PoC repos e metadata NVD, atualizado diariamente via API pública do FIRST. Hunter que usa EPSS como pré-filtro elimina ~95% do ruído e foca nos vetores que adversários já estão weaponizando.

Payload · grep · PoCcurl 'https://api.first.org/data/1.0/epss?cve=CVE-2024-NNNN' | jq '.data[].epss'

Contexto

O NVD publicou 29k CVEs em 2023 e 40k em 2024 — ritmo que tornou triagem manual inviável para qualquer blue team. CVSS, apesar de dominante, não distingue CVE que nunca vai ser explorado de CVE com exploit maduro no wild. EPSS (Exploit Prediction Scoring System) surgiu do FIRST em 2019 e chegou à v3 em 2023, incorporando sinais de ameaça em tempo real no lugar de métricas estáticas de severidade.

Mecânica técnica

EPSS score varia de 0.00001 a 1.0 e representa probabilidade de exploração ativa nos próximos 30 dias após publicação. O modelo é XGBoost treinado em ~1.400 features: presença em exploit-db, PoC no GitHub, menções em fóruns underground, metadata NVD (CWE type, produto afetado), threat intel feeds. Output é atualizado diariamente via API REST do FIRST (api.first.org/epss). Thresholds operacionais documentados: Critical ≥0.90, High ≥0.50, Medium ≥0.10, Low <0.10. O artigo demonstra integração via Python enriquecendo alertas Wazuh com o score em tempo real.

Análise Hunterspay

O que a gente tira disso

Hunter usa EPSS ao contrário do blue team: CVE com score ≥0.50 no tech stack do alvo é argumento de severidade real no triage da plataforma — complementa CVSS quando o vendor tenta baixar a criticidade. A API é free e sem auth, então automatizar enrichment no workflow de recon é 20 linhas de Python depois do nuclei/trivy. O ponto cego da maioria: CWEs que historicamente geram EPSS alto (CWE-502 deserialization, CWE-918 SSRF, CWE-78 OS injection) devem virar prioridade absoluta em code review.

Como replicar em outros alvos

1. Consulte EPSS por CVE: `GET https://api.first.org/data/1.0/epss?cve=CVE-YYYY-NNNN` — retorna score + percentile.

2. Bulk query: passe até 100 CVEs separados por vírgula no parâmetro `?cve=`.

3. Após nuclei/trivy no alvo, pipe os CVE IDs pelo endpoint EPSS e filtre `score >= 0.50` antes de escrever qualquer report.

4. No Shodan/Censys, combine tech fingerprint com CVEs EPSS-alto: `product:"Apache Struts" port:8080` → busca CVEs conhecidos → filtra por EPSS.

5. Em code review, priorize CWE-502, CWE-918 e CWE-78 — classes com maior taxa histórica de EPSS elevado.

Stack
epss · cvss · xgboost · nvd · wazuh · python
Ler fonte original →
Aprenda com quem ensina

Quer virar hunter de verdade? Curso do Ofjaaah.

Metodologia de quem já reportou 3 dígitos de vulnerabilidades em HackerOne, Bugcrowd e Intigriti. Do recon ao report pago — sem teoria inútil.

Ver curso →
WhatsApp Telegram LinkedIn X