QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse...
Transcript of QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse...
![Page 1: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/1.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/2.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/3.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/4.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/5.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/6.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/7.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/8.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/9.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/10.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/11.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/12.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/13.jpg)
Meltdown
![Page 14: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/14.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/15.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/16.jpg)
Spectre
![Page 17: QuédebemosSaber? · 2018. 1. 12. · Una tarearequiereaccedera registrosde memoriay otras tareasse puedenejecutardentrodel procesador únicamente, entoncesse cambia el ordende ejecución,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/17.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/18.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/19.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/20.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/21.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/22.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/23.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/24.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/25.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/26.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/27.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/28.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/29.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/30.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/31.jpg)
• 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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/32.jpg)
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,](https://reader036.fdocuments.ec/reader036/viewer/2022071212/6024724fedc1bc408c70a3f0/html5/thumbnails/33.jpg)
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