Monitoreo de actividad en mi computadora.

16

Tan recientemente descubrí que alguien ha estado usando mi computadora sin consentimiento, buscando carpetas, etc.

Podría cambiar todas mis contraseñas de inmediato, pero tengo curiosidad por saber qué estaba buscando la parte intrusa. Entonces me gustaría establecer una trampa (sonrisa malvada).

¿Qué software monitoreará cualquier actividad en mi computadora? Si bien sé que capturar mi pantalla funcionará aquí. Prefiero usar un archivo de registro.

Por ejemplo:

/var/log/activity.log

[1 agosto 2010 20:23] / usr / bin / thunar accedido / multimedia / cctv-records /
[1 agosto 2010 20:25] / usr / bin / mplayer accedido /multimedia/cctv-records/00232.avi
[3 agosto 2010 02:34] / usr / bin / thunderbird se ejecutó
[3 de agosto de 2010 03:33] sesión entrante ssh del 12.32.132.123

Las actividades que me gustaría registrar son:

  • Acceso a archivos y carpetas en el sistema de archivos.
  • Los comandos se ejecutan (desde la consola o de otra manera)
  • Sesiones de usuario (inicio de sesión, sesiones ssh e intentos fallidos)
Stefan
fuente
/var/log/auth.log debería cubrir su tercer punto de viñeta. Los otros van a ser un poco menos triviales.
Cascabel el
@jefromi my auth.log solo registra los intentos de comando sudo y su ... sin inicios de sesión :(
Stefan

Respuestas:

8

Podría usar un mecanismo en el núcleo inotifypara monitorear los archivos accedidos.

Primero debe verificar si inotifyestá activado en el núcleo:

pbm@tauri ~ $ zcat /proc/config.gz | grep CONFIG_INOTIFY
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y

Lo siguiente que debe hacer es instalar inotify-tools. Instrucciones para varias distribuciones que puede encontrar en la página del proyecto : debe estar en los repositorios de todas las distribuciones principales.

Después de eso, inotify está listo para trabajar:

inotifywait /dirs/to/watch -mrq

(m = no salir después de un evento, r= recursivo,q = silencioso)

Por ejemplo, salida después ls /home/pbm

pbm@tauri ~ $ inotifywait /bin /home/pbm -mq 
/bin/ OPEN ls
/bin/ ACCESS ls
/bin/ ACCESS ls
/home/pbm/ OPEN,ISDIR 
/home/pbm/ CLOSE_NOWRITE,CLOSE,ISDIR 
/bin/ CLOSE_NOWRITE,CLOSE ls

Lo importante es configurar correctamente los directorios para ver:

  • no mire /recursivamente: hay mucha lectura / escritura en/dev y/proc
  • no mire su directorio de inicio de forma recursiva: cuando utiliza aplicaciones, hay una gran cantidad de lectura / escritura en los directorios de configuración de aplicaciones y en los directorios de perfil de los navegadores

En /proc/sys/fs/inotify/max_user_watchesexiste la opción de configuración que muestra cuántos archivos se pueden ver simultáneamente. El valor predeterminado (para Gentoo) no es tan alto, por lo que si configura el monitor /home/podría exceder el límite. Puede aumentar el límite mediante el uso echo(se necesita acceso de root).

echo 524288 > /proc/sys/fs/inotify/max_user_watches

Pero antes de eso deberías leer sobre consecuencias de ese cambio .

Opciones que pueden ser interesantes para usted:

  • -d = modo demonio
  • -o file = salida al archivo
  • --format = formato especificado por el usuario, más información en man inotifywait
  • -e EVENT= Qué evento deben ser monitoreados (por ejemplo access, modify, etc, más información en man)
pbm
fuente
Para que la configuración dure entre los reinicios del sistema, en Debian puede hacerlo echo 524288 >> /etc/sysctl.conf && service procps restart. ¿Cuál es el equivalente en Gentoo?
tshepang el
A lo que te refieres echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.conf. En Gentoo, podría usar el mismo método, pero sysctl.confse origina en el /etc/init.d/bootmiscscript de inicio.
pbm
1
en realidad es /etc/init.d/sysctl.
OneOfOne el
7

¿El otro tipo está contigo? Si no tiene acceso físico o acceso de root, puede borrar todos sus rastros e incluso plantar un error para espiar a usted . Por otro lado, algunos rastros son difíciles de borrar, y es difícil pensar en todo.

Ya se han registrado varias cosas en los registros del sistema, generalmente en /var/log(algunos sistemas usan una ubicación diferente, como/var/logs o /var/adm). Bajo una configuración normal, se registran todos los inicios de sesión y montajes, entre otros. Si le preocupa que se borren los registros, puede configurar el registro remoto (cómo hacerlo depende de la implementación de syslog, pero generalmente es una o dos líneas para cambiar en un archivo de configuración en el remitente y en el receptor).

Si usted o su distribución no ha deshabilitado esta función, cada archivo tiene un tiempo de acceso ("atime") que se actualiza cada vez que se lee el archivo. (Si el sistema de archivos se monta con la opción noatimeo relatime, el atime no se actualiza). El atime se puede falsificar contouch -a , pero esto actualiza el ctime, por lo que deja un rastro. (Incluso la raíz no puede eliminar directamente este rastro, debe omitir el código del sistema de archivos).

Varios programas tienen un historial de sesiones . Es fácil de eliminar o falsificar, si el intruso se acordó de hacerlo. Bash mantiene ~/.bash_history, los navegadores tienden a escribir muchas cosas en su directorio de perfil, y así sucesivamente. Usted también puede encontrar contando errores o advertencias en ~/.xsession-errorso /var/log/Xorg.0.logu otro sistema dependiente de ubicación.

Muchas unidades tienen una función de contabilidad de procesos . Consulte, por ejemplo, el manual de utilidades de contabilidad de GNU , la entrada en el manual de FreeBSD o el tutorial de Linux o la guía de Solaris . Una vez habilitado, registra qué usuario lanzó qué proceso y cuándo (registraexecve llamadas), y tal vez un poco más. Hay mucha información interesante que no registra, como los archivos a los que accede el proceso.

Si desea monitorear todos los accesos a un sistema de archivos, puede proporcionarlo a través defsf . Es muy fácil notar si el tipo piensa mirar.

Hay programas de registro más completos, pero pueden requerir soporte adicional del núcleo. En Solaris, FreeBSD, NetBSD y Mac OS X, hay dtrace (hay un puerto de Linux en progreso pero no sé si ha alcanzado una etapa utilizable). También puede rastrear procesos específicos a través de una interfaz hasta la ptracellamada del sistema, por ejemplo straceen Linux; Puede inducir una desaceleración notable.

¹ ¿ Algo que no está en Wikipedia? No, eso es una locura.

Gilles 'SO- deja de ser malvado'
fuente
1

Echa un vistazo a Fail2ban y DenyHØsts .

iamsid
fuente
1
Fail2ban examina los registros de acceso para realizar ciertas acciones (por ejemplo, prohibir una ip), pero no genera este tipo de registros de acceso. DenyHosts confía en TCP Wrappers para prohibir ip, una vez más, eso no está relacionado con el OP.
Barthelemy el
1

Esto no es exactamente lo que está buscando, pero algunas aplicaciones mantienen una lista de archivos a los que accedió recientemente. Además, GNOME mantiene esa lista, a la que se puede acceder desde su Panel.

Otra solución es usar GNOME Activity Journal , aunque la última vez que lo verifiqué, no guardaba un registro de la actividad de CLI, y solo estaba interesado en la actividad relacionada con el archivo (lectura, edición), ignorando otras actividades.

También puede buscar dentro del /var/logdirectorio donde un montón de programas almacenan sus registros.

tshepang
fuente
1

Asumiendo suficiente ingenuidad en el lado de su atacante, simplemente puede lanzar script -qft $USER-$$ 2> $USER-$$-timeen su script de inicio de sesión apropiado para monitorear sus interacciones de terminal y reproducir con los comandos de scriptreplay apropiados.

Para monitorear el acceso a nivel de archivo, recomiendo adjuntar un strace -fe openregistro apropiado al sshd y filtrar para las sesiones de inicio de sesión (o tal vez sea mejor simplemente hacer esto desde). Advertencia: Grandes resultados, ya que hacer cualquier cosa en un sistema moderno toca muchos archivos Si solo desea monitorear archivos específicos, eche un vistazo a auditado y su infraestructura de soporte.

Las sesiones y los intentos de inicio de sesión se pueden recopilar de syslog según otras respuestas.

Thomas Themel
fuente