Monitorowanie aktywności na moim komputerze.


16

Ostatnio odkryłem, że ktoś korzysta z mojego komputera bez zgody, przeglądania folderów itp.

Mogłem od razu zmienić wszystkie moje hasła, ale jestem ciekawy tego, czego szukała impreza. Chciałbym więc ustawić pułapkę (zły uśmiech).

Jakie oprogramowanie będzie monitorować dowolną aktywność na moim komputerze? Chociaż wiem, że przechwytywanie mojego ekranu będzie tutaj działać. Wolałbym użyć pliku dziennika.

Na przykład:

/var/log/activity.log

[1 sierpnia 2010 20:23] / usr / bin /
thunar access / multimedia / cctv-records / [1 sierpnia 2010 20:25] / usr / bin / mplayer access /multimedia/cctv-records/00232.avi
[3 sierpnia 2010 02:34] / usr / bin / thunderbird został uruchomiony
[3 sierpnia 2010 03:33] przychodząca sesja ssh z 12.32.132.123

Działania, które chciałbym zarejestrować to:

  • Dostęp do plików i folderów w systemie plików
  • Uruchamianie poleceń (z konsoli lub w inny sposób)
  • Sesje użytkownika (logowanie, sesje ssh i nieudane próby)

/var/log/auth.log powinien obejmować twój trzeci punkt. Inni będą mniej trywialni.
Cascabel,

@jefromi mój auth.log rejestruje tylko próby polecenia sudo i su ... brak logowania :(
Stefan

Odpowiedzi:


8

Możesz użyć mechanizmu wbudowanego w jądro inotifydo monitorowania dostępu do plików.

Najpierw powinieneś sprawdzić, czy inotifyjest włączony w jądrze:

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

Następną rzeczą do zrobienia jest instalacja inotify-tools. Instrukcje dotyczące różnych dystrybucji można znaleźć na stronie projektu - powinny znajdować się w repozytoriach wszystkich głównych dystrybucji.

Po tym inotify jest gotowy do pracy:

inotifywait /dirs/to/watch -mrq

( m= nie wychodź po jednym zdarzeniu, r= rekurencyjny, q= cichy)

Na przykład - wyjście po 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

Ważną rzeczą jest prawidłowe ustawienie katalogów do oglądania:

  • nie oglądaj /rekurencyjnie - jest dużo odczytu / zapisu do /devi/proc
  • nie oglądaj swojego katalogu domowego rekursywnie - kiedy korzystasz z aplikacji, jest dużo katalogów do odczytu i zapisu konfiguracji aplikacji oraz katalogów przeglądarek

W /proc/sys/fs/inotify/max_user_watchesistnieje opcja konfiguracji, która pokazuje ile plików można oglądać jednocześnie. Wartość domyślna (dla Gentoo) nie jest tak wysoka, więc jeśli ustawisz obserwatora, /home/możesz przekroczyć limit. Możesz zwiększyć limit, używając echo(wymagany dostęp do roota).

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

Ale wcześniej powinieneś przeczytać o konsekwencjach tej zmiany .

Opcje, które mogą być dla Ciebie interesujące:

  • -d = tryb demona
  • -o file = wyjście do pliku
  • --format = format określony przez użytkownika, więcej informacji w man inotifywait
  • -e EVENT= Co należy monitorować zdarzenia (na przykład access, modifyitp, więcej informacji w man)

Aby zachować ostatnie ustawienie między resetami systemu, możesz to zrobić w Debianie echo 524288 >> /etc/sysctl.conf && service procps restart. Jaki jest odpowiednik Gentoo?
tshepang

Mam na myśli to, co masz na myśli echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.conf. W Gentoo możesz użyć tej samej metody, ale sysctl.confjest ona pozyskiwana ze /etc/init.d/bootmiscskryptu inicjującego.
pbm

1
w rzeczywistości jest to /etc/init.d/sysctl.
OneOfOne

7

Czy ten drugi facet do ciebie pasuje? Jeśli ma dostęp fizyczny lub root, może usunąć wszystkie swoje ślady, a nawet zasadzić na tobie błąd . Z drugiej strony, niektóre ślady są uciążliwe do usunięcia i trudno o wszystkim myśleć.

Różne rzeczy są już zapisane w logach systemowych, zwykle w /var/log(niektóre systemy używają innej lokalizacji, takiej jak /var/logslub /var/adm). W normalnej konfiguracji wszystkie logowania i podłączenia są rejestrowane, między innymi. Jeśli obawiasz się, że dzienniki zostaną skasowane, możesz skonfigurować rejestrowanie zdalne (sposób wykonania tego zależy od implementacji syslog, ale zazwyczaj zmiana jednego lub dwóch wierszy w pliku konfiguracyjnym na nadawcy i odbiorcy).

Jeśli Ty lub Twoja dystrybucja nie wyłączyłeś tej funkcji, każdy plik ma czas dostępu („atime”), który jest aktualizowany za każdym razem, gdy plik jest czytany. (Jeśli system plików jest zamontowany z opcją noatimelub relatime, atime nie jest aktualizowany.) Atime można sfałszować touch -a, ale to aktualizuje ctime, więc pozostawia ślad. (Nawet root nie może bezpośrednio usunąć tego śladu, musisz ominąć kod systemu plików.)

Różne programy mają historię sesji . Łatwo go usunąć lub sfałszować, jeśli intruz o tym pamiętał. Bash utrzymuje ~/.bash_history, przeglądarki mają tendencję do pisania wielu rzeczy w swoim katalogu profili i tak dalej. Możesz również znaleźć informacje o błędach lub ostrzeżeniach w ~/.xsession-errorslub w /var/log/Xorg.0.loginnej lokalizacji zależnej od systemu.

Wiele jednorożców ma funkcję rozliczania procesów ¹. Zobacz na przykład podręcznik narzędzi księgowych GNU , pozycję w podręczniku FreeBSD lub instrukcje dla systemu Linux lub przewodnik Solaris . Po włączeniu rejestruje, który użytkownik uruchomił jaki proces, kiedy (loguje sięexecve połączenia) i być może nieco więcej. Jest wiele interesujących informacji, których nie rejestruje, takich jak pliki uzyskiwane przez proces.

Jeśli chcesz monitorować wszystkie dostępy do systemu plików, możesz zapewnić je poprzez loggedfs . Bardzo łatwo zauważyć, że facet myśli.

Istnieją bardziej wszechstronne programy rejestrujące, ale mogą wymagać dodatkowej obsługi jądra. W systemach Solaris, FreeBSD, NetBSD i Mac OS X istnieje dtrace (trwa port Linux, ale nie wiem, czy osiągnął on użyteczną fazę). Można również śledzić określone procesy za pośrednictwem interfejsu ptracewywołania systemowego, na przykład stracew systemie Linux; może powodować zauważalne spowolnienie.

¹ Coś, czego nie ma w Wikipedii? Nie, to szalona rozmowa.


1

Spójrz na Fail2ban i DenyHØsts .


1
Fail2ban sprawdza dzienniki dostępu, aby podjąć określone działania (np. Zablokowanie adresu IP), ale nie generuje tego rodzaju dzienników dostępu. DenyHosts polegają na owijarkach TCP, aby zablokować ip, znowu nie jest to związane z OP.
Barthelemy,

1

Nie jest to dokładnie to, czego szukasz, ale niektóre aplikacje przechowują listę ostatnio otwieranych plików. Ponadto GNOME przechowuje tę listę, do której można uzyskać dostęp z poziomu panelu.

Inną poprawką jest użycie GNOME Activity Journal , chociaż ostatni raz sprawdzałem, nie rejestrował aktywności CLI i był zainteresowany jedynie działaniami związanymi z plikami (czytanie, edycja), ignorując inne działania.

Możesz także zajrzeć do /var/logkatalogu, w którym kilka programów przechowuje swoje dzienniki.


1

Zakładając wystarczającą naiwność po stronie atakującego, możesz po prostu wrzucić go script -qft $USER-$$ 2> $USER-$$-timedo odpowiedniego skryptu logowania, aby monitorować jego interakcje na terminalu i odtworzyć go za pomocą odpowiednich poleceń scriptreplay.

Aby monitorować dostęp na poziomie plików, zalecam dołączenie strace -fe openodpowiedniego sshd i filtrowanie sesji logowania (a może lepiej po prostu to zrobić. Ostrzeżenie: Ogromne wyniki, ponieważ robienie czegokolwiek w nowoczesnym systemie dotyka wielu plików Jeśli chcesz tylko monitorować określone pliki, zapoznaj się z audytem i jego infrastrukturą wsparcia.

Sesje i próby logowania można zebrać z syslog zgodnie z innymi odpowiedziami.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.