Menú principal

Mostrando entradas con la etiqueta Secure Kernel Extension Loading. Mostrar todas las entradas
Mostrando entradas con la etiqueta Secure Kernel Extension Loading. Mostrar todas las entradas

viernes, 8 de septiembre de 2017

Secure Kernel Extension Loading: La nueva caracterísitica de seguridad de High Sierra está rota (Parte II)

En el artículo anterior veíamos qué era el Secure Kernel Extension Loading de macOS High Sierra. Es una interesante característica de seguridad, pero qué, como veremos, ha tenido ya un bypass por parte de la gente de Objective-See. Según indican los investigadores de Objective-See, la actual implementación de SKEL no proporciona las suficientes garantías y los bad boys no tendrán ningún problema para evadirlo. Para ilustrarlo se puede hacer una prueba de concepto como ha hecho la gente de Objective-See

El objetivo de la prueba es cargar de forma programa un kext firmado y que nunca ha sido instalado o cargado en el sistema High Sierra. Este kext podría ser malicioso o vulnerable y permitir a un potencial atacante ejecutar código sin restricciones a través de dicha explotación. Por supuesto, ambos ataques derían ser bloqueados por SKEL. Este será un bypass trivial de SKEL. El primer intento es el más obvio, se puede intentar modificar la base de datos Kext Policy y 'pre-aprobar' los kexts que interesen. Para evitar esto, Apple protege la base de datos con la protección de integridad del sistema SIP

Figura 1: Comprobación de SIP sobre la base de datos de SKEL

Como la base de datos se encuentra protegida con SIP no se puede modificar. Otro vector de ataque obvio sería interactuar con la interfaz de usuario, tal vez mediante programación enviar un evento de clic de ratón al botón 'Permitir' en el panel de Preferencias del sistema y 'Seguridad y privacidad'. Sin embargo, este panel está diseñado para frustrar dichas interacciones en versiones recientes de macOS. A continuación se muestra un ejemplo frustrado de dicha intención.

Figura 2: Comprobación de envío de clic contra el Panel de Preferencias de macOS

Sorprendentemente, si tu intentas hacer una captura de pantalla de la ventana del panel de seguridad y privacidad a través de Grab.app también fallaría. Los ataques obvios contra SKEL fallan, como se puede ver.

La gente de Objective-See no ha dado detalles de la vulnerabilidad, ya que ésta está en manos de Apple, si que han mostrado una prueba del bypass realizado a SKEL. Estos investigadores explotan una vulnerabilidad de implementación de SKEL que permite cargar un nuevo kext no aprobado sin interacción por parte del usuario.

Figura 3: Prueba de bypass de SKEL

Como se puede ver hay una vulnerabilidad crítica en SKEL. Todo hace indicar que Apple está arreglando la vulnerabilidad y que, seguramente, esté solucionada con la liberación de la versión final de High Sierra.

jueves, 7 de septiembre de 2017

Secure Kernel Extension Loading: La nueva caracterísitica de seguridad de High Sierra está rota (Parte I)

Cada nueva release de macOS viene con una nueva caracterísitica de seguridad. En este caso macOS High Sierra 10.13 no es una excepción. La característica se llama Secure Kernel Extension Loading o SKEL. Según la documentación de Apple Technical Note TN2459, Secure Kernel Extension Loading es una nueva característica que requiere la aprobación del usuario antes de cargar una extensión del kernel de terceros. Deste OS X Yosemite cualquier kext debe ser firmado con un certificado del kernel

El objetivo principal de SKEL es bloquear la carga de los kexts legítimos, pero vulnerables. Apple proporciona una lista negra de estos kext vía el siguiente diccionario OSKextExcludeList en AppleKextExcludeList.kext/Contents/Info.plist. Aquí los atacantes podrían cargar estos kext, pudiendo obtener código arbitrario ejecutado en un contexto de kernel. Tal y como ocurre cuando un usuario, instalador o malware intenta cargar un kext firmado por terceros sobre High Sierra, éste debería ser bloqueado por SKEL y el usuario sería alertado.
Figura 1: SKEL en funcionamiento

Una vez el usuario permite que el kext se cargue, el sistema actualiza la entrada en Kext Policy Database, poniendo a 1 el valor asociado a dicho kext. Para poder ver las alertas de SKEL, el usuario puede ir a Ajustes y en el apartado Seguridad y Privacidad, en la pestaña General, ver dichas alertas y aceptarlas o no. En este artículo se puede ver qué es SKEL y cual es su funcinamiento básico. ¿Está roto? En el siguiente artículo veremos cómo se hace un bypass.

Entrada destacada

Proteger tu cuenta de Google y de Gmail con Latch Cloud TOTP #Latch #Gmail #Google

La semana pasada se liberó la nueva versión de Latch y nuestro compañero Chema Alonso hizo un repaso de todo ello en su artículo Latch...

Otras historias relacionadas

Entradas populares