[ blog · tutorial ]10 min read

Costruisci un agente di intelligence su CVE e vulnerabilità: CISA KEV, NVD, EPSS e MITRE ATT&CK in un'unica API

Sarah ChoyPubblicato il 16 giugno 202610 min di lettura
Costruisci un agente di intelligence su CVE e vulnerabilità: CISA KEV, NVD, EPSS e MITRE ATT&CK in un'unica API

Ogni team di sicurezza annega nei CVE. Il segnale non è la gravità — è se una vulnerabilità viene sfruttata e quanto è probabile che lo sia. Ecco come costruire un agente che fonde NVD, CISA KEV, EPSS e ATT&CK per rispondere a 'cosa applico per prima cosa?'

In breve

  • La gravità CVSS da sola conta in eccesso: la maggior parte dei CVE 'critici' non viene mai sfruttata. La vera prioritizzazione richiede CISA KEV (sfruttati noti) + EPSS (probabilità di sfruttamento) sovrapposti.
  • Le quattro fonti: NVD (record CVE + CVSS), CISA KEV (l'elenco autorevole degli sfruttati in the wild), EPSS (punteggio giornaliero 0–1 di probabilità di sfruttamento), MITRE ATT&CK (tattiche/tecniche per dare contesto).
  • Cybersecurity Search di API Pick incapsula tutte e quattro dietro un unico endpoint POST — 10 crediti per chiamata, solo-in-caso-di-successo — così l'agente ottiene intelligence sulle vulnerabilità fusa senza quattro scraper.
  • Il pattern dell'agente: recupera il CVE, verifica l'appartenenza al KEV, leggi il punteggio EPSS, mappalo alle tecniche ATT&CK, poi ordina per sfruttati-prima, quindi EPSS e poi CVSS.
  • Questo è recupero, non uno scanner: ti dice cosa si sa e cosa è probabile su una vulnerabilità, per dare priorità al triage umano — non per autorizzare azioni automatizzate.

La gravità è la chiave di ordinamento sbagliata

Un programma di gestione delle vulnerabilità che applica le patch in base al punteggio CVSS è indaffarato e inefficace. La National Vulnerability Database elenca decine di migliaia di CVE High e Critical; la stragrande maggioranza non viene mai sfruttata. Nel frattempo un "Medium" con un exploit funzionante in the wild resta nel backlog. La domanda a cui un agente di sicurezza dovrebbe rispondere non è "quanto potrebbe essere grave" — è "cosa dovrei applicare per prima cosa, oggi."

Rispondere a questo richiede quattro fonti di dati fuse insieme. Ciascuna è gratuita e pubblica; ciascuna ha il proprio formato e la propria cadenza di aggiornamento.

Le quattro fonti

NVD — record CVE

La National Vulnerability Database del NIST. L'elenco canonico dei CVE con vettori CVSS, prodotti interessati (CPE) e riferimenti. Il livello di base "cos'è questa vulnerabilità". Punto di forza: autorevole e completo. Punto debole: il CVSS da solo conta la gravità in eccesso.

CISA KEV

Il catalogo Known Exploited Vulnerabilities — l'elenco autorevole della CISA dei CVE confermati come sfruttati in the wild, con scadenze di remediation per le agenzie federali statunitensi. Se un CVE è nel KEV, salta la coda. Punto di forza: il flag con il segnale più alto in tutta la gestione delle vulnerabilità.

EPSS

L'Exploit Prediction Scoring System di FIRST.org: una probabilità giornaliera 0–1 che un CVE venga sfruttato nei prossimi 30 giorni. Trasforma "potrebbe essere sfruttato" in "quanto è probabile". Punto di forza: un ordinamento probabilistico che mappa il comportamento reale degli attaccanti.

MITRE ATT&CK

La knowledge base di tattiche e tecniche degli avversari. Mappa una vulnerabilità al suo ruolo nella kill-chain. Punto di forza: trasforma un CVE in una storia operativa che i tuoi rilevamenti e il tuo piano di risposta possono usare.

Un endpoint, intelligence fusa

Cybersecurity Search incapsula NVD, CISA KEV, EPSS e MITRE ATT&CK dietro un unico endpoint POST — 10 crediti per chiamata, solo-in-caso-di-successo. Passa un ID CVE o una query in linguaggio naturale; i risultati tornano fusi e pre-formattati per un LLM. Abbinalo a Web Search per gli avvisi dei fornitori e a Extract per recuperare una pagina di avviso completa.

import httpx, os
API, HEADERS = "https://api.apipick.com/v1", {"x-api-key": os.environ["APIPICK_KEY"]}

def vuln_intel(query: str):
    r = httpx.post(f"{API}/search/cybersecurity",
                   headers=HEADERS, json={"query": query})
    r.raise_for_status()
    return r.json()["results"]

# "what should I patch first across NVD + KEV + EPSS + ATT&CK?"
records = vuln_intel("actively exploited Apache and VMware vulnerabilities this month")

# Rank: KEV-listed first, then by EPSS, then CVSS. Feed the ranked,
# cited list to your LLM to summarize the worklist for an analyst.

Costruire vs. comprare

Collegarlo tu stessoAPI Pick
FontiNVD + KEV + EPSS + ATT&CK, separatamenteTutte e quattro, fuse
Formati4 schemi + CSV dell'EPSS1 formato JSON
FreschezzaPianifichi 4 sincronizzazioniLive a ogni chiamata
Pronto per LLMNormalizzi ciascunoPre-formattato + URL delle fonti
CostoInfra + manutenzione10 crediti/chiamata, solo in caso di successo

Cosa puoi costruire

Oltre a un assistente di prioritizzazione delle patch: un agente di sorveglianza giornaliera del KEV che avvisa quando un CVE del tuo stack finisce nell'elenco degli sfruttati; un bot di triage che trasforma un export del tuo scanner in una lista di lavoro ordinata e con citazioni; un copilota per analisti che spiega in linguaggio chiaro le implicazioni ATT&CK di un CVE. Lo stesso pattern — recupero fuso, ordinato per sfruttati-prima, sintetizzato con le fonti allegate. Prendi una chiave gratuita (100 crediti, senza carta) e punta il tuo agente verso di essa.

Domande frequenti

Perché la gravità CVSS non basta per dare priorità alle patch?

Perché la gravità misura l'impatto potenziale, non la probabilità di sfruttamento. Decine di migliaia di CVE sono classificati come High o Critical, ma solo una piccola frazione viene mai sfruttata in the wild. Se applichi le patch solo in base al CVSS spendi sforzi su vulnerabilità che gli attaccanti non toccano mai mentre ti sfugge quella di gravità media che viene sfruttata attivamente. L'approccio moderno sovrappone CISA KEV (è noto che sia sfruttata?) ed EPSS (qual è la probabilità che lo sia?) al CVSS per ordinare ciò che conta davvero.

Cos'è l'EPSS e come lo uso?

L'EPSS (Exploit Prediction Scoring System), di FIRST.org, assegna a ogni CVE un punteggio aggiornato quotidianamente da 0 a 1 che stima la probabilità che venga sfruttato nei prossimi 30 giorni. Una policy comune: applica subito le patch a qualsiasi cosa nel CISA KEV, poi a qualsiasi cosa con EPSS superiore a ~0.1 (o la tua soglia calibrata sul rischio) e poi fai il triage del resto in base al CVSS. Poiché l'EPSS si aggiorna quotidianamente, un agente dovrebbe recuperarlo di nuovo anziché metterlo in cache.

Cosa aggiunge MITRE ATT&CK?

Contesto. ATT&CK mappa tattiche e tecniche degli avversari (accesso iniziale, escalation dei privilegi, esfiltrazione, ecc.). Legare un CVE alle tecniche che lo sfruttano aiuta un analista a capire l'implicazione nella kill-chain — non solo 'questo è sfruttabile' ma 'questo abilita il movimento laterale', il che cambia come dai priorità e quali rilevamenti aggiungi.

L'agente può applicare patch o bloccare il traffico automaticamente?

No — e non dovresti collegarlo a tal fine. Questo è un livello di recupero di intelligence: fonde ciò che si sa su una vulnerabilità per dare priorità al triage umano. La remediation automatizzata richiede controllo delle modifiche, test e un responsabile umano. Usa l'agente per produrre una lista di lavoro ordinata e con citazioni; lascia che la tua pipeline di patch/SOAR e un ingegnere la eseguano.

Quanto sono aggiornati i dati?

L'NVD e il CISA KEV si aggiornano in continuazione man mano che i CVE vengono pubblicati e lo sfruttamento viene confermato; l'EPSS si ricalcola quotidianamente. L'endpoint interroga fonti live, quindi un'esecuzione dell'agente riflette lo stato attuale. Per una traccia di audit, salva il punteggio EPSS e lo stato KEV con un timestamp al momento della decisione.

API usate in questo articolo

Sarah Choy
Scritto da
Sarah Choy
CEO, API Pick

Sarah Choy è la CEO di API Pick. Scrive sulla creazione di API pronte per la produzione per agenti IA e flussi di lavoro con LLM.