Difficile parlare della nuova CPU Morpheus: nonostante si basi su un’architettura open source, ci si trova davanti a una barriera d’informazioni e segreti motivati dalle nuove implementazioni applicate. Si parla di un microprocessore in grado di “modificare la propria microarchitettura” così da impedire praticamente a chiunque di attaccarlo.
Incredibile ma vero, dato che dietro questo progetto hanno lavorato e continuano ad esserci due istituzioni di grande serietà: l’Università del Michigan e la DARPA.
Indice degli argomenti
Morpheus: cos’è e come funziona la CPU “mutante”
Todd Austin, un professore di ingegneria elettrica e informatica presso l’Università del Michigan, assieme al gruppo di ricercatori con cui lavora ha progettato e costruito un microprocessore che introduce modifiche casuali al suo microcodice, e di conseguenza al livello di microarchitettura, con una periodicità di poche centinaia di millisecondi. In qualche modo questo chip “muta” in modo quasi costante per impedire agli hacker di avere il tempo di trovare i suoi punti deboli.
Così spiega Todd Austin nell’articolo che ha pubblicato su The Conversation: “Gli hacker devono conoscere esattamente i dettagli della microarchitettura per poter iniettare il loro codice dannoso in sistemi vulnerabili. Per fermare questi attacchi, Morpheus introduce modifiche casuali alla sua implementazione al fine di trasformare il sistema in un puzzle che i malintenzionati devono risolvere”.
Se possiamo dare in Italiano la definizione che più si avvicina a questo microprocessore diremmo che si tratta di “un’architettura sicura, tollerante alle vulnerabilità, basata su una miscela di difese su bersagli mobili con crittografia a tempo”.
Come dichiara Todd Austin: “Morpheus è una CPU sicura progettata all’Università del Michigan da un gruppo di studenti laureati e da alcuni docenti. Trasforma il computer in un puzzle difficile da risolvere. La nostra idea era che se avessimo potuto rendere davvero difficile far funzionare qualsiasi exploit su di esso, allora non avremmo dovuto preoccuparci degli exploit individuali. In sostanza, lo renderemmo così incredibilmente terribile da capire, che gli aggressori saranno scoraggiati dall’attaccare questo particolare obiettivo. La sfida è: come si fa a renderlo incredibilmente difficile da capire per un utente malintenzionato, ma senza influenzare il normale programmatore?”.
“L’approccio odierno di eliminare i bug di sicurezza uno per uno è una partita persa”, afferma Todd Austin, “Le persone scrivono costantemente codice e finché c’è nuovo codice, ci saranno nuovi bug e vulnerabilità di sicurezza. Con Morpheus, anche se un hacker trova un bug, le informazioni necessarie per sfruttarlo svaniscono cinquanta millisecondi dopo. È forse la cosa più vicina a un sistema sicuro a prova di futuro“.
La sicurezza dei processori a livello globale
In termini di sicurezza, i processori sono stati uno dei principali obiettivi degli aggressori negli ultimi tempi. Una volta scoperta una vulnerabilità in un processore, è molto più difficile bloccare o mitigare l’attacco rispetto al software o ad altri componenti. Le vulnerabilità Meltdown e Spectre hanno avuto un impatto importante sulla sicurezza dei processori a livello globale e sulle loro prestazioni successive.
Una serie di vulnerabilità che Intel e altre società semplicemente non sono state in grado di risolvere, mitigando solo il danno in cambio della riduzione della potenza dei loro processori.
È qui che entra in campo l’idea di introdurre hardware sicuro come Morpheus.
L’architettura di Morpheus si modifica continuamente
In realtà, non è che il processore non possa essere “hackerato” ma piuttosto che farlo è inutile. Compromettere Morpheus servirà solo ad avere il controllo del processore per, letteralmente, cinquanta millisecondi: questo perché l’architettura del processore è progettata per cambiare e posizionare parti del codice in modo casuale ogni cinquanta millisecondi e per rendere l’idea sarebbe come provare a digitare con una tastiera che cambia la posizione dei suoi tasti ogni cinquanta millisecondi. Modificando costantemente alcune parti del codice del processore, l’attaccante non sa mai esattamente a cosa sta cercando di accedere e dove deve attaccare.
Come ci riesce? In teoria, se l’architettura del processore viene modificata, anche i programmi e il sistema operativo del computer smetteranno di funzionare. Ma per evitare ciò, Morpheus cambia solo le parti del codice note come “semantica indefinita”, quelle relative alla dimensione o alla posizione delle applicazioni, per esempio le parti del codice che permettono il corretto funzionamento del software.
Gli attacchi, spesso, hanno successo abusando del divario tra il programma e la semantica a livello di macchina, ad esempio individuando un puntatore sensibile, sfruttando un bug per sovrascrivere questi dati sensibili e dirottando l’esecuzione del programma vittima.
I veri punti di forza di Morpheus
In genere, si porta all’offensiva la progettazione sicura del sistema, offuscando continuamente le informazioni di cui gli aggressori hanno bisogno ma che i normali programmi non usano, come la rappresentazione del codice e dei puntatori o la posizione esatta del codice e dei dati.
L’architettura hardware sicura di Morpheus combina due potenti protezioni: “insiemi di difese di bersagli mobili e abbandono”. Gli insiemi di difese del bersaglio in movimento randomizzano i valori chiave del programma (ad esempio, riposizionamento dei puntatori e crittografia del codice e dei puntatori) che costringe gli aggressori a sondare ampiamente il sistema prima di un attacco.
Per garantire che le sonde di attacco falliscano, l’architettura incorpora il “churn” (miscelatore) per riordinare in modo trasparente i valori del programma sotto il sistema in esecuzione. Con frequenti oscillazioni, i sistemi diventano rapidamente impraticabili da penetrare.
Morpheus si basa su un prototipo basato su RISC-V progettato per fermare gli attacchi del flusso di controllo. Ogni difesa del bersaglio mobile in Morpheus utilizza il supporto hardware per offrire individualmente più casualità a un costo inferiore rispetto alle tecniche precedenti.
Se combinate con “l’abbandono”, le difese di Morpheus offrono una forte protezione contro gli attacchi del flusso di controllo, con i test di sicurezza e studi sulle prestazioni che rivelano i seguenti punti di forza: per primo una protezione ad alta copertura per un’ampia gamma di attacchi del flusso di controllo e poi gli impatti trascurabili sulle prestazioni (uno per cento) con periodi di “abbandono” fino a cinquanta millisecondi, che lo studio dei ricercatori stima essere almeno cinquemila volte più veloce del tempo necessario per penetrare eventualmente in Morpheus grazie alla “semantica indefinita”.
Cos’è la “semantica indefinita”
Todd Austin definisce il principio di funzionamento di Morpheus come “semantica indefinita” e dichiara: “Pensiamo alla guida di un’auto: la semantica definita dell’auto è che ha un volante; ha una freccia sinistra e destra; può avere un cambio di marcia a seconda del tipo di auto; ha un pulsante o una chiave di accensione. Una volta che si conoscono queste caratteristiche di base, è possibile guidare l’auto.
La semantica indefinita, se si è un hacker, porta a domandarsi: sono quattro cilindri o sei cilindri? Funziona a diesel o elettrico? Ha la frenata ABS o la frenata non ABS? Gli aggressori devono conoscere tutte le caratteristiche sottostanti, perché devono usare quella conoscenza per aggirare le difese.”
“Quindi”, continua Austin, “ciò che facciamo è far cambiare l’implementazione sottostante della macchina, la semantica indefinita, ogni poche centinaia di millisecondi. L’implementazione sottostante sarà così unica e rapida che non si vedrà mai più quella semantica su cui ci si trova in un preciso momento, mai più su nessun’altra macchina in futuro. È completamente unica nel tempo e nello spazio”.
Come e dove applicare tale tecnologia
Resta da vedere come questo influisca sulle prestazioni del processore: apportare così tante modifiche a tale velocità richiede calcoli che non possono essere utilizzati per il funzionamento del sistema operativo stesso. I ricercatori affermano che Morpheus è in grado di effettuare questo cambiamento in maniera estremamente rapida e senza eccessivi consumi energetici. Intendiamoci, un leggero calo delle prestazioni e chip più grandi sembrano inevitabili.
Tenendo conto della sicurezza che questo processore promette (in cambio dei sacrifici in termini di prestazioni e dimensioni), può essere molto utile per settori specifici che richiedono sicurezza extra e bassa potenza. Ad esempio, può essere utilizzato nell’industria militare o nei settori finanziari in cui la sicurezza è più importante della velocità.
Al momento Morpheus è solo un prototipo basato sull’architettura di chip open source RISC-V, ma i ricercatori hanno già in programma di commercializzarlo a medio termine. Il prototipo ha già subito un attacco di flusso di controllo, un processo mediante il quale il chip viene modificato in modo da poter inserire un malware e vedere come resiste. Per vedere sul mercato implementazioni di queste caratteristiche ci vorrà del tempo, ma arriverà senz’altro.
Vulnerabile al reverse engineering in quarantanove millisecondi
La strategia che Austin e i suoi colleghi hanno ideato è sicuramente geniale, ma ci invita a porci diverse domande. Da un lato, è interessante indagare il metodo che hanno utilizzato per evitare che le modifiche introdotte nella CPU causino errori nell’esecuzione del codice dell’applicazione. Secondo i progettisti di questo chip, le modifiche sono limitate al livello della microarchitettura, quindi il software che gira su di esso non ne risente.
Possiamo anche chiederci se non sarebbe possibile violare questo processore ricorrendo al reverse engineering. Sì, sarebbe possibile. Ma in questo contesto entra in gioco uno degli ingredienti più importanti della ricetta di questo chip: la sua capacità di apportare modifiche in tempi brevissimi. Gli hacker dovrebbero lavorare a una velocità inaccettabile per sfruttare questa tecnica.
Gli sviluppatori di software, almeno quelli che si sforzano di fare bene il proprio lavoro, si sforzano di scrivere applicazioni sicure, ma in pratica è molto difficile programmare un software completamente sicuro. Qualsiasi piccola svista può essere scoperta e sfruttata dagli hacker per introdurre il loro codice dannoso, quindi è essenziale un’ulteriore barriera di protezione. Questa è proprio la strategia del processore Morpheus: modellare un muro di contenimento che sia in grado di inibire questi errori.
Ma perché cinquanta millisecondi? Perché è la metà del tempo di un tipo di attacco chiamato “canali laterali”. I canali laterali rappresentano fondamentalmente il lavoro investigativo di un aggressore. Se proviamo a nascondere un’informazione, ad esempio dove una funzione è conservata in memoria o qual è il valore di una particolare variabile, gli aggressori fondamentalmente manipoleranno il programma per vedere se c’è qualche tipo di residuo, in termini di tempistica del programma o la reattività del programma.
Questo rivela informazioni sui segreti che si trovano all’interno del programma. Quindi, se solo randomizzassimo (usassimo la crittografia su puntatori, codice e cose del genere) e lo facessimo una volta, qualsiasi aggressore veramente esperto sarebbe in grado di decodificare tutte le informazioni in poche ore.
Quindi ciò che fa la “ri-crittografia”, che chiamiamo “abbandono”, è che pone un limite di tempo a quella canalizzazione laterale. Rendere più veloce quel limite di tempo induce a far lavorare più velocemente l’attaccante e fa sì che l’attaccante abbia bisogno di essere proattivo.
Supponiamo di avere un tasso di abbandono di cento millisecondi, quindi l’attaccante dovrebbe essere in grado di risolvere sostanzialmente il problema di dove si trovano le cose entro cento millisecondi, meno il ritardo di comunicazione da e verso la macchina. Uno degli obiettivi finali dei ricercatori è stato di ottenere meno di dieci millisecondi, perché questo è il tempo necessario per far uscire le comunicazioni dall’edificio attraverso i router. Ciò richiederebbe che l’aggressore si trovi all’interno dell’edificio per utilizzare effettivamente le informazioni acquisite. Perché se fossero fuori dall’edificio, le informazioni scadrebbero prima che possano effettivamente utilizzarle.
Un trampolino di lancio per le future generazioni di CPU
DARPA sostiene finanziariamente questo progetto. Alcuni mesi fa ha organizzato un evento in cui un team di esperti di sicurezza, 580 ricercatori hanno trascorso tredicimila ore, in circa tre mesi a pianificare attacchi costanti al chip Morpheus per tentare di violarlo e non hanno avuto successo. Al momento questo processore ha subito vari assalti hacker di test, anche se i suoi creatori continuano a metterlo alla prova costantemente per assicurarsi che il suo design non abbia punti deboli.
La cosa più interessante è che se alla fine giungeranno alla conclusione che il microprocessore Morpheus è completamente sicuro, forse in futuro potrebbero decidere di trasferire le caratteristiche fondamentali del suo design ad altri chip come accennato prima. Al momento è solo una possibilità, ma qualsiasi innovazione che aumenti la sicurezza e la cyber security dei nostri dispositivi è sempre benvenuta.