Come troppo spesso accade, le grandi catastrofi sono il risultato dalla successione di eventi del tutto casuali e altamente improbabili. Venerdì 19 luglio si è verificata una di queste quasi impossibili sequenze, iniziata giovedì notte quando la piattaforma cloud “Azure” di Microsoft è andata fuori servizio. Poi, venerdì mattina, un banale aggiornamento del suo prodotto di sicurezza informatica Falcon, lanciato dall’azienda statunitense di cybersicurezza CrowdStrike, che aveva nel suo codice un errore di programmazione, ha costretto una quantità esagerata di computer di infilarsi in una mortale spirale senza fine di riavvii continui. Diagnosi finale: crash di macchina conosciuto come “Blue Screen of Death”, il mortale schermo blu.
La combinazione dei due eventi ha generato la tempesta perfetta.
Come accennato, la causa di uno di questi due disastri è chiara: errore umano, codice difettoso distribuito come aggiornamento di Falcon, una piattaforma antivirus che rileva su portatili, server e router malware, o attività sospette che potrebbero indicare una compromissione.
Se state leggendo e non siete interessati agli aspetti tecnici, saltate questo paragrafo. Per chi è interessato oppure sta ascoltando, la causa principale dell’arresto anomalo delle macchine è da imputarsi a un singolo file di configurazione.
L’aggiornamento mirava specificamente a modificare il modo in cui Falcon ispeziona le “named pipe” in Windows, una funzionalità che consente al software di scambiare dati tra processi sulla stessa macchina o con altri computer su rete locale. Nessun problema per le macchine che usano OSx o Unix come sistema operativo.
CrowdStrike afferma che l’aggiornamento del file di configurazione aveva lo scopo di consentire a Falcon di individuare un nuovo metodo utilizzato dagli hacker per la comunicazione tra il malware sulle macchine delle vittime e i server di comando e controllo. In un post ha dichiarato: “L’aggiornamento della configurazione ha innescato un errore logico che ha provocato un arresto anomalo del sistema operativo”.
L’incidente ha portato in primo piano i programmi che operano in “background”, nel retrobottega, in particolare quelli che eseguono attività critiche di sicurezza informatica.
Per difendere i computer dagli attacchi questi programmi, come Falcon, vengono aggiornati di continuo con nuove difese man mano che vengono sviluppati nuovi metodi di attacco e sono autorizzati a farlo in automatico.
Un aspetto molto delicato dei software di sicurezza è che devono avere privilegi assoluti sull’intero computer per poter svolgere al meglio i loro compiti. Per individuare ed eliminare virus e altri possibili infestanti hanno accesso al livello più “intimo” dei computer. Se qualcosa non va per il verso giusto, le conseguenze sono di gran lunga maggiori rispetto a quelle che si avrebbero se non funzionasse una qualsiasi altra applicazione, come un foglio di calcolo o la scrittura di testo.
Venerdì 19 luglio 2024 qualcosa non è andato per il verso giusto. Al punto di generare il caso di interruzione di servizio più importante mai registrato. In tutto il mondo, il numero dei mortali schermi blu è aumentato vertiginosamente. L’impatto è stato drammatico.
I sistemi sanitari sono stati paralizzati, costringendo gli ospedali a cancellare gli interventi chirurgici non critici. Negli USA, le linee dei servizi di emergenza sanitaria sono state interrotte in diversi Stati. Problemi sono stati segnalati nel Regno Unito e in Israele.
Stazioni televisive hanno interrotto le trasmissioni di notizie in diretta.
Il sistema del trasporto aereo è stato particolarmente colpito. Enormi code si sono formate negli aeroporti di tutto il mondo: Sydney in Australia, Hong Kong, Dubai, Berlino, Amsterdam. Secondo la Federal Aviation Administration, almeno cinque compagnie aeree statunitensi – Allegiant Air, American, Delta, Spirit e United – hanno temporaneamente sospeso tutti i voli.
United Parcel Service e FedEx hanno dichiarato di essere state colpite. I clienti di TD Bank, una delle più grandi degli Stati Uniti, hanno segnalato problemi di accesso ai propri conti online. Diversi tribunali statali e municipali, sempre in USA, hanno fermato le loro attività.
Una situazione catastrofica che riflette la fragilità e la profonda interconnessione di Internet, il che non è certo una sorpresa. Chi si occupa di sicurezza digitale l’aveva prevista, cercando anche di mettere a punto con i clienti soluzioni che li proteggessero da crisi generate proprio dai software di difesa a seguito di sfruttamento criminale o di errore umano, come nel caso di CrowdStrike.
La capacità di un semplice aggiornamento di innescare un’interruzione così massiccia, peggiore di un ben eseguito attacco informatico, lascia comunque perplessi. CrowdStrike rappresenta il 14 per cento del mercato dei software di sicurezza in termini di entrate e quindi il suo software è presente su una vasta gamma di sistemi, ma non abbastanza. Deve essere successo dell’altro. L’aggiornamento Falcon deve aver innescato crash anche in altre parti dell’infrastruttura web, con un micidiale effetto moltiplicatore.
Abbiamo assistito a un effetto a cascata, una reazione a catena? Causata da cosa e perché? Per ora sono solo, sospetti da approfondire, per capire cosa sia effettivamente successo.
Nel giro di poche ore CrowdStrike ha messo a punto una soluzione per impedire ai computer di riavviarsi all’infinito. Peccato che sia utilizzabile solo dalle macchine connesse al cloud. Le altre necessitano di una correzione fisica dell’errore. In altre parole occorre spegnere il computer, riavviarlo in modalità provvisoria, cancellare il file incriminato e fare ripartire il tutto. Nulla di particolarmente complicato, ma su larga scala ci possono volere settimane.
Questo evento genera anche domande che richiedono urgenti risposte su quali siano le responsabilità dei produttori di software in caso di gravi interruzioni e incidenti di sicurezza informatica.
Attualmente le conseguenze di interruzioni significative sono minime e le aziende non sono motivate ad apportare cambiamenti radicali. Se produco automobili con freni difettosi le sanzioni sono così severe che rischio la chiusura. Se il mio software è difettoso, rilascio aggiornamento e vado avanti.
Lezioni che si possono e devono imparare da questa storia.
In primo luogo, ricordarsi, come diceva Andy Grove, fondatore e proprietario di Intel, che solo i paranoici sopravvivono. Un buon CIO, Chief Information Officer, responsabile di sistemi informatici, deve essere paranoico. La catastrofe è sempre dietro l’angolo. Murphy e le sue leggi sempre in agguato. La spada digitale di Damocle è sempre precariamene incombente sul cranio.
Poi occorre avere un approccio strategico, il che vuol dire avere un piano che, in funzione degli obiettivi da realizzare, definisce l’uso ottimale delle risorse disponibili per conseguire predeterminati risultati in un lasso di tempo rigidamente fissato.
Nella fattispecie, per prevenire future interruzioni dei servizi digitali occorre:
- Gestire gli aggiornamenti
Svolgere, in vari ambienti e configurazioni, rigorosi test pre-implementazione per rilevare potenziali problemi. Vivamente consigliato l’utilizzo di ambienti di prova (staging) che replicano le configurazioni di produzione. Da includere test automatizzati, test manuali e test di regressione per garantire che i nuovi aggiornamenti non interferiscano con le funzionalità esistenti.
- Implementazione graduale per mitigare i rischi
Aggiornare, in fasi, piccoli gruppi per monitorare e risolvere i problemi prima della distribuzione su vasta scala. Fondamentale garantire che siano in atto solide procedure di rollback (marcia indietro) per ripristinare rapidamente una versione stabile in caso di problemi. Un eventuale rollback automatizzato migliora ulteriormente questa tattica, consentendo un ripristino rapido, senza un intervento manuale significativo.
- Monitoraggio e risposta agli incidenti
Utilizzare strumenti di monitoraggio avanzati e allerta in tempo reale per individuare i problemi non appena si verificano. Indispensabile avere piani dettagliati di risposta agli incidenti con protocolli chiari per la rapida identificazione, isolamento e risoluzione dei problemi. Questi piani devono includere l’analisi delle cause profonde e le revisioni post-incidente per migliorare continuamente le strategie di risposta.
- Diversificare
La diversificazione delle soluzioni migliora la resilienza complessiva. L’implementazione di meccanismi di ridondanza garantisce che i sistemi critici rimangano operativi anche in caso di guasto di un componente. L’adozione di un’infrastruttura ibrida o multi-cloud può ridurre significativamente il rischio di un singolo punto di errore distribuendo i carichi di lavoro su più ambienti, migliorando la ridondanza, la flessibilità e le capacità di ripristino di emergenza. Il bilanciamento del carico e la distribuzione geografica delle risorse possono mitigare ulteriormente i rischi associati ai guasti localizzati.
- Valutare continuamente la resilienza delle infrastrutture e i piani di ripristino di emergenza
Approccio proattivo che garantisce che i sistemi siano preparati a gestire efficacemente le interruzioni future. Occorre testare regolarmente i piani di ripristino di emergenza attraverso esercitazioni simulate per identificare punti deboli e aree di miglioramento.
La collaborazione con fornitori affidabili, sfruttando le loro competenze e risorse, migliora ulteriormente la preparazione e le capacità di risposta.
Nulla di nuovo sotto il sole. Queste cinque tattiche non sono certo una novità. Peccato però che servano interruzioni come quella di venerdì 19.7.24 a ricordare la loro importanza.
Un ultimo consiglio: verificate di averle in posto in azienda e state attenti: le distrazioni costano care.