Exploit web: cosa sono e come difendersi (Parte 1)
Abbiamo voluto dedicare ampio spazio al tema dell’ “Exploit Web”, argomento che ogni IT manager dovrebbe governare con domestichezza; per questo pubblicheremo due articoli complementari.
» Parte 1: il presente articolo
» Parte 2: “Stay Tuned”
1. Vulnerabilità, exploit web, patch
Per comprendere cosa sono ed a cosa servono gli exploit web, è importante partire dal concetto di “vulnerabilità”, che in un certo senso rappresenta il fattore abilitante dell’exploit e ne consente l’utilizzo. Quindi vulnerabilità ed exploit sono strettamente collegati: perché un exploit web possa agire ci deve essere una (o più) vulnerabilità.
Vulnerabilità (dette anche “bug”) sono le debolezze che si trovano all’interno dei software: ciascun software è – per definizione – imperfetto, proprio perché creato dall’essere umano. Per dare una misura: il sistema operativo Microsoft Windows contiene oltre 50 milioni di righe di codice, l’insieme di tutti i servizi Google addirittura 40 volte tanto Google (2 miliardi di linee). È inevitabile che all’interno di questi software così complessi si nasconda qualche difetto, più o meno grave.
Queste “falle” nella sicurezza di un programma sono appunto definite vulnerabilità e possono essere sfruttate per portare un attacco al sistema informatico. Praticamente qualsiasi attacco utilizza vulnerabilità (che siano del sistema informatico o del fattore umano) per entrare nel sistema.
Per capire l’importanza che può avere – o non avere – una vulnerabilità, dobbiamo valutare quanto essa sia effettivamente sfruttabile (in inglese “exploitable”). In altre parole una vulnerabilità rappresenta un rischio solo se la minaccia è in grado di sfruttarla per realizzare un attacco.
Nella realtà, non tutte le vulnerabilità possono essere sfruttate per la distribuzione di malware. Alcune potrebbero non essere sfruttabili, perché i sistemi di sicurezza impediscono a qualcuno di utilizzarle, oppure il loro sfruttamento potrebbe risultare troppo oneroso in rapporto al risultato che si otterrebbe.
Una vulnerabilità non ancora scoperta o nota solo a pochi, ma sconosciuta agli sviluppatori di un software (che quindi hanno avuto “zero giorni” per ripararla) è definita “Vulnerabilità Zero-Day”. Sono le più temute, perché se un attaccante – e solo lui – ne fosse a conoscenza, avrebbe in mano un’arma in grado di fare gravi danni. Gli exploit Zero-Day sfruttano proprio queste falle.
Quando la vulnerabilità diventa nota viene definita n-day ed in questo momento in genere viene riparata da un aggiornamento del software. Tale aggiornamento di sicurezza si chiama “patch” (letteralmente: “pezza” o “toppa”).
Nel momento in cui la patch viene resa disponibile (dal produttore del software), la vulnerabilità può essere resa inoffensiva. Ma solo se la patch viene installata e questo – come vedremo – potrebbe non accadere, lasciando il sistema ancora vulnerabile.
Le vulnerabilità note vengono classificate come Common Vulnerabilities and Exposures, in sigla CVE (“vulnerabilità ed esposizioni comuni”). A mantenere aggiornata questa classificazione è la Mitre Corporation, ente finanziato dai FFRDCs (Federally Funded Research and Development Centers) del Dipartimento della Sicurezza interna degli Stati Uniti.
Ciascuna vulnerabilità viene catalogata nel citato sito del Mitre con una classificazione definita come: CVE – anno – numero progressivo.
Per esempio: CVE-2019-0708 è la famosa vulnerabilità che riguarda il Remote Desktop Protocol (RDP) di Windows e che può essere sfruttata per un attacco RCE (Remote Code Execution) dall’exploit web Bluekeep, di cui parleremo in seguito.
Le vulnerabilità vengono classificate secondo un livello (score) di gravità.
Uno dei più utilizzati è il Common Vulnerability Scoring System (CVSS). Questo è un metodo per individuare le caratteristiche principali di una vulnerabilità e produrre un punteggio numerico che riflette la sua gravità. Il punteggio numerico può poi essere tradotto in una rappresentazione qualitativa (come basso, medio, alto e critico) per aiutare le organizzazioni a valutare correttamente e dare priorità ai loro processi di gestione delle vulnerabilità.
CVSS è oggi uno standard pubblico usato dalle organizzazioni di tutto il mondo. Il suo utilizzo da parte delle agenzie statunitensi è stato raccomandato dal National Institute of Standards and Technology (NIST) in “NIST Special Publication (SP) 800-51, Use of the CVE Vulnerability Naming Scheme”, che è stato inizialmente rilasciato nel 2002.
Riportiamo qui la tabella del CVSS v3.0 Ratings, tratta dal sito NVD del NIST ove si può vedere che il livello di gravità (severity) di una vulnerabilità può assumere uno score che va da 0.0 fino a 10.0 per le più critiche.
Nello stesso sito è disponibile anche un pratico Common Vulnerability Scoring System Calculator, per calcolare lo score.
Exploit è un codice (programma) creato per sfruttare una vulnerabilità al fine di portare un attacco a un sistema informatico: “to exploit” in inglese significa, letteralmente, “sfruttare” ed “exploitation” è appunto lo sfruttamento di una vulnerabilità.
Se l’exploit viene creato per una vulnerabilità zero-day, si parla di exploit zero-day Questi sono ovviamente i più temibili perché non esiste ancora una patch che abbia chiuso quella vulnerabilità.
Solo l’attaccante ha scoperto quella vulnerabilità e solo lui sa come sfruttarla. Per rispondere all’attacco, lo sviluppatore software deve creare e rilasciare la patch, che sarà in grado di proteggere solo chi la installerà, evidentemente solo dopo il suo rilascio e dopo che la vulnerabilità è diventata conosciuta.
Proprio per questo motivo le vulnerabilità zero-day possono avere un valore commerciale enorme: le più pregiate sono quotate fino a 2,5 – 3 milioni di dollari. Lo possiamo vedere sul sito di Zerodium azienda fondata da Chaouky Bekrar, che prima aveva creato Vupen e che quota una vulnerabilità Zero-click per Android fino a 2,5 milioni di dollari.
Esistono molte aziende che – in modo più o meno trasparente – commerciano queste vulnerabilità.
Tra queste Crowdfense, azienda di Dubai guidata dall’italiano Andrea Zapparoli Manzoni (membro del Clusit), che ha lanciato il suo primo “Bug Bounty Program” ad aprile 2018, stanziando un budget di 10 milioni di dollari per l’acquisto di vulnerabilità zero-days. Nel 2019 il programma è stato ampliato di ulteriori 15 milioni di dollari.
Il prezzo riconosciuto per ogni singola vulnerabilità presentata va da 100.000 USD a 3 milioni di USD. Il programma si rivolge ai ricercatori di software e ha come clienti principalmente polizie, intelligence e governi. Lo scopo dichiarato da Crowdfense è di rendere trasparente e legale il mercato della compravendita di vulnerabilità ed exploit.
>> Con FlashStart puoi bloccare i contenuti indesiderati e inappropriati ? Richiedi ora un’offerta e Inizia subito la tua prova gratuita
2. Gli Exploit kit
Il mercato degli exploit web si è industrializzato ed è diventato sempre più articolato. Sono nati gli Exploit kit: sono tool software che consentono di automatizzare lo sfruttamento di una vulnerabilità ed eseguire un codice malevolo.
Grazie alla loro natura altamente automatizzata, i kit di exploit sono diventati uno dei metodi più popolari di distribuzione di malware di massa o di strumenti di accesso remoto (RAT) da parte di gruppi criminali, abbassando la barriera di ingresso per gli attaccanti.
I creatori di kit di exploit offrono questi software nel web e soprattutto nel Darkweb insieme ad una interfaccia di gestione e ad un insieme di vulnerabilità attaccabili, nonché ad una serie di funzioni che rendono l’attacco informatico semplice ed efficace e nella maggior parte dei casi anche automatizzato.
Perciò oggi diventare cybercriminali è semplice anche se non si hanno grandi capacità tecniche: si possono “noleggiare” gli exploit kit dalle piattaforme che li gestiscono: è il fenomeno del Cybercrime-as-a-service.
Tra gli exploit kit storici e più famosi possiamo citare: Angler, Neutrino, Nuclear. Questi sono ormai superati, ma hanno avuto una storia importante negli anni scorsi e sono spesso stati utilizzati per veicolare ransomware.
Molti kit di exploit web sono costruiti per sfruttare vulnerabilità di specifici software: molto preso di mira Adobe Flash Player, plug-in per browser molto diffuso fino a pochi anni fa e noto per essere una “miniera” di vulnerabilità, che venivano sfruttate per esempio da Neutrino (e non solo!). Fortunatamente da fine 2020 la stessa Adobe l’ha abbandonato.
Ora che Flash non è più in uso e i browser moderni supportano gli aggiornamenti automatici (il browser più noto Chrome riceve mediamente un aggiornamento alla settimana!), i kit di exploit risultano nel complesso meno efficaci.
Nonostante che le misure di sicurezza siano migliorate, soprattutto nella navigazione web, alcuni kit di exploit web continuano ad essere strumenti utilizzati per il crimine informatico.
Vediamo un esempio di exploit in azione nell’attacco definito “drive-by-download” (o “abbeveratoio”):
» l’exploit parte da un sito web compromesso. La pagina compromessa dirotterà il traffico web verso un’altra pagina. All’interno della pagina di destinazione è presente un codice (iniettato dall’attaccante che ha compromesso il sito) che profila il dispositivo della vittima alla ricerca di eventuali applicazioni vulnerabili basate sul browser. Se il dispositivo è completamente patchato e aggiornato, l’exploit si ferma. Se invece ci sono vulnerabilità, il sito web compromesso reindirizza silenziosamente il traffico di rete verso l’exploit.
» L’exploit utilizza un’applicazione vulnerabile per eseguire segretamente il malware su un host (l’ospite). Le applicazioni più prese di mira sono Adobe Flash Player, Java Runtime Environment, Microsoft Silverlight. Oppure può utilizzare il browser web: l’exploit web viene inviato come codice all’interno del traffico web.
» Se l’exploit ha successo, esso invia un payload (letteralmente “carico utile”) per infettare l’host. Il payload può essere un downloader di file che recupera altro malware o il malware stesso. Nei kit di exploit più sofisticati, il payload viene inviato in rete come binario crittografato che, una volta giunto sull’host della vittima, viene decrittografato ed eseguito. Oggi il payload più comune è il ransomware, ma ne esistono molti altri, tra cui malware per botnet, infostealer e trojan bancari.
» In conclusione, l’exploit web è lo strumento che si incarica di fare da vettore all’attacco vero e proprio (payload).
3. Exploit web: alcuni casi famosi… e dove trovarli
Ripercorriamo la storia di alcuni famosi exploit web. Partiamo da alcuni casi storici ed ormai non più attivi.
Neutrino è stato un exploit kit tra i più diffusi dal 2016. Sfruttava soprattutto le vulnerabilità di Flash note come CVE-2016-4117 e CVE-2016-1019. Veniva utilizzato come vettore per diffondere alcuni famosi ransomware quali Crypwall, Cerber e Locky.
Angler oltre che sulle croniche vulnerabilità di Flash sfruttava anche su quelle di Microsoft Silverlight come CVE-2016-1034. Anche questo era utilizzato come vettore per diffondere alcuni tipi di ransomware.
Vediamo ora alcuni degli exploit web più recenti e famosi, responsabili di attacchi che hanno fatto storia.
Non possiamo non citare il celebre exploit EternalBlue, che nel maggio 2017 è stato il vettore del ransomware WannaCry e successivamente a giugno 2017 di NotPetya.
>> FlashStart è il webfilter che blocca ogni giorno 80 milioni di siti indesiderati ? Richiedi ora un’offerta e Inizia subito la tua prova gratuita
Il ransomware WannaCry nel giro di pochi giorni colpì in 150 paesi nel mondo, con oltre 300.000 attacchi rilevati. Uno dei paesi più colpiti è stato il Regno Unito, dove WannaCry ha bloccato almeno 25 ospedali e messo in crisi il Servizio Sanitario Nazionale (NHS).
La peculiarità di WannaCry, rispetto ad altri ransomware era appunto l’utilizzo dell’exploit EternalBlue, che sfruttava una vulnerabilità di SMBv1 (un protocollo di condivisione di file di rete, Server Message Block, usato da sistemi Microsoft Windows). La vulnerabilità classificata come CVE-2017-0144 (MS17-010 da Microsoft) era già stata chiusa da Microsoft il 14 marzo 2017.
Ma i sistemi Windows XP e Windows Server 2003 non erano più protetti (end of support dall’8 aprile del 2014) e quindi, privi di patch, sono stati violati facilmente da EternalBlue.
La vicenda di WannaCry ha un ulteriore risvolto: pare che EternalBlue sia stato creato dalla NSA (la National Security Agency americana). Ma NSA si è fatta rubare l’exploit da un gruppo hacker denominato The Shadow Brokers (TSB), che l’ha diffuso sul darkweb mettendolo a disposizione degli attaccanti che l’hanno usato.
Ed in questo caso l’attacco è stato fatto dal gruppo hacker state-sponsored della Corea del Nord noti con il nome Lazarus. Ne abbiamo parlato in questo articolo.
WannaCry ed EternalBlue avrebbero dovuto farci comprendere l’importanza degli aggiornamenti di sicurezza. Invece – sembra incredibile – oggi a distanza di ormai sei anni, esistono sistemi che hanno ancora installato Windows XP e Windows Server 2003 e che quindi sono facilmente attaccabili da questo exploit che è ancora attivo ed utilizzato.
Un altro exploit web famoso è Bluekeep: sfrutta una vulnerabilità di tipo RCE (Remote Code Execution) identificata come CVE-2019-0708 che interessa i Remote Desktop Services di Windows e che può consentire ai criminal hacker di accedere ad una macchina vulnerabile anche senza autenticazione.
Permette di aprire una falla in una LAN per consentire ad un malware di propagarsi a tutti i PC connessi.
I sistemi operativi vulnerabili a Bluekeep sono: Windows Server 2003, Windows XP, Windows Vista, Windows 7, Windows Server 2008 e Windows Server 2008 R2, tutti sistemi già dichiarati end-of-life da Microsoft e non più aggiornabili.
Gli exploit web e gli exploit kit oggi sono facilmente reperibili – a pagamento e talvolta anche gratis – nei forum del darkweb, ma non solo.
Molti di essi sono ormai di dominio pubblico e chiunque li può scaricare da siti web noti.
Uno dei più famosi è https://www.exploit-db.com/ ove si trovano pronti per il download anche EternalBlue e Bluekeep… e molti altri!
A breve in uscita la parte 2 dell’articolo….
4. L’autore
Giorgio Sbaraglia, ingegnere, svolge attività di consulenza e formazione per la sicurezza informatica e per la privacy.
Tiene corsi su questi temi per molte importanti società italiane di formazione, tra le quali ABIFormazione e 24Ore Business School.
È coordinatore scientifico del Master “Cybersecurity e Data Protection” della 24Ore Business School.
È membro del Comitato Scientifico CLUSIT (Associazione Italiana per la Sicurezza Informatica) e certificato “Innovation Manager” da RINA.
Ricopre incarichi di DPO (Data Protection Officer) presso aziende e Ordini Professionali.
È autore dei libri:
» “GDPR kit di sopravvivenza” (Editore goWare),
» “Cybersecurity kit di sopravvivenza. Il web è un luogo pericoloso. Dobbiamo difenderci!” (2a edizione 2022, Editore goWare),
» “iPhone. Come usarlo al meglio. Scopriamo insieme tutte le funzioni e le app migliori” (Editore goWare).
Collabora con CYBERSECURITY360 testata specialistica del gruppo Digital360 per la Cybersecurity.
Scrive anche per ICT Security Magazine, per AGENDA DIGITALE e per la rivista CLASS.
Su qualunque Router e Firewall puoi attivare la protezione FlashStart® Cloud per mettere in sicurezza i device desktop e mobile e i dispositivi IoT sulle reti locali.