Los rootkits de UEFI son vistos como herramientas extremadamente peligrosas para la implementación de ciberataques, debido a que son difícilmente detectados y por tener la capacidad de sobrevivir a medidas de seguridad tales como la reinstalación del sistema operativo o incluso el reemplazo de un disco rígido. Algunos rootkits de UEFI han sido presentados como pruebas de concepto; mientras que otros son conocidos por estar a disposición de (al menos algunos) agencias gubernamentales. Sin embargo, ningún rootkit de UEFI fue detectado alguna vez en uso hasta este momento, cuando descubrimos una campaña del grupo Sednit que con éxito desplegó un módulo UEFI malicioso en el sistema de una víctima.
El descubrimiento del primer rootkit UEFI en uso es muy importante por dos razones.
La primera, es porque muestra que los rootkit de UEFI son una amenaza real y no solo forman parte de los temas atractivos que se utilizan a la hora de dar una conferencia.
Y la segunda razón, porque sirve como aviso, especialmente para aquellos que puedan estar en la mira de Sednit. Este grupo, también conocido como APT28, STRONTIUM, Sofacy y Fancy Bear, puede que sea incluso más peligroso de lo que se haya creído hasta ahora.
Nuestro análisis de la campaña de Sednit que utiliza el rootkit UEFI fue presentada el 27 de septiembre en la edición 2018 de la conferencia Microsoft BlueHat y es descrito en detalle en nuestro whitepaper, en inglés, titulado “LoJax: First UEFI rootkit found in the wild, courtesy of the Sednit group”. En este artículo, resumiremos nuestros principales hallazgos.
El grupo Sednit ha estado operando al menos desde 2004 y ha sido el responsable de una gran cantidad de titulares en los medios en los últimos años: se cree que es el actor responsable de los ataques más importantes a blancos de alto perfil. Por ejemplo, el Departamento de Justicia de los Estados Unidos acusó al grupo de ser los responsables del ataque al Comité Nacional Demócrata (DNC, por sus siglas en inglés) que tuvo lugar antes de las elecciones de 2016 en los Estados Unidos. Se presume también que el grupo es quién está detrás del ataque a la red global de televisión TV5Monde; la filtración de correos de la Agencia Mundial Antidopaje (WADA, por sus siglas en inglés), y muchas otras más. Cabe recordar que este grupo cuenta con una gran diversidad de herramientas maliciosas en su arsenal. Y varias de ellas las hemos documentado anteriormente en nuestro whitepaper sobre Sednit que publicamos en 2016.
Nuestra investigación determino que este actor malicioso fue exitoso, al menos una vez, en la escritura de un módulo UEFI malicioso dentro del sistema de memoria flash SPI. Este módulo es capaz de droppear y ejecutar malware en el disco durante el proceso de “booteo”. Este método de persistencia es particularmente invasivo dado que no solo sobrevive a la reinstalación del sistema operativo, sino también al reemplazo del disco duro. Además, la limpieza del firmware del sistema UEFI implica reinstalar el firmware, una operación que no es sencilla de realizar, mucho menos por un usuario común y corriente.
Nuestra investigación mostró que los operadores de Sednit utilizaron diferentes componentes del malware LoJax para alcanzar a cierta cantidad de organizaciones gubernamentales en los Balcanes, así como también de Europa Central y del Este.
LoJack se transforma en LoJax
En mayo de 2018, un post del blog Arbor Networks describió varias muestras troyanizadas del instalador del programa Absolute LoJack rpcnetp.exe. Estas muestras maliciosas se comunican con un servidor C&C malicioso en lugar del legítimo servidor del programa Absolute, debido a que sus parámetros de configuración hardcodeados fueron alterados. Algunos de los dominios descubiertos en las muestras LoJax han sido vistos anteriormente: fueron utilizados en 2017 como dominios C&C para el nefasto backdoor de primera fase de Sednit, SedUploader. Debido al uso malicioso del instalador de LoJack en esta campaña fue que denominamos al malware LoJax.
LoJack es un programa anti robo. Versiones tempranas de este programa se conocieron como Computrace. Tal como lo indica su primer nombre, una vez que el servicio era activado, la computadora llamará a su servidor C&C y su propietario será notificado sobre su localización en caso de que lo hayan perdido o robado. Computrace atrajo la atención de la comunidad de seguridad, sobre todo por su inusual método de persistencia. Desde el momento en el que la intención del programa es proteger un sistema de robos, es importante que resista la reinstalación del sistema operativo o el reemplazo del disco duro. Y eso lo logra precisamente al ser implementado como un módulo UEFI/BIOS, capaz de sobrevivir ese tipo de eventos. Esta solución viene preinstalada en el firmware de una gran cantidad de fabricantes de laptops, esperando que sean activados por sus propietarios.
Mientras investigábamos LoJax, descubrimos varios artefactos interesantes que nos llevaron a creer que los actores maliciosos intentaron imitar el método de persistencia de Computrace.
Parcheando la memoria flash SPI con malware
En sistemas que fueron apuntados por la campaña LoJax descubrimos varias herramientas que son capaces de acceder y parchear la configuración de UEFI/BIOS. Todas utilizaron un driver kernel RwDrv.sys, para acceder a la configuración de UEFI/BIOS. Este driver kernel es incluido con RWEverything, una utilidad gratuita disponible en la web que puede ser utilizada para leer información en casi todas las computadoras de bajo nivel de configuración, incluyendo PCI Express, Memoria, etc. Como este driver kernel pertenece a un programa legítimo, es firmado con un certificado de firma de código válido.
Tres diferentes tipos de herramientas fueron encontradas a lo largo de los instaladores LoJax. La primera es una herramienta que arroja información sobre la configuración de sistemas de bajo nivel hacia un archivo de texto. Desde el momento en que la posibilidad evadir la protección contra actualizaciones ilegítimas del firmware depende del tipo de plataforma, reunir información sobre el sistema de una plataforma es crucial. El propósito de la segunda herramienta era guardar una imagen del firmware del sistema en un archivo tras leer los contenidos de la memoria flash SPI donde está ubicado el UEFI/BIOS. El propósito de la tercera herramienta es agregar un módulo UEFI malicioso a la imagen del firmware y volver a escribirlo en la memoria flash SPI, instalando de manera efectiva el rootkit UEFI en el sistema. Esta herramienta de parcheado utiliza diferentes técnicas, ya sea para aprovecharse de plataformas mal configuradas o para evadir la protección de escritura de la plataforma en la memoria flash SPI. Como se muestra en la siguiente imagen, si la plataforma permite operaciones de escritura a la memoria flash SPI directamente lo hará. Si no, en realidad lo que hace es implementar un exploit contra una vulerabilidad conocida.
El rootkit UEFI añadido a la imagen de firmware tiene un único rol: droppear el userland malware en la partición del sistema operativo de Windows y asegurarse que es ejecutado al iniciar la computadora.
¿Cómo estar protegido?
El rootkit de UEFI de Sednit no está apropiadamente firmado, con lo cual el primer mecanismo de seguridad que podría bloquear semejante ataque es Secure Boot. Cuando Secure Boot es habilitado, cada uno de los componentes del firmware que es cargado por el firmware necesita ser firmado de manera adecuada, así se asegura la integridad del firmware. Por lo tanto, recomendamos fuertemente que se habilite. Esta es la defensa de base ante ataques dirigidos a firmware UEFI y puede deshabilitarse en el boot time a través de las opciones de configuración de tu sistema UEFI.
Actualizar firmware de sistemas no debería ser algo trivial de alcanzar para un actor malicioso. Hay diferentes protecciones que ofrece la plataforma para prevenir escrituras no autorizadas en la memoria flash SPI del sistema. La herramienta descrita anteriormente es capaz de actualizar el firmware del sistema solo si las protecciones a la memoria flash SPI son vulnerables o están mal configuradas. Así, deberías asegurarte de estar utilizando la última UEFI/BIOS disponible para tu motherboard. También, como la vulnerabilidad explotada afecta solo viejos chipsets, asegúrate de que sistemas críticos cuentan con chipsets modernos con la Platform Controller Hub (introducida con la Serie 5 de chipsets de Intel en 2008).
Desafortunadamente, la actualización del firmware de un sistema no es una tarea sencilla. En este sentido, la seguridad del firmware está mayormente en las manos de los proveedores de UEFI/BIOS. Los mecanismos de seguridad que ofrecen a través de las plataformas necesitan ser configurados de manera apropiada por el firmware del sistema para poder protegerlo. El firmware debe ser construido desde un principio teniendo en cuenta los aspectos de seguridad. Afortunadamente, cada vez más investigadores en seguridad están analizando la seguridad en el firmware, lo cual contribuye a la realización de mejoras en este campo y aumentar la preocupación por parte de los fabricantes de UEFI/BIOS.
La recuperación de un firmware UEFI comprometido es un problema difícil de resolver. No hay formas sencillas para automáticamente remover semejante amenaza de un sistema. En el caso que describimos más arriba, con el afán de remover el rootkit, la memoria flash SPI necesita ser reinstalada con una imagen de firmware limpia y específica para el motherboard. Esta es una operación delicada que debe ser realizada de manera manual. Definitivamente no se trata de un procedimiento con el que muchos propietarios de una computadora estén familiarizados. La única alternativa para reinstalar de UEFI/BIOS es reemplazar el motherboard de la computadora totalmente.
La relación con el grupo Sednit
Como se mencionó anteriormente, algunos de los instaladores del servidor C&C LoJax fueron utilizados en el pasado por SedUploader, una rutina de primera fase del backdoor utilizada por los operadores de Sednit. También, en el caso del compromiso de LoJax, rastros de otras herramientas de Sednit nunca estuvieron lejos. De hecho, sistemas alcanzados por LoJax usualmente mostraron signos de estos tres ejemplos del malware de Sednit:
- SedUploader, backdoor de primera fase
- XAgent, Sednit flagship backdoor
- Xtunnel, una herramienta de red proxy que puede retransmitir cualquier tipo de tráfico de red entre un servidor C&C en Internet y una computadora endpoint dentro de la red local.
Estos hechos nos permiten con seguridad atribuir LoJax al grupo Sednit.
Conclusión
En los años que hemos estado rastreando al grupo Sednit, hemos lanzado varios reportes sobre sus actividades, desde el aprovechamiento de vulnerabilidades zero-day a malware personalizados que han desarrollado, tales como Zebrocy. Sin embargo, el componente del rootkit de UEFI descrito anteriormente está en una liga aparte.
La campaña de LoJax muestra que blancos de ataque de gran valor son los principales candidatos para su despliegue. En este sentido, tales blancos deberán siempre estar atentos de posibles signos de compromiso. También, una cosa que esta investigación nos enseñó es que siempre es importante escarbar lo más profundo que se pueda.
Una lista complete de los Indicadores de Compromiso (IOCs) y muestras pueden encontrarse en GitHub.
Para un análisis detallado del backdoor, revisar nuestro whitepaper (en inglés) LoJax: First UEFI rootkit found in the wild, courtesy of the Sednit group.