jueves, 11 de enero de 2018

Meltdown & Spectre: Lo de siempre, mucho ruido pero pocas nueces

El pasado 3 de enero se descubrió el primer gran fallo de seguridad del año 2018. Un fallo en los procesadores de Intel y AMD sobre todo. Se creó mucho ruido y yo la verdad es que tenía poco que decir, pues se trataba de, en principio, un fallo a nivel Hardware y yo de hardware no tengo ni puta idea, pero cuando por la noche sacaron los papers y me animé a tratar de informarme, no me resultó muy difícil de entender y aunque no conozca ni sea un experto en Hardware, voy a tratar de explicarlo de la manera más sencilla posible.


Antes de nada, os recomiendo leer los papers donde se hablan de los fallos de seguridad en cuestión, ya que son muy sencillos de leer. Si yo, sin tener ni idea, me he enterado más o menos, cualquiera puede asimilarlo y digerirlo bastante bien. Aquí os dejo el paper donde se explica Meltdown y aquí os dejo el paper donde se explica Spectre. Reitero que son fáciles de leer y que son 16 páginas donde se explica todo muy bien. Dicho esto, voy a tratar de explicar cada fallo y tratar de explicar sus repercusiones.

Ambos ataques se aprovechan de unas determinadas configuraciones de los procesadores modernos. Este fallo es algo bastante peligroso, y más si tenemos en cuenta que la seguridad de los sistemas de ordenadores dependen, en esencia, del aislamiento de la memoria. En el paper de Meltdown ponen un ejemplo muy clarificador. El ejemplo que se pone es el de que las direcciones Kernel están marcadas como no accesibles y están protegidas del posible acceso de los usuarios.

Ambos ataques se basan en la característica de los procesadores de la ejecución out-of-order {fuera de orden}, lo que permitiría leer localizaciones arbitrarias de memorias Kernel, incluidas, por ejemplo, información personal y contraseñas.

Un procesador no se limita a ejecutar una orden detrás de otra, ya que tienen una gran capacidad de cómputo, y tener que esperar siempre a la entrada de un dato o de un fragmento de código, haría que muchas veces estuviese sin hacer nada, por lo que para no quedarse en reposo, tiene que haer otras tareas como tratar de predecir la siguiente línea de código que se va a ejecutar.


Por poner un ejemplo. Imaginad que está leyendo un código shellscript y lee la línea que os muestro en la anterior imagen. Pues para no quedarse parado, tratará de predecir la siguiente línea, ya que sino desaprovecharía su potencial y rapidez. Así pues, "sabe" que después de un for en shellscript, suele venir un do.


Y sigue un algoritmo muy sencillo. Si acierta, sigue como si nada y ha ganado tiempo, sino acierta, descarta lo que ha hecho. Fácil y para toda la familia.

El problema -si se puede calificar como tal- reside que al intentar realizar esa predicción, deja "una huella", tanto si aciertan como si fallan. Y aquí vienen nuestros dos protagonistas. Tengo que decir, que me parece que son muy complejas de explotar, aunque puede que me lo parezca porque no soy un experto en temas Hardware. No obstante, sea o no sea complejo de explotar, es una vulnerabilidad y existe ese riesgo.

Meltdown

Esta parece ser la vulnerabilidad más grave y, en principio, sólo afecta a Intel. El ataque está explicado a partir del punto 5 del paper donde se describe el ataque.


Usando esta técnica, se podría acceder desde un proceso con bajos privilegios a la zona reservada en el mismo para el Kernel, lo que podría conllevar a que dicho proceso tuviese acceso a tu memoria física. Una de las cosas más interesantes sería la de volcar cualquier región de la RAM para extraer información confidencial.

Hay que tener varias cosas en cuenta aquí. La primera es que realizaron la explotación de la vulnerabilidad en ordenadores personales y en máquinas virtuales destinadas a la nube y, como he hecho alusión, se montaba un escenario en el que el atacante no tenía privilegios y trataron de, a partir de ahí, ganar privilegios dentro del sistema con esta técnica. Lo segundo es que los autores, asumieron que los sistemas están protegidos completamente por el estado del arte del software basado en técnicas de defensa ASRL Y KASRL, al igual que características de la CPU como SMAP, entro otras técnicas. Y lo más importante, para asegurarse que habían escalado privilegios por la explotación de esta técnica y no por cualquier otra vulnerabilidad en el software del sistema operativo, usaron Software Libre y así cerciorarse.


Aquí os dejo la tabla de las pruebas que realizaron los autores, aunque si queréis información más detalla, en su paper lo explican todo muy bien, facilitando mucho el entendimiento. Antes de continuar, me gustaría detenerme en algo, que cuando se lo estaba explicando a mi pareja, me percaté que a lo mejor no todo el mundo entiende. Cuando se refieren a proceso, se refieren a un programa en ejecución y uno de esos programas podría ser Google Chrome, Office o cualquier otro programa{proceso} que te descargues en tu ordenador, por lo que si soy un atacante, me daré prisa en desarrollar un programa que se aproveche de esta vulnerabilidad y esperar que la gente se lo descargue.

Es ahí, donde yo puedo encontrar esta técnica como más sencilla de realizar, pues usarlo en entornos de malware como los que ya he comentado a lo largo de este año en el blog-De este año pasado, me refiero-.


Esto lo autores lo han llevado a la práctica con una PoC en la que han realizado un volcado de la RAM mostrando las cabeceras HTTP en un Ubuntu 16.10 con Intel i7-6700K.


También han realizado un volcado de la RAM del mismo sistema anteriormente mencionado con Firefox 56, mostrando las contraseñas guardadas en el navegador.


Sergio de los Santos, informó en su cuenta de Twitter, que existía una forma de mitigar que Chrome sea una vía de explotación, que no resuelve el problema, pero que al menos no es una solución tan drástica como la que propone el US-CERT de cambiar la CPU. Os dejo su tweet.


Hasta el momento, me consta de que Microsoft ya ha lanzado el parche para Windows 10, el cual lo han llamado KB4056892. Además os dejo un Tweet con un GIF donde se muestra cómo se podría obtener una password.


El turno de Spectre

Spectre sí que afecta a todo tipo de procesadores, aunque es una vulnerabilidad mucho más difícil de explotar. Esta vez no basta con un ataque basados en esquemas de malware en el equipo. Yo no he conocido -a día de 4 de enero- que haya salido ningún parche para Spectre, aunque, en teoría, deberían ir saliendo parches con el paso del tiempo. Como no conozco mucho más acerca del tema de Spectre-sólo lo leído en los papers- no quiero caer en decir cosas que no son y desinformar. Aunque ahora que me sacáis el tema de la desinformación.

Los medios. Sensacionalistas difusores de desinformación



Me gustaría preguntar a todos los periodistas que han hablado sobre los fallos de seguridad si le han dedicado unas horillas para leerse los artículos y saber de qué va el tema en lugar de hablar y provocar miedo. Este 2018 voy a ser aún más crítico con los medios de comunicación. Si no queréis leer, al menos preguntad a gente que sepa del tema, llamad a los autores, pero no habléis por lo que leéis en Twitter. Haced vuestro trabajo que para algo os pagan, para informar, no para desinformar y hacer que la gente se lleve las manos a la cabeza sin razón. Si aún después de leer los artículos y/o preguntar a expertos seguís sin entenderlo, decid "hasta aquí sabemos, hasta aquí nos hemos informado". Pero no, es mucho mejor crear morbo, con titulares poco apropiados y con artículos que no explican nada. Haced vuestro trabajo y dejad de decir estupideces, que el dinero que ganáis es de gente trabajadora, dejad de robarnos, no hacéis vuestro trabajo.

Si eres un periodista, apunta esto, abre bien los ojos. El usuario medio NO VA A NOTAR ESE 30% MENOS DE RENDIMIENTO. Meltdown, el "más fácil de explotar" corre bajo procesos que realizan múltiples cambios al modo Kernel. Esos procesos no son ni juegos, ni ofimática, ni programas de edición de fotografía o vídeo/audio. Se han realizado pruebas tras aplicar las pruebas y muestran una pérdida del rendimiento en equipos personales que roza el 0%. No obstante, los que sí se ven afectados son esas máquinas virtuales de las que hablé al principio y "data centers"{casos de cloud como Amazon o Microsoft con Azure}. Aquí, en estos entornos, la seguridad sí tiene que ser máxima para garantizar la integridad de los datos de los usuarios. Si eres un usuario medio, simplemente ten actualizado tu sistema operativo y aplica los parches que salgan para tu sistema y en serio, tienes más peligro de ser hackeado por un Phishing que por Meltdown{Y la probabilidad de ser afectado por Spectre ya ni te digo, es muy baja}.

El mayor "problema" para Intel va a ser que en lugar de dominar como dominaba en los data centers, ahora va a tener mayor competencia, una competencia sana que les va a hacer mejorar. Intel se va a recuperar, lo que no me explico es por qué los periodistas siguen alarmando a la sociedad tras cada incidente de seguridad ¿No se cansan de equivocarse? Siempre crean un estado de alarma innecesario por no informarse como se deben ¿Tan estúpidos son?

¿Hackeamos el Mundo?

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...