25 luglio 2024

​I soliti noti

​Se è IT e non sai di cosa parli, dai la colpa a Microsoft

​Si sono fermati gli aeroporti (non tutti, alcuni). Si sono fermati i treni (all'estero, in Italia erano già fermi). Hanno avuto problemi gli ospedali inglesi. Molte aziende si sono trovate con i sistemi informativi fermi o parzialmente fermi.

Insomma, non funzionava niente.
Perché?
All'inizio quasi tutti i giornali hanno pensato bene di scrivere titoli che dicevano più o meno 'Aggiornamento ai sistemi Microsoft provoca caos planetario'. Solo che Microsoft proprio non c'entrava nulla. L'aggiornamento non era ai sistemi Microsoft ma alla piat­ta­for­ma di sicurezza di CrowdStrike, e Windows era vittima, non causa del problema.
Solo dopo 24 ore le principali testate hanno smesso di parlare di Microsoft e l'hanno tolta dai titoli (ma sul Corriere è rimasto un riferimento a Microsoft nel testo)
Il fatto è che non sempre è colpa di Microsoft, che però in ambito IT rimane il bersaglio preferito.

Cosa è successo?

Un aggiornamento ai file di configurazione dell'agente del prodotto di sicurezza Falcon CrowdStrike ha causato un comportamento anomalo dell'agente. Siccome l'agente opera con un livello di privilegio altissimo (lo stesso del sistema operativo) Windows non ha potuto semplicemente terminare il codice offensivo. Anzi in realtà l'ha fatto, ma nel farlo Windows si è "suicidato". Ed era il comportamento corretto, l'unico modo per proteggere i dati.
Il problema più grosso è che non sembra ci sia modo di automatizzare la soluzione. Esiste un modo per ripristinare il sistema compromesso ma è necessario farlo a mano, ed accedere fisicamente. Il che implica tempi molto lunghi se i sistemi da aggiustare sono molti.

Ma non l'hanno testato?

Questa sicuramente è una bella domanda. Possibile che non avessero fatto nemmeno una prova, semplice semplice? Perché se l'avessero fatto di certo si sarebbero accorti che veniva giù tutto, no?
A difesa di CrowdStrike dobbiamo osservare che non si trattava di un aggiornamento del codice, ma solo di una modifica della configurazione. Qualcosa di equivalente ad aggiornare le firme di un antivirus (nello specifico la modifica riguardava il trattamento di "Named Pipes"). Non essendo una modifica alla piattaforma ma solamente una nuo­va configurazione è plausibile che il processo di rilascio non prevedesse il test, per velocizzare l'aggiornamento e abbassare i costi.
Evidentemente il buco non è stato introdotto con questo specifico aggiornamento ma era preesistente ed è solo stato esposto con questa nuova configurazione (che magari era sbagliata, chissà).
Morale: no, non l'hanno testato. Ma forse così fan tutti…

Ma non c'era ridondanza?

Questa è una domanda che ricorreva nei media (ignoranti): ma possibile che i sistemi non fossero ridondati, in modo che se fallisce il sistema principale uno alternativo può prenderne il posto? In molti casi era sicuramente così. E in quei casi il sistema primario e quello di backup erano stati tenuti accuratamente allineati, così da garantire che en­tram­bi subissero il problema contemporaneamente. Del resto, non si può fare di­ver­sa­men­te (si può, con i rolling-updates, ma è complicato e non si fa una cosa del genere sugli aggiornamenti degli antimalware).

È successo perché un solo sistema controlla tutto

Altra questione che i media hanno abbondantemente discusso: siamo dipendenti dall'informatica, e lo strapotere dei big-tech ci porta ad avere lo stesso sistema ovunque, e se si scassa quello siamo fritti.
Innanzi tutto, CrowdStrike non faceva parte dei big-tech, almeno fino a quando è suc­ces­so il pasticcio. In secondo luogo, il problema ha interessato solo una piccola porzione dei sistemi Windows (quelli dei clienti di CrowdStrike), solo che alcuni di questi, come l'aeroporto Schiphol di Amsterdam, erano importanti per i consumatori e quindi il problema ha avuto una grande eco, oltre che effetti devastanti a livello glo­ba­le.
Ma pensando appunto a Schiphol, sarebbe stato possibile evitare il disastro se non si fosse scelto di avere tutti i terminali fatti esattamente allo stesso modo, con Windows e Falcon ecc.? A parte il fatto che si tratta di ragionamenti fatti col senno di poi, la risposta è sì, se metà fossero stati Windows e metà, ad esempio, Linux si sarebbero bloccati solo metà dei terminali. Ma in realtà comunque sarebbe stato peggio. Avere sistemi non uniformi costa molto di più, porta a maggiori difficoltà di integrazione e di supporto ed in generale porta ad una minore affidabilità. Invece di una singola catastrofe pro­ba­bil­men­te ci sarebbero stati molteplici piccoli pasticci. Non ne avrebbe parlato nessuno, ma pro­ba­bil­men­te la qualità del servizio sarebbe stata peggiore. (*)

Perché CrowdStrike?

Più precisamente, perché non usare Defender for endpoint, invece di rivolgersi a una terza parte?



Ci dicono che il primo motivo sia il prezzo. CrowdStrike costa meno. E poi c'è questa leg­gen­da, sbagliata, secondo cui Microsoft non sa fare sicurezza e quindi non è sicura, per cui è meglio comunque rivolgersi ad altri. 
Interessante a questo proposito il grafico qui a fianco, fatto da Gardner e riportato sul sito di CrowdStrike, che mette Microsoft in alto a destra insieme appunto a CrowdStrike.

 Secondo noi usare insieme prodotti dello stesso vendor è in generale preferibile rispetto a mettere insieme cose fatte da produttori indipendenti, perché è probabile che in questo modo si abbia una migliore integrazione, maggiore stabilità, minori costi di gestione. Quindi in generale se la piattaforma è Microsoft, ed esiste una soluzione Microsoft ad un certo problema, si dovrebbe preferirla. Molti invece, siccome si sentono obbligati a usare Microsoft per certe cose (Windows, Office, …), appena possibile cercano di rifarsi andando altrove, a nostro parere facendosi del male.
In generale scegliere la soluzione "best of breed" per ogni problema non produce un sistema che nell'insieme sarà il migliore possibile. Si deve scegliere la combinazione di soluzioni che nell'insieme produce il risultato migliore. E spesso questo significa sce­glie­re un unico produttore.
Con questo non diciamo che Microsoft non potrebbe commettere un errore come quello che abbiamo visto, ma pensiamo che in generale la probabilità di un problema causato da un prodotto Microsoft su piattaforma Microsoft sia minore.

Windows vs Open Source?

Il fatto che il problema si sia presentato solo in ambiente Windows (non in tutte le versioni) significa che Linux è più stabile? Non crediamo che sia così. In questo par­ti­co­la­re episodio ci sono due possibili motivi per cui nel caso Linux non è successo nulla: o l'agente CrowdStrike per Linux non aveva il problema, oppure l'aveva ma Linux non se ne è accorto (quasi impossibile). Se fosse la prima, è un caso. Se fosse la seconda, Windows si è comportato nel modo giusto.

Morale?

Non tutto quello che non funziona è stato fatto da Microsoft, e non tutto quello che fa Microsoft non funziona, anche se sicuramente negli anni anche Microsoft ha contribuito alla raccolta dei software imperfetti.
Poi, quando si scrive di cose su cui non si sa nulla, potrebbe essere utile documentarsi un poco prima di farlo.
Ultimo: siamo indubbiamente dipendenti dalla tecnologia, in particolare dall'IT. Stupisce che qualcuno si stupisca, o si agiti. Siamo anche dipendenti dall'energia elettrica, dalle comunicazioni, e da un sacco di altre cose: sapremo quali solo quando smetteranno di funzionare..

Per una cosa però siamo grati a CrowdStrike: almeno questa volta non parliamo di Intelligenza Artificiale.

----------------------------------------------------------------------------------------
(*) Non a caso lo Space shuttle era controllato da 4+1 sistemi, i primi quattro identici, il quinto con software scritto da un vendor differente: "The software package for the BFS has been independently developed and coded to reduce the possibility of generic software errors common to the primary system. The entire BFS is contained in one memory configuration, loaded before lift-off and normally maintained in that machine throughout the mission to provide independence from the mass memories."
Flight Software - Space Shuttle Avionics System - Novamente


Segui la nostra
pagina su LinkedIn