¿Qué es un rootkit?
Un rootkit es un malware utilizado por los piratas informáticos para acceder a un ordenador y controlarlo. Por lo general, afectan a los sistemas operativos; sin embargo, en raras ocasiones, un rootkit puede infiltrarse en una planta de fabricación, incrustándose en ordenadores nuevos durante su producción.
En términos más sencillos, un rootkit es la puerta trasera de un actor de amenazas a su red.
Definición de rootkit
En Unix, Linux y otros sistemas operativos similares a Unix, como macOS, el “root” es el superusuario con privilegios administrativos. La parte “kit” se refiere a la colección de herramientas de software que el actor de la amenaza utiliza para obtener privilegios de root, crear una puerta trasera y ocultarla del sistema operativo.
Aunque los primeros rootkits se crearon para atacar ordenadores Unix en la década de 1990, hoy en día se utilizan para comprometer sistemas que ejecutan cualquiera de los sistemas operativos comunes, incluidos Windows, macOS, Linux y Chrome OS.
¿Cómo se instalan los rootkits?
Los actores de la amenaza pueden utilizar campañas de phishing u otros métodos de ingeniería social para conseguir instalar el rootkit. También son comunes las infecciones desde sitios web, aprovechando debilidades en navegadores sin parchear.
Las caídas de USB también son un método común de ataque. Se coloca una selección de memorias USB con software malicioso en distintos lugares donde el personal de la empresa objetivo las encontrará a la hora de comer.
Después de comer, por supuesto, conectan la memoria USB a su ordenador para ver si pueden identificar al propietario. Y eso es todo lo que se necesita: infección iniciada.
Un proceso típico de infección por rootkit comienza con un dropper. Se trata de un pequeño programa que instala el cargador. El cargador puede estar contenido en el dropper, pero ahora es más frecuente que sea descargado por el dropper. A continuación, el cargador toma el control y descarga el rootkit, que será una selección de sofisticados programas maliciosos.
Por supuesto, una persona puede instalar un rootkit localmente si ella o un cómplice tienen acceso físico a la red. Pueden instalar un rootkit de forma remota si han conseguido comprometer la red desde el exterior.
Mucho más raros, y sin embargo se han visto en la naturaleza, son los casos en los que los actores de la amenaza consiguen comprometer la “imagen dorada” utilizada para fabricar ordenadores. Esto significa que el ordenador nuevo tiene el dropper instalado, recién salido de fábrica.
¿Por qué son tan eficaces los rootkits?
Los autores de las amenazas hacen un gran esfuerzo para asegurarse de que los rootkits puedan evitar ser detectados por las suites de protección antimalware y antivirus para puntos finales. Además, los rootkits son muy difíciles de eliminar, ya que algunos pueden permanecer en el ordenador infectado incluso después de formatear o sustituir físicamente el disco duro.
Pueden ocultar el dropper dentro de la BIOS o la UEFI, lo que significa que la máquina se reinfectará una vez reiniciada.
Como los rootkits se integran en el sistema operativo de tal forma que parecen componentes legítimos del mismo, y con privilegios administrativos ilimitados, nada se interpone en su camino. Pueden hacer lo que quieran en la máquina comprometida.
Cuantas más veces hackees una red, más posibilidades hay de que te detecten. Pero ese no es el caso si tienes una puerta trasera privada e indetectable. Y eso es lo que proporciona un rootkit. Una forma secreta de entrar, con poderes ilimitados de superusuario.
Los rootkits pueden eliminar el software antivirus, aparecer “invisibles” al software antivirus o impedir que el software antivirus inocule los archivos infectados. Son un ataque muy sofisticado.
Los rootkits pueden:
- Instalar software malicioso
- Leer, copiar, filtrar o borrar archivos.
- Cambiar la configuración del sistema
- Acceder a archivos de registro y modificarlos
- Registrar y supervisar las pulsaciones de teclas
- Robar contraseñas
- Supervisar el comportamiento de los usuarios
- Supervisar el tráfico de red
- Instalar una puerta trasera que proporcione al actor de la amenaza acceso encubierto la próxima vez que desee conectarse.
5 tipos de rootkits
Existen varios tipos de rootkits que funcionan a diferentes niveles dentro de un sistema informático. El espacio de usuario es donde las aplicaciones cotidianas operan bajo la supervisión y las restricciones establecidas por el sistema operativo. En este espacio, estas aplicaciones no pueden acceder a la memoria del ordenador utilizada por otros programas ni interactuar directamente con las funciones a nivel de sistema.
En su lugar, necesitan solicitar al kernel que realice esas funciones en su nombre.
El espacio del núcleo es donde se ejecuta el núcleo, el corazón del sistema operativo. Sólo algunos otros procesos, especialmente permitidos, se ejecutan en el espacio del kernel, como los controladores del kernel.
1. Rootkits en modo usuario
Un rootkit en modo usuario utiliza vulnerabilidades en las API del sistema del ordenador objetivo para instalarse e infectar o modificar componentes del sistema, como archivos DLL en Windows y archivos DYLIB en macOS. Esto significa que pueden ejecutarse en el espacio de memoria destinado al archivo infectado, o pueden sobrescribir esa memoria por completo y ejecutarse en esa RAM robada.
Los rootkits en modo usuario monitorizan los archivos y programas que han infectado. Si cualquier proceso intenta parchear, actualizar o inocular esos archivos, se les bloquea, asegurando que el rootkit persiste en la máquina comprometida.
2. Rootkits en modo kernel
Un rootkit en modo kernel consigue el máximo nivel de acceso al ordenador infectado sustituyendo o modificando partes del propio sistema operativo. Los rootkits en modo kernel pueden infectar prácticamente cualquier sistema operativo, incluidos Windows, macOS, Linux y Unix.
Para escribir un rootkit en modo kernel se requieren conocimientos técnicos y experiencia en programación del más alto nivel. Por desgracia, en la Dark Web se venden “kits de herramientas” de rootkits para que los programadores de nivel estándar puedan producir sus propios rootkits.
Los rootkits en modo kernel son notoriamente difíciles de detectar y aún más difíciles de erradicar. Una vez instalado, el malware modificará las estructuras de datos del kernel para camuflarse utilizando técnicas como el exploit de “modificación directa de objetos del kernel”.
Por ejemplo, en Windows, la lista de tareas en ejecución es un objeto del kernel. Se mantiene en el espacio del kernel pero puede ser referenciada por el programa Administrador de Tareas en el espacio del usuario. El rootkit modificará los datos de la lista en el espacio del núcleo.
Cuando el Administrador de Tareas solicita la lista al kernel, recibe una copia adulterada en la que el rootkit no aparece. Es invisible.
3. El rootkit Bootkit
Un bootkit es una variante del rootkit en modo kernel destinado a comprometer incluso sistemas totalmente encriptados. El bootkit modificará o, más a menudo, reemplazará por completo el gestor de arranque del ordenador. Realiza las funciones del gestor de arranque pero persiste en el espacio del kernel una vez que se ha cargado el kernel del sistema operativo. Esto le permite capturar las credenciales de inicio de sesión y las claves de descifrado de los usuarios finales.
Algunos rootkits anulan la necesidad de que los controladores estén certificados y firmados modificando el registro de arranque maestro del ordenador. Esto permite a los controladores maliciosos engancharse al kernel. Por supuesto, el bootkit proporciona sus propios controladores maliciosos para el kernel. Estos ataques multietapa y multitécnicos también se denominan ataques combinados.
4. Rootkit a nivel de hipervisor
En un esfuerzo conjunto de la Universidad de Michigan y Microsoft se creó una prueba de concepto de un rootkit de hipervisor. El rootkit de hipervisor virtualiza el sistema operativo de la máquina comprometida y actúa como hipervisor, el software que permite la virtualización.
Esto significa que todas las llamadas al sistema entre el sistema operativo infectado y el hardware deben pasar a través del rootkit hipervisor. Dado que el sistema operativo afectado no ha sido tocado, no hay nada que el software antivirus pueda detectar. En lo que respecta a ese sistema, todo funciona con normalidad.
Mientras que un rootkit a nivel de hipervisor se ha logrado en un laboratorio por expertos de clase mundial. Todavía no se ha visto en la naturaleza.
5. Rootkit a nivel de hardware
Un rootkit a nivel de hardware utiliza la memoria de ubicaciones como la BIOS (Basic Input Out System), la UEFI (Unified Extensible Firmware Interface), las tarjetas de red y las tarjetas gráficas para colocar copias del dropper o, a veces, el rootkit completo.
Esto hace que la detección sea improbable y la inoculación extremadamente difícil.
¿Cómo saber si tienes un rootkit?
Puede que su ordenador funcione más lento de lo habitual o que sufra bloqueos y cuelgues. Los rootkits son software, y el software tiene errores. Cuanto más complejo es el código, más errores es probable que tenga. Debido a las delicadas actividades de bajo nivel que intentan realizar los rootkits, si tienen errores, pueden hacer que tu sistema sea inestable.
Los rootkits son difíciles de detectar porque pueden confundir y eludir la mayoría de los principales programas antivirus. Y, si tu sistema operativo ha sido comprometido, no puedes confiar en sus respuestas a las preguntas sobre modificaciones no autorizadas de archivos o cambios en el núcleo. Los rootkits cubren sus huellas tan bien que los mecanismos de información a menudo -sin darse cuenta- mienten en su nombre.
Debido a estas dificultades, deben utilizarse otras técnicas. Estas pueden incluir:
- Arrancar el aparato desde un “Live CD” en un sistema operativo diferente y utilizar un paquete especializado en detección de rootkits para escanear la máquina sospechosa.
- El escaneado de diferencias es una técnica en la que las imágenes de archivos basadas en RAM y sus homólogas basadas en disco se comparan entre sí o con copias de referencia de los archivos guardados en otro lugar.
- Comprobación de la integridad de DLL, controladores y otros archivos clave.
- Análisis de los datos devueltos por las llamadas a la API para ver si responden de acuerdo con la especificación
- El análisis del comportamiento puede incluir el rastreo de paquetes de red, la supervisión de la CPU y secuencias de llamadas a la API.
- Los volcados de memoria y los volcados del kernel pueden buscar pruebas de rootkits.
En la práctica, suele ser necesaria una combinación de varias técnicas, y a menudo es mejor buscar ayuda especializada. Algunas de las más recientes suites de protección de puntos finales, líderes en el mercado, afirman ser capaces de detectar, al menos, algunos rootkits.
¿Cómo se elimina un rootkit?
La eliminación de un rootkit puede estar fuera del alcance del usuario medio o incluso del usuario avanzado. Aunque existen aplicaciones de eliminación de rootkits en el mercado, los rootkits suelen estar escritos para conocer y vencer a estas mismas aplicaciones. Sin embargo, no hay duda de que los eliminadores de rootkits funcionan con algunos rootkits.
La Herramienta de eliminación de software malintencionado de Microsoft es capaz de localizar y eliminar algunos rootkits, pero como es una de las herramientas más famosas, los rootkits a menudo la conocen y están escritos para eludirla.
La mayoría de los expertos en seguridad con los que he hablado coinciden en que la forma más rápida, rentable y concluyente de erradicar un rootkit es arrancar el ordenador desde un “Live CD”, formatear el disco duro y reinstalar el sistema operativo. Utilice el medio de instalación original y oficial para reinstalarlo. A continuación, restaure la copia de seguridad de los datos.