E' possibile sfruttare i bug della CPU per attaccare un sistema?

Un ricercatore ha affermato di poter sfruttare alcuni bug presenti nelle CPU Intel per sferrare attacchi in locale o da remoto. Ad ottobre la dimostrazione pratica
di Fabio Gozzo pubblicata il 17 Luglio 2008, alle 08:25 nel canale SicurezzaIntel
113 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoah...in linux non ho cartelle etc/firmware....ho lib/firmware...uso ubuntu...ma non credo c'entri la distribuzione
riporto un pezzettino del microcode che ho scaricato per la mia cpu (core 2 duo serie t7000)
Questo è interessante, bisognerebbe capire, se è direttamente eseguibile
oppure se si prevedono loader specifici...
http://www.uxc.it/?q=progetto_studente/view/475
so benissimo cos'è il microcodice delle cpu CISC
probabilmente Intel si riserva la documentazione tecnica, e chissà,
magari modificando il microcode riescono pure ad attivare le TXT e il TPA..
Probabilmente nel Bios c'è un istruzione non documentata che permette di caricare
in opcode memory i famosi 2048 byte dell' update.
Mi sembra però che questo update è di tipo "volatile" cioè deve venir ricaricato ad ogni
accensione della CPU...
Ah, io dico sciocchezze?
Mi rendo conto di non essere troppo ferrato in materia perché la cosa non mi tange in quanto ho un processore AMD Athlon XP, però conosco sufficientemente bene l'argomento di cui si parla.
Allora, riassumiamo per chiarezza quello che hai detto...
All'inizio credevi che la CPU non avesse una memoria flash, che è vero, ma hai implicitamente dichiarato la tua totale ignoranza in materia.
Poi hai parlato di CPU palladium, CHE NON ESISTONO, forse hai sentito questo nome qualche anno fa in internet, ma ti posso assicurare che non esistono e se te ne vuoi convincere guarda pure questo http://it.wikipedia.org/wiki/Next-G..._Computing_Base.
In seguito hai affermato che l'upgrade del microcode non è previsto per la classe x86, una cosa palesemente ridicola perché in pratica si può dire, esagerando, che è previsto SOLO per la classe x86.
Successivamente hai tirato in ballo il sistema operativo ed il kernel, che non centrano assolutamente niente e hai espresso le tue perplessità in merito all'aggiornamento, sostenendo che probabilmente c'è un istruzione, o opcode che dir si voglia, in grado di portare a termine l'aggiornamento.
Di colpo sei diventato un esperto, probabilmente le cose, in un modo o nell'altro, ti erano sfuggite e hai detto che è il BIOS che provvede all'aggiornamento.
Io non ho voglia né di fare polemica né di mettermi a litigare, su un forum peraltro, con uno che non ha nemmeno l'umiltà di ammettere di non sapere neanche lontanamente di cosa si stia parlando, perciò o cambi tono o mi limiterò ad ignorarti.
Saluti,
Marco
P.S.: una cosa giusta l'hai detta, una cosa che era già stata detta da elliano e che probabilmente hai letto su quel sito che hai postato (il primo che esce fuori se si cerca "microcode" su google) cioè che l'update non è definitivo e dev'essere ricaricato ad ogni avvio
Mi rendo conto di non essere troppo ferrato in materia perché la cosa non mi tange in quanto ho un processore AMD Athlon XP, però conosco sufficientemente bene l'argomento di cui si parla.
Allora, riassumiamo per chiarezza quello che hai detto...
All'inizio credevi che la CPU non avesse una memoria flash, che è vero, ma hai implicitamente dichiarato la tua totale ignoranza in materia.
e lo credo tuttora. poi l'ignoranza frà i due, non è certo mia..
TXT = Trusted Execution Technology... non lo sapevi ?
http://it.wikipedia.org/wiki/Truste...tion_Technology
questo lo stai inventando tu, adesso,
Sò benissimo che ci sono cpu che implemetano la memoria R/W di microcode addirittura
come specifica di proggetto... io mi riferivo circa le modalità dell' x86 che oltrettutto
non sono neppure documentate..
Di colpo sei diventato un esperto, probabilmente le cose, in un modo o nell'altro, ti erano sfuggite e hai detto che è il BIOS che provvede all'aggiornamento.
Perchè è stata provata, in tempi non proprio recenti, anche la via della modifica
software, cioè del compilato, per non includere istruzioni potenzialmente buggate..
Non è che io di colpo sono diventato esperto, sono 20 anni che ci stò dentro,
e non sono uno che "tenta di disassemblare il microcodice", operazione abbastanza improbabile..
Nel bios evidentemente c'è una serie di istruzioni, non documentata sui manuali ufficiali,
che predispone (ad ogni accensione del PC) la CPU a ricevere la stringa di microcode,
dal programma del bios.
Saluti,
Marco
Calma !
l'unico che non sà "neanche lontanamente di cosa si stia parlando" frà i due, non sono io...
tu prima studia tutte le IA32 e 64, coprocessore matematico compreso,
poi passa alle istruzioni RISC delle CPU Sun Spark
che poi nè riparliamo..
Ho passato diversi anni a programmare in ASM su Linux e su Windows, figurati se mi metto a discutere con uno come te.
PS 1: si scrive so, non sò
PS 2: si scrive fra, non frà
...e vantatene pure di essere più vecchio di me
Ho passato diversi anni a programmare in ASM su Linux e su Windows, figurati se mi metto a discutere con uno come te.
non voglio impressionare nessuno
Beh se sei dell' 89 posso credere che hai iniziato a programmare a 12 anni, diciamo che
l'assembler non prima dei 16.. quindi quindi, mettendo anche in conto la squola,
non penso che hai fatto più di 4/5 anni di programmazione seria..
Eppoi oggi, all' uni non si studia neanche più il Prolog, che vi farebbe tanto bene..
PS 2: si scrive fra, non frà
...e vantatene pure di essere più vecchio di me
non ti attaccare a queste semplici scuse
Magari nella tua, perchè nella mia si studia eccome. Nei corsi di Intelligenza Artificiale I e Intelligenza Artificiale II, nello specifico.
Ma figurati se sa minimamente quello di cui sta parlando!
Non ho bisogno di attaccarmi a queste cose, uno che programma da 20 anni in assembly non scrive "Non credo che la CPU abbia una memoria flash"..
In ogni caso è grave..sono errori da prima elementare..non sai nemmeno scrivere nella tua lingua madre e pretendi di insegnarmi qualcosa? Spero almeno che "squola" sia una cosa voluta...
P.S.: fai come credi, io ho smesso di perdere tempo con te
my 2 cents
Mi sembra che investiate in battibecchi almeno il triplo delle energie che ci vogliono a trovare una risposta (non definitiva, sia chiaro).Spulciato il sorgente, in banale C, dell'utility che dovrebbe aggiornare il microcodice si scopre che apre due file, uno in lettura su disco, che contiene il microcodice in formato, diciamo, sorgente (niente di trascendentale, legge quattro numeri esadecimali di trentadue bit per ogni riga e li dispone consecutivamente in un buffer in memoria) e uno di dispositivo. Quale sarà mai questo dispositivo? guardiamo in cima al file:
[CODE]#define MICROCODE_DEVICE_DEFAULT "[COLOR="Red"]/dev/cpu/microcode[/COLOR]"
#define MICROCODE_FILE_DEFAULT "/etc/microcode.dat"
[/CODE]
L'avete notato?
Ok, cambiamo destinazione e andiamo su The Linux Cross-reference
Cerchiamo la parola "microcode" trovando una lunga lista di riferimenti, tra i quali però c'è qualcosa di interessante: arch/i386/kernel/microcode.c (ancora C! Siiiii! Il C vi perseguiterà in eterno, oh servi del RAD
Nel kernel 2.6.23 in esame (tale file nel 2.6.24 scompare, probabilmente hanno cambiato interfaccia, non sono un esperto) tale file contiene 851 righe (pensavo peggio) che scorse velocemente rivelano che la funzione che esegue l'upload del firmware (ma sarà un upload od un download? Da che lato si guarda?
[CODE]static void apply_microcode(int cpu)
[/CODE]
Leggendo i commenti
[CODE]/* write microcode via MSR 0x79 */
wrmsr(MSR_IA32_UCODE_WRITE,
(unsigned long) uci->mc->bits,
(unsigned long) uci->mc->bits >> 16 >> 16);
wrmsr(MSR_IA32_UCODE_REV, 0, 0);
[/CODE]
Ora, io non provo neanche a cercare nella documentazione ufficiale Intel a cosa serva questo MSR 79 per due validissimi motivi:
[LIST=1]
[*]Una volta ho provato a dare una scorsa ai tre volumoni e l'ho trovata motruosamente pallosa
[*]L'ultima volta che ho programmato semi-seriamente in assembly ero su un C=64, quindi potrei non essere all'altezza
[/LIST]
Comunque se qualcuno di voi si sente a suo agio con tale documentazione è pregato di offrire un servizio a noi tutti riportando le sue scoperte.
P.S. Purtroppo all'uni non si studia neanche più il C, va di moda il Java!
P.P.S. Il Vero Programmatore programma ESCLUSIVAMENTE in linguaggio macchina che immette direttamente in binario tramite il tastierino numerico
P.P.P.S. Mi sa che il più vecchio sono io
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".