Attività di monitoraggio sul mio computer.


16

Di recente ho scoperto che qualcuno ha utilizzato il mio computer senza consenso, navigando nelle cartelle, ecc.

Potrei cambiare immediatamente tutte le mie password, ma sono curioso di sapere cosa stesse cercando la parte intrusa. Quindi vorrei creare una trappola (ghigno malvagio).

Quale software monitorerà qualsiasi attività sul mio computer? Mentre so che catturare il mio schermo funzionerà qui. Preferirei usare un file di registro.

Per esempio:

/var/log/activity.log

[1 agosto 2010 20:23] / usr / bin / thunar accesso / multimedia / cctv-records /
[1 agosto 2010 20:25] / usr / bin / mplayer accesso /multimedia/cctv-records/00232.avi
[3 ago 2010 02:34] / usr / bin / thunderbird è stato eseguito
[3 ago 2010 03:33] durante la sessione SSH dal 12.32.132.123

Le attività che vorrei registrare sono:

  • Accesso a file e cartelle sul filesystem
  • I comandi vengono eseguiti (dalla console o in altro modo)
  • Sessioni utente (login, sessioni ssh e tentativi falliti)

/var/log/auth.log dovrebbe coprire il tuo terzo punto elenco. Gli altri saranno un po 'meno banali.
Cascabel,

@jefromi my auth.log registra solo i tentativi di comando sudo e su ... nessun accesso :(
Stefan,

Risposte:


8

È possibile utilizzare il meccanismo integrato nel kernel inotifyper monitorare i file a cui si accede.

Per prima cosa dovresti controllare se inotifyè attivato nel kernel:

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

La prossima cosa da fare è installare inotify-tools. Istruzioni per varie distribuzioni che puoi trovare sulla pagina del progetto - dovrebbe essere nei repository di tutte le principali distribuzioni.

Dopo che inotify è pronto per funzionare:

inotifywait /dirs/to/watch -mrq

( m= non uscire dopo un evento, r= ricorsivo, q= silenzioso)

Ad esempio - output after 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

La cosa importante è impostare correttamente le directory per watch:

  • non guardare /ricorsivamente - c'è molto da leggere / scrivere su /deve/proc
  • non guardare la tua home directory in modo ricorsivo - quando usi app c'è un sacco di lettura / scrittura nelle directory di configurazione dell'applicazione e nelle directory del profilo del browser

In /proc/sys/fs/inotify/max_user_watchesc'è un'opzione di configurazione che mostra quanti file possono essere guardati contemporaneamente. Il valore predefinito (per Gentoo) non è così elevato, quindi se imposti watcher su /home/potresti superare il limite. È possibile aumentare il limite utilizzando echo(accesso root necessario).

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

Ma prima dovresti leggere le conseguenze di quel cambiamento .

Opzioni che potrebbero essere interessanti per te:

  • -d = modalità demone
  • -o file = output su file
  • --format = formato specificato dall'utente, maggiori informazioni in man inotifywait
  • -e EVENT= Quale evento devono essere monitorati (ad esempio access, modify, ecc, maggiori informazioni a man)

Per avere l'ultima impostazione tra i ripristini del sistema, su Debian puoi farlo echo 524288 >> /etc/sysctl.conf && service procps restart. Qual è l'equivalente in Gentoo?
Tshepang,

Voglio dire echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.conf. In Gentoo potresti usare lo stesso metodo, ma sysctl.confè fornito da /etc/init.d/bootmiscinit script.
pbm,

1
in realtà è /etc/init.d/sysctl.
OneOfOne,

7

L'altro ragazzo è con te? Se ha accesso fisico o l'accesso di root, può cancellare tutte le sue tracce e anche piantare un bug per spiare voi . D'altra parte, alcune tracce sono un dolore da cancellare ed è difficile pensare a tutto.

Varie cose sono già registrate nei registri di sistema, in genere in /var/log(alcuni sistemi usano una posizione diversa come /var/logso /var/adm). In una configurazione normale, tutti gli accessi e i montaggi vengono registrati, tra gli altri. Se sei preoccupato per la cancellazione dei log, puoi impostare la registrazione remota (come farlo dipende dall'implementazione di syslog, ma in genere è una o due righe da cambiare in un file di configurazione sul mittente e sul destinatario).

Se tu o la tua distribuzione non avete disabilitato questa funzione, ogni file ha un tempo di accesso ("atime") che viene aggiornato ogni volta che il file viene letto. (Se il filesystem è montato con l' opzione noatimeo relatime, l'atime non viene aggiornato.) L'atime può essere simulato touch -a, ma questo aggiorna il tempo di utilizzo, quindi lascia una traccia. (Anche root non può rimuovere direttamente questa traccia, devi bypassare il codice del filesystem.)

Vari programmi hanno una cronologia delle sessioni . È facile da rimuovere o falsificare, se l'intruso si è ricordato di farlo. Bash continua ~/.bash_history, i browser tendono a scrivere un sacco di cose nella loro directory del profilo e così via. È inoltre possibile trovare raccontando errori o avvisi in ~/.xsession-errorso /var/log/Xorg.0.logo altro luogo dipendente dal sistema.

Molti unices hanno una funzione di contabilità di processo ¹. Vedi ad esempio il manuale delle utility di contabilità GNU , la voce nel manuale di FreeBSD o il howto di Linux o la guida di Solaris . Una volta abilitato, registra quale utente ha avviato quale processo (registra le execvechiamate) e forse un po 'di più. Ci sono molte informazioni interessanti che non registra, come i file a cui accede il processo.

Se si desidera monitorare tutti gli accessi a un filesystem, è possibile fornirlo tramite loggfs . È molto facile notare se il ragazzo pensa di guardare.

Esistono programmi di registrazione più completi, ma potrebbero richiedere un supporto kernel aggiuntivo. Su Solaris, FreeBSD, NetBSD e Mac OS X, c'è dtrace (c'è una porta Linux in corso ma non so se ha raggiunto uno stadio utilizzabile). È inoltre possibile tracciare processi specifici attraverso un'interfaccia per la ptracechiamata di sistema, ad esempio stracesu Linux; può indurre un notevole rallentamento.

¹ Qualcosa che non è in Wikipedia? No, è un discorso folle.


1

Dai un'occhiata a Fail2ban e DenyHØsts .


1
Fail2ban esamina i registri di accesso per eseguire determinate azioni (ad esempio, vietare un IP), ma non genera questo tipo di registri di accesso. DenyHosts si affida ai wrapper TCP per vietare l'ip, ancora una volta, che non è correlato all'OP.
Barthelemy,

1

Questo non è esattamente quello che stai cercando, ma alcune app mantengono un elenco di file a cui hai effettuato l'accesso di recente. Inoltre, GNOME mantiene tale elenco, a cui è possibile accedere dal suo pannello.

Un'altra soluzione è usare il diario di attività GNOME , anche se l'ultima volta che ho controllato, non ha tenuto traccia delle attività della CLI ed era interessato solo alle attività relative ai file (lettura, modifica), ignorando altre attività.

Puoi anche cercare nella /var/logdirectory in cui un sacco di programmi memorizza i loro registri.


1

Supponendo che sia abbastanza ingenuo da parte del tuo aggressore, puoi semplicemente lanciare il script -qft $USER-$$ 2> $USER-$$-timesuo script di accesso appropriato per monitorare le sue interazioni terminali e riprodurre con i comandi scriptreplay appropriati.

Per monitorare l'accesso a livello di file, ti consiglio di allegare una strace -fe openregistrazione appropriata a sshd e il filtro per le sessioni di accesso (o forse è meglio farlo da. Avvertenza: output enormi, dal momento che fare qualsiasi cosa su un sistema moderno tocca molti file Se vuoi solo monitorare file specifici, dai un'occhiata a auditd e alla sua infrastruttura di supporto.

Sessioni e tentativi di accesso possono essere raccolti da syslog come da altre risposte.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.