Aunque originalmente los
rootkits eran empleados para escalar privilegios hasta el nivel de administrador (
root, de ahí su nombre), en la actualidad y especialmente cuando hablamos de entornos Windows, su evolución los ha convertido típicamente en herramientas y mecanismos para tratar de ocultar la presencia de acciones maliciosas y/o diverso malware, desde virus hasta spyware, pasando por troyanos y otras lindezas. Hablamos de ocultar procesos, ficheros, valores/cadenas del registro, puertas traseras, etc. Obviamente, entre sus objetivos está eludir la detección por parte de antivirus, soft antispy y otro tipo de escáneres, de manera que no es extraño verles actuar reemplazando utilidades comunes del sistema (telnet, netstat...), incluso los backups que de ellas tengamos, o valiéndose de inyección de código/dll, de manera que en cualquier caso, suelen ser difíciles de detectar y, por tanto, de erradicar.
Como es sabido, las DLLs -Dynamic Link Library o bibliotecas de vínculos dinámicos- son librerías compartidas, es decir, en lugar de incluir código común en cada uno de los programas, resulta más práctico "reciclarlo", de manera que funciones comunes se almacenan en ficheros aparte -las DLLs- y son cargadas al correr dichos programas u otras dlls. Esa en principio es la idea y su uso completamente normal. Sin embargo, con el tema de la dll/code injection maliciosa -ya comentado en la guia del SSM- básicamente hablamos de insertar código en el espacio de memoria de otros programas, hacerles cargar una dll de origen malicioso o inyectarla en procesos abiertos (DLL Hooking), consiguiendo así pasar impunemente barreras como las de nuestros cortafuegos.
Hay diversas herramientas amigas que pueden ayudarnos en la búsqueda de rootkits; algunas puede que áridas de uso, pero otras -aunque igualmente permitan el uso desde línea de comandos- se acompañan de interfaz gráfica, más apetecible para el usuario medio. Tiempo atrás dejábamos en Reseñas la herramienta gratuita de Sysinternals para detección de rootkits, RootkitRevealer. También podemos citar la ofrecida -de momento en estado beta- por parte de F-Secure, BlackLight. Si tenéis fundadas sospechas de algo raro (altos consumos de CPU de origen anormal o desconocido, consumo aparentemente inexplicable del ancho de banda, etc.) y vuestros sistemas habituales de escaneo no detectan nada, no es mala idea -sin caer en paranoias, habiendo descartado antes las causas más frecuentes- que probéis con ellas, nunca se sabe.
La beta BlackLight de F-Secure es un ejecutable que no precisa instalación, aplicable bajo W2000/XP/2003. Se encarga de buscar procesos ocultos en nuestro sistema, pero también ficheros y carpetas ocultas en todas las unidades, de manera que cuando le deis al scan, preparaos para escuchar rascar a vuestros HDs... en mi caso, que tengo varios HDs y el abecedario casi completado, tardó unos minutos, pero la velocidad de escaneo fue sorprendentemente rápida.

Como no encontró nada y el sistema de pruebas lo tengo ocupado con otras historias, por ahora no puedo poneros capturas propias de sus otras pantallas, así que os remito a los screenshots y al enlace de ayuda que ofrece F-Secure. Mencionar que en caso de detectar algo sospechoso, después de que indaguemos sobre su procedencia, nos da la opción -sólo si fuera necesario, cuidado con extralimitarse- de renombrarlo (Rename) para, tras reiniciar, comprobar que el ítem aparezca visible, fácilmente accesible para su muestreo/eliminación y con el esperado renombrado.
RootkitRevealer de Sysinternals (apto para todos los Windows de núcleo NT) me ha dejado en principio buena impresión. Además de escanear todas las unidades y el registro del sistema, se encarga -si así se lo indicamos, dejando marcado Hide standard NTFS Metadata files, dentro de Options- de bucear por los metadatos ocultos al Windows API en particiones NTFS, las ADS (Alternate Data Streams).

Su escaneo tarda bastante más en completarse que con la anterior herramienta, pero entiendo que es más minucioso en su búsqueda de discrepancias en el registro y la API. Por contra, no he observado que ofrezca alguna opción contra los ítems encontrados, más bien nos remiten a recopilar esos datos (File > Save) para proceder entonces con la búsqueda de información que confirme las sospechas y el método concreto de erradicación que cada caso requiera. En parte comprensible, ya que bajo determinadas circunstancias, la existencia de rootkits puede suponer haber estado expuestos por períodos prolongados, siendo aconsejable en algunos casos guardar los datos relevantes y empezar de cero con un nuevo sistema (por reinstalación o bien mediante las siempre recomendables copias imagen).
Debo comentar un detalle (en su día preguntado en nuestros foros) y es que los resultados del escaneo fueron limpios, como era de esperar, pero en esta ocasión se mostraban innumerables ítems con una característica común: la marca ":KAVICHS".

En caso de encontrároslo, sabed que se debe al antivirus KAV, probablemente a su afán por mejorar la velocidad aparente de los escaneos... ¿cómo es esto?, bueno, no tengo confirmación al respecto, pero se intuye. Si recordáis su módulo Inspector -no es nuevo, apareció durante la transición AVP/KAV-, teóricamente permitía disminuir la tardanza de los escaneos, al encargarse de analizar las unidades buscando cambios en archivos y directorios, proporcionando esa información al Scanner, de manera que éste sólo tuviera que analizar dichas modificaciones; así mismo, el módulo Inspector también informaba de esas modificaciones al módulo KAVI Cure (KAVIC), encargándose éste de recopilar datos por si, en caso de infección, era necesario recuperar archivos (KAVIC actua sin contar con las bases actualizables, es decir, tiene información sobre sus ficheros "protegidos", pero no sobre el bichejo en sí). Como resultado de estas medidas, se crean las streams ":KAVICHS", marcas almacenadas por el antivirus para tales fines. En caso de que nos molesten (por ejemplo, por haberlo dejado de usar), podemos eliminar éstas y otras streams con la herramienta de igual nombre de Sysinternals: Streams. Aunque si por mera curiosidad sólo queréis buscar/listar las ADS, también podéis valeros de la utilidad LADS, como comenté en su día en la sección de borrado seguro, al hablar sobre la aplicación del wipe en unidades NTFS.

Antes de terminar, conviene destacar que estas herramientas pueden tener utilidad -con suerte- a posteriori, pero lo deseable es, directamente, evitar la implantación. Es por ello que programas de control activo como SSM y otro tipo de monitorizaciones residentes (algunas incluídas de serie en cortafuegos, caso del Kerio v4), son cada vez más recomendables. Se tiende hacia modelos sandbox, creando un entorno donde la ejecución de código esté restringida (aunque a medida que esta restricción aumenta, más puede limitar a los propios programas) o bien emulando entornos y estudiando el comportamiento del código para decidir sobre su grado de sospecha, práctica cada vez más empleada por los antivirus (NOD32, Norman, etc.). Sea como fuere, no bajéis la guardia ;^)