¿QUE SON MELTDOWN Y SPECTRE?

TU PROCESADOR TAMBIEN ES INSEGURO: MELTDOWN Y SCPECTRE, LAS DEBILIDADES DE INTEL, AMD Y ARM


El procesador o CPU (Unidad Central de Procesamiento) es la encargada de realizar todas la operaciones secuenciales de una computadora, en pocas palabras es el cerebro de la computadora. Históricamente los procesadores que han dominado la industria han sido Intel y AMD en los PC de escritorio y portátiles, y la arquitectura ARM para dispositivos moviles. Las personas simpre han confiado en estos procesadores ya que nadie asociaba un peligros con el simple hecho de usar el procesador de su computador o dispositivo ya que es algo tan fundamental, que seria equivalente a decir que es peligrosos para una persona usar su cerebro (algo absurdo). Pero es en este punto donde las analogías dejan de importar y nos damos cuenta que en la informática se rige bajo sus propias leyes.

Desde hace mucho tiempo se especulaba que se podría utilizar la interacción de los tiempos de respuesta entre la ram, el cache y el procesador para desatar una vulnerabilidad, pero solo eran teorías hasta que un equipo de Project Zero logro pasar de la teoría a la practica.. 

No quiero hondear mucho en los detalles técnicos por que el propósito de este sitio es logra que tanto los expertos como los principiantes en seguridad informática puedan entender este tipo de información, asi que intentare explicarlo sencillamente:


¿EN QUE CONSISTEN ESTAS VULNERABILIDADES?

Para entender este fallo en el diseño de los procesadores tenemos que retroceder en el tiempo y ver algo que comenzó a ocurrir en lo 90s. Resulta que en aquellas epocas se llego a la conclusión de que los procesadores simplemente serian demasiado rápidos mientras que la RAM seria demasiado lenta comparada con el procesador, y sabían que eso podria fastidiar un poco el funcionamiento de ciertas aplicaciones..

Así que pensaron: "y que tal si tiramos un poco a la basura la seguridad del procesador a cambio alivianarle un poco el trabajo a la RAM, al fin y al cabo el procesador es tan veloz que ningun vago hacker se atrevería a meterse con el".. Y asi fue como nacio la llamada "Ejecución Especulativa" que básicamente es decirle al procesador que en lugar de esperar las instrucciones de esa "tortuga" llamada RAM, mejor ponemos al procesador a que especule cuales van a ser esas posibles instrucciones para que las aloje en una memoria especialmente ubicada llamada cache, que no solo esta mejor ubicada sino que ademas es la "flash" de las memorias (bueno es mas rápida pero a cambio de sacrificar la capacidad por que de lo contrario no existiría la RAM y viviríamos todos felices usando solo cache, cosa que es imposible), así que el procesador ahora solo tenia que usar esa pequeña inteligencia para basarse en las instrucciones mas recurrentes, y si eran correctas solo tenia que recibirlas de la super rapida cache, y dejarlas hay alojadas para usarlas cuantas veces fuera necesario, y si no eran correctas no importaba, solo tiraba a las basura esas instrucciones especulativas y recibia las correctas de la RAM. De de esta forma el procesador seguia aprendiendo e intentando hasta mejorar el rendimiento de las respuestas.   - Si hay alguna duda sobre las diferencias entre Cache y Ram puedes visitar el siguiente Post dedicado a explicar esto Diferencias entre Ram y Cache.

Y asi funciono todo perfectamente de tal forma en que esto se convirtió en un estándar en a fabricación de procesadores durante un par de décadas. 
Lo que tal vez los investigadores de aquellos tiempos no anticiparon es que en 2017 los lenguajes de programación como por ejemplo JavaScript serian demasiado potentes y que ademas de eso ya no serian simplemente unos "hackers vagos" con ganas de vulnerar software los interesados en explotar vulnerabilidades, sino enormes proyectos como Project Zero los que se dedicarían a encontrar estas fallos, y que de hecho habria toda una industria y una enorme comunidad internacional en torno a estas actividades de explotación. 

Y así fue como se comenzó a trabajar en el llamado Timing Atack, que no era mas que intentar medir el tiempo de respuesta que hay en el Cache y la RAM con respecto al procesamiento. Significaba esto que si la respuesta era demasiado veloz, los bits se estarían alojando en cache, si la respuesta era medio rapida, entonces quien estaría detrás de ello era la RAM, pero si era muy lenta, apenas estarían en el disco duro. Aunque esto conceptualmente suene facil, la verdad es que es sorprendente mente difícil de lograr. Por que aunque aca nos hayamos referido a la RAM como una "tortuga" la verdad es que no lo es, de hecho la RAM en muy rápida, pero comparada con el procesador y el cache la verdad es que se queda muy atrás. 

Es por esto que el Timing atack durante mucho tiempo fue un simple concepto por que nadie podia lograrlo o no había el desarrollo tecnológico para hacerlo. 

Sin embargo ya llegado el 2017 se anuncio el descubrimiento de las vulnerabilidades Meltdown y su peor variante Spectre de las cuales Meltdown solo afectaba a Intel, lo que alegros a los fans de AMD, pero pronto se supo que Spectre afectaba tanto a Intel como a AMD y ARM.. asi que si el barco naufraga, entonces naufraga con todos a bordo (cosa que habra alegrado a los de Intel como lo reflejaron en sus comunicados ya que cuando los señalaron por ser vulnerables a Meltdown lo primero que hicieron fue correr a reirse de AMD y ARM por ser tambien vulnerables a Spectre), por que son estas tres arquitecturas de procesador las que estan presentes practicamente en todos los PCs y dispositivos del mundo..

Pero en que se diferencial Meltdown y Spectre:

MELTDOWN:

Una de las principales diferencias es que Meltdown solo afecta a Intel hasta donde se tiene conocimiento. Meltdown destruye el aislamiento que hay entre el sistema operativo y la aplicaciones tal cual y como citan los investigadores.
Esto significa que un programa podria acceder a la memoria del sistema operativo por medio de esos fallos especulativos donde se encuentran cosas tan importantes como las contraseñas por ejemplo y hacerse con la información antes de que sea borrada del cache.

Ya existen parches para mitigar los efectos del Meltdown.


SPECTRE:

La principal diferencia de Spectre ademas de que afecta a todas las arquitecturas (Intel, AMD y ARM) es que no tiene solución... En cierta manera ya hay algunos parches que protegen de ciertos exploits conocidos que usan espectre pero incluso eso no es de mucha ayuda. 
Spectre es uno de esos raros casos en donde hacer las cosas bien no solo no sirve para nada sino que ademas empeora las cosas. 
Se sabe que tener muy buenas practicas de programación y de seguridad solo hacen mucho mas fuerte a Spectre.. (Si hacer las cosas perfectamente solo empeora todo, entonces ¿ahora que?..)
El problema es que combatir correctamente a respecte de laguna forma involucraría cambiar toda la arquitectura de los procesadores, y eso es muy difícil por no decir imposible a estas alturas. 
Spectre rompe el aislamiento entre todas las distintas aplicaciones permitiendo vulnerar su seguridad. Lo que si es cierto es que Spectre es algo mas difícil de explotar que Meltdown.


En conclusión ya se esta trabajando en mitigar los efectos de estas nuevas vulnerabilidades pero esto podría afectar el rendimiento de algunos programas, ya que la ejecución especulativa se a convertido en una herramienta muy útil para mejorar el rendimiento, y esto podría implicar sacrificar algo de ese rendimiento para recobrar la seguridad.


Para mas información visita https://meltdownattack.com/

ARTICUL0

Share this

Related Posts

Previous
Next Post »

Entrada destacada

¿CUAL ES LA DIFERENCIA ENTRE DISCO DURO, RAM, CACHE Y BUFFER?

¿CUAL ES LA DIFERENCIA ENTRE DISCO DURO, RAM, CACHÉ Y BUFFER? Es común que muchas personas se confundan respecto a las diferencias ...