miércoles, 4 de enero de 2012

ROOTKITS Y LA LUCHA DEL BIEN CONTRA EL MAL

Un rootkit es un programa que está oculto o enmascarado en el sistema, y puede acceder a partes de éste de un modo privilegiado de modo que es difícil de detectar y más difícil aún de eliminar mientras está en ejecución.
Hasta este momento nada he dicho sobre su naturaleza o sobre su comportamiento. Este recurso puede ser empleado para bien y para mal, como las armas, internet, los libros, las palabras y tantas otras facetas cotidianas.
Por ejemplo, lo ideal es que un programa antivirus permanente funcione como un rootkit benigno:
  • oculto, que no se pueda detectar, o sea, que los programas virus no puedan detectarlo
  • enmascarado en el sistema, o sea, que el sistema siga funcionando y que el antivirus aparentemente sea como cualquier otro programa residente y activo del sistema
  • que pueda acceder a partes del sistema de modo privilegiado, es decir, que se ejecute con más privilegios que cualquier programa virus, para que pueda imponerse a éstos, pararlos, borrarlos de memoria, borrarlos de disco duro, sin tener que pedir constantemente permisos para hacer estas tareas privilegiadas.
  • que sea muy difícil de eliminar, para que los programas virus no puedan borrarlo de disco duro, parar su ejecución o borrarlo de la memoria.
En general, no obstante, se asocia un rootkit con un comportamiento maligno.

Para conseguir estar activo y en ejecución, un rootkit debe formar parte del sistema operativo como si se tratara de un servicio o módulo en ejecución del núcleo del sistema. Y claro, ésto solo se consigue arrancándose y poniéndose en ejecución con el propio sistema, es decir, arrancando con el nucleo del sistema. El núcleo es la primera parte que se carga en memoria cuando una partición formateada y activa toma el control del arranque de la máquina. Lo primero que se carga son los drivers o controladores de dispositivos, en particular el driver del disco duro. Si enmedio de alguno de esos códigos estuviera un trozo de código rootkit (infectado e insertado por algún medio vírico, troyano, gusano, etc...) este código permanecería activo y en ejecución todo el tiempo que la máquina estuviera encendida. Porque el driver del disco duro siempre está usándose. Si mientras que está activo se le intentara detectar o eliminar mediante otro programa, pongamos un antivirus, este propio antivirus tendría que usar el driver del disco duro para borrar el rootkit, pero el código del rootkit está enmedio del código del driver del disco duro, así que podría enmascararse para ser detectado, o aparentar su borrado. En efecto, el antivirus trata de ver el mundo con unas gafas pero las gafas le dejan ver todo menos lo importante: las propias gafas.

No hay comentarios:

Publicar un comentario