Co to są rootkits i jak je wykryć

Co to są rootkits i jak je wykryć
Rootkits to jedna z najgorszych rzeczy, które mogą się zdarzyć w systemie i są jednym z najniebezpieczniejszych ataków, bardziej niebezpieczne niż zwykle złośliwe oprogramowanie i wirusy, zarówno pod względem uszkodzeń systemu, jak i trudności w ich znalezieniu i wykryciu. Rootkits może pozostać w twoim systemie przez długi czas bez zauważania użytkownika i może to spowodować poważne uszkodzenie systemu.

Słowo „rootkit” pierwotnie pochodzi ze świata systemów „Unix”, w którym root jest użytkownikiem z największymi uprawnieniami dostępu do systemu ”. Podczas gdy zestaw słów określa zestaw zawierający zestaw złośliwych narzędzi, takich jak Keyloggers, bankierska kradzieży poświadczeń, kradzieży haseł, niepełnosprawne przeciwwirusowe lub boty do ataku DDOS itp. Łącząc je razem, dostajesz rootkit.

Są one zaprojektowane w taki sposób, że pozostają ukryte i robią złośliwe rzeczy, takie jak przechwycenie ruchu internetowego, kradzież kart kredytowych i informacje o bankowości internetowej. RootKits daje cyberprzestępcy możliwość kontrolowania systemu komputerowego z pełnym dostępem administracyjnym, pomaga również atakującemu monitorować swoje kluczowe drewno i wyłączyć oprogramowanie antywirusowe, co ułatwia kradzież tajnych informacji.

Jak rootkity dostają się do systemu?

Rootkits, zgodnie z ich typem, nie mogą się rozprzestrzeniać. Dlatego są one rozpowszechniane przez atakującego przez takie taktyki, że użytkownik nie jest w stanie zauważyć, że coś jest nie tak z systemem. Zwykle ukrywając je w przebiegłym oprogramowaniu, które wygląda uzasadnione i może być funkcjonalne. Tak czy inaczej, kiedy przyznajesz zgodę na oprogramowanie do wprowadzenia w ramach, rootkit dyskretnie zakrada. Rootkits są bardzo trudne do zidentyfikowania, ponieważ mogą ukrywać się przed użytkownikami, administratorami i większością produktów antywirusowych. Zasadniczo, w przypadku kompromisu systemu przez rootkit, zakres ruchu złośliwego jest bardzo wysoki.

Inżynieria społeczna:

Haker próbuje uzyskać dostęp do korzenia/administratora, wykorzystując znane luki lub za pomocą inżynierii społecznej. Cyberprzestępcy zatrudniają inżynierię społeczną, aby wykonać zadanie. Próbują zainstalować rootkits w systemie użytkownika, wysyłając je w linku phishingowym, wysyłając e -maile, przekieruj cię na złośliwe strony, załatuj rootkits w legalnym oprogramowaniu, które wygląda normalnie dla nagiego oka. Ważne jest, aby wiedzieć, że Rootkits nie zawsze chcą, aby użytkownik uruchomił złośliwą liczbę wykonywalnych. Czasami wszystko, czego chcą, to użytkownik, aby otworzył dokument PDF lub dokument słów.

Rodzaje rootkitów:

Aby właściwie zrozumieć typy korzeniowych, po pierwsze, musimy wyobrazić sobie system jako okrąg koncentrycznych pierścieni.

  • W centrum znajduje się jądro znane jako pierścień zero. Jądro ma najwyższy poziom uprawnień do systemu komputerowego. Ma dostęp do wszystkich informacji i może działać w systemie, jak chce.
  • Pierścień 1 i pierścień 2 są zarezerwowane dla mniej uprzywilejowanych procesów. Jeśli ten pierścień się nie powiedzie, jedynymi procesami, na które zostaną dotknięte.
  • Pierścień 3 to miejsce, w którym przebywa użytkownik. To tryb użytkownika posiadający hierarchię ścisłego dostępu do uprawnień.

Krytycznie, procedura prowadzona w wyższym uprzywilejowanym pierścieniu może obniżyć jego korzyści i działać w pierścieniu zewnętrznym, ale nie może to odwrotnie działać bez jednoznacznej zgody na instrumenty bezpieczeństwa ramy roboczej. W sytuacjach, w których takie komponenty bezpieczeństwa mogą trzymać się z daleka, mówi się, że istnieje przywilej eskalacji. Teraz istnieją 2 najważniejsze rodzaje korzeni:

Tryb użytkownika rootkits:

Rootkits tej kategorii działają na poziomie niskim uprzywilejowanym lub użytkownikiem w systemie operacyjnym. Jak wyrażono przed rootkits, powodując, że hakerzy utrzymują swój autorytet nad systemem, podając wtórny kanał fragmentu, rootkit trybu użytkownika zmieni znaczące aplikacje na poziomie użytkownika w ten sposób, gdyby daje dostęp do Backdoor dostęp. Istnieją różne korzenia tego typu zarówno dla Windows, jak i Linux.

Rootkits w trybie użytkownika Linux:

Wiele rootkitów w trybie użytkownika Linux jest obecnie dostępnych na przykład:

  • Aby uzyskać zdalny dostęp do komputera celu, usługi logowania, takie jak „login”, „sshd” są modyfikowane przez rootkit, aby zawierać backdoor. Atakerzy mogą mieć dostęp do maszyny cel. Pamiętaj, że haker już wykorzystał maszynę, po prostu dodał backdoor, aby wrócić innym razem.
  • Wykonać atak eskalacji przywilejów. Atakujący modyfikuje polecenia takie jak „su”, sudo, że kiedy używa tych poleceń przez tylne.
  • Ukryć swoją obecność podczas ataku
  • Ukrywanie procesu: różne polecenia, które pokazują dane o procedurach działających na maszynie „PS”, „Pidof”, „TOP” są modyfikowane z celem, że procedura napastnika nie jest rejestrowana wśród innych procedur uruchomionych. Dodatkowo, polecenie „Kill All” jest zwykle zmieniane w celu, że proces hakera nie może zostać zabity, a zamówienie „crontab” zostało zmienione, aby złośliwe procesy działały w określonym czasie bez zmiany konfiguracji Crontab.
  • Ukrywanie plików: ukrywanie ich obecności przed poleceniami takimi jak „LS”, „Znajdź”. Ukrywanie się przed poleceniem „du”, które pokazuje użycie dysku w procesie prowadzonym przez atakującego.
  • Ukrywanie zdarzeń: ukrywanie się przed dziennikami systemowymi poprzez modyfikację „Syslog.plik d ', aby nie mogły zalogować się w tych plikach.
  • Ukrywanie sieci: ukrywanie się przed poleceniami takimi jak „netstat”, „iftop”, który pokazuje aktywne połączenia. Polecenia takie jak „ifconfig” są również modyfikowane w celu wyeliminowania ich obecności.

Rootkits w trybie jądra:

Przed przejściem do rootkitów w trybie jądra najpierw zobaczymy, jak działa jądro. Jądro pozwala aplikacjom działać za pomocą zasobów sprzętowych. Jak omówiliśmy koncepcję pierścieni, aplikacje Ring 3 nie mogą uzyskać dostępu do bezpieczniejszego lub wysokiego uprzywilejowanego pierścienia I.E pierścień 0, zależą od wywołań systemowych, które przetwarzają za pomocą bibliotek podsystemowych. Tak więc przepływ jest taki jak ten:

Tryb użytkownika >> Biblioteki systemowe >> Tabela połączeń systemowych >> jądro

Teraz napastnik zrobi to, że zmieni tabelę połączeń systemowych za pomocą INSMOD, a następnie mapuje złośliwe instrukcje. Następnie wstawi złośliwy kod jądra i przepływ będzie taki:

Tryb użytkownika >> Biblioteki systemowe >> Zmieniona tabela wywołania systemu >>
Złośliwy kod jądra

Teraz zobaczymy, w jaki sposób ta tabela wywołania systemu jest zmieniana i jak można wstawić złośliwego kodu.

  • Moduły jądra: jądro Linux jest zaprojektowane w taki sposób do załadowania zewnętrznego modułu jądra do obsługi jego funkcjonalności i wstawiania kodu na poziomie jądra. Ta opcja daje atakującym świetny luksus, aby bezpośrednio wstrzykiwać złośliwy kod w jądrze.
  • Zmiana pliku jądra: Gdy jądro Linux nie jest skonfigurowane do ładowania modułów zewnętrznych, zmiana pliku jądra można wykonać w pamięci lub dysku twardym.
  • Plik jądra trzymający obraz pamięci na dysku twardym jest /dev /kmem. Kod działający na żywo w jądrze istnieje również w tym pliku. Nie wymaga nawet ponownego uruchomienia systemu.
  • Jeśli pamięci nie można zmienić, plik jądra na dysku twardym może być. Plik, który trzyma jądro na dysku twardym, to vmlinuz. Ten plik może być odczytany i zmieniany przez root. Pamiętaj, że aby nowy kod do wykonania, w tym przypadku wymagany jest ponowne uruchomienie systemu. Zmiana pliku jądra nie musi przejść od pierścienia 3 na pierścień 0. Wymaga tylko uprawnień korzeniowych.

Doskonałym przykładem rootkitów jądra jest SmartService Rootkit. Uniemożliwia użytkownikom uruchomienie każdego oprogramowania antywirusowego, a zatem służy jako ochroniarz dla wszystkich innych złośliwego oprogramowania i wirusów. To był słynny niszczycielski rootkit do połowy 2017 roku.

Chkrootkit:

Tego rodzaju złośliwe oprogramowanie mogą pozostać w twoim systemie przez długi czas bez zauważania użytkownika i może to spowodować poważne szkody, ponieważ po wykryciu rootkit nie ma innej drogi, jak tylko ponownie zainstalować cały system, a czasem może nawet powodować awarię sprzętu.

Na szczęście istnieją pewne narzędzia, które pomagają wykryć różne znane rootkity w systemach Linux, takich jak Lynis, Clam AV, LMD (Linux Malware Detect). Możesz sprawdzić swój system dla znanych rootkits, używając poniższych poleceń:

Przede wszystkim musimy zainstalować ChkrootKit za pomocą polecenia:

Ubuntu@ubuntu: ~ $ sudo apt instal instaluj chkrootkit

To zainstaluje narzędzie Chkrootkit i możesz go użyć do sprawdzenia korzeniowych za pomocą:

Ubuntu@ubuntu: ~ $ sudo chkrootkit
Rootdir to „/”
Sprawdzanie „amd”… nie znaleziono
Sprawdzanie „chsh”… nie zainfekowane
Sprawdzanie „cron”… nie zainfekowane
Sprawdzanie „crontab”… nie zainfekowane
Sprawdzanie „daty”… nie zarażone
Sprawdzanie „du”… nie zainfekowane
Sprawdzanie „dirname”… nie zainfekowane
Sprawdzanie „su”… nie zainfekowane
Sprawdzanie „ifconfig”… nie zainfekowane
Sprawdzanie „inetd”… nie zainfekowane
Sprawdzanie „inetdconf”… nie znaleziono
Sprawdzanie „identyfikatora”… nie znaleziono
Sprawdzanie „init”… nie zarażone
Sprawdzanie „Killall”… nie zainfekowane
Sprawdzanie „logowania”… nie zainfekowane
Sprawdzanie „ls”… nie zainfekowane
Sprawdzanie „lsof”… nie zainfekowane
Sprawdzanie „passwd”… nie zainfekowane
Sprawdzanie „pidof”… nie zainfekowane
Sprawdzanie „PS”… nie zainfekowane
Sprawdzanie „pstree”… nie zainfekowane
Sprawdzanie „rpcinfo”… nie znaleziono
Sprawdzanie „rlogind”… nie znaleziono
Sprawdzanie „rshd”… nie znaleziono
Sprawdzanie „slogin”… nie zainfekowane
Sprawdzanie „sendmaila”… nie znaleziono
Sprawdzanie „sshd”… nie znaleziono
Sprawdzanie „syslogd”… nie testowane
Sprawdzanie „kosmitów”… bez podejrzanych plików
Szukając dzienników Sniffera, może to potrwać trochę… nic nie znaleziono
Wyszukiwanie domyślnych plików Rootkit Hidrootkit… nic nie znaleziono
Wyszukiwanie domyślnych plików Rootkit T0RN… nic nie znaleziono
Wyszukiwanie wartości domyślnych V8 T0RN… nic nie znaleziono
Wyszukiwanie domyślnych plików lwa rootkit… nic nie znaleziono
Wyszukiwanie domyślnych plików Rootkit RSHA… nic nie znaleziono
Wyszukiwanie domyślnych plików Rootkit Rh-Sharpe… nic nie znaleziono
Wyszukiwanie domyślnych plików i relia
Wyszukiwanie podejrzanych plików i reż. Może to potrwać…
Znaleziono następujące podejrzane pliki i katalogi:
/usr/lib/debug/.Build-Id/Lib/modules/5.3.0-45-generalny/vdso/.kompilacja-ID/lib/moduły/
5.3.0-46-generalny/vdso/.kompilacja
/usr/lib/debug/.Build-Id/Lib/modules/5.3.0-45-generalny/vdso/.kompilacja-ID/lib/moduły/
5.3.0-46-generalny/vdso/.kompilacja
Wyszukiwanie plików robaków LPD i Dirs… nic nie znaleziono
Wyszukiwanie plików robaków ramen i relia… nic nie znaleziono
Wyszukiwanie plików maniaku i religi… nic nie znaleziono
Wyszukiwanie plików i Dirs RK17… nic nie znaleziono
CHKPROC: OSTRZEŻENIE: MOŻLIWY TROJAN LKM
Chkdirs: Nic nie wykryło
Sprawdzanie „rexedcs”… nie znaleziono
Sprawdzanie „sniffer”… lo: nie promocki i nie ma gniazd snifferowych
VMNET1: Nie promieni
VMNET2: Nie promieni
VMNET8: Nie promieni
BNEP0: Sniffer pakietu (/sbin/dhclient [432])
Sprawdzanie „W55808”… nie zainfekowane
Sprawdzanie „Wted”… CHK WTMP: Nic nie usunięte
Sprawdzanie „skalper”… nie zainfekowane
Sprawdzanie „slapera”… nie zainfekowane
Sprawdzanie „Z2”… CHK LastLog: Nic nie usunięte
Sprawdzanie „chkutmp”… nie znaleziono tcy następującego procesu użytkownika (es)
in/var/run/utmp !
! Ruid pid tty cmd
! 101 0 es = v8_context_snapshot_data: 100, v8101-MSTEAMS-Process-Type = powiadomienia MANAGERAGER
! ESS-Type = Pluginhost 0 Ta: 100, v8_natives_data: 101
! root 3936 PTS/0/bin/sh/usr/sbin/chkrootkit
! root 4668 PTS/0 ./Chkutmp
! root 4670 pkt/0 ps axk tty, ruser, args -o tty, pid, użytkownik, args
! root 4669 pts/0 sh -c ps axk "tty, ruser, args" -o "tty, pid, użytkownik, args"
! root 3934 pkt/0 sudo chkrootkit
! Usman 3891 PTS/0 Bash
CHKUTMP: Nic nie usunięte

Program Chkrootkit to skrypt powłoki, który sprawdza systemy systemowe na ścieżce systemowej w celu złośliwej modyfikacji. Obejmuje również niektóre programy, które sprawdzają różne problemy bezpieczeństwa. W powyższym przypadku sprawdził znak rootkita w systemie i nie znalazł żadnego, to dobry znak.

Rkhunter (rootkithunter):

Kolejnym niesamowitym narzędziem do polowania na różnorodne korzeniowe i lokalne exploits w systemie operacyjnym jest Rkhunter.

Przede wszystkim musimy zainstalować RKHunter za pomocą polecenia:

Ubuntu@ubuntu: ~ $ sudo apt instal rkhunter

To zainstaluje narzędzie RKHunter i możesz go użyć do sprawdzenia korzeniowych za pomocą:

Ubuntu@ubuntu: ~ $ sudo rkhunter -Check | Rootkits
Sprawdzanie rootkits…
Wykonanie kontroli znanych plików i katalogów rootkit
55808 trojan - wariant A [nie znaleziono]
Adm robak [nie znaleziono]
Ajakit rootkit [nie znaleziono]
Adore Rootkit [nie znaleziono]
zestaw APA [nie znaleziono]
Apache Worm [nie znaleziono]
Ambient (ark) rootkit [nie znaleziono]
Balaur rootkit [nie znaleziono]
Beastkit rootkit [nie znaleziono]
bex2 rootkit [nie znaleziono]
Bobkit rootkit [nie znaleziono]
CB rootkit [nie znaleziono]
Colik Worm (Slapper.B wariant) [nie znaleziono]
Zestaw nadużycia Danny-Boya [nie znaleziono]
Devil Rootkit [nie znaleziono]
Diamorfina LKM [nie znaleziono]
Dica-kit rootkit [nie znaleziono]
Dreams rootkit [nie znaleziono]
Duarawkz rootkit [nie znaleziono]
Ebury Backdoor [nie znaleziono]
EYYE LKM [nie znaleziono]
Pchle Linux rootkit [nie znaleziono]
Fu rootkit [nie znaleziono]
Kurwa rootkit [nie znaleziono]
Gaskit rootkit [nie znaleziono]
Heroina LKM [nie znaleziono]
Zestaw HJC [nie znaleziono]
ignokit rootkit [nie znaleziono]
Thonxonia-ng rootkit [nie znaleziono]
Irix rootkit [nie znaleziono]
Jynx rootkit [nie znaleziono]
Jynx2 rootkit [nie znaleziono]
Kbeast rootkit [nie znaleziono]
Kitko rootkit [nie znaleziono]
Kanark Rootkit [nie znaleziono]
LD-Linuxv.Więc rootkit [nie znaleziono]
Li0n robak [nie znaleziono]
Lockit / ljk2 rootkit [nie znaleziono]
Mokes Backdoor [nie znaleziono]
Mood-nt rootkit [nie znaleziono]
Mrk rootkit [nie znaleziono]
Ni0 rootkit [nie znaleziono]
Ohhara rootkit [nie znaleziono]
Zestaw optyczny (TUX) WORM [nie znaleziono]
Oz rootkit [nie znaleziono]
Phalanx rootkit [nie znaleziono]
Phalanx2 rootkit [nie znaleziono]
Phalanx rootkit (rozszerzone testy) [nie znaleziono]
Portacelo rootkit [nie znaleziono]
R3D Storm Toolkit [nie znaleziono]
Rh-Sharpe's Rootkit [nie znaleziono]
RSHA's Rootkit [nie znaleziono]
Scalper Worm [nie znaleziono]
SEBEK LKM [nie znaleziono]
Zamknij rootkit [nie znaleziono]
Shv4 rootkit [nie znaleziono]
Shv5 rootkit [nie znaleziono]
Sin rootkit [nie znaleziono]
Slapper Worm [nie znaleziono]
Sneakin rootkit [nie znaleziono]
„Hiszpański” rootkit [nie znaleziono]
Suckit Rootkit [nie znaleziono]
Superkit rootkit [nie znaleziono]
TBD (Telnet Backdoor) [nie znaleziono]
Telekit rootkit [nie znaleziono]
T0rn rootkit [nie znaleziono]
Trnkit rootkit [nie znaleziono]
Zestaw trojanitów [nie znaleziono]
Tuxtendo rootkit [nie znaleziono]
Urk rootkit [nie znaleziono]
Wampir rootkit [nie znaleziono]
VCKIT rootkit [nie znaleziono]
Volc Rootkit [nie znaleziono]
Xzibit rootkit [nie znaleziono]
Zarwt.Kit rootkit [nie znaleziono]
ZK rootkit [nie znaleziono]

To sprawdzi dużą liczbę znanych rootkitów w twoim systemie. Aby sprawdzić polecenia systemowe i wszystkie typy złośliwych plików w systemie, wpisz następujące polecenie:

Ubuntu@ubuntu: ~ $ sudo rkhunter - -c -enable all - -disable none

Jeśli wystąpi błąd, skomentuj wiersze błędów w /etc /rkhunter.plik CONF i będzie działał sprawnie.

Wniosek:

Rootkits może wyrządzić poważne nieodwracalne uszkodzenie systemu operacyjnego. Zawiera różnorodne złośliwe narzędzia, takie jak keyloggery, kradzieże bankowości, kradzieży haseł, niepełnosprawne przeciwwirusowe lub boty do ataku DDOS itp. Oprogramowanie pozostaje ukryte w systemie komputerowym i nadal wykonuje swoją pracę dla atakującego, ponieważ może on zdalnie uzyskać dostęp do systemu ofiary. Naszym priorytetem po wykryciu rootkit powinien być zmiana wszystkich haseł systemu. Możesz załatać wszystkie słabe linki, ale najlepszą rzeczą jest całkowite wycieranie i sformatowanie dysku, ponieważ nigdy nie wiesz, co jest w systemie.