4. Congelación de la Escena del Crimen

Una vez que el Administrador del sistema tenga sospechas que indican un compromiso, y que no estén contradichas por pruebas proporcionadas por algún sistema de verificación de integridad como Tripwire, tiene que considerar que el sistema ha sido comprometido. Desde aquél momento, es necesario tener máximo cuidado para evitar que se produzca cualquier alteración de la "escena del crimen".

Hay varios tipos de pruebas que oculta el sistema, con diferentes niveles de volatilidad, en lugares como registros del procesador, estructura de datos en la memoria, swap, estructuras de datos de red, contadores, procesos de usuario en memoria y stacks, cache del file system, el file system y etc.

Será muy difícil o casi imposible de reunir toda esa información en el preciso momento que el intruso está operando, por lo tanto necesitamos prescindir de ella y reunir aquella información, que se recoge con mayor facilidad antes de llegada de un especialista forense que determinará el método de entrada, actividad de intrusos, identidad y origen de intrusos, duración de compromiso, posiblemente lo bastante para localizarles). En otras palabras ¿Cómo? ¿Qué? ¿Quién? ¿De dónde? ¿Cuando?

La opción más fácil es de evitar que las cosas no cambien - cerrar el sistema o suspender su funcionamiento.

Normalmente los sistemas Unix se cierran con el comando shutdown. Eso se hace para asegurarse que todos los servicios han finalizado de forma limpia, todos los ficheros cache y buffers de sistemas están flusheados y los usuarios están notificados. Este procedimiento es perfecto para sistemas no comprometidos, pero en un sistema afectado, esa acción, lo más seguro que borre algunas información de interés. Se produjeron casos cuando los intrusos programaban los sistemas para eliminar algunos ficheros en el sistema cuando el interfaz de red se deshabilite (cuando el cable de conexión haya sido sacado de su socket) o cuando el procedimiento de un shutdown normal haya sido activado.

Para prevenir esas modificaciones del sistema de ficheros es mejor sacar el cable de electricidad del enchufe (Sí, sí, lo has leído bien). Hay que estar informados que puede ser que alguna información en la memoria o información del cache no guardada en el disco puede ser eliminada como estado de red, procesos ejecutándose en la memoria, accesos a memoria kernel, contenido de registros swap, etc.

Para ello antes de sacar el cable del enchufe puede hacer lo siguiente; ejecutar varios comandos antes de apagar de forma "bruta" el sistema. Se debe hacerlo en una sesión script (ver man del comando script).

Importante: Si el administrador no está seguro de lo que está haciendo, se debe simplemente desenchufar el sistema y ponerse en contacto con un investigador forense especializado, ya que las pruebas pueden ser dañadas con mucha facilidad.

En caso de que el administrador esté seguro de si mismo puede utilizar algunas de las herramientas que vienen a continuación, siempre con cuidado.

*last, w, who - Obtener el listado de usuarios actuales en el sistema, logins anteriores, etc.

*ls - Obtener el listado largo (ls -lat) de ficheros en lugares sospechosos, los home directories, directorio /dev, directorio /root, etc.

*ps - Obtener el listado largo de todos los procesos incluidos aquellos sin ttys (e.g., ps auxwww y ps elfwww -- añadir más flags w si el listado se acorta).

*lsof - Obtener un listado completo de descriptores de ficheros, que puede mostrar algunos backdoors, sniffers, eggdrop IRC bots, redireccionadores de puertos para VNC, etc.(Ojo con cwd, cual es el directorio local en el cual el programa ha sido ejecutado.)

*find - Identificar todos ficheros corrientes, directorios modificados desde la fecha de último acceso no autorizado, o que pertenecen al usuario desde cuya cuenta se sospecha que fue originado el ataque.

Importante: La utilidad find modifica el i-node "last accessed" con el timestamp actual, entonces no debe utilizar esta utilidad para barrer el sistema de ficheros, si todavía quiere saber cuales son los ficheros accedidos por el atacante si el sistema de ficheros está montado en modo lectura y escritura.

*ltrace, strace, truss (SunOS 5) - Ver últimos accesos a ficheros de configuración de "rootkit", ejemplo: Examinar el fichero /bin/ls trucado.

Ejemplo:
   
   [sonne@thor.activalink.com]# truss -t open ./ls
   open("/dev/zero", O_RDONLY) = 3
   open("/usr/lib/libc.so.1", O_RDONLY) = 4
   open("/usr/lib/libdl.so.1", O_RDONLY) = 4
   open("/usr/platform/SUNW,Sun_4_75/lib/libc_psr.so.1", O_RDONLY) Err#2    ENOENT
   ---> open("/dev/ptyr", O_RDONLY) Err#2 ENOENT
   open(".", O_RDONLY|O_NDELAY) = 3
   [list of files]

Ver páginas man de cada una de las utilidades para conocer sus funciones.

[Subir]


[Anterior] [Menu Principal] [Siguiente]