¿Qué files de logging de auditoría se crean en Linux para rastrear las actividades de un usuario?

Una de las máquinas de nuestras networkinges consumía una gran cantidad de ancho de banda de Internet. Sin embargo, ningún usuario estaba usando el sistema.

Cuando me conecté al server usando SSH y ejecuté who mostró que un usuario ha iniciado session desde una IP que no reconocí. No creé este usuario en el sistema. Y en /etc/sudoers el usuario tenía acceso de root ilimitado:

 test11 ALL = NOPASSWD: ALL 

Terminé la session y cambié la contraseña de root. También borré al usuario.

Ahora estoy seguro pero necesito analizar por qué sucedió esto y también qué actividades realizó el usuario.

¿Cómo puedo get más información sobre lo que hizo este usuario? ¿Qué files de logging del sistema podrían ayudarme a get más información sobre IP, duración, commands ejecutados, sitios de Internet a los que se accede, etc.?

Nota: esta es una installation pnetworkingeterminada de un sistema CentOS 6. No he instalado ningún software de security o auditoría. Tampoco cambié ninguna configuration del sistema. Necesito saber qué puedo extraer de una installation pnetworkingeterminada.

Como su sistema se ha visto comprometido, no se puede confiar en la información que obtenga de ese sistema. Solo se pueden confiar en los loggings que se envían inmediatamente a un sistema externo (como el logging sysys remoto en time real). Es decir, si tiene alguna rotation de logging nocturna en un recurso compartido NFS, no puede confiar en él.

Sin embargo, es posible que el usuario no se haya molestado en cubrir sus pistas, y es posible que la información aún esté disponible en el sistema.

Desafortunadamente en una installation pnetworkingeterminada de Centos / RHEL, hay un logging muy mínimo. Básicamente estás restringido a hurgar en /var/log . El logging que debe analizar depende de qué services se ejecutan en esa casilla. Sin embargo, comenzaría con el logging ssh. Después de eso, observe los loggings de cualquier service que se ejecute como root, o tenga acceso sudo .

Si tiene suerte, ese usuario de test11 podría tener un directory de inicio, con un file .bash_history que contiene un historial de lo que se hizo.


Además, como el sistema se ha visto comprometido hasta el punto en que un usuario desconocido podía get acceso a la raíz, el sistema debe rebuildse desde cero. No puede reutilizar nada del sistema. Considere todos los files como comprometidos. También recomendaría no usar copys de security ya que no sabe cuánto time estuvo comprometido el sistema.

Una vez que un usuario obtiene acceso de administrador, hay una cantidad ilimitada de puertas traseras que se pueden instalar. Si yo hubiera sido el que había accedido a su sistema, simplemente eliminar ese usuario de test11 y cambiar la contraseña de root ni siquiera me ralentizaría.


En el futuro, hay algunas cosas que puedes hacer.

Registro remoto

Como se mencionó, solo se puede confiar en que el logging remoto en time real no se altere. Asegúrate de tener esto.

Revisión de counts

Hay 2 utilidades que debe instalar y usar para monitorear y auditar los componentes críticos del sistema. Estos son auditados y ossec .

Estas 2 utilidades operan de manera diferente, pero tienen el mismo objective, vigilar la actividad anormal.

Registro de terminales

Existe otra herramienta de auditoría llamada pam_tty_audit que funciona junto con la utilidad auditd mencionada anteriormente. pam_tty_audit es una utilidad que agregas a tu stack pam que registra todas las inputs y salidas en el TTY. Es decir, si el usuario está accediendo al cuadro a través de ssh interactivo, se registraría su actividad.
Sin embargo, tenga en count que es de la mayor importancia que este logging esté protegido a toda costa. Esto se debe principalmente a las passwords. Cuando ingrese su contraseña en un aviso, aunque no vea la contraseña escrita, el module pam_tty_audit lo verá y lo registrará. También es posible que saquen (o vean) files que contienen información confidencial, que también se registrarán. Por lo tanto, este logging debe enviarse inmediatamente fuera del sistema local para que no pueda ser obtenido por intrusos, o debe estar encriptado (y la key de desencryption no debe estar en el sistema local). Preferiblemente, ambos deben realizarse, enviarse de forma remota y encriptarlo.