Aggiornamenti Stuxnet, qualche considerazione e mia attività di ricerca a Pisa

Continuano gli aggiornamenti su Stuxnet che, come dicevo, secondo me rimarrà nella storia del malware come uno di quelli che hanno cambiato la prospettiva sul problema malware. Le considerazioni che vorrei mettere in evidenza sono due. La prima, di cui purtroppo non ricordo la fonte, è che sembra probabile che chi ha scritto Stuxnet e chi lo ha utilizzato (quasi certamente) per attaccare gli impianti di arricchimento iraniani, siano due “gruppi” diversi. La considerazione nasce dalla professionalità con cui è stato realizzato Stuxnet, compresa la presenza di tre 0-day e la difficoltà nello scrivere codice per sistemi SCADA, e dalla “disattenzione” da parte di chi lo ha utilizzato, che invece ha fatto sì che finisse su Internet, portando allo scoperto l’operazione e soprattutto bruciando le 0-day. Per quanto siamo ancora nel campo delle ipotesi, mi sembra un ragionamento credibile. Il corollario, che differisce un po’ dalle mie prime considerazioni, e che riporto perché mi trova d’accordo, è che ci siano organizzazioni che hanno a disposizione un arsenale di competenze, risorse, strumenti e di vulnerabilità 0-day, che usano per attività “coperte”, anche svolte da altre organizzazioni “amiche”: in questo caso di sabotaggio, in altri probabilmente di spionaggio, probabilmente anche industriale a supporto delle proprie aziende. Vorrei sottolineare questo ultimo punto, ovvero lo spionaggio industriale, su cui tornerò dopo. Il secondo riferimento invece l’ho ancora, ed è questo articolo di Symantec, in cui si descrive come Stuxnet sia pensato per attaccare impianti con delle specifiche caratteristiche. Per capire il problema, bisogna entrare nella logica dei sistemi SCADA. La facilità con cui si scrivono worm per i computer general purpose è che più o meno tutti funzionano allo stesso modo, e possiamo dare molte cose per scontate. Ad esempio, se mi connetto alla porta tcp/80 di un server su Internet, quasi certamente ci troverò un server Web, con il quale comunico secondo uno specifico protocollo standard; quando questo mi comunica che supporta una certa versione di php, ho tutta un’altra serie di “cose note” su cui lavorare, e ancora di più se ad esempio dalle pagine che mi restituisce si capisce che c’è, che so, WordPress. I sistemi SCADA non sono così: se è vero che i sistemi di supervisione sono essenzialmente macchine standard, normalmente Windows, e che il protocollo che utilizzano per gestire la componente SCADA sono a loro volta standard (sebbene non IP), la rete SCADA di fatto è composta principalmente da sensori e attuatori (e componenti che hanno lo stesso ruolo di un router/switch). Per farla breve, un sensore manda valori numerici al sistema di supervisione, un attuatore riceve valori numerici dal sistema di supervisione e di conseguenza “fa qualcosa”: aziona un relè o qualcosa del genere. Il punto importante è che i sensori che leggono la temperatura di una stanza, o la percentuale di una sostanza chimica in un camino, o il numero di rotazioni di un motore, si presentano al sistema di controllo allo stesso modo: sensori che mandano numeri. Lo stesso per gli attuatori: indirizzi a cui mandare numeri È solo chi conosce l’impianto che sa che un sensore corrisponde a una temperatura e l’altro alle rotazioni, e quali numeri corrispondano a cosa, e di conseguenza scrive i programmi che, in funzione dei numeri che arrivano da certi sensori, manda altri numeri agli attuatori. Senza sapere esattamente com’è l’impianto, intervenire sulla rete SCADA vuole dire fare cose a caso: si potrebbe avviare e fermare un motore come anche accendere o spegnere una luce. È per questo che si dice che chi ha scritto Stuxnet per attaccare gli impianti iraniani li doveva già conoscere. Naturalmente, attacando le reti SCADA si potrebbe fare anche altro, ad esempio farsi inviare dal sistema di supervisione il programma di gestione dell’impianto, che spesso comprende delle iconcine o delle stringhe molto esplicative, che permetterebbero di conoscere l’impianto e il processo industriale molto nel dettaglio, ma sarebbe spionaggio e non sabotaggio, e non è questo che fa Stuxnet.

Ora, il motivo per cui continuo a insistere su Stuxnet è che ne dobbiamo dedurre che  organizzazioni con competenze e risorse stanno già scrivendo codice mirato, comprensivo di 0-day, allo scopo di fare sabotaggio o spionaggio industriale attraverso i sistemi informativi. In questi tempi di crisi, mi aspetto che lo spionaggio industriale, anche supportato dai governi o da organizzazioni “vicine” sia particolarmente di tutti (quelli capaci) contro tutti, salvo forse europei contro europei, e quindi non dobbiamo farci troppe illusioni.

Il punto importante è che ci sono gli 0-day di mezzo. Come ci si protegge? È chiaro che tutta l’importanza che viene data ai bug software, alle patch e a quest’area del pen-testing, per quanto una base necessaria, non è di grande aiuto contro un avversario che dispone di 0-day. In questo caso l’unica possibilità è una robustezza “architetturale”, sia di codice che di sistemi, che è quella che la security ha sempre richiesto e che invece è così poco gradita a chi vorrebbe realizzare sistemi senza questo tipo di vincoli (limitandosi a un po’ di patch management e antivirus dopo). Solo un’architettura robusta può fare sì che un singolo 0-day non permetta di aggirare tutte le protezioni. Su come proteggersi da 4 0-day si può discutere, naturalmente 😉

Se questi non sono discorsi che devono necessariamente interessare la maggior parte delle reti e delle organizzazioni, per le quali portarsi a un livello medio di sicurezza sarebbe già un buon passo, per reti, organizzazioni e impianti più critici il discorso è diverso. E qui si innesta la ricerca che stiamo facendo al Dipartimento di Informatica di Pisa. Si tratta di un’evoluzione di quanto stavamo già studiando da anni in questo campo, anche in ambito SCADA, ovvero come valutare la capacità di sistemi complessi di resistere ad attacchi portati da minacce con diverse capacità in termini di risorse, competenze ecc. Quello che stiamo aggiungendo adesso è una valutazione probabilistica della presenza delle vulnerabilità: non so quale sia la vulnerabilità, ma c’è una certa probabilità che un certo componente del mio sistema sia vulnerabile, o lo diventi entro l’anno. Il problema come sempre non si può affrontare con i tipici strumenti come la Fault Tree Analysis, perché qui abbiamo una componente intelligente che non si muove a caso sul sistema, ma segue una logica di massimo profitto. Quali sono le conseguenze sul mio sistema? È possibile che una minaccia con determinate risorse raggiunga un certo obiettivo, e in quanto tempo? Più o meno di quanto ci metto io ad applicare una patch? E soprattutto, a prescindere dal patch management, dove posso intervenire sul mio sistema per ridurre questi impatti? Cosa succede se aumento la robustezza di questo o quel componente, è un investimento efficace? Tutte domande che saranno sempre più fondamentali e alle quali, anche grazie ad un simulatore su cui stiamo lavorando, contiamo di trovare risposte interessanti 😉

Posted in ict, Sicurezza | Tagged , , , , , , , , | Comments Off on Aggiornamenti Stuxnet, qualche considerazione e mia attività di ricerca a Pisa

Anche in USA gli ISP dovranno bloccare i domini stranieri “illegali”?

Secondo questo post, è stata approvata da (se capisco bene) una commissione del Senato, con 19 favorevoli e 0 contrari, una norma per bloccare i domini che offrono materiale illegale negli USA (es. software “pirata”). La proposta è qui, e l’approvazione avvenuta non è ovviamente il passaggio finale. Naturalmente io non mi intendo di legislazione USA, ma mi sembra che il passaggio discusso nell’articolo sia a pag. 8-9 del documento. Come per l’Italia, gli ISP dovrebbero smettere di risolvere domini stranieri su ingiunzione. Una grossa differenza è che l’ingiunzione può anche arrivare al registar se è negli USA, ma soprattutto, dato che alcuni TLD importanti sono gestiti negli USA (.com, .net, .org…), per quelli dovrebbe essere lo stesso registry a far sparire il dominio, a quel punto (presumo) da tutto il mondo.

Posted in Uncategorized | Comments Off on Anche in USA gli ISP dovranno bloccare i domini stranieri “illegali”?

Modalità di debug nascosta nei processori AMD

A quanto pare la maggior parte dei processori AMD dispone di una modalità “debug” attivabile mettendo un apposito valore in un registro. Di per sè, la cosa sembra tecnicamente una ganzata, e vorrei davvero avere il tempo di provarla in qualche modo. Le reazioni a caldo che ho letto finora sono di due tipi: “Perché una funzionalità così utile è stata tenuta nascosta ad esempio ai tanti sviluppatori di driver di hardware, che la troverebbero tanto utile?” e la seconda, che ovviamente ho avuto anch’io:”Non ci sarà qualche conseguenza dal punto di vista della sicurezza?”. La preoccupazione è che le due domande abbiano una risposta comune. Naturalmente è presto per dire qualcosa, ma è una questione che vale la pena di seguire da vicino. Tutta la sicurezza dei sistemi operativi, e quindi del software che ci gira sopra, si basa su un’ipotesi fondamentale, e cioè che il processore garantisca che un processo non privilegiato non possa accedere al contesto (memoria, registri…) di un processo privilegiato. Se questa garanzia si perdesse, ovvero attraverso la modalità di debug fosse possibile aggirare questo vincolo, sarebbe veramente un guaio. Anche perché aggiornare un processore non è come installare una patch di Windows, posto che si possa fare. La speranza naturalmente è che la modalità di debug abbia dei vincoli adeguati, come poter essere attivata solo da processi privilegiati e in determinate condizioni. Anche in questo caso comunque, si apre la possibilità di rootkit con effetto “Blue pill” molto, molto più efficaci. Aspettiamo e vediamo. Nel frattempo, passare a Intel? Dubito: se AMD ha trovato utile e realizzato una funzionalità del genere, sarebbe strano che non ci avesse pensato anche Intel. Comunque, dato che segreti di questo genere sono tali per modo di dire, se ci fosse qualcosa anche in Intel ne sentiremmo parlare presto…

Posted in ict, Sicurezza | Tagged , , , | 1 Comment