Hace 6 años | Por --536706-- a techcrunch.com
Publicado hace 6 años por --536706-- a techcrunch.com

El proyecto Sandsifter presentado en la DefCon 2017 analiza los procesadores x86 a la búsqueda de instrucciones ocultas y errores. Puede analizar instrucciones del fabricante, disassemblers, assemblers, emuladores, hipervisores y en general cualquier error en el hardware de la familia x86. https://github.com/xoreaxeaxeax/sandsifter

Comentarios

D

#1 ¿Qué le pasa a TechCruch? (pregunta en serio)

D

#6 Nada realmente, pero pasan la noticia muy por encima. Se pueden sacar más detalles desde los comentarios hackernews que casi del artículo.

sillycon

El paper es breve y muy interesante.
No hace falta ponerse paranoicos con hackeos del microcódigo de la CPU, con los bugs e instrucciones no documentadas ya vale para romper cosas.
Supongo que en unas semanas aparecerán actualizaciones de microcódigo para Intel y AMD... Que meteran bugs nuevos y mejorados.

D

#24 Exacto, estamos justo en el momento de probar la herramienta.

SuperPollo

#24 i5toi7_update.exe
Es como aquella actualización que instalé en mi teléfono Samsung para convertirlo en sumergible lol

D

#7 ehh porque estudio ingeniería de software. Pero vamos que cualquiera lo sabe lol

D

#10 seguro que todavía te la prlsd imagindotela

comunistadepro

#11 Sí, pero no se la cuentes a la de ahora que se enfada.
#12 Un placer, la universidad de la vida es mi cátedra.

D

#13 joder ya nadie puede pelarsela tranquilo o que

D

#10 Gracias compi, así que si se puede.

D

#10 un ser humano y no ordenador se parecen lo que un huevo a una castaña.

Por ejemplo tu novia virtual eran solo píxeles es una pantalla por mucho que parecieran nalgas reales.

comunistadepro

#14 O sabes de informática o de culos, elige.

D

#16 Eso es mito... cierto es que la primera generación, al estar en un nuevo entorno, presentó serias dudas sobre su capacidad reproductiva.

Pero hoy en dia yo no llamaba al amigo informatico y le decia a la novia que lo atienda mientras no estas en casa...

orangutan

#8 Tienen registros y memoria caché, así que lo que es guardar algo guardan

Barquero_

#8 #5 entonces si no tienen datos/instrucciones ¿que analiza?

D

#4 los procesadores procesan datos no guardan lol

D

#5 Y tu como lo sabes??

secreto00

#5 Mmm tecnicamente eso no es cierto, los procesadores actuamente poseen una caché suficiente como para grabar unas pocas fotos.

D

#15 la memoria cache de primer nivel lo dudo. La de tercer nivel puede guardar algo más, pero es volátil.

secreto00

#17 eso es lo que quieren q pensemos

D

#15 La cache se borra cuando apagas el ordena...

perrico

#5 Si los diseñas para que guarden datos y los construyes para que lo hagan si. Sin que tu te enteres.
Dicho eso, en la entradilla dice que entre otras cosas buscan instrucciones ocultas.
Vamos que igual pueden hacer algo que no te han dicho porque no quieren que lo sepas y no lo han documentado.

Jesuo

¿Alguno que haya probado la herramienta?

sillycon

#20 Pues yo mismo. No ha tardado mucho, menos de 30 minutos con los parámetros que vienen de ejemplo en mi i7 6700K. Pero no va demasiado bien en mi máquina, ni la búsqueda ni el sumarize muestran nada, aunque sí hay log.

Jesuo

#23 He estado leyendo en hackernews los comentarios y no se si entiendo bien como funciona la herramienta...¿detecta cambios en el firmware o codigo usado por el SO para que la CPU trate los datos?
El que ha programado la herramienta al parecer trabajaba para la CIA/NSA

apetor

#39 En realidad es al reves. Es una arquitectura diferente, no solo por el ISA ( la arquitectura del juego de instrucciones ) que es mayor, diferente y hasta incompatible a nivel semantico y de la codificacion en binario ( ver caso de ejemplo INC EAX / DEC EAX y su opcode en x86-64 ), si no que todas las tablas de descriptores, TSS, y muchas cosas mas cambian ( practicamente todo ), y no es una mera extension de 32 a 64 bits.

I

#40 Pues no estudie arquitectura de microprocesadores pero diria que siguen siendo misma arquitectura son procesadores cisc de proposito general y basicamente amd saco una extension sobre IA32 de intel. Es mas si tu razonamiento fuera cierto que hace amd pagando a intel por su arquitectura x86? Que yo sepa amd introdujo cambios en el datapath, direcciones de memoria y buses y de ahi salieron x86-64 EM64T o IA32e

Ahora si me hablas de sparc, powerpc o mips o cosas asi pues joder claro que son diferentes arquitecturas pero no es el segmento del que hablamos.

apetor

#42 Que ambas sean CISC ( en cuanto a ISA y arquitectura en la superficie, dentro son otra cosa ) no quiere decir que sean iguales o se limiten a ser una mera extension ).

AMD e intel tenian ( y siguen teniendo, si no me equivoco ), precisamente, un acuerdo de patentes cruzado en ESTE tema: esto es, AMD no paga a intel los royalties por x86 ( o mejor dicho i386 o IA32, x86 es incorrecto y un cajon desastre donde meterlo todo ) e intel no paga a AMD los royalties por AMD64 ( que es como se llama la arquitectura en realidad ) o x86-64.

Por ultimo: "de ahi salieron x86-64 EMT64 o IA32e"... EMT64 es como intel llamo al modo AMD64 en sus procesadores, sin mas. IA32e es el submodo de compatibilidad hacia atras con el modo IA32 DENTRO del modo AMD64, no es un sinonimo de AMD64, sino un submodo de este. Por hacer un paralelismo, ya que es muy diferente, seria una cosa parecida a cuando IA32 introdujo el submodo V86 dentro de IA32, para poder ejecutar codigo de modo 8086 y derivados de forma controlada.

apetor

#42 Siguiendo lo de #43:

Un Windows typo "x64" ( asi es como Microsoft llama a los AMD64 fuera de ambitos tecnicos ), para su modo Wow64 ( Windows on [Windows 64] ) prepara descriptores de codigo y datos de modo IA32e dentro del modo AMD64 y algunos "gates" de pasarela entre IA32e y AMD64 y carga aplicaciones IA32 en ellas.

I

#43 no me suena nada de lo que me dices pero gracias por la informacion a ver si busco un hueco un dia y le echo un vistazo. Ya que sabes de esto... Podrias hablarme de truenorth?

apetor

#45 No lo conozco, la verdad. He mirado un poco y es un circuito integrado con 4096 "cores" ( no son procesadores clasicos, sino procesadores para uso especifico, funcionan como cumulos de neuronas electronicas que hacen mimica de las neuronas de los animales ) con 256 neuronas electronicas que pueden hacer 256 conexiones cada una.

4096 cores con 256 neuronas electronicas = 2^14 * 2^8 = 2^20 = 1 meganeuronas ( algo mas que un millon ). Como cada una de estas neuronas puede tener 256 conexiones o sinapsis ( que entiendo que esas 256 sinapsis son solo con las "cercanas" o dentro de cada uno de esos 4096 "cores" o "cumulos" de 256 neuronas electronicas ), se pueden simular 2^20 * 2^8 = 2^28 sinapsis, supongo que con esas limitaciones de que la mayoria de sinapsis son intra-cumulo/core.

No se cuales son los principios de funcionamiento de estos chips o cores, pero seran funciones muy basicas como "unir" o hacer sinapsis, cambiar estado, propagar, etc. La idea, parece, es simular cerebros y uniones nerviosas.

Hace tiempo que IBM y otros estan intentando cosas de estas, una para poder hacer IAs tipo ser vivo y otra por que, para algunos problemas, las redes neuronales o esta computacion neuromorfica consiguen buenos resultados a un consumo energetico muy bajo.

Vamos, ese chip seria algo asi como un simulador de "cerebros" tipo ser vivo pero programable.

I

#46 1 millon de neuronas no es poca cosa, ademas habra que ver la velocidad de disparo de estas o los hz que puede correr este chip, la division que tienen haciendo uso de watson tiene que ser la principal demandante de las cosillas estas y ya me gustaria a mi echarle el guante a uno. Quizas en un futuro veamos esto como un coprocesador a los actuales para tareas de un futuro so con una ia integrada. Lo que si que veo es mucho secretismo al rededor de esto.

apetor

#47 La verdad es que de estas cosas no tengo ni idea. Sí que me mola leerme algunos artículos y si que veo un futuro apasionante en todo esto, pero no es mi campo ;(

I

#48 Cual es tu campo pues?

apetor

#49 Bueno, mi interes y trabajo y demas es programacion a bajo nivel, desarrollo de drivers, BIOS/UEFI, etc. Con contacto directo de la maquina y demas.

I

#50 Ufff suena a locura gorda, para eso habra tb frameworks no?

apetor

#51 pues si, la API ( conjunto de funciones ofertadas a los programadores ) del nucleo del sistema operativo, algo parecido pero mucho mas "pelado" en UEFI ( en BIOS practicamente nada, el hardware a pelo )... pero al final depende que tipo de drivers hagas, puedes programar sin tocar mucho el hardware, sin tocar mucho el hardware pero tocando cosas del procesador a muy bajo nivel o usando solmente esa API... aun asi tiene su cosa pero tambien es bastante mas divertido...

D

Puede encontrar porno accidentalemnete borrado?
Es para un amigo pajillero.

AsVHEn

#2 ¿En el procesador?

D

#3 Eso que es??
Se puede??

e

Si bueno lo que hace lo he entendido, sigo sin ver la utilidad, una vez visto que tiene bugs o lo que sea se encuentre que? podemos de jar de echar las culpas al windows?
Me parece de ciencia ficción que con software puedan auditar una cpu para comprobar sus puertas traseras, etc..

e

Y la utilidad es?¿

D

#21
Buscar errores y funcionalidades no documentadas por el fabricante en las cpus, hardware que se ha demostrado puede tener los mismos problemas que el software (bugs, flaws, puertas traseras).

La verdad es que el autor lo explica bastante bien:

Although we treat our processors as trusted black boxes,
they are riddled with the same flaws and secrets we find in
software. Through guided instruction fuzzing based on a
depth-first search and page fault analysis, the sandsifter toolset
is able to exhaustively enumerate and test all reasonably
distinct instructions in the x86 ISA. The process has revealed
hidden instructions, software bugs, hypervisor flaws, and
critical processor failures. With the release of the sandsifter
tool [1], the reader is encouraged to audit their own processors
for defects and hidden instructions. This work provides an
important first step towards introspecting x86 chips, and
validating the processors we all blindly trust.

D

#31 Quien usa un x86 a estas alturas del siglo XXI?

D

#33 Formalmente, los intel y amd actuales siguen siendo x86.

D

#36 A que te refieres con formalmente? A que tienen compatibilidad hacia atras? El programa este también sirve para procesadores x64?

D

#37 En el readme dicen que soportan cualquier procesador x86, los actuales siguen siéndolo(incluyendo los x86_64 actuales). Aunque las arquitecturas ya no se parecen a los x86 originales, se pueden seguir usando las mismas instrucciones y registros en assembler como en los originales, aunque internamente se hace una conversión y patatín y patatán, pero genéricamente se les sigue denominando igual.

I

#37 la arquitectura del procesador sigue siendo x86 el x64 es una extension de trabajo en 64bits pero no un cambio de arquitectura.

D

#33 Creo que se refiere en general, de hecho los ejemplos que muestra en el paper son con un i7. Además tiene una opción para ser usada en procesadores antiguos como los Pentium I.