
L'obiettivo è fare triage di attacchi noti e imparare come i team di sicurezza rispondono rapidamente.
In questo laboratorio, l'obiettivo era fare il triage di un'altra vulnerabilità reale e ben nota, Log4Shell, una delle vulnerabilità più sfruttate degli ultimi anni a causa di quanto fosse diffusa la libreria interessata nel software aziendale.
Sono andato al National Vulnerability Database e ho cercato la CVE:
https://nvd.nist.gov/vuln/search#/nvd/home?resultType=records
Ho cercato CVE-2021-44228 e ho aperto la pagina dei risultati.
Dopo aver letto la descrizione, ho risposto ad alcune domande di base per capire cosa sia realmente a rischio:
Ho trovato il punteggio CVSS e la stringa del vettore elencati nella pagina:
Ho esaminato la stringa del vettore pezzo per pezzo per vedere cosa significasse ogni parte:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Questa è una delle stringhe di vettore peggiori che possano esistere: nessun privilegio richiesto, nessuna interazione dell'utente, raggiungibile tramite la rete, e può persino influenzare elementi esterni al componente vulnerabile stesso (Ambito: Modificato). Questa combinazione è in parte il motivo per cui Log4Shell è stata trattata come una questione così urgente e diffusa quando è stata divulgata.
Ho controllato la sezione Weakness Enumeration nella pagina NVD per questa CVE.
La CWE elencata è CWE-917: Improper Neutralization of Special Elements used in an Expression Language Statement. In termini semplici, ciò significa che il software prende l'input e lo valuta come parte di un'espressione senza controllarlo adeguatamente prima, ed è ciò che ha permesso agli attaccanti di introdurre lookup JNDI malevoli attraverso normali messaggi di log.
Ho valutato se considererei questo rischio più alto o più basso in due scenari diversi.
Scenario 1: Il software vulnerabile è attivo e raggiungibile. Rischio più alto. Questa vulnerabilità consente a un attaccante di accedere e modificare le istruzioni EL (Expression Language), influenzando direttamente riservatezza e integrità.
Scenario 2: Il software vulnerabile è installato su una macchina spenta e non raggiungibile. Rischio più basso. Se il software vulnerabile non può essere raggiunto in alcun modo, riservatezza e integrità rimangono intatte poiché non c'è modo per un attaccante di interagire con esso.
Tra le CVE di cui ho fatto il triage finora, questa si è distinta per quanto poco serve a un attaccante per sfruttarla: nessun privilegio, nessuna interazione dell'utente, solo accesso alla rete, unito al fatto che la vulnerabilità poteva colpire sistemi oltre al componente stesso. È un buon esempio del perché Log4Shell abbia causato un così diffuso trambusto in tutto il settore quando è stata scoperta.