E alla fine, la verita' presenta il conto.

Forse pochi di voi sanno cosa sia il modulo SGX della vostra CPU. E forse non sapete che relazione ci sia con il DRM. Quindi forse non sapete cosa stia succedendo in questo momento alle CPU di Intel e di AMD.

La storia e’ abbastanza lunga. Saprete di preciso cosa sia un DRM. Un DRM e’ un sistema (Digital rights management) che serve ad impedire che una persona possa usare contenuti digitali se non ha i diritti per farlo. Il DRM funziona In brevissimo)  facendo in modo che, leggendo un contenuto voi vi troviate ad invocare l’esecuzione di un pezzo di codice che voi non avevate richiesto, il quale controlla se avete i diritti per quello specifico contenuto.

Allora, il problema dell’industria dei media (La RRIIAA, ma anche Pixar, Disney&co) era di fare in modo che nessuno potesse vedere i contenuti. Cosi’ si misero di buzzo buono a cercare un accordo coi produttori di software, per inserire ovunque dei controlli.

Microsoft accetto’ di inserire del codice nel sistema operativo, proprio a quello scopo. Ma Apple (che all’epoca usava gli Intel) no. E nemmeno gli sviluppatori di Linux ne erano felici.

Cosi’ i grandi del media si rivolsero direttamente ai produttori di CPU. Nella CPU gira cosi’ tanta roba, dicevano (vero: c’e’ un’intera copia di un OS chiamato “minix”) , che un altro pezzetto non avrebbe fatto differenza.

Nacque cosi’ il modulo “SGX” delle CPU, che a detta dei produttori doveva garantire la sicurezza dei computer, mentre era fatto principalmente per assicurarsi che sul computer potesse girare SOLO il codice che “alcuni” avrebbero consentito.

Inoltre, il modulo di “sicurezza” consentiva a chi aveva le credenziali crittografiche giuste di scrivere eseguibili che sarebbero stati caricati, a vostra insaputa, dritti nella cache fetch della CPU. 

https://en.wikipedia.org/wiki/Next-Generation_Secure_Computing_Base

Fin qui tutto bene? La storia di abusi finisce?

No. Perche’ succede che una cosa che NON e’ fatta per garantire la sicurezza NON PUO’ garantire la sicurezza, e una cosa che vi toglie il controllo di quel che potete fare con il computer INEVITABILMENTE da’ il controllo a qualcun altro.

Cosa significa?

Significa che il microcodice di Intel e AMD e’ stato decodificato.

https://news.ycombinator.com/item?id=32148318

e come se non bastasse, reso pubblico:

https://github.com/chip-red-pill/MicrocodeDecryptor


Cosa significa, in soldoni?

Ci sono due possibilita’: piu’ allarmante e meno allarmante.

Mettere le mani sul microcodice e poterlo disassemblare (scoprendo che invoca un altro codice, sempre contenuto nella CPU) significa osservare diverse cose. Per esempio, come in passato Intel abbia reagito (anche AMD, sia chiaro) alla scoperta di bachi nella CPU semplicemente modificando il microcodice. 

In pratica, quello che succede e’ che il sistema operativo puo’ caricare nella CPU determinato codice se e’ firmato da Intel, o da un altro ente che ha le chiavi crittografiche, come la CIA o l’ FBI. In questo modo, e’ possibile fare in modo che la vostra CPU faccia cose diverse da quelle che credete.

Facciamo un passo indietro: la vostra CPU intel non e’ davvero “una” CPU RISC. Sin dai tempi di Pentium, quando si scopri’ che comunque i set di istruzioni RISC erano piu’ efficaci, Intel decise di costruire un processore che “dentro” era RISC, ma per non perdere tutta la compatibilita’ dentro il processore mise un sottosistema che “traduceva” il codice (i programmi e l’ OS) che voi facevate girare in un codice RISC, che veniva poi eseguito davvero nella “vera” CPU nascosta “dentro”.

A fare questo lavoro di traduzione misero dei moduli, che ormai non si contano piu’, perche’ mano a mano che la cosa andava avanti, arrivavano le varie industrie e obbligavano la CPU a fare cose che voi non avevate chiesto.

Fate un programma per leggere cose bloccate da DRM? Niente paura: le istruzioni che avete scritto, prima di arrivare alla CPU, devono passare per alcuni moduli che contengono microcodice. E questi moduli, guarda caso, si metteranno in mezzo. OPS.

Oppure, che so io, la CPU puo’ decidere di autorizzare il boot SOLO se c’e’ un preciso TPM , e nella partizione EFI c’e’ una certa firma crittografica (sinora solo di Microsoft).

Detto questo, cosa ci dice quanto accaduto?


Che esista del microcodice e dei moduli all’interno dei processori e’ noto. 

Che facessero cosi’ tante cose o che fossero tanto potenti, di meno. Si sapeva che dentro le CPU girasse una copia di Minix, per dire

https://www.zdnet.com/article/minix-intels-hidden-in-chip-operating-system/

Quello che non si sospettava e’ come questo microcodice , e specialmente il microcodice iniettabile da chiunque abbia le chiavi crittografiche giuste, sia potente e possa chiamare altri pezzi di codice qualsiasi.

O meglio, di sospettare si sospettava, ma non c’erano prove del fatto che fosse cosi’ potente: ne parlava gia’  Joanna Rutkowska

https://www.youtube.com/watch?v=rcwngbUrZNg

Quello che succedeva era semplicemente che sino a questo momento non c’erano le condizioni perche’ la merda urtasse il ventilatore. 


Avrete sentito parlare di Stuxnet. Si tratto’ di un worm governativo concepito per nascondersi nei firmware e attaccare specifiche centrifughe in Iran. 

Il resto del mondo, pero’, era in relativa pace. Ma se osserviamo, oggi come oggi, i processori che soffrono del problema, scopriamo che sono in tantissime applicazioni industriali e IoT.

E adesso, la risposta a “che succede se i russi riescono ad ottenere, da Intel, le chiavi che servono ad installare il firmware sulla CPU”, la risposta e’ …. che siamo nella merda fino al collo.

E se anche la Cina diventa sempre piu’ nemica degli USA, e Intel ha almeno una factory in Cina a Chengdu, e i servizi cinesi riescono a mettere le mani su quelle chiavi, possono letteralmente prendere possesso delle CPU di mezzo mondo.


Ma se si sapeva, qual’e’ il punto? Il punto e’ che “sapere” ha diversi significati. Un conto e’ sapere in astratto “c’e’ del microcodice nella CPU, magari criptato, che fa cose”. Un conto e’ VEDERE il microcodice, riuscire a tirarlo fuori, e vedere cosa fa.

Un hacker puo’ cominciare a smontare un orologio ben sapendo che ci sono ingranaggi e molle che segnano il tempo. Ma mentre lo smonta, scoprira’ sempre di piu’ quali ingranaggi, come si smontano, come funzionano, che difetti hanno, e come far andare in ritardo un orologio.

A quel punto, l’Hacker ha vinto.

Se osservate il video della  Rutkowska, capite bene cosa stia succedendo OGGI: ma il video e’ di sette anni fa. Solo che a quei tempi si sapeva in un certo senso che certe cose esistevano, ma non come funzionavano.

Il fatto che gli hacker stiano arrivando a smontare gli ingranaggi significa che manca poco al punto in cui potranno cominciare a capire e smanettare. 

Si avvicina sempre di piu’ il momento in cui la cattiva pratica di accontentare pratiche mafiose infilando merda nei processori presentera’ il prezzo. 

Gli hacker cominciano a mettere le mani sugli ingranaggi. 

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.