Agujas en un pajar: selección de componentes UEFI no deseados de millones de muestras


Los expertos de ESET describen cómo entrenaron un modelo de aprendizaje automático para reconocer un puñado de componentes UEFI no deseados dentro de una avalancha de millones de muestras inofensivas

La seguridad de UEFI (interfaz de firmware extensible unificada) ha sido un tema candente en los últimos años, pero, debido a varias limitaciones, se ha encontrado muy poco malware basado en UEFI en el pasado. Después de haber descubierto el primer rootkit UEFI en estado salvaje, conocido como LoJax, nos propusimos construir un sistema que nos permitiera explorar el vasto paisaje UEFI de una manera eficiente, y detectar de manera confiable las amenazas emergentes de UEFI.

Utilizando la telemetría recopilada por el escáner UEFI de ESET como punto de partida, diseñamos una tubería de procesamiento personalizada para los ejecutables UEFI que aprovecha el aprendizaje automático para detectar rarezas entre las muestras entrantes. Este sistema, además de mostrar fuertes capacidades para identificar ejecutables UEFI sospechosos, ofrece monitoreo en tiempo true del panorama UEFI y reduciría la carga de trabajo de nuestros analistas hasta en un 90 por ciento si todas las muestras tuvieran que analizarse manualmente.

En busca de amenazas UEFI utilizando nuestra línea de procesamiento, descubrimos múltiples componentes UEFI interesantes, que se pueden dividir en dos categorías: puertas traseras de firmware UEFI y módulos de persistencia de nivel de sistema operativo. El más notable de nuestros descubrimientos es la llamada puerta trasera ASUS, una puerta trasera de firmware UEFI que se encuentra en varios modelos de computadoras portátiles ASUS y remediada por ASUS después de nuestra notificación.

¿Qué es UEFI?

UEFI es un especificación definiendo la interfaz que existe entre el SO y el firmware del dispositivo. Define un conjunto de servicios estandarizados, llamados «servicios de arranque» y «servicios de tiempo de ejecución», que son las API principales disponibles en el firmware UEFI. UEFI es un sucesor de la interfaz de firmware heredada del BIOS (Sistema básico de entrada / salida), presentada para abordar las limitaciones técnicas del BIOS.

El firmware UEFI se almacena en la memoria flash SPI, que es un chip soldado en la placa base del sistema. Por lo tanto, reinstalar el sistema operativo o reemplazar el disco duro no afecta el código del firmware. El firmware UEFI es muy modular: generalmente contiene docenas, si no cientos, de diferentes ejecutables / controladores.

Figura 1. Cómo se almacenan los ejecutables / controladores UEFI en una Personal computer

UEFI como vector de ataque

Hay varias formas en que se puede modificar el firmware, comprometiendo la seguridad de la computadora afectada.

La primera opción, y la más común, es la modificación del firmware por parte del proveedor de la computadora para permitir el diagnóstico o servicio remoto, que, si se implementa incorrectamente, puede servir como puerta trasera. Otra opción es el flasheo malicioso mediante manipulación manual, cuando el atacante tiene acceso físico al dispositivo afectado. La tercera opción: ataques remotos utilizando malware capaz de modificar el firmware.

Esta tercera opción se documentó en nuestra investigación sobre LoJax, el primer rootkit UEFI que se detectó en la naturaleza. En una campaña dirigida a organizaciones gubernamentales en los Balcanes, así como en Europa Central y Oriental, el grupo APT de Sednit desplegó con éxito un módulo UEFI malicioso en el sistema de una víctima. Este módulo puede colocar y ejecutar malware en el disco durante el proceso de arranque, un método de persistencia particularmente invasivo que no solo sobrevivirá a la reinstalación del sistema operativo, sino también a un reemplazo del disco duro.

Un método de aprendizaje automático para explorar el paisaje UEFI

Encontrar malware como LoJax es raro: hay millones de ejecutables UEFI en estado salvaje y solo una pequeña parte de ellos son maliciosos. Hemos visto más de 2.5 millones de ejecutables UEFI únicos (de un overall de seis mil millones) solo en los últimos dos años. Dado que no es factible analizar cada uno de ellos manualmente, necesitamos crear un sistema automatizado para reducir la cantidad de muestras que requieren atención humana. Para abordar este problema, decidimos construir un sistema adaptado para resaltar muestras atípicas al encontrar características inusuales en ejecutables UEFI.

En nuestra investigación, examinamos y comparamos múltiples enfoques de cada parte del proceso, desde la extracción de características, la incrustación de texto, la incrustación de datos multidimensionales hasta el almacenamiento eficiente y la consulta de los vecindarios de las muestras para generar un algoritmo de puntuación last, todo mientras consideramos el rendimiento y el rendimiento true. -capacidades de tiempo de las técnicas elegidas. Una vez que establecimos un método eficiente para recuperar los vecinos más cercanos a cualquier binario UEFI entrante, configuramos un sistema para asignar puntajes de similitud en el rango de cero a uno a los ejecutables entrantes, comparándolos con los archivos vistos anteriormente. Los archivos con el puntaje de similitud más bajo son luego inspeccionados con la máxima prioridad por un analista.

Como prueba de concepto, probamos el sistema resultante en ejecutables UEFI sospechosos y maliciosos conocidos que no se incluyeron previamente en nuestro conjunto de datos, especialmente el controlador LoJax UEFI. El sistema concluyó con éxito que el controlador LoJax period muy diferente a todo lo que habíamos visto antes, asignándole un puntaje de similitud de .

Esta prueba exitosa nos da un grado de confianza de que si surgiera otra amenaza UEFI equivalent, podríamos identificarla como una rareza, analizarla rápidamente y crear una detección según sea necesario. Además de esto, nuestro enfoque basado en ML puede reducir la carga de trabajo de nuestros analistas hasta en un 90% (si analizaran cada muestra entrante). Finalmente, gracias al hecho de que cada nuevo ejecutable UEFI entrante se agrega al conjunto de datos, se procesa, se indexa y se toma en consideración para las próximas muestras entrantes, nuestra solución ofrece monitoreo en tiempo true del panorama UEFI.

Una búsqueda de componentes UEFI no deseados

Después de probar nuestro proceso de procesamiento en muestras maliciosas conocidas, era hora de comenzar a buscar módulos UEFI no deseados en la naturaleza. Los componentes interesantes que encontramos se pueden agrupar en dos categorías: puertas traseras de firmware UEFI y módulos de persistencia de nivel de sistema operativo.

Puertas traseras de firmware UEFI

Entonces, ¿qué son las puertas traseras de firmware UEFI? En la mayoría de las configuraciones de firmware UEFI, hay opciones disponibles para proteger con contraseña el sistema del acceso no autorizado durante las primeras etapas del proceso de arranque. Las opciones más comunes permiten configurar contraseñas para proteger el acceso a la configuración del firmware UEFI, para evitar que el sistema arranque y acceder al disco. Las puertas traseras de firmware UEFI son mecanismos que permiten eludir estas protecciones sin conocer la contraseña configurada por el usuario.

Si bien estas puertas traseras de firmware UEFI son muy comunes, se utilizan principalmente como mecanismo de recuperación en caso de que el propietario de la computadora olvide la contraseña, tienen varias implicaciones de seguridad. Además de permitir a los atacantes con acceso físico a la computadora afectada eludir varios mecanismos de seguridad, también crean una falsa sensación de seguridad en los usuarios que no los conocen y pueden creer que sus computadoras no pueden iniciarse por cualquiera que no posea la contraseña.

La puerta trasera de firmware UEFI más frecuente que analizamos es la llamada puerta trasera ASUS. Nuestra investigación confirmó que al menos seis modelos de portátiles ASUS se enviaron con la puerta trasera el número, sin embargo, probablemente sea mucho mayor (verificar nuestra presencia en cada modelo de computadora portátil ASUS estaba fuera del alcance de nuestra investigación). Tras nuestra notificación a ASUS sobre la puerta trasera en abril de 2019, el proveedor eliminó el problema y lanzó actualizaciones de firmware el 14 de junioth2019.

Módulos de persistencia a nivel del sistema operativo

El resto de nuestros hallazgos son módulos de persistencia a nivel del sistema operativo: componentes de firmware responsables de instalar el application a nivel del sistema operativo. Con estos módulos de persistencia, el principal problema de seguridad es que, debido a la naturaleza complicada de entregar actualizaciones de firmware, una computadora enviada con un componente de firmware vulnerable probablemente seguirá siendo vulnerable durante toda su vida útil. Por esta razón, creemos que la persistencia del firmware debe evitarse tanto como sea posible y limitarse a casos donde sea estrictamente necesario, como es el caso de las soluciones antirrobo.

Para obtener más información sobre nuestra investigación, consulte el documento completo, Un método de aprendizaje automático para explorar el paisaje UEFI.



y





Enlace a la noticia authentic