Si su sistema ha sido comprometido, no debe confiar en nada .
Creo que, por lo general, las utilidades estándar funcionarán en su mayoría correctamente, pero dejarán de lado las cosas relacionadas con los procesos del atacante. Los rootkits están diseñados de esta manera, por lo que es menos probable que note que la máquina está comprometida. Entonces, creo que generalmente puedes confiar en ellos para ver tus propios procesos, pero no para asegurarte de que se haya eliminado un rootkit.
Si el atacante puede cargar módulos del kernel, o modificar el kernel, incluso las llamadas al sistema y /proc
API pueden estar. Así que incluso una copia limpia de las utilidades del espacio de usuario como ps
, o grep foo /proc/*/cmdline
, no le dirá si hay un proceso malicioso en ejecución. Cualquier rootkit que valga la pena esconderá sus propios procesos.
Todos los archivos en todo el sistema son como desechos radioactivos , que pueden contaminar otras cosas si no tienes cuidado. p.ej. es posible que un atacante haya agregado algo a /home/*/.bashrc
para volver a infectar su sistema en caso de que reinstale el sistema operativo pero no marque /home
.
De manera similar, puede haber cosas desagradables en la configuración de su servidor web, o en sus scripts CGI, etc. Compare con las copias de seguridad, y no asuma que cualquier cosa es segura si el atacante podría haberlo tocado.
Definitivamente, realice todas y cada una de las comprobaciones de datos que no sean de confianza en una máquina de limpieza conocida. Siempre y cuando no ejecute nada del sistema comprometido, debería estar bien. (es decir, suponiendo que cmp
y diff
no tienen ninguna vulnerabilidad. Pero tenga en cuenta que strings
no es seguro en archivos que no son de confianza, dependiendo de la versión de libbfd
. Usa strings -a
.