Prólogo
Para nadie es un secreto que algunos programas legales usan tecnologías de rootkit.
En el caso de los programas antivirus, varios sistemas de protección proactiva se basan en la intercepción de las funciones del sistema de una u otra manera. Los códigos maliciosos también explotan los mismos algoritmos, pero a diferencia de ellos, un programa antivirus no intenta ocultar las modificaciones que realiza en el sistema.
Muchos usuarios utilizan aplicaciones codificadoras de datos, como TrueCrypt. Estas aplicaciones son capaces de codificar particiones o hasta discos completos. Para poder codificar una partición del sistema, los desarrolladores de este tipo de aplicaciones de seguridad tienen que incluir en sus programas un módulo de carga propio y modificar el MBR (master boot record). Estas tecnologías se encuentran en los modernos bootkits. A diferencia de un bootkit, una solución de seguridad de este tipo no tiene que disimular su propio módulo de carga.
Al igual que las aplicaciones codificadoras, algunos cargadores auxiliares de sistemas operativos (LILO, GRUB), explotan la tecnología de modificación del MBR.
Las tecnologías rootkit, que se basan en la intercepción de las funciones del sistema, vienen incorporadas en varias soluciones de seguridad comerciales (especialmente en el caso de los juegos) y, además, estos dispositivos de protección suelen ser agresivos.
Hay que comprender que el uso de las tecnologías rootkit en aplicaciones legales debe ser extremadamente cuidadoso, ya que estas tecnologías pueden usarse no sólo con fines legítimos, sino también con intenciones maliciosas. Es decir, el límite entre el uso legítimo y el uso malicioso de esta tecnología es una sutil y vulnterable línea. Si un programa tiene fallas en su desarrollo, los ciberdelincuentes pueden aprovecharse de ello.
Cabe recordar el escándalo que explotó en 2005 involucrando a Sony y su sistema de protección para evitar la copia de los CDs de audio. Este método de protección incorporaba tecnologías rootkit que aprovecharon programas maliciosos para ocultar sus propios componentes maliciosos. En otras palabras, el módulo desarrollado para asegurar esta función de protección fue saboteado y develó posibilidades de uso que sus propios desarrolladores jamás hubieran imaginado.
Pero, ¿se justifica realmente el uso de tecnologías rootkit en una aplicación legal? Hasta qué punto se arriesgan la seguridad del sistema operativo y la información del usuario al utilizar estas tecnologías en aplicaciones legales? ¿Está tan bien definida la frontera entre los métodos legales y la ciberdelincuencia?
Posibilidades teóricas
Antes de referirnos a casos concretos, veamos algunos casos teóricos elementales en los que rootkits legales o drivers mal desarrollados pueden comprometer la solidez de un sistema de seguridad. Mencionaremos algunas variantes para aclarar los argumentos.
En el caso de amenazas potenciales, nos referiremos a las firmas legítimas y a los drivers firmados. Resulta evidente que la mayoría de los autores prefieren firmar sus aplicaciones, y en los sistemas x64, la firma del driver en modo de núcleo es un elemento indispensable sin el cual la aplicación no podría ejecutarse en el sistema. En los programas antivirus, el análisis basado en listas de confianza es uno de los métodos utilizados para definir la pertenencia de una aplicación a un determinado grupo. Imaginemos que un ciberdelincuente usa un driver legítimo con firma digital. El análisis de las listas de admitidos determinará que se autorice al driver, incluso si sus fines son maliciosos. Esta es la razón por la cual un driver legítimo con firma digital puede resultar, sin duda alguna, peligroso si usa tecnologías rootkit, si fue saboteado y si no posee ningún mecanismo de autentificación.
Caso 1. Lectura y escritura de la memoria
Imaginemos un dispositivo de seguridad o un codificador complejo cuyo algoritmo use la lectura y escritura de la memoria, pero cuyas funciones se realicen en modo de núcleo. Por ello, es necesario disponer de un driver en modo de núcleo que ofrezca esta función. Para funcionar con Windows x64, tiene que ser un driver firmado con una firma adquirida de forma oficial (es decir, una aplicación legal). En consecuencia, las soluciones antivirus darán luz verde a este driver según las listas de firmas de confianza.
Supongamos que se haya saboteado el driver y que no contenga las verificaciones necesarias lo que reduciría o eliminaría completamente sus posibilidades de explotación por parte de los ciberdelincuentes. En este caso, los autores del virus podrían usarlo para desactivar la intercepción de las funciones del sistema del programa antivirus que realizan la lectura y escritura del mencionado driver. Como resultado, es posible desactivar la defensa proactiva o suspender los procesos críticos del antivirus del núcleo.
Caso 2. Carga de drivers no firmados
Imaginemos una aplicación con un driver firmado capaz de cargar drivers sin firma. Además, la carga de este driver sin firma será manual: el driver firmado se comportará como cargador del sistema, creará un flujo inicial, etc. Este driver puede comprometer por completo el mecanismo de análisis de firmas de Windows x64.
Caso 3. Dispositivos clásicos anti-rootkits
Los dispositivos anti-rootkit clásicos, como GMER, RKU, RootRepeal, etc. no sólo poseen una función de búsqueda de fallas, sino también las funciones de lectura y escritura de la memoria del núcleo que hemos mencionado antes. A veces pueden incorporar una función para suprimir procesos y flujos, descargar módulos dinámicos, etc. Un driver con estas características funcionales puede tener una firma legítima. Si además fue saboteado, nada impedirá que los ciberdelincuentes lo utilicen con fines maliciosos.
Caso 4. Camuflaje del MBR
Supongamos una aplicación de seguridad que crea una imagen del sistema de archivos a petición o con determinada frecuencia. El objetivo principal de esta aplicación es poder revertirse a un estado anterior en caso de que se dañen los datos o se infecte con un programa malicioso. Sin embargo, puede suceder que los archivos del sistema se dañen hasta tal punto que ya no sea posible cargar el sistema operativo. Para revertir el sistema a un determinado punto, será necesario reiniciarlo desde un periférico externo o mediante un mecanismo de modificación del MBR. El uso de un módulo de carga propio permite restaurar los datos antes de que el sistema operativo se cargue.
Para proteger el MBR y el módulo de carga, se puede usar un driver en modo de núcleo que oculte la modificación del registro del arranque principal y produzca un contenido falso de lectura mientras que la escritura se desvía hacia otro sector. Pueden darse varios casos desagradables en caso de fallas en el desarrollo de un driver. En primer lugar, el análisis del algoritmo de funcionamiento del driver permite utilizarlo como elemento para camuflar las actividades de un programa malicioso. En segundo lugar, la infección del MBR para evitar la intercepción de parte de una solución antivirus instalada en el ordenador puede complicar su detección.
En este caso, por desgracia, la teoría se acerca mucho a la realidad.
De la teoría a la práctica
Nuestros programas incorporan un poderoso dispositivo anti-rootkit, capaz de detectar objetos ocultos, como sectores de inicio de disco, archivos, llaves de registro y otros objetos para neutralizar las intercepciones realizadas por los programas maliciosos. El servicio de nuestra red KSN en la nube, permite recopilar estadísticas sobre distintas anomalías detectadas en los ordenadores de los usuarios.
El análisis de los datos obtenidos permite identificar varias aplicaciones legales que usan las tecnologías rootkit.
Cuadro esquemático: aplicaciones legales que usa tecnologías rootkit
Nombre de la aplicación | Autor | Propósito | Método de camuflaje | Presencia de firma |
COMODO Time Machine | Comodo | MBR | Driver filtro | + |
Norton GoBack | Symantec | MBR | Driver filtro | – |
PC Back Pro | Digicore Technologies | MBR | Driver filtro | + |
Rollback Rx | Horizon DataSys | MBR | Driver filtro | + |
RestoreIT | Farstone | MBR | Driver filtro | + |
Analicemos cada una de las aplicaciones detectadas.
COMODO Time Machine
Nombre completo de la aplicación COMODO Time Machine v.2.8.155286.178
Enlace de distribución http://www.comodo.com/home/download/download.php?prod=time-machine (el desarrollo del programa se ha suspendido)
Distribución de los usuarios de COMODO Time Machine por país (TOP 10)
Datos proporcionados por KSN.
Breve descripción
Aplicación de seguridad que permite la rápida reversión del ordenador a un estado previo. Las imágenes del sistema que Comodo Time Machine toma son una copia completa del sistema, incluyendo los archivos del sistema, el registro y los datos del usuario (Wikipedia).
Componentes del modo de núcleo
CTMFLT.sys, CTMMOUNT.sys, CTMSHD.sys (los drivers tienen firma)
Figura 1 Ventana principal de CTM
CTM permite lanzar una consola especial de restauración antes de que se cargue el sistema operativo. Para ello, pone en marcha un mecanismo de modificación del MBR. Para poder acceder a la consola, hay que pulsar la tecla Inicio en el teclado durante la carga.
Figura 2 Consola de restauración de CTM
Sin embargo, hemos detectado una anomalía: la sustitución del MBR durante la lectura. La sustitución la realiza el driver filtro en la pila del disco.
Figura 3 Pila del disco e información sobre el driver filtro
En caso que se lean los sectores protegidos, entre ellos el MBR, se muestra un contenido falso, como el contenido del MBR antes de la modificación. Durante la escritura en el MBR, el driver filtro desvía la petición y la lectura a otro lugar para preservar la MBR modificada.
Norton GoBack
Nombre completo de la aplicación
Norton GoBack Deluxe Edition v.3.21.106
Enlace de distribución
ftp://ftp.symantec.com/public/english_us_canada/products/goback/3.2.x/updates/ (este producto ya no cuenta con soporte técnico. Fue sustituido por Norton Ghost)
Distribución de los usuarios de Norton GoBack por país (TOP 10)
Datos proporcionados por KSN.
Breve descripción
Norton GoBack (antes conocido como WildFile GoBack, Adaptec GoBack Roxio y GoBack) es un utilitario Symantec para la restauración de datos desarrollado para el sistema operativo Microsoft Windows. Cuando el sistema de archivos permanece inactivo por unos segundos, GoBack crea un punto de restauración. Este utilitario permite restaurar el sistema en cualquier punto disponible (Wikipedia).
Componentes del modo de núcleo
GoBack2K.sys (el driver no tiene firma)
Figura 4 Ventana principal de GoBack
Al igual que Comodo Time Machine, GoBack cuenta con una consola de restauración que se activa con la barra espaciadora antes de que arranque el sistema operativo. Esta funcionalidad se basa también en el mecanismo de modificación del MBR. Para restaurar la imagen del sistema de archivos antes del arranque del sistema operativo, North Ghost optó por la solución del disco de rescate.
Figura 5 Consola de restauración de GoBack
Podemos observar también en este caso la sustitución del MBR en la lectura. La sustitución la realiza el driver filtro en la pila del disco.
Figura 6 Pila del disco e información sobre el driver filtro
En el caso de la lectura del MBR, se muestra un contenido falso y se impide la escritura en los sectores protegidos.
PC Back Pro y Rollback Rx
Nombre completo de las aplicaciones
PC Back Pro v.2694412298 y Rollback Rx Professional v9.1
Enlaces de distribución
http://www.digicore.com.br/downloads.php?TID=TRI y http://horizon-datasys.com/309198.ihtml (http://www.rollbacksoftware.com – sitio distinto de Rollback Rx)
Distribución de los usuarios de PC Back Pro y Rollback Rx por país (TOP 10)
Datos proporcionados por KSN.
Breve descripción
Estas aplicaciones están diseñadas para crear imágenes del sistema que podrían usarse, dado el caso, en la reversión al estado anterior del sistema, y en la restauración de los datos perdidos debido a una infección viral, a modificaciones realizadas por una aplicación recientemente instalada, etc. Se restauran los archivos y los parámetros del sistema, incluyendo los parámetros del registro, del escritorio, de seguridad y de gestión de los usuarios. Las imágenes del sistema pueden crearse a petición del usuario o de forma programada.
Componente del modo de núcleo
Shield.sys, Shieldf.sys, Shieldm.sys (los drivers tienen firma)
Ante todo, es necesario explicar por qué estamos tratando dos aplicaciones al mismo tiempo. La razón es muy sencilla: porque en realidad se trata de la misma aplicación. Al parecer, la compañía Digicore le otorgó una licencia para la aplicación a la compañía Horizon-Datasys, que es su socia para la distribución en América latina. Un simple vistazo a las capturas de pantalla de la ventana principal de ambas aplicaciones es suficiente para darse cuenta de ello:
Figura 7 Ventana principal de PC Back Pro
Figura 8 Ventana principal de Rollback Rx
Sólo mostraremos las capturas de pantalla de las ventanas de Rollback Rx.
Como en todos los programas antes mencionados, estas dos aplicaciones cuentan con una consola de restauración que puede activarse con la tecla Inicio del teclado cuando el sistema operativo está arrancando. El método elegido para la activación de esta función es el mismo: la modificación del MBR.
Figura 9 Consola de restauración de Rollback Rx
Al igual que en los casos precedentes, observamos la sustitución del MBR por el driver filtro al momento de la lectura del MBR.
Figura 10 Pila del disco e información sobre el driver filtro
En el caso de la lectura del MBR, el contenido que se muestra es falso, y en el caso de la escritura, el algoritmo que interviene es idéntico al utilizado por CTM: el driver filtro desvía la petición de escritura hacia otro lugar.
RestoreIT
Nombre completo de la aplicación
FarStone RestoreIT v.7.1.3
Enlace de distribución
http://www.farstone.com/software/restore-it.php
Distribución de los usuarios de RestoreIT por país (TOP 10)
Datos proporcionados por KSN.
Breve descripción
FarStone RestoreIT 7 es un poderoso y práctico utilitario de restauración de datos personales después de fallas. Restaura de forma automática todos los archivos del ordenador. RestoreIT 7 restaura el sistema a su estado de funcionamiento normal previo a la falla provocada por virus o ataques de red, a sabotajes del funcionamiento de Windows, a errores de instalación o a la mala utilización por parte del usuario.
Componentes del modo de núcleo
VvBackd5.sys (el driver tiene firma)
Figura 11 Ventana principal de RestoreIT
Este programa también cuenta con una consola de restauración. Para activarlo, hay que pulsar la tecla F4 durante el arranque del sistema operativo. Se optó por el método de modificación del MBR, al igual que en las aplicaciones antes mencionadas.
Figura 12 Consola de restauración de RestoreIT
Por desgracia, no he logrado activar esta consola en mi ambiente virtual con Windows XP SP3 y tuve que instalar la aplicación con Windows Vista para poder hacerlo.
Como en todas las aplicaciones mencionadas antes, cuando se realiza la lectura del MBR, se muestra un contenido falso, y en el caso de la escritura, se desvía la petición hacia otro lugar.
Figura 13 Pila del disco e información sobre el driver filtro
Síndrome del camuflaje
Me sorprendió el camuflaje del MBR y decidí ver cómo se comportan las aplicaciones (descritas en el capítulo anterior) en caso de modificación del registro de arranque para evitar el filtro del driver. La escritura en el MBR se realizó en un ordenador con una de las aplicaciones descritas arriba. El algoritmo utilizado fue este:
- Escribir la secuencia 0xAA de 512 octetos en el MBR para evadir el filtro;
- Reiniciar el MBR en el disco mediante RootRepeal (anti-rootkit);
- Confirmar que la secuencia escrita se encuentra en el MBR;
- Abrir el disco en lectura mediante Hiew (“hiew32 .physicaldrive0”);
- Confirmar que durante la lectura, el MBR siempre muestra un contenido falso.
Antes de la sobreescritura del MBR, todos los programas que hemos descritos seguían mostrando un contenido falso en la lectura del MBR, lo que confunde al usuario. Después del arranque, el ordenador no carga el sistema, lo que es normal, ya que escribí un código basura en el MBR y que es imposible activar la consola de restauración mediante el teclado. Este es el primer punto.
El segundo es que si un determinado bootkit (o el bootkit winlocker, por ejemplo) infecta el MBR para evadir el driver filtro en un sistema que cuenta con uno de los programas mencionados, se accede al uso libre del driver rootkit pues durante la lectura del MBR, el driver legítimo en modo de núcleo con una firma numérica legal seguirá mostrando contenidos falsos. La consola de restauración puede también dejar de funcionar.
El tercer punto es el riesgo de “colgar” el sistema si las herramientas de modificación de las particiones de los programas mencionados se utilizan al mismo tiempo, puesto que estas recibirán datos incorrectos. Sería mejor que estas herramientas no funcionasen como deberían.
Así, al usar la aplicación, el usuario puede encontrarse en esta situación:
- no puede saber si el MBR está infectado;
- los programas maliciosos en el ordenador pueden camuflarse con un utilitario legítimo;
- en caso de problemas serios, la aplicación para revertir al estado anterior del sistema no funciona;
- el uso de las herramientas para modificar las particiones colapsa el sistema.
Conclusión
Aunque algunas de las aplicaciones descritas ya no existen, es probable que otras similares que ignoramos estén en circulación. Estas aplicaciones también pueden usar una funcionalidad dudosa. También es posible, teóricamente, ver los drivers en modo de núcleo que hemos tratado en aplicaciones ilícitas como el camuflaje de la infección del MBR. La presencia de una firma numérica en este caso sólo complicará las cosas. Con los conocimientos y las herramientas adecuadas, no es difícil descubrir el algoritmo de funcionamiento de estos drivers.
Todos los programas antivirus modernos cuentan con un módulo de auto-defensa. Este módulo cumple una función: proteger los objetos críticos de la aplicación, como archivos, llaves de registro, procesos del antivirus, etc. contra programas maliciosos. Imaginemos por un instante que en lugar de asegurar la protección, el módulo comenzara a camuflar los archivos o los sectores del disco y del registro. Los procesos del antivirus serían invisibles en el gestor de tareas. ¿Le gustaría usar un programa de este tipo? ¿Y si de pronto camuflara otros elementos? ¿A quién le gustaría encontrarse en una situación en la que todo puede pasar en el ordenador a espaldas de uno?
Nos gustaría plantear algunas recomendaciones a los autores de los programas que hemos descrito y a los de aplicaciones similares:
- El mecanismo de modificación del MBR es completamente legítimo, pero hay que abandonar completamente el uso de las tecnologías rootkit. Existen otros algoritmos. No hay que ocultarle nada al usuario.
- La consola de restauración puede tomar la forma de un disco de rescate o de un disco portátil.
- Los drivers deben incluir una función de identificación del solicitante.
La línea que divide el uso legal del ilegal de las tecnologías de camuflaje de actividades es muy tenue, y es muy difícil desarrollar un producto de calidad. En la industria de las soluciones de seguridad, la solución más simple no es necesariamente la mejor.
Los bootkits legales