34
Spectre y Meltdown Qué debemos Saber? David Pereira @d4v1dp3r31r4

QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Spectre y MeltdownQué debemos Saber?

David Pereira@d4v1dp3r31r4

Page 2: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

CEO de Secpro – Security Professionals

CEH, ECSA/LPT, CHFI, ENSA, ECSS, ECVP, CEI, QGSS, ECIH, EDRP, NFS, OPSEC, CICP, CND, CCISO.

+20 Años de experiencia en Seguridad Informática y DFIR

Hacker Ético – Pentester en diversas Entidades en el mundo, en ámbitos como el Financiero, Energético, Militar, Inteligencia, Diplomático, Minero, entre otros

Instructor / Consultor de Fuerzas de Ciberdefensa, Fuerzas Militares y Policía, en varios Países.

David Pereira

Page 3: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Primero: Breve Explicación:Tanto Meltdown como Spectre, son vulnerabilidadesrelacionadas al Procesador/CPU de los equipos de Cómputo;Primero se habló de los procesadores Intel, pero luego se confirmó que afecta a: Intel, AMD y ARM;Ambas aprovechan algo que se llama:“speculative execution side-channel attacks”

Meltdown y Spectre: Definición

Page 4: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Meltdown y Spectre: Definición

Page 5: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Debemos recordar que los procesadoresejecutan las instrucciones de forma lineal, esdecir secuencial;Entonces las operaciones podriamos decir que serian:

Speculative execution side-channel attacks

Page 6: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Speculative execution side-channel attacks

Operación A Operación B Operación C

La ejecución será:

El Orden será respetado y se define por parte del programa que se estéejecutando

Page 7: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Pero vemos que esta forma de ejecución podria optimizarsesi pudieramos ir avanzando en tareas correspondientes al mismo programa, pero que no requieran tareas previaspara ser ejecutadas; Ej. Receta para hacer una torta;Mientras mezclamos los ingredientes, podemos irprecalentando el horno;

Speculative execution side-channel attacks

Page 8: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

En el Procesador, funciona asi:Cuando una tarea puede tomar más tiempo o recursos, Ej. Una tarea requiere acceder a registros de memoria y otrastareas se pueden ejecutar dentro del procesadorúnicamente, entonces se cambia el orden de ejecución, buscando mayor eficiencia:

Speculative execution side-channel attacks

Page 9: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Speculative execution side-channel attacks

Operación A(Solo

Procesador)

Operación B(Procesador y

Memoria)

Operación C(Solo

Procesador)

La ejecución será:

ejecutando

Operación A(Solo

Procesador)

Operación B(Procesador y

Memoria)

Operación C(Solo

Procesador)

Operación D(Solo

Procesador) …

Tareas:

Page 10: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Todo lo anterior para explicar que el procesador puedepre-ejecutar ciertas tareas dependiendo del resultado de tareas previas;Así que el procesador casi que ”adivina” o especula, acerca de cualespodrian ser los resultados de tareas y tomar una decisión de ejecutar unaen específico gracias a esa apuesta;Si la apuesta falla, simplemente se eliminan los resultados y se ejecutaen el orden secuencial y no hay pérdidas de tiempo (era tiempo de espera-idle); pero si “adivinó” bien, ganamos mucho tiempo.

Speculative execution side-channel attacks

Page 11: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Los Side-Channels son precisamente orígenes de datos que toma el procesador para hacer sus cálculos especulativos; Ej. Microarquitectura, Características Eléctricas, Mecánicas o Físicas.

Speculative execution side-channel attacks

Page 12: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

En algunos casos, se podria medir o determinar por parte de un atacantesi un valor se encuentra en la memoria caché de un procesador;Si ese valor se encuentra en el caché, el atacante podria inferir otrosdatos contenidos en la memoria;El atacante lo que hace es medir el tiempo de procesamiento con la siguiente lógica:Si el acceso a la memoria toma poco tiempo, el dato está en caché; sitoma mas tiempo, el dato no está en caché;

Speculative execution side-channel attacks

Page 13: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Meltdown

Page 14: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Meltdown es una Vulnerabilidad que le permite a un atacante leer de forma arbitraria, la memoria fisica (incluyendo la memoria del Kernel), desde un proceso de un usuario no privilegiado.El Meltdown usa una instruccion fuera del orden para filtrar datos desdeun canal encubierto del procesador (memoria caché).

Meltdown - CVE-2017-5754

Page 15: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Se le llama Meltdown por que “derrite” la seguridad que evitaria que un proceso pudiera saltar los limites de acceso de los datos del Kernel enmemoria, tipo ASLR – Address Space Layout Randomization o KAISER (ahora KPTI) (Kernel Page Table Isolation)El ataque permite que un proceso no autorizado, lea datos de cualquierdirección mapeada en la memoria asignada a un proceso determinado.Gracias a la Ejecución especulativa, el atacante puede lograr que suinstrucción maliciosa se cargue (normalmente en caché), incluso sin tenerprivilegios.

Meltdown - CVE-2017-5754

Page 16: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Spectre

Page 17: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Esta vulnerabilidad permite que un programa ejecutado por el usuario, pueda acceder a una direccion arbitraria de memoria y leer su contenido; normalmente se usa un canal encubierto del cache del procesador.El Spectre se basa en predicción de saltos (subitem de la ejecuciónespeculativa)En teoría la predicción errónea, debe ser declarada nula, esa información“errónea” queda en el caché del procesador, y de ahi puede ser tomadapor el atacante.

Spectre - CVE-2017-5715/5753

Page 18: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

El Spectre aprovecha:1. La lógica de predicción de saltos podría ser “entrenada” para acertar

o fallar de acuerdo a lo que determine el programa malicioso.2. Se puede cronometrar con precisión la diferencia entre aciertos y

fallos.3. Se pueden ejecutar instrucciones fuera de un sandbox (JavaScript en

un Navegador) forzando la ejecucion de instrucciones que obliguen a la predicción.

4. Puede manipular un proceso para que revele su propia información.

Spectre - CVE-2017-5715/5753

Page 19: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Impacto: Sobrecarga de ProcesamientoPosterior al Parchado de Meltdown

Page 20: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Principalmente podemos identificar 2, que se subdividen en muchos mas:1. Escalación de Privilegios2. Salida/Escape de Entornos limitados como Virtualización

(Hipervisores) o Paravirtualización.

Escenarios de Riesgo

Page 21: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Escalación de Privilegios:Al tener acceso a la memoria fisica, el atacante va a poder capturar:

• PIN• Claves• Hash• Etc.

Escenarios de Riesgo: Meltdown

Page 22: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Escape de la Virtualización:El atacante podria acceder a direcciones de memoria del kernel y de esaforma acceder al exterior de la virtualización, afectando el Host Físico.Esto podria suceder en Paravirtualización tipo XEN o en Sandbox tipoDocker.

Escenarios de Riesgo: Meltdown

Page 23: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Todos coinciden en que uno de los escenarios mas probables es la ejecución de JavaScript en un navegador para capturar información del sistema por fuera del navegador.Esto permitiría:1. Filtrar direcciones de memoria del usuario, haciendo evasión de los

controles ASLR, permitiendo ejecución remota por ejemplo.2. Capturar los datos de memoria del navegador (Contraseñas, Tarjetas

de Crédito, etc.) 3. También el Caché del navegador quedaria en riesgo (Cookies, Tokens)

Escenarios de Riesgo: Spectre

Page 24: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Comparativo de RiesgoImpacto Meltdown Spectre

Lectura de la Memoria del kernel Si En algunos casos

Solucionado con Kaiser/KPTI Si No

Filtra Arbirtrariamente la Memoria de Usuario?

Si Si

Se podria ejecutar remotamente? En algunos casos Si

Que Impacta? Integridad Kernel Ej. Memoria del Navegador

Dirigido a: Intel Intel,AMD,ARM

https://www.renditioninfosec.com/files/Rendition_Infosec_Meltdown_and_Spectre_20180108.pdf

Page 25: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Comparativo Meltdown vs. Spectre

https://danielmiessler.com/blog/simple-explanation-difference-meltdown-spectre/

Page 26: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Parchado:Se debe ejecutar con mucho cuidado; muchas maquinas posterior a haber aplicado el parche, dejaron de bootear;https://www.theverge.com/2018/1/9/16867068/microsoft-meltdown-spectre-security-updates-amd-pcs-issues

Que Opciones Tenemos: Parchado

Page 27: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Listado de URLs de parchado

https://danielmiessler.com/blog/simple-explanation-difference-meltdown-spectre/

Microsoft https://www.catalog.update.microsoft.com/Search.aspx?q=KB4056892

Linux https://github.com/IAIK/KAISERhttps://github.com/torvalds/linux/commit/abb7099dbc7a77f8674083050028c493ac601228

ARM https://developer.arm.com/support/security-update

VmWare https://www.vmware.com/us/security/advisories/VMSA-2018-0002.html

Android https://source.android.com/security/bulletin/2018-01-01

Firefox https://www.mozilla.org/en-US/firefox/57.0.4/releasenotes/

Chrome ttps://www.chromium.org/Home/chromium-security/site-isolation

Page 28: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Los fabricantes de Antivirus para Windows deben colocar una llave de registroindicando la compatibilidad con el parche; de lo contrario podrían ocurrir fallosen las máquinas, tal como ocurrió con Symantec por ejemplo.

Enlace con la lista de compatibilidad de los diferentes antivirus:https://docs.google.com/spreadsheets/d/184wcDt9I9TUNFFbsAVLpzAtckQxYiuirADzf3cL42FQ/htmlview?usp=sharing&sle=true(Cortesia de Kevin Beaumont (@GossiTheDog))

Que Opciones Tenemos : Parchado

Page 29: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

En el navegador Chrome es viable aislar cada sesion por sitio en procesosdiferentes;Esto va a dificultar el que un atacante logre robar los datos que el usuariohaya digitado o entregado en cada sitio.

En el navegador ir a la dirección:chrome://flags#enable-site-per-processY activar la protección;

Que Opciones Tenemos: Aislamiento

Page 30: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Empresas como Intel han generado diferentes soluciones, pero es importanteentender que estas podrian afectar performance, tal como ya se ha demostrado con las soluciones de parchado a nivel de Sistema Operativo.

Una solución de Intel es “retpoline” que es una modificación a nivel binariocontra el ataque “branch target injection” (Spectre).

Que Opciones Tenemos: Fabricantes

Page 31: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

• Monitoreo Persistente y Granular• Compartimentación de los Datos de acuerdo a su sensibilidad/importacia• Reducir los Periodos de Latencia de Parchado/Control de Cambios• Evaluación de la Arquitectura actual/Actualizacion de Inventario de Activos• Plan Ejecutivo de Comunicaciones• Threat Modeling

Estrategias de Defensa Preventivas

Page 32: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Verificacion de protecciones Microsoft con powershell: https://blogs.technet.microsoft.com/ralphkyttle/2018/01/05/verifying-spectre-meltdown-protections-remotely/

Detectar si tu navegador es Vulnerable:http://xlab.tencent.com/special/spectre/spectre_check.html

Explicacion de las Variantes de los ataques:https://github.com/marcan/speculation-bugs/blob/master/README.md

Enlaces de Interés

Page 33: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Verificador de la Vulnerabilidad:https://github.com/speed47/spectre-meltdown-checker

Prueba de Concepto del Meltdown:https://github.com/harsaroopdhillon/meltdown

Prueba de Concepto del Spectre:https://github.com/Eugnis/spectre-attack

Enlaces de Interés

Page 34: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,

Preguntas?Inquietudes?

[email protected]@d4v1dp3r31r4https://www.youtube.com/user/dfpluc2