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)
quelle
Antworten:
Sie können den kerninternen Mechanismus
inotify
zum Überwachen der Dateien verwenden, auf die zugegriffen wird.Zuerst sollten Sie überprüfen, ob
inotify
im Kernel aktiviert ist: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:
(
m
= nicht nach einem Ereignisr
beenden,q
= rekursiv, = leise)Zum Beispiel - Ausgabe nach
ls /home/pbm
Wichtig ist, die Verzeichnisse für die Überwachung richtig einzustellen:
/
rekursiv - es gibt viel Lesen / Schreiben auf/dev
und/proc
In
/proc/sys/fs/inotify/max_user_watches
gibt 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 Sieecho
(Root-Zugriff erforderlich) verwenden.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 inman inotifywait
-e EVENT
= Welches Ereignis sollte überwacht werden (zum Beispielaccess
,modify
usw., weitere Informationen inman
)quelle
echo 524288 >> /etc/sysctl.conf && service procps restart
. Was ist das Äquivalent in Gentoo?echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.conf
. In Gentoo können Sie dieselbe Methode verwenden, sie wird jedochsysctl.conf
vom/etc/init.d/bootmisc
Init-Skript bezogen.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/logs
oder/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
noatime
oderrelatime
gemountet ist, wird der atime nicht aktualisiert.) Der atime kann mit gefälscht werdentouch -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-errors
oder/var/log/Xorg.0.log
oder 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
execve
Anrufe) 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
ptrace
Systemaufruf verfolgen , z. B.strace
unter Linux. Dies kann zu einer spürbaren Verlangsamung führen.¹ Etwas, das nicht in Wikipedia ist? Nein, das ist verrücktes Gerede.
quelle
Werfen Sie einen Blick auf Fail2ban und denyhosts .
quelle
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/log
Verzeichnis schauen, in dem eine Reihe von Programmen ihre Protokolle speichern.quelle
Unter der Annahme, dass Ihr Angreifer naiv genug ist, können Sie einfach
script -qft $USER-$$ 2> $USER-$$-time
das 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 open
mit 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.
quelle