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

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 pubblicata il , alle 08:25 nel canale Sicurezza
Intel
 
113 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
GUSTAV]<20 Luglio 2008, 12:35 #91
Originariamente inviato da: CronoX
grazie per l'aiuto quasi quasi ci provo....
ah...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
sh4rk_8920 Luglio 2008, 14:40 #92
Originariamente inviato da: GUSTAV]<
Quante sciocchezze dici ?
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
CronoX20 Luglio 2008, 14:58 #93
se volete posto tutto il microcode!
GUSTAV]<20 Luglio 2008, 19:25 #94
Originariamente inviato da: sh4rk_89
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.

e lo credo tuttora. poi l'ignoranza frà i due, non è certo mia..

Originariamente inviato da: sh4rk_89
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

TXT = Trusted Execution Technology... non lo sapevi ?
http://it.wikipedia.org/wiki/Truste...tion_Technology

Originariamente inviato da: sh4rk_89
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

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..


Originariamente inviato da: sh4rk_89
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.

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.

Originariamente inviato da: sh4rk_89
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

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..
sh4rk_8920 Luglio 2008, 19:45 #95
Non degnerò di risposta niente di quello che hai detto, mi rifiuto, rimani pure nelle tue convinzioni e continua ad usare paroloni per impressionare la gente (me no di certo), la cosa non mi tange affatto..
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
GUSTAV]<20 Luglio 2008, 21:00 #96
Originariamente inviato da: sh4rk_89
Non degnerò di risposta niente di quello che hai detto, mi rifiuto, rimani pure nelle tue convinzioni e continua ad usare paroloni per impressionare la gente (me no di certo), la cosa non mi tange affatto..
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..

Originariamente inviato da: sh4rk_89
PS 1: si scrive so, non sò
PS 2: si scrive fra, non frà
...e vantatene pure di essere più vecchio di me

non ti attaccare a queste semplici scuse
CronoX20 Luglio 2008, 22:51 #97
scommetto che tu programmi direttamente in linguaggio binario.....
mjordan20 Luglio 2008, 22:58 #98
Originariamente inviato da: GUSTAV]<
Eppoi oggi, all' uni non si studia neanche più il Prolog, che vi farebbe tanto bene..


Magari nella tua, perchè nella mia si studia eccome. Nei corsi di Intelligenza Artificiale I e Intelligenza Artificiale II, nello specifico.
sh4rk_8921 Luglio 2008, 00:23 #99
Originariamente inviato da: mjordan
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!

Originariamente inviato da: GUSTAV]<
non ti attaccare a queste semplici scuse

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
eliano22 Luglio 2008, 00:36 #100

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 alla linea 327 si scopre che:
[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".

La discussione è consultabile anche qui, sul forum.
 
^