Técnicas y Amenazas Informáticas

Threat Center

¿La raíz de todos los males? - Rootkits revelados

¿Son los rootkits la raíz de todos los males, o sólo otra rama del árbol de amenazas? Todo lo que necesita saber acerca de la amenaza de los rootkits lo encontrará en este documento.

 

Autores: David Harley y Andrew Lee. 

En los últimos años, se ha incrementado la toma de conciencia pública acerca de los rootkits, pero así como con los gusanos, virus y otros códigos maliciosos, el término rootkit es aplicado indistintamente a un amplio rango de tecnologías y ha traído un número de definiciones poco apropiadas. 

Mientras que varias de estas tecnologías y definiciones son explicadas en el presente trabajo, nuestra intención es clarificar usos comunes, y no suministrar una única definición final. No obstante, hay algunas explicaciones breves en el glosario al final del presente.

Los rootkits se encuentran en peligro de convertirse en lo último de una larga línea de amenazas pobremente entendidas y ser falsamente promocionados como “el fin de la computación tal y como la conocemos”.

Al haber recibido descripciones [1] tales como “el ataque más pernicioso y sofisticado que actualmente puede efectuarse contra el sistema Windows”, han adquirido algunas de las temerosas supersticiones que anteriormente inspiraron términos como stealth y polimórfico en la historia de los códigos maliciosos. Sin duda, los conceptos de rootkit y stealth (o aquello a lo que actualmente se lo conoce como stealthware) se encuentran estrechamente relacionados y superpuestos, si es que no son sinónimos.

Este artículo intenta evaluar la realidad de la amenaza Rootkit y también examinar el estado de las soluciones disponibles. Es sencillo comprender los motivos sobre la preocupación ante esta amenaza, ya que las aplicaciones que utilizan técnicas de ocultamiento están diseñadas para que los antivirus no detecten su presencia, ni tampoco lo hagan otros programas de seguridad, el sistema operativo y el sistema de archivos.

Los rootkis eran, hasta hace poco, una preocupación para los especialistas de seguridad, principalmente en las comunidades UNIX/Linux, en cambio, la utilización del modo oculto no es ninguna novedad para la industria antivirus.

¿Tiene root?

En un sistema basado en Unix, el usuario más privilegiado tiene el nombre de root,  posee el máximo control sobre el sistema, y es por ello el más deseado por un atacante.

El root o directorio raíz también se refiere al primer directorio en la estructura del sistema de archivos de Unix: el directorio único de primer nivel en el árbol de directorios convencionales. (¿Por qué el árbol de directorios crece hacia abajo?, es lo que uno se pregunta). El directorio root, frecuentemente referido por medio de la barra “/” (casi equivalente al “C:\” en DOS o Windows) es el que permite el acceso a todos los restantes.

Comúnmente, los usuarios no privilegiados del sistema deberían ser incapaces de alterar los archivos de este directorio o bien, aquellos que no corresponden a su propio entorno. De modo que rootear un sistema significa comprometer la cuenta root, logrando así, el acceso root al sistema y a todos los archivos y directorios del mismo.

Rootkits y Stealth

En los inicios de la detección de códigos maliciosos, la tecnología stealth fue definida según los siguientes lineamientos:

  • Stealth Negativo (Nivel -1): Los daños provocados por la infección afectan el funcionamiento del objeto atacado de manera tan evidente, que hacen inevitable su detección
  • Non-Stealth (Nivel 0): No se toman medidas específicas para disimular la presencia de la infección.
  • Stealth Elementario (Nivel 1): No hay características específicas que llamen la atención sobre la infección. Se llevan a cabo los pasos básicos de anti-detección, como preservar los timestamps (sellos de tiempo y fecha).
  • Stealth Inmediato (Nivel 2): Se mantiene una imagen o imagen parcial del objeto en su estado previo a la infección para mostrarle al sistema que nada ha cambiado y así ocultar las huellas del malware.
  • Stealth Avanzado (Nivel 3): Son utilizados los métodos de ocultamiento apuntando específicamente a ocultar la infección a cualquier software de seguridad.

 Actualmente, esta clasificación no es muy utilizada fuera del ambiente de la comunidad antivirus. Sin embargo, se mantiene válida, no sólo en el contexto de los códigos maliciosos sino en términos de otros stealthy malware, incluyendo rootkits. Si consideramos que tales mecanismos fueron conocidos y tratados con perfecta adecuación por el software antivirus durante muchos años, uno se puede quedar tranquilo frente a las afirmaciones de que la tecnología rootkit se haya actualmente tan avanzada que sólo puede ser detectada por herramientas especiales y que la única manera de lidiar con ella es formateando el disco infectado y reinstalando el sistema operativo.

El software antivirus puede detectar con igual facilidad tanto a rootkits como cualquier otro programa dañino, antes de que el mismo tenga la oportunidad de instalarse, pero también en muchas circunstancias, luego de la instalación. Por supuesto, esto no implica que no haya problemas de rootkit. Tampoco significa que todos los programas antivirus lidien con el problema en un mismo nivel de efectividad, o bien que trabajen con todos los tipos de rootkits con igual éxito. Sin embargo, el problema es controlable: el cielo no se está cayendo.

Definiciones de Rootkit

Según Hoglund [4], un Rootkit es “un conjunto de programas y códigos que permiten, constante o permanentemente, una presencia indetectable en un sistema”. Esta es una definición razonable, pero sinceramente no disminuye el nivel de confusión entre el viejo estilo “stealthing”, los más modernos “stealthkits” y los rootkits.

Por eso, consideremos una definición básica [5] de un kit de herramientas malicioso: “un paquete de software que contiene scripts y programas que explotan vulnerabilidades”.

Un rootkit es una especie de kit de herramientas frecuentemente asociada con el intento de ganar acceso privilegiado o mantener dicho acceso ocultando el hecho de que el sistema ha sido comprometido. Es por ello que podría ser definido como una serie de herramientas maliciosas que habilitan al intruso a ocultar el hecho de que se encuentra dentro del sistema y así continuar aprovechándose del acceso. En la realidad, la situación es un poco más complicada, pero antes de introducirnos en ello, es necesario comprender algo acerca del manejo de cuentas del usuario y de sus privilegios.

Después de aclarar esto, se puede considerar los kits de herramientas específicos en determinados entornos.

Por el momento, una definición útil de un rootkit podría ser la de un kit de herramientas instalado dentro de un sistema de modo que: 

  • mantiene acceso y control privilegiado
  • permite al individuo y/o software hacer uso de dicho acceso del modo que prefiera
  • oculta o restringe el acceso a objetos o procesos tales como:
     
    • Procesos
    • Threads
    • Archivos
    • Carpetas/directorios/subdirectorios
    • Registros de entrada
    • Handles
    • Puertos abiertos

Hay que tener en cuenta que dichas definiciones no presuponen:

  • “Intrusión”, es decir, acceso no autorizado, 
  • acción o intento malicioso, 
  • “rooting” (ganar un nivel de acceso y privilegio inapropiado y no autorizado). Más adelante, se explorara este concepto más detalladamente.

La mayoría de los sistemas operativos multiusuarios aplican alguna forma de ocultamiento y/o acceso restringido a los datos sensibles y a los sistemas de archivos críticos, sobre todo a los usuarios no privilegiados.

Esto se hace enteramente, por razones legítimas de seguridad: por ejemplo, para restringir a los usuarios finales el acceso a datos que no les corresponden, o para prevenir que borren o modifiquen archivos y programas que dañen al sistema o a la integridad de los datos.

En este sentido, la seguridad no presupone malicia en la parte del usuario final y podría fácilmente caer dentro de una versión ligeramente modificada del modelo de clasificación de stealth, citado anteriormente. Sin embargo, esta definición cubre el uso de técnicas stealth/rootkit más avanzadas, también debido a razones legítimas (leerá más adelante acerca del rootkit de Sony).

Siguiente >