Jak wykryć i usunąć trojana Linux?


16

Niedawno (ponownie) natknąłem się na to:

Tak, wiem, że dodanie losowego PPA / oprogramowania z niezaufanego źródła wymaga problemów (lub gorzej). Nigdy tego nie robię, ale wielu tak robi (wiele blogów i tabloidów na Linuksie promuje dodawanie PPA do fantazyjnych aplikacji, bez ostrzeżenia, że ​​może to uszkodzić system lub gorzej, narazić twoje bezpieczeństwo).

Jak można wykryć i usunąć konia trojańskiego lub nieuczciwą aplikację / skrypt?


Zadałem to samo pytanie (3 minuty po tym, jak tutaj zadałem ) pod adresem: askubuntu.com/questions/13265/... Daj mi znać, jeśli jest to naruszenie, usunę jedno z nich.
iamsid

Odpowiedzi:


20

Nie ma ogólnego przepisu. Jeśli twój system został zainfekowany przez nieznanego trojana, wszystko, co możesz zrobić, to zainstalować ponownie.

Jeśli wiesz, że trojan działa w określony sposób - na przykład wiesz, że trojan nie infekuje jądra - może być mniej trudny sposób na odzyskanie. Jest to jednak całkowicie zależne od znajomości zachowania trojana. Jeśli masz tylko objawy (takie jak komputer wysyłający spam bez Twojej zgody), nie ma ogólnej techniki: wykrywacz trojanów musi być mądrzejszy niż projektant trojanów (i mieć szczęście). Jeśli chodzi o trojany, wykrywanie i ukrywanie się jest jak broń i zbroja: istnieje eskalacja technologiczna i żadna ze stron nie ma wewnętrznej przewagi (chociaż hidery mają przewagę).

Wiele systemów ma bezpieczny kanał dystrybucji. Na przykład, gdy instalujesz pakiet z repozytoriów Ubuntu za pomocą narzędzi opartych na apt (apt-get, aptitude, synaptic, centrum oprogramowania,…), narzędzie sprawdza, czy pakiet jest podpisany (sprawdzony) przez kogoś, komu Ubuntu ufa. (Większość dystrybucji ma podobny mechanizm.) Gdy instalujesz pakiet z PPA, wszystko, co możesz wiedzieć, to to, że właściciel PPA sprawdził pakiet, co nie jest pomocne, jeśli nie masz powodu, by ufać właścicielowi PPA.

Jeśli chodzi o trojany i backdoory, zdecydowanie polecam przeczytanie wykładu Turinga Kena Thompsona Reflections on Trusting Trust . Podsumowując, zmienił kompilator, aby podczas kompilacji programu do logowania dodawał kod, który pozwalał mu zalogować się przy użyciu tajnego hasła; potem zmienił kompilator, aby po skompilowaniu wstawił kod dodający backdoora; następnie ponownie skompilował cały system (w szczególności program logowania i kompilator); w końcu przywrócił źródło kompilatora do oryginalnego, niekwestionowanego źródła. Ponownie przeczytaj artykuł Kena Thompsona ; możesz także przeczytać kontrapunkt Davida Wheelera , być może najlepiej zrozumiany w artykule na blogu Bruce'a Schneiera .


+1 za opisową odpowiedź i za polecanie tych artykułów: poszerzyły moją wiedzę. Dziękuję Ci.
iamsid

7

Jeśli dobrze rozumiem, „trojana” opisanego w tym artykule nie można wykryć w „normalny” sposób jako „normalne” złośliwe oprogramowanie. IRCd zachowywał się normalnie, dopóki nie został użyty, więc administrator mógł znaleźć tę dziurę w zabezpieczeniach tylko wtedy, gdy: 1) został użyty, a działanie wykonane przez tę dziurę spowodowało wejście do dzienników lub było widoczne w inny sposób, 2) odczyt kodu źródłowego.

„Rzeczywiste” złośliwe oprogramowanie dla systemu Linux powinno być również wykrywane przez oprogramowanie AV dla dysków ratunkowych Linux lub AV LiveCD, aby można było skanować komputer za pomocą tego oprogramowania. Jak widać na liście SecureList na liście, istnieje 1941 pozycji z nazwą Linux i oprogramowanie to powinno zostać wykryte przez oprogramowanie Kaspersky. Szybkie spojrzenie na tę listę pokazuje, że wiele wpisów dotyczy niektórych narzędzi DDoS i exploitów lub narzędzi, które nie mogą rozprzestrzeniać się automatycznie i mogą być użyte jedynie jako narzędzia do ataku (więc nie są szkodliwe).

Do sprawdzania backdoorów / rootkitów zainstalowanych przez crackera możesz użyć narzędzia, które sprawdza sumy kontrolne plików (powinieneś wygenerować listę plików i sum kontrolnych w czystym systemie i zaktualizować ją po aktualizacji oprogramowania serwera). Każdy nowy plik lub plik z niewłaściwą sumą kontrolną jest podejrzany. Lista sum kontrolnych i narzędzia, które ją generują, powinny znajdować się na nośniku tylko do odczytu (cracker może również zmienić na przykład md5sum na swoją własną wersję, która pokazuje nieprawidłowe sumy kontrolne). Ten sposób wyszukiwania złośliwego oprogramowania może być wykorzystywany w „stabilnych” systemach, w których oprogramowanie nie jest aktualizowane codziennie.

Niektóre złośliwe oprogramowanie można wykryć, uruchamiając się netstatlokalnie w celu sprawdzenia ruchu sieciowego, ale jeśli system jest zainfekowany, dane pokazane przez netstatmogą również zostać zmienione. W takim przypadku pewnym rozwiązaniem jest monitorowanie ruchu sieciowego z innego komputera (na przykład z routera, aby sprawdzić, jaki ruch jest wysyłany do Internetu).


4

SELinux i AppArmor istnieją w celu zapobiegania trojanom / rootkitom i innym infekcjom. Opowiadam sprawę dla SELinuksa, który znam lepiej. Po włączeniu SELinux dajesz kontekst całemu procesowi (łącznie z demonem) instalowanym na komputerze. Określasz także system plików, aby działał z kontekstem, dopasowując je. Gdy proces próbuje zrobić coś poza swoim kontekstem, pojawia się komunikat, a jeśli SELinux jest w trybie wymuszania, akcja nie może zostać zakończona.
W ten sposób, jeśli twój trojan ircd był gotów zastąpić polecenie ps lub coś innego (wspólna strategia dla trojanów / rootkitów / robaków, aby uniknąć wykrycia), nie pozwoliłbym na to. I zostaniesz poinformowany.
Wiem, że konfiguracja jest trudna, ale moje komputery działają teraz z wymuszonym SELinuksem, a moje (dwa) laptopy Fedory mogą robić wszystko, czego potrzebuje komputer bez większych problemów.
Nawet mój serwer domowy jest teraz w trybie wymuszania.
Inną strategią jest regularne uruchamianie wykrywaczy rootkitów, które obliczają sumę kontrolną dla poleceń cirtical i informują o zmianach w podstawowych poleceniach.
Pracuję z włączonym SELinux i rkhunter (plus program antywirusowy clamav).

pozdrowienia


2

Inna odpowiedź potwierdziła, że ​​„hiders” (złośliwe oprogramowanie ukryte) mają istotną przewagę nad „detektorami”. Nie zgadzam się. Dzieje się tak, jeśli ograniczysz się do metod wykrywania opartych na sygnaturach lub heurystyce w celu wykrycia złośliwego oprogramowania. Istnieje jednak inny sposób wykrywania złośliwego oprogramowania: weryfikacja znanych towarów. Tripwire, AIDE itp. Mogą weryfikować pliki na dysku. Second Look może zweryfikować działające jądro i procesy. Second Look wykorzystuje forensics pamięci do bezpośredniej kontroli systemu operacyjnego, aktywnych usług i aplikacji. Porównuje kod pamięci z wydanym przez dostawcę dystrybucji Linuksa. W ten sposób może natychmiast zidentyfikować złośliwe modyfikacje wprowadzone przez rootkity i backdoory oraz uruchamiane nieautoryzowane programy (trojany itp.).

(Ujawnienie: Jestem głównym programistą Second Look.)

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.