Jakie są znamienne oznaki włamania na serwer Linux? Czy są jakieś narzędzia, które mogą generować raport z audytu i przesyłać go e-mailem zgodnie z harmonogramem?
Jakie są znamienne oznaki włamania na serwer Linux? Czy są jakieś narzędzia, które mogą generować raport z audytu i przesyłać go e-mailem zgodnie z harmonogramem?
Odpowiedzi:
Ty nie.
Wiem, wiem - ale to naprawdę paranoiczna, smutna prawda;) Oczywiście istnieje wiele wskazówek, ale jeśli system byłby specjalnie ukierunkowany - może nie być w stanie powiedzieć. Dobrze jest zrozumieć, że nic nigdy nie jest całkowicie bezpieczne. Ale musimy pracować dla bardziej bezpiecznego, więc wskażę na wszystkie pozostałe odpowiedzi;)
Jeśli system został naruszony, nie można ufać żadnemu z narzędzi systemowych w celu ujawnienia prawdy.
Tripwire jest często używanym narzędziem - powiadamia cię o zmianie plików systemowych, choć oczywiście musisz ją wcześniej zainstalować. W przeciwnym razie elementy, takie jak nowe konta użytkowników, o których nie wiesz, dziwne procesy i pliki, których nie rozpoznajesz, lub zwiększone wykorzystanie przepustowości bez wyraźnego powodu, są zwykle znakami.
Inne systemy monitorowania, takie jak Zabbix, można skonfigurować tak, aby ostrzegały o zmianie plików, takich jak / etc / passwd.
Kilka rzeczy, które dawały mi do myślenia:
ls
(może się to zdarzyć przy uszkodzonych zestawach root)/
lub /var/
(większość dzieciaków ze scenariuszy jest zbyt głupia lub leniwa, by zakrywać swoje utwory)netstat
pokazuje otwarte porty, których nie powinno tam byćbind
, Ale zawsze używasz djbdns
)Dodatkowo odkryłem, że istnieje jeden niezawodny znak, że skrzynka została naruszona: jeśli masz złe przeczucia co do staranności (z aktualizacjami itp.) Administratora, od którego odziedziczyłeś system, uważnie go obserwuj!
Istnieje metoda sprawdzania zhakowanych serwerów za pomocą kill
-
Zasadniczo po uruchomieniu polecenia „kill -0 $ PID” wysyłasz sygnał nop do przetworzenia identyfikatora $ PID. Jeśli proces jest uruchomiony, polecenie zabicia zakończy się normalnie. (FWIW, ponieważ przekazujesz sygnał zabicia nop, nic się nie stanie z procesem). Jeśli proces nie jest uruchomiony, polecenie zabicia zakończy się niepowodzeniem (status wyjścia mniejszy niż zero).
Gdy włamujesz się do serwera / instalowany jest rootkit, jedną z pierwszych rzeczy, które robi, jest to, aby jądro ukryło wpływ procesów na tabele procesów itp. Może jednak robić różne fajne rzeczy w przestrzeni jądra, aby ominąć procesy Oznacza to, że
a) Ta kontrola nie jest rozległą kontrolą, ponieważ dobrze zakodowane / inteligentne rootkity zapewnią, że jądro odpowie odpowiedzią „proces nie istnieje”, dzięki czemu ta kontrola będzie zbędna. b) Tak czy inaczej, gdy zaatakowany serwer ma działający „zły” proces, jego PID zwykle nie wyświetla się w / proc.
Tak więc , jeśli jesteś tu do tej pory, metodą jest zabicie -0 każdego dostępnego procesu w systemie (od 1 -> / proc / sys / kernel / pid_max) i sprawdzenie, czy istnieją procesy, które są uruchomione, ale nie są zgłaszane w / proc.
Jeśli niektóre procesy są uruchamiane, ale nie są zgłaszane w / proc, prawdopodobnie masz problem z dowolnego powodu.
Oto skrypt bash, który implementuje to wszystko - https://gist.github.com/1032229 . Zapisz to w jakimś pliku i uruchom, jeśli znajdziesz proces, który pojawia się niezgłoszony w proc, powinieneś mieć trochę tropu, aby rozpocząć kopanie.
HTH.
Popieram podane tu odpowiedzi i dodam jedną z moich.
find /etc /var -mtime -2
To da ci szybkie wskazanie, czy któryś z twoich głównych plików serwera zmienił się w ciągu ostatnich 2 dni.
To jest z artykułu na temat wykrywania włamań Jak wykryć, czy Twój serwer został zhakowany.
Od Jak mogę wykryć niechciane wtargnięcia na moje serwery?
Użyj IDS
SNORT® to system zapobiegania włamaniom i wykrywania włamań do sieci typu open source wykorzystujący język oparty na regułach, który łączy zalety metod kontroli opartych na sygnaturach, protokołach i anomaliach. Dzięki milionom pobrań do tej pory Snort jest najczęściej stosowaną technologią wykrywania i zapobiegania włamaniom na całym świecie i stał się de facto standardem w branży.
Snort odczytuje ruch sieciowy i może szukać takich rzeczy jak „testuj za pomocą pióra”, w których ktoś po prostu wykonuje cały skan metasploitów na twoich serwerach. Moim zdaniem dobrze wiedzieć tego typu rzeczy.
Użyj dzienników ...
W zależności od sposobu użycia możesz to skonfigurować, abyś wiedział, kiedy użytkownik loguje się lub loguje z nieparzystego adresu IP lub za każdym razem, gdy loguje się root lub gdy ktoś próbuje się zalogować. Właściwie mam serwer e-mail do mnie każdy komunikat dziennika wyższy niż debugowanie. Tak, nawet Zawiadomienie. Oczywiście niektóre z nich filtruję, ale każdego ranka, kiedy otrzymuję 10 e-maili na ten temat, chcę to naprawić, aby przestało się dziać.
Monitoruj swoją konfigurację - faktycznie utrzymuję cały plik / etc w subversion, aby móc śledzić poprawki.
Uruchom skanowanie. Narzędzia takie jak Lynis i Rootkit Hunter mogą ostrzegać o możliwych lukach bezpieczeństwa w aplikacjach. Istnieją programy, które utrzymują hash lub drzewo hash wszystkich twoich pojemników i mogą ostrzegać cię o zmianach.
Monitoruj serwer - tak jak wspomniałeś o przestrzeni dyskowej - wykresy mogą dać ci wskazówkę, jeśli coś jest nietypowe. Używam kaktusów, aby kontrolować procesor, ruch w sieci, miejsce na dysku, temperaturę itp. Jeśli coś wygląda dziwnie, jest dziwne i powinieneś dowiedzieć się, dlaczego jest dziwne.
Chciałbym tylko dodać do tego:
Sprawdź swoją historię bashów, jeśli jest pusta, a jej nie rozbroiłeś lub opróżniłeś, istnieje duże prawdopodobieństwo, że ktoś naraził twój serwer.
Sprawdź ostatni. Albo zobaczysz nieznane adresy IP, albo będzie wyglądał na bardzo pusty.
Następnie, jak stwierdzono zaakceptowana odpowiedź, pliki systemowe są często zmieniane, sprawdź datę modyfikacji. Często jednak modyfikują datę.
Często instalują inną wersję ssh działającą na losowym porcie. Jest to często ukryte w niektórych naprawdę dziwnych miejscach. Zauważ, że zwykle zostanie przemianowana na coś innego niż ssh. Więc sprawdź netstat (może nie działać, ponieważ często go zastępuje) i użyj iptables, aby zablokować nieznane porty.
W każdym razie jest to sytuacja, w której lepiej jest zapobiegać niż leczyć. W przypadku naruszenia bezpieczeństwa najlepiej po prostu sformatować i rozpocząć od nowa. Prawie niemożliwe jest potwierdzenie, że udało Ci się wyczyścić hack.
Zapoznaj się z poniższymi informacjami, aby uniknąć naruszenia bezpieczeństwa serwera.
Warto pamiętać, że gdy znajdą się na jednym serwerze, sprawdzą twoją historię bash i szukają innych serwerów, z którymi łączyłeś się przez ssh z tego serwera. Następnie spróbują połączyć się z tymi serwerami. Więc jeśli zostaniesz brutalnie zmuszony z powodu złego hasła, jest bardzo możliwe, że będą mogli połączyć się z innym serwerem i również je złamać.
Tam jest brzydki świat, powtarzam, że lepiej zapobiegać niż leczyć.
Po dokładnym przeszukaniu jest też to, co robi wyżej wymienione, między innymi: http://www.chkrootkit.org/ i http://www.rootkit.nl/projects/rootkit_hunter.html
Powinieneś sprawdzić GuardRail. Może skanować serwer codziennie i powiedzieć ci, co się zmieniło w przyjemny wizualnie sposób. Nie wymaga agenta i może łączyć się przez SSH, dzięki czemu nie trzeba blokować komputera i zasobów za pomocą agenta.
Co najlepsze, jest bezpłatny dla maksymalnie 5 serwerów.
Sprawdź tutaj: