¿Cómo saber si un USB se ha conectado en una fecha determinada? (Linux / Mac)

1

A partir de este gran guión ofrecido por Daniel Azuelos

cd /Volumes/suspicious_USB
/usr/bin/sudo find . -atime -21 -exec ls -dluT {} \;

¿Cómo es posible modificarlo para encontrar si se conectó una memoria USB, en una computadora al azar, en una fecha determinada? Digamos, por ejemplo, ¿el 3 de mayo? ¿Alguna forma de detectar si un archivo se abrió o copió?

¡Los scripts de terminal de Linux y Mac serían apreciados!

    
pregunta Doc Brown 17.05.2018 - 21:58
fuente

2 respuestas

2

Encontré los momentos en que se enchufaron los dispositivos USB con esto:

# cat /var/log/messages | grep -A 20 "usb 1-1: new high-speed USB device"
May 17 16:54:28 trogdor kernel: usb 1-1: new high-speed USB device number 8 using xhci_hcd

# cat /var/log/messages | grep "Unmounted" | grep sdf
May 17 16:56:36 trogdor journal: Unmounted /dev/sdf1 on behalf of uid 1000

Luego verificó qué archivos se modificaron en ese rango de tiempo con esto:

# find / -executable -type f -newermt "2018-05-17 16:54:00" ! -newermt "2018-05-17 16:57:00" -ls

Estoy de acuerdo en que no es una gran solución, y es demasiado manual. Por lo que sé, no hay una forma elegante de ver en los registros si los archivos se movieron hacia o desde un dispositivo.

Un poco de explicación: De forma predeterminada, CentOS7 mantiene los registros durante 4 semanas después de su ciclo, por lo que los registros deberían estar allí para filtrarlos en / var / log / messages - $ {date_in_some_format}.

$ cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4
....
....

Y todo lo que tenga información de nivel o superior se registra en / var / log / messages según el archivo de configuración rsyslog, incluido la conexión / desconexión USB en un formato de poca utilidad.

$ cat /etc/rsyslog.conf 
# rsyslog configuration file
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

Conecté mi USB y copié el archivo malicioso.sh desde / tmp / y / home / trogdor /

-rwxr-xr-x.  1 trogdor trogdor   44 May 17 16:55  /tmp/malicious.sh
-rwxr-xr-x.  1 trogdor trogdor   44 May 17 16:56  /home/trogdormalicious.sh

En los registros que busqué cuando se conectaron los dispositivos USB, y luego cuando se desconectaron. Utilicé -A para generar 20 líneas después de la línea correspondiente, para encontrar el lugar donde se montó el dispositivo, por lo que estaba seguro de que en realidad era el dispositivo que estaba siendo desmontado (/ dev / sdf en este caso). Los registros más antiguos se almacenan por defecto en / var / log con mensajes - $ {fecha en algún formato}

# cat /var/log/messages | grep -A 20 "usb 1-1: new high-speed USB device"
--
May 17 16:54:28 trogdor kernel: usb 1-1: new high-speed USB device number 8 using xhci_hcd
---
May 17 16:54:29 trogdor kernel: sd 11:0:0:0: [sdf] 31258624 512-byte logical blocks: (16.0 GB/14.9 GiB)
--

Entonces, porque la última línea muestra que se montó en sdf:

# cat /var/log/messages | grep "Unmounted" | grep sdf
---

May 17 16:56:36 trogdor journal: Unmounted /dev/sdf1 on behalf of uid 1000

Arranqué esto para el rango de tiempo de búsqueda . Los tiempos son recientes, pero lo mismo se aplica a los tiempos en el pasado más lejano. La salida debe ser tamizada, pero no es tan mala como podría ser, asumiendo que los archivos maliciosos se cargan rápidamente. También verifiqué solo los archivos ejecutables.

# find / -executable -type f -newermt "2018-05-17 16:54:00" ! -newermt "2018-05-17 16:57:00" -ls
    
respondido por el flerb 18.05.2018 - 02:55
fuente
0

No es posible.

Si tiene acceso a la computadora, puede revisar sus registros para detectar cualquier actividad relacionada con la memoria USB en cuestión. Por ejemplo, conectar un dispositivo USB en Linux creará un rastro de registro. Si se registra de forma persistente, o solo en el búfer de anillo del kernel ( dmesg ) depende de la configuración.

Con una memoria USB estándar, realmente no se puede saber si se ha accedido. Si crea una imagen de disco de la misma o la monta en modo de solo lectura, no se escribirá nada en ella. Si le escribe algo, puede establecer el tiempo de acceso (que verifica con find -atime ) a cualquier cosa que desee, incluidas las fechas futuras y pasadas que desee.

    
respondido por el vidarlo 18.05.2018 - 00:28
fuente

Lea otras preguntas en las etiquetas