Aktivitäten auf meinem Computer überwachen.

16

Vor kurzem habe ich festgestellt, dass jemand meinen Computer ohne Zustimmung verwendet und Ordner usw. durchsucht hat.

Ich könnte alle meine Passwörter sofort ändern, aber ich bin neugierig, was die eindringende Partei suchte. Also würde ich gerne eine Falle aufstellen (böses Grinsen).

Welche Software überwacht Aktivitäten auf meinem Computer? Ich weiß zwar, dass das Aufnehmen meines Bildschirms hier funktionieren wird. Ich würde lieber eine Logdatei verwenden.

Beispielsweise:

/var/log/activity.log

[1 Aug 2010 20:23] / usr / bin / thunar hat auf / multimedia / cctv-records zugegriffen /
[1 Aug 2010 20:25] / usr / bin / mplayer hat auf /multimedia/cctv-records/00232.avi zugegriffen
[3 Aug 2010 02:34] / usr / bin / thunderbird wurde ausgeführt
[3 Aug 2010 03:33] und die SSH-Sitzung wurde vom 12.32.132.123 gestartet

Aktivitäten, die ich protokollieren möchte, sind:

  • Zugriff auf Dateien und Ordner im Dateisystem
  • Befehle werden ausgeführt (von der Konsole oder auf andere Weise)
  • Benutzersitzungen (Anmeldungen, SSH-Sitzungen und fehlgeschlagene Versuche)
Stefan
quelle
/var/log/auth.log sollte Ihren dritten Aufzählungspunkt abdecken. Die anderen werden ein bisschen weniger trivial sein.
Cascabel
@jefromi mein auth.log protokolliert nur sudo und su Befehlsversuche ... keine Anmeldungen :(
Stefan

Antworten:

8

Sie können den kerninternen Mechanismus inotifyzum Überwachen der Dateien verwenden, auf die zugegriffen wird.

Zuerst sollten Sie überprüfen, ob inotifyim Kernel aktiviert ist:

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

Als nächstes müssen Sie installieren inotify-tools. Anweisungen für verschiedene Distributionen finden Sie auf der Projektseite. Diese sollten sich in den Repositorys aller wichtigen Distributionen befinden.

Danach ist inotify einsatzbereit:

inotifywait /dirs/to/watch -mrq

( m= nicht nach einem Ereignis rbeenden, q= rekursiv, = leise)

Zum Beispiel - Ausgabe nach 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

Wichtig ist, die Verzeichnisse für die Überwachung richtig einzustellen:

  • Schau nicht /rekursiv - es gibt viel Lesen / Schreiben auf /devund/proc
  • Beobachten Sie Ihr Home-Verzeichnis nicht rekursiv - wenn Sie Apps verwenden, gibt es eine Menge Lese- / Schreibzugriff auf Anwendungskonfigurationsverzeichnisse und Browser-Profilverzeichnisse

In /proc/sys/fs/inotify/max_user_watchesgibt es eine Konfigurationsoption, die anzeigt, wie viele Dateien gleichzeitig überwacht werden können. Der Standardwert (für Gentoo) ist ungefähr nicht so hoch. Wenn Sie also watcher einstellen, können /home/Sie limit überschreiten. Sie können das Limit erhöhen, indem Sie echo(Root-Zugriff erforderlich) verwenden.

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

Vorher sollten Sie jedoch die Konsequenzen dieser Änderung lesen .

Optionen, die für Sie interessant sein könnten:

  • -d = Daemon-Modus
  • -o file = Ausgabe in eine Datei
  • --format = benutzerdefiniertes Format, weitere Informationen in man inotifywait
  • -e EVENT= Welches Ereignis sollte überwacht werden (zum Beispiel access, modifyusw., weitere Informationen in man)
pbm
quelle
Damit die Einstellung zwischen den Systemresets zuletzt gültig ist, können Sie dies unter Debian tun echo 524288 >> /etc/sysctl.conf && service procps restart. Was ist das Äquivalent in Gentoo?
Tshepang
Ich meine was du meinst echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.conf. In Gentoo können Sie dieselbe Methode verwenden, sie wird jedoch sysctl.confvom /etc/init.d/bootmiscInit-Skript bezogen.
pbm 23.11.10
1
Eigentlich ist es /etc/init.d/sysctl.
OneOfOne
7

Steht der andere auf dich? Wenn er physischen Zugriff oder Root-Zugriff hat, kann er alle seine Spuren löschen und sogar einen Bug aufsetzen, um Sie auszuspionieren . Auf der anderen Seite sind einige Spuren schmerzhaft zu beseitigen, und es ist schwer, an alles zu denken.

In den Systemprotokollen sind bereits verschiedene Dinge aufgezeichnet, normalerweise in /var/log(einige Systeme verwenden einen anderen Speicherort wie /var/logsoder /var/adm). Bei einer normalen Konfiguration werden unter anderem alle Anmeldungen und Bereitstellungen aufgezeichnet. Wenn Sie befürchten, dass Protokolle gelöscht werden, können Sie die Remote-Protokollierung einrichten (dies hängt von der Syslog-Implementierung ab, es müssen jedoch in der Regel ein oder zwei Zeilen in einer Konfigurationsdatei auf dem Sender und auf dem Empfänger geändert werden).

Wenn Sie oder Ihre Distribution diese Funktion nicht deaktiviert haben, hat jede Datei eine Zugriffszeit ("atime"), die jedes Mal aktualisiert wird, wenn die Datei gelesen wird. (Wenn das Dateisystem mit der Option noatimeoder relatimegemountet ist, wird der atime nicht aktualisiert.) Der atime kann mit gefälscht werden touch -a, dies aktualisiert jedoch die ctime, sodass eine Spur hinterlassen wird. (Auch root kann diesen Trace nicht direkt entfernen, Sie müssen den Dateisystemcode umgehen.)

Verschiedene Programme haben eine Sitzungshistorie . Es ist leicht zu entfernen oder zu fälschen, wenn der Eindringling daran gedacht hat. Bash hält ~/.bash_history, Browser neigen dazu, viele Dinge in ihr Profilverzeichnis zu schreiben, und so weiter. In Sie können auch Fehler oder Warnungen finden erzählen ~/.xsession-errorsoder /var/log/Xorg.0.logoder andere systemabhängigen Lage.

Viele Geräte verfügen über eine Funktion zur Prozessabrechnung ¹. Siehe zum Beispiel das Handbuch der GNU Accounting Utilities , den Eintrag im FreeBSD-Handbuch oder das Linux-Howto oder den Solaris-Leitfaden . Einmal aktiviert, zeichnet es auf, welcher Benutzer wann welchen Prozess gestartet hat (es protokolliert execveAnrufe) und vielleicht ein bisschen mehr. Es gibt viele interessante Informationen, die nicht protokolliert werden, z. B. die Dateien, auf die der Prozess zugreift.

Wenn Sie alle Zugriffe auf ein Dateisystem überwachen möchten, können Sie diese über protokollierte Dateien bereitstellen . Es ist sehr leicht zu bemerken, wenn der Typ nachdenkt.

Es gibt umfassendere Protokollierungsprogramme, für die jedoch möglicherweise zusätzliche Kernelunterstützung erforderlich ist. Unter Solaris, FreeBSD, NetBSD und Mac OS X gibt es dtrace (ein Linux-Port ist in Arbeit, aber ich weiß nicht, ob es ein brauchbares Stadium erreicht hat). Sie können bestimmte Prozesse auch über eine Schnittstelle zum ptraceSystemaufruf verfolgen , z. B. straceunter Linux. Dies kann zu einer spürbaren Verlangsamung führen.

¹ Etwas, das nicht in Wikipedia ist? Nein, das ist verrücktes Gerede.

Gilles 'SO - hör auf böse zu sein'
quelle
1

Werfen Sie einen Blick auf Fail2ban und denyhosts .

iamsid
quelle
1
Fail2ban prüft die Zugriffsprotokolle auf bestimmte Aktionen (z. B. das Sperren einer IP-Adresse), generiert jedoch keine derartigen Zugriffsprotokolle. DenyHosts verlassen sich auf TCP-Wrapper, um IP-Adressen zu sperren. Dies hat nichts mit dem OP zu tun.
Barthelemy
1

Dies ist nicht genau das, wonach Sie suchen, aber einige Apps führen eine Liste der zuletzt aufgerufenen Dateien. Außerdem behält GNOME diese Liste bei, auf die über das Bedienfeld zugegriffen werden kann.

Ein weiterer Fix ist die Verwendung des GNOME-Aktivitätsjournals. Als ich das letzte Mal nachgesehen habe, wurde die CLI-Aktivität nicht aufgezeichnet und es ging nur um dateibezogene Aktivitäten (Lesen, Bearbeiten), wobei andere Aktivitäten ignoriert wurden.

Sie können auch in ein /var/logVerzeichnis schauen, in dem eine Reihe von Programmen ihre Protokolle speichern.

Tshepang
quelle
1

Unter der Annahme, dass Ihr Angreifer naiv genug ist, können Sie einfach script -qft $USER-$$ 2> $USER-$$-timedas entsprechende Anmeldeskript aufrufen, um die Terminalinteraktionen zu überwachen und mit den entsprechenden Skriptwiedergabebefehlen zu wiederholen.

Zur Überwachung Zugriff auf Dateiebene, empfehle ich Anbringen einer strace -fe openmit entsprechender Protokollierung der sshd und Filterung für Login - Sitzungen (oder vielleicht ist es besser, nur das tut aus . Achtung: Huge Ausgänge, da auf einem modernes System etwas zu tun , berührt eine Menge von Dateien Wenn Sie nur bestimmte Dateien überwachen möchten, werfen Sie einen Blick auf auditd und seine Supportinfrastruktur .

Sitzungen und Anmeldeversuche können gemäß den anderen Antworten von syslog erfasst werden.

Thomas Themel
quelle