Il mondo tecnologico attuale non potrebbe esistere senza la crittografia: la password utilizzata sul nostro social network preferito non verrebbe salvata cifrata e quindi chiunque avesse accesso al database degli utenti potrebbe utilizzarla o rivenderla per i più diversi scopi (nessuno a nostro beneficio); i dati audio/video scambiati durante una riservata riunione aziendale potrebbero essere facilmente intercettati essendo “in chiaro”, come pure i messaggi Whatsapp oppure le foto personali salvate in cloud.
La crittografia, insomma, è una condizione necessaria alla cybersecurity ma attenzione, è tutt’altro che sufficiente: non può esistere un sistema informatico sicuro senza l’ausilio della crittografia, ma la crittografia da sola non è sufficiente per rendere sicuro un sistema.
Se, infatti estendiamo il quadro ai dati maggiormente sensibili della salute, alla sicurezza nazionale ed ai sistemi d’arma automatizzati (ed in effetti negli USA la crittografia è considerata come una tipologia di armamento, la cui esportazione è regolamentata), lo scenario diventa ancor più preoccupante.
Infatti, la crittografia è, letteralmente, una “scrittura nascosta”: si tratta della scienza che racchiude i metodi per rendere un messaggio (un dato) incomprensibile ai soggetti non autorizzati a leggerlo, quelli che non dispongono della corretta chiave di lettura. È quindi una branca interdisciplinare, che abbraccia logica, matematica e, naturalmente, l’informatica, campo di applicazione principale.
La crittografia, ed in particolar modo gli algoritmi crittografici che ne formalizzano la struttura logico-matematica, permette quindi ai nostri sistemi di messaggistica di funzionare, consente la connessione al nostro online banking in modo riservato e, in definitiva, è utilizzata per tutelare e proteggere la nostra privacy e le nostre comunicazioni.
La cybersecurity riveste invece un compito più ampio, che comprende anche le tecniche di disaster recovery e business continuity, e riguarda tutte le attività atte alla protezione dei sistemi informatici, le reti, i software ed i dati dagli attacchi digitali.
La crittografia, come abbiamo accennato, è insomma una condizione necessaria alla cybersecurity è tutt’altro che sufficiente.
Questa considerazione deriva dai numerosi e molteplici aspetti tipici di un sistema informatico che è, di per sé, un sistema complesso (e scala rapidamente in complessità): letteralmente, costituito da più parti. Tra queste parti occorre includere anche l’utente che, con i suoi comportamenti, può influenzare in modo sensibile la sicurezza.
Una metafora che ritengo molto utile è quella di immaginare la cybersecurity di un sistema informatico come una catena, dove la crittografia è senz’altro uno degli anelli e dove l’anello più debole determina la resistenza dell’insieme. Come resistere quindi agli attacchi informatici?
Come la crittografia migliora la resistenza agli attacchi
Occorre inoltre considerare che gli attacchi portati ad un sistema informatico possono essere di natura assai diversa, e non in tutti i casi la crittografia ha un ruolo.
Vi sono tipologie di attacco portate direttamente al Sistema, in cui l’utente non ha un ruolo se non quello di utilizzo, e altre tipologie dove invece la partecipazione inconsapevole dell’utente è condizione imprescindibile dell’attacco.
Le tipologie di attacco che non necessitano dell’azione dell’utente sono di natura essenzialmente tecnica.
Attacchi che sfruttano la debolezza dell’algoritmo di crittografia
Ad esempio, attacchi di tipo MITM – Man In The Middle sugli algoritmi crittografici di scambio della chiave, come il protocollo Diffie-Hellmann. Su questo protocollo si basa anche lo standard TLS (Transport Layer Security) che è parte integrante dei protocolli sul livello applicativo come HTTPS, SMTPS ed in generale di ogni protocollo “sicuro”.
Negli attacchi di tipo MITM, l’attaccante si pone in ascolto lungo il canale di comunicazione (un qualsiasi nodo intermedio della rete) e, con ognuno dei due interlocutori, simula di essere l’altro, intercettando i pacchetti di dati scambiati nella comunicazione e sostituendoli oppure semplicemente reinviandoli. L’attaccante può quindi non solo ascoltare la comunicazione ma anche modificarla, senza che gli interlocutori possano osservarlo.
Questo è plausibile quando non sia stato associato, come solitamente è, un protocollo di autenticazione del messaggio (MAC – Message Authentication Code) mediante algoritmi crittografici di tipo “digest”, ovvero che registrino l’impronta del messaggio (un dato che, verosimilmente, è univoco – entro certi limiti – per ogni messaggio/dato su cui viene calcolato).
Una difesa agli attacchi di tipo MITM viene dallo sviluppo costante delle tecniche crittografiche a sostegno della cybersecurity che si sono spinte ed esplorano anche le possibilità offerte dal bizzarro mondo della fisica quantistica. Un algoritmo di scambio della chiave che rende palese l’eventuale intromissione di un attaccante è il BB84, la cui applicazione tecnologica fa uso di filtri polarizzatori e di fibra ottica che ha raggiunto ormai un livello di diffusione quasi capillare per il trasporto di dati digitali fin nelle nostre case.
Attacchi MITM vengono spesso rivolti anche su RDP- Remote Desktop Protocol tanto utilizzato negli ultimi mesi per il remote-working (impropriamente detto smart-working). Occorre evidenziare che l’ausilio di VPN- Virtual Private Network risulta di notevole aiuto: in questo caso la crittografia torna a essere una fidata alleata e fornisce uno scudo alle criticità di RDP.
Nel caso di una connessione tramite VPN, infatti, anche i dati dello strato applicativo usato dal browser come dal software RDP, sono criptati e l’intercettazione del traffico TCP/IP potrebbe indicare all’attaccante solo che l’utente si sta collegando ad un server VPN, senza però nulla poter sapere del traffico sottostante (incapsulato) nel tunnel.
Solitamente, su VPN viene concordata la chiave tra client e server tramite TLS
e in seguito la chiave condivisa viene utilizzata con AES256, un algoritmo di crittografia simmetrico in cui la chiave di criptazione e decriptazione coincidono. Al posto di SSL/TLS possono essere utilizzati anche altri protocolli come IPsec, un protocollo crittografico che opera al livello di rete, quindi più in basso rispetto a TLS per cui risulta indipendente dall’applicazione.
Attacchi che sfruttano errori sull’implementazione dei protocolli di crittografia
Nel 2020, è stato scoperto negli USA un problema di sicurezza informatica globale che la direttrice della sicurezza informatica dell’NSA – National Security Agency, Anne Neuberger, ha definito come «extraordinarily serious» (Forbes, 2020), “straordinariamente grave”.
La vulnerabilità è stata pubblicata su CVE- Common Vulnerabilities and Exposures del MITRE, l’ente finanziato dal Dipartimento della Sicurezza interna degli Stati Uniti ed è quindi divenuta di pubblico dominio.
Il problema riguardava l’errata applicazione della crittografia su curve ellittiche di Windows, gestita da un componente del sistema operativo: crypt32.dll.
Un aggressore avrebbe potuto emulare una qualsivoglia firma digitale per firmare un software specifico: l’attaccante avrebbe potuto nascondere ad esempio a Windows Defender un malware facendolo passare per un programma assolutamente lecito, prodotto e firmato da una software house attendibile.
Questa vulnerabilità si estendeva anche al fondamentale protocollo dello scambio della chiave Diffie-Helmann-Merkle su curve ellittiche, consentendo di portare facilmente un attacco man-in-the-middle.
A quel punto il malware avrebbe potuto anche catturare i dati della carta di credito dell’utente come pure dell’accesso online banking oppure le credenziali per tutti i servizi cui l’utente fa accesso (e-mail, social network) andando a compromettere, nel peggiore dei casi, quella che è definita come “identità digitale” della persona (e desidero sottolineare come siamo passati in modo molto naturale dalla parola “utente” a “persona”, proprio ad indicare la pervasività di questo tipo di attacchi).
Attacchi che sfruttano errori del software
Un caso davvero eclatante, e anche molto recente, è quello dello 0-day: una vulnerabilità del sistema non nota allo sviluppatore o per la quale lo sviluppatore non abbia ancora predisposto una patch riguardante il web server Apache, il secondo webserver al mondo come numero di installazioni.
In questi casi, le problematiche di sicurezza come quella individuata consentono ad un malintenzionato di entrare in aree del server altrimenti negate e anche di lanciare processi arbitrari: in altre parole, il malintenzionato può eseguire del suo software sul server con l’obiettivo del caso, come ad esempio il furto e la distruzione di dati sensibili, personali o anche aziendali.
Le vulnerabilità identificate consentono quindi l’attraversamento di directory, cui l’utente non dovrebbe poter avere accesso (path trasversal attack) ed RCE – Remote Execution Code. Le versioni vulnerabili risultano essere la 2.4.49 ed in misura minore la 2.4.5.
Attacchi di tipo brute-force
Gli attacchi di tipo brute-force sono quelli “di forza bruta”: ad esempio, uno script che automaticamente tenta il login ad un sistema generando tutte le possibili combinazioni di password, un tipo di attacco molto caro ai produttori hollywoodiani e non solo.
Quando si effettua un attacco di questo tipo, è utile disporre di un dizionario: in un attacco a dizionario, infatti, il database con le parole da testare come password può contenere in generale anche sequenze di caratteri apparentemente casuali.
Generare questi dizionari, anche di diverse decine di gigabyte, è possibile anche sul nostro PC, utilizzando script automatici che vanno a produrre il file del dizionario con tutte le sequenze possibili di caratteri di una determinata lunghezza limite, oppure generando solo le sequenze di caratteri corrispondenti ad una condizione ben precisa, che contenga ad esempio tutte le possibili date unitamente a tutte le sequenze di caratteri di una certa lunghezza limite.
La generazione di dizionari con una condizione sono tipici di attacchi mirati, dove si presuppone che qualche utente abbia inserito la sua data di nascita oppure quella del compleanno, cosa peraltro assolutamente plausibile essendo una pratica purtroppo molto diffusa.
Un tipico comando per la generazione di tutte le possibili combinazioni che rispettino anche determinate condizioni, è crunch (ad es. disponibile su una distribuzione GNU/Linux Backbox).
Con crunch è possibile definire una pluralità di condizioni in modo da generare il dizionario più appropriato per lo scopo prefissato: consente infatti di generare facilmente dizionari impostando ad esempio la lunghezza massima della sequenza di caratteri, se la sequenza deve contenere una data, caratteri speciali e così via.
Alla fine del processo, l’algoritmo combinatorio eseguito da crunch restituirà il file contenente il dizionario su cui poi l’hacker malintenzionato:
– potrà calcolare l’hash (algoritmi crittografici digest, ovvero l’impronta del dato) per ogni singola sequenza di caratteri e qualora, disponga ad esempio di un accesso al database vittima, potrà confrontare gli hash calcolati con quelli delle password salvate nel database in modo da scoprire le password usate dagli utenti. A tal proposito accenno che vi sono tecniche che limitano questa problematica mediante l’ausilio di sale crittografico – salt, ovvero di una stringa casuale che viene concatenata al dato di cui occorre calcolare il valore di hash;
– potrà usare direttamente le combinazioni generate da crunch per tentare l’accesso al sistema vittima con un attacco brute-force (di “forza bruta”) ovvero un attacco poco “intelligente” che prova a entrare in un sistema utilizzando come password tutte le possibili sequenze di caratteri fino ad una lunghezza prestabilita.
La figura successiva mostra l’esecuzione del comando crunch su una distribuzione GNU/Linux BackBox per la generazione di un dizionario con tutte le sequenze da 4 a 5 caratteri.
La relativa semplicità nella generazione dei dizionari che possono essere usati per condurre attacchi fa comprendere ancor più quanto sia importante, tra le tante cose cui occorre tener presente nell’ambito della cybersecurity, anche l’appropriato uso di un algoritmo digest che va in combinazione con un sale crittografico ma anche quanto sia importante da parte dell’utente – ed occorre progettare i sistemi in modo che vi siano delle policy sicure che lo guidino – la scelta di una password intrinsecamente sicura che protegga e limiti di per sé gli attacchi brute-force.
Cosa è la MFA – Multi Factor Authentication
Nei casi in cui occorra tutelare in modo ancor più efficiente l’accesso ad un servizio, vi sono i metodi di MFA – Multi Factor Authentication, tra cui il più utilizzato è il 2FA – 2 Factors Authentication, l’autenticazione a due fattori indipendenti. Anche in questo caso, la crittografia viene in aiuto.
L’autenticazione a più fattori richiede, oltre ai consueti username e password, almeno un altro fattore, generalmente basato su OTP- One Time Pad: dei codici “usa e getta”, generati al momento per quel determinato accesso e che poi non potranno essere riutilizzati.
Gli OTP derivano dai Cifrari di Vernam, sistemi di cifratura simmetrica virtualmente inespugnabili, dove si pone la condizione che la chiave di cifratura sia lunga quanto il messaggio/dato da criptare.
L’OTP viene inviato all’utente tipicamente tramite sms, tramite e-mail oppure può essere generato da un’apposita applicazione configurata allo scopo e nella disponibilità fisica solo dell’utente (ad esempio sul suo smartphone).
Il malintenzionato, quindi, quand’anche fosse in possesso delle credenziali di accesso ad un servizio utilizzato dall’utente (username e password), non potrebbe comunque completare la procedura di login non disponendo, per esempio, dello smartphone su cui si riceve il codice via sms o generato tramite la app sul telefono.
Altri tipi di autenticazione multifattore fanno uso dei dati biometrici, come ad esempio il riconoscimento dell’impronta digitale, della retina, del volto, oppure di codici generati da hardware dedicato.
Occorre dire che altri e maggiormente sofisticati sistemi di attacco, prevedono finanche l’intercettazione degli sms inviati al telefono della vittima ma la procedura è senz’altro complessa e richiede un’infezione pregressa sullo smartphone.
Quando la crittografia è un’arma contro l’utente: gli attacchi di social engineering
Le tipologie di attacco informatico che vedono coinvolto suo malgrado l’utente sono dette di social engineering.
Tra tutte, la maggiormente diffusa riguarda il phishing dove viene ingannata la percezione dell’utente, invitandolo ad esempio mediante una e-mail fraudolenta ad inserire le proprie credenziali di accesso all’online banking oppure a un social network, proponendogli però un link ad un sito “civetta”, del tutto simile a quello del servizio ufficiale e gestito dai malintenzionati.
Tramite phishing è possibile che l’attaccante:
– acquisisca i dati di accesso ad un servizio dell’utente, ivi compresi i dati della carta di credito;
– installi sul computer dell’utente del software malevolo (malware) allo scopo di:
– impossessarsi delle sue credenziali ed altri dati;
– criptare i dati dell’utente allo scopo di chiederne un riscatto (ransomware) per fornire la chiave di decifratura.
La realtà è però sempre più complessa della teoria e le tipologie di attacco tendono a combinarsi.
Un caso che ha destato notevole clamore è stato quello del malware “wannacry” che ha sfruttato una combinazione di phishing e di un difetto di progettazione del software.
Nel caso di wannacry, l’exploit, ovvero la grave falla di sicurezza di Microsoft Windows, è stata denominata “EternalBlue” e rende possibile l’esecuzione remota di codice (RCE) utilizzando una vulnerabilità del servizio SMBv2 – Server Message Block, un protocollo di rete usato per la condivisione in rete e per implementare comunicazioni autenticate tra diversi processi, dando garanzia dell’autenticità degli attori della comunicazione. Tramite questa falla, wannacry è stato anche in grado di replicarsi, diffondendosi nella rete LAN ed infettando tutti gli altri computer.
L’inizio dell’infezione avviene, come anticipato, tramite un disattento intervento umano, quando l’utente apre, ad esempio, un file ricevuto via mail o anche navigando su siti web in grado di installare il malware. L’utente è ingannato dal contenuto della mail dove solitamente viene chiesto di aprire il file per verificare una spedizione che ha l’utente come destinatario oppure la ricezione di una fattura. Una volta che il ransomware viene installato nel computer dell’utente, viene eseguito e cripta tutti i documenti che trova: foto, video, pdf, fatture, atti, ecc.
L’obiettivo finale è quello di ottenere il pagamento di un riscatto, solitamente in criptovaluta (Bitcoin ma si utilizza anche Monero, dal livello di anonimato molto elevato) in cambio della chiave di decriptazione dei dati.
La blockchain quindi, figlia della crittografia ed il cui sottoprodotto principe è appunto la criptovaluta, diventa alleata dei criminali informatici, da cui traggono l’ingiusto profitto dopo aver applicato la crittografia ai files degli utenti.
Come si vede la crittografia non è più una fedele alleata e parte strutturante della cybersecurity, ma un’arma fumante rivolta verso l’incauto utente.
Microsoft ha successivamente rilasciato un aggiornamento di sicurezza per risolvere la vulnerabilità su SMBv2.
Altro eclatante esempio di phishing con annesso malware si è avuto a partire da gennaio 2020, con una nuova versione del ransomware FTCODE avente come obiettivo proprio gli utenti di lingua italiana.
Come per altri ransomware, l’azione principale svolta da FTCODE è quella di criptare i files della vittima, lasciandole come possibilità per il recupero l’acquisto della chiave di decifratura previo pagamento di un riscatto in bitcoin.
L’azione svolta da FTCODE non si ferma però alla sola cifratura dei files, ma si estende alla lettura delle password salvate nel browser ed, in alcuni casi, a quelle inserite nel programma di posta
elettronica. Immaginiamo l’impatto che può avere per una persona perdere l’accesso ai propri documenti, l’uso del proprio computer e di tutte le password dei propri account (e-mail, banca, social network) che vanno nella disponibilità esclusiva di criminali: l’identità digitale di questa persona viene violata con conseguenze che possono essere gravissime sia in campo personale che sul lavoro. Ampliamo questo scenario fino all’ordine di grandezza di un’azienda e rendiamoci conto che i danni provocati possono essere davvero devastanti.
Come affiancare la crittografia ad altre tecniche
In generale, dunque, la corretta progettualità della cybersecurity di un sistema informatico dovrà occuparsi della sicurezza della rete e delle applicazioni, dell’integrità dei dati e di una corretta gestione dei privilegi da assegnare alle varie tipologie utente. Dovrà prevedere inoltre strategie di disaster recovery e, come abbiamo già intuito ormai, anche di una corretta formazione degli utenti relativa alle buone norme di comportamento da seguire e dei rischi connessi al mancato rispetto delle procedure.
Un buon punto di partenza è fornito dal Framework Nazionale per la cybersecurity, che schematizza una metodologia di approccio per la messa in sicurezza di un sistema informatico, inizialmente pensato per la P.A. ma applicabile anche per le imprese.
La crittografia, quindi, componente fondamentale della cybersecurity, deve necessariamente essere affiancata da altre tecniche e prevedere scenari dettagliati di disaster recovery che, come hanno reso tristemente evidente i casi di Wannacry, FTCODE e di altri numerosi ransomware, dovranno contemplare sistemi di backup automatici e verificati.
Backup automatici, in modo da escludere l’intervento umano ed avere certezza nella schedulazione del processo. Backup verificati, poiché occorre controllare la procedura di restore, ivi compresa l’integrità dei singoli file.
Aggiungo che è sempre buona norma salvare i backup (automatici e verificati) in ambienti scissi da quello di produzione e, possibilmente, dislocarli geograficamente rispetto a quello.
L’intervallo di tempo tra due backup successivi dovrà essere valutato caso per caso e comprendere documenti, database ed anche le macchine virtuali eventualmente presenti.
Il monitoring, continuo e con alert automatici in caso di anomalie, è inoltre un “occhio aperto” su cosa avviene sui file delle workstation come dei server ed è una conditio sine qua non di ogni sistema di cybersecurity.
Occorre aggiungere inoltre che le minacce cui le tecniche di cybersecurity devono fornire uno scudo, non provengono solo dall’esterno ma anche dall’interno, motivo per cui si è diffuso il concetto di zero trust, ovvero del principio di “non fidarsi mai, verificare sempre”.
La metodologia di approccio è stata definita in cinque punti dal suo ideatore, John Kindervag della Forrester Research:
– l’identificazione della superficie protetta, ivi compresi i dati sensibili e le applicazioni;
– mappatura dei flussi delle transazione dei dati sensibili sia tra gli utenti che tra le applicazioni;
– definizione dei micriperimetri interni, segmentando la rete ed applicando criteri di accesso rigorosi alle risorse;
– definizione delle policy con il metodo Kipling (chi, cosa, quando, dove e perché);
– automazione, monitoraggio e manutenzione.
Da enti matematici astratti come gli algoritmi crittografici, che vengono poi implementati nei protocolli di rete e nelle applicazioni di utilizzo quotidiano, siamo passati alla cybersecurity, che utilizza anche la crittografia ma che deve pre-occuparsi anche di tutte le altre minacce (interne ed esterne) che derivano da difetti di implementazione di algoritmi e protocolli, da errori del software fino al comportamento umano, non ascrivibile ad alcun algoritmo.
Siamo arrivati quindi nel mondo reale, dove l’approccio alla cybersecurity diventa di necessità olistico con zero trust come leit motiv e, consentitemi, risulta estremamente utile anche una buona dose di sana paranoia digitale!
Per chi volesse approfondire la trattazione degli algoritmi crittografici, la loro implementazione nei protocolli di rete e quindi nelle applicazioni, passando anche per dark web, blockchain e fino alla crittografia quantistica, posso suggerire la lettura del mio libro: “La crittografia da Cesare ai quanti”, ed. Themis. Un percorso costruito passo passo per il lettore per sviluppare consapevolezza sulle attuali tecnologie digitali e sul loro funzionamento. Durante il percorso vengono forniti anche strumenti di approfondimento per i più esperti, ma nulla è dato per scontato come conoscenza pregressa.