Menu dostępności

Malware ukryty w serwerach Nginx

Specjaliści z firmy Sansec odkryli, że nowe złośliwe oprogramowanie atakuje popularny serwer webowy Nginx. Nowatorski kod wirusa wstrzykuje się do aplikacji hosta Nginx i jest prawie niewidoczny. Malware służy do kradzieży danych klientów z serwerów eCommerce, a takie typy ataków znane są w świecie cybersecurity pod szyldem „Magecart”. Stealer został znaleziony na serwerach w USA, Niemczech i Francji.

Poniżej opiszemy, jak znaleźć go na serwerze i usunąć.

Ciekawy jest przypadek odkrycia tego malware przez Sansec. Specjaliści ponoć umieścili znanego RATa (Remote Access Trojan) ze znanym chińskim serwerem podanym jako C2 i czekali na złośliwą komunikację. Nie musieli długo czekać, aż zgłosił się właśnie nieznany wcześniej malware. Nazwali go NginRAT.

NginRAT zasadniczo przywłaszcza sobie aplikację hosta Nginx w celu ukrycia swojej obecności. Aby to zrobić, NginRAT modyfikuje core systemu hosta Linux. Gdy legalny serwer WWW Nginx korzysta z jednej z podmienionych funkcjonalności (np. dlopen), NginRAT wstrzykuje się. Rezultatem jest trojan zdalnego dostępu, który osadzony jest w procesie Nginx. Na typowym serwerze internetowym eCommerce istnieje wiele procesów Nginx. A nieuczciwy Nginx wygląda tak samo jak inne. Jesteś w stanie dostrzec różnicę?


Analiza bardziej techniczna

Jak wspominaliśmy wcześniej, pojawienie się NginRAT na zainfekowanym systemie poprzedzone było infekcją innego znanego trojana o nazwie CronRAT, który komunikuje się ze swoim serwerem C&C o adresie 47[.]115.46.167:443 za pomocą niestandardowych poleceń. Jednym z nich jest „dwn”, które pobiera bibliotekę systemu Linux do „/dev/shm/php-shared”. Następnie CronRAT otrzymuje polecenie uruchomienia takiej komendy:

To „wołanie o pomoc” skutecznie wstrzykuje pasożyta NginRAT do aplikacji Nginx na infekowanym hoście. Więc co tu się dzieje? Poniższy schemat powinien trochę rozjaśnić sprawę.

Zgodnie z komendą, do Nginx przekazywane są dwie zmienne. Pierwsza to LD_L1BRARY_PATH. Zauważyłeś 1 literówkę? Zmienna ta zawiera klucz deszyfrujący dla ładunku RAT.

Druga to LD_PRELOAD, która jest funkcją debugowania Linuksa. Programiści używają jej do testowania nowych bibliotek systemowych. Jednak może być również używana do przechwytywania standardowych wywołań bibliotek Linux. Jak widać, złośliwa biblioteka php-shared przechwytuje dlopen i dlsym, których używa Nginx:

Gdy Nginx wywoła dlopen, kontrolę przejmuje już NginRAT. Usuwa plik php-shared, zmienia nazwę procesu na „nginx: worker process”, zbiera informacje o systemie i otwiera połączenie z serwerem C&C pod adresem 47[.]115.46.167. Następnie czeka na dalsze polecenia, prawdopodobnie „śpiąc” przez tygodnie lub miesiące.


Jak wykryć i usunąć NginRAT?

Ponieważ NginRAT osadza się w legalnym procesie hosta Nginx, standardowy „/proc/PID/exe” będzie wskazywał na Nginx, a nie na złośliwe oprogramowanie. Ponadto kod biblioteki nigdy nie jest zapisywany na dysku i nie można go sprawdzić po jego uruchomieniu. Jednak użycie LD_L1BRARY_PATH (z literówką) może ujawnić obecność tej konkretnej wersji NginRAT. Aby znaleźć jakiekolwiek aktywne procesy, uruchamiamy to polecenie:

Pokaże ono wszelkie złośliwe procesy. Następnie wystarczy zabić wszystkie za pomocą „kill -9 ”. Warto sprawdzić również zaplanowane zadania w CRON, gdyż mogą istnieć z powodu CronRAT.

Popularne

Czym są non-human identities (NHI)? Jak możemy je chronić i jakie zagrożenia stwarzają dla organizacji?

Czym są non-human identities (NHI)? Jak możemy je chronić i jakie zagrożenia stwarzają dla organizacji?

W dzisiejszym artykule opisujemy pewien problem istniejący w firmach i organizacjach, związany z tożsamościami nieludzkimi (non-human identities), czyli inaczej – tożsamościami niezwiązanymi z pracow...
Nowe podatności w architekturze sieci 5G

Nowe podatności w architekturze sieci 5G

Nowe badania nad architekturą 5G ujawniły lukę w zabezpieczeniach modelu dzielenia sieci oraz zwirtualizowanych funkcjach sieciowych, które można wykorzystać do nieautoryzowanego dostępu do danych, a tak...
Filtrowanie URL i DNS, dlaczego to takie ważne?

Filtrowanie URL i DNS, dlaczego to takie ważne?

Filtrowanie adresów URL ogranicza zawartość stron internetowych, do których użytkownicy mają dostęp. Odbywa się to poprzez blokowanie określonych adresów URL przed załadowaniem. Firmy wdrażają filtrowanie...
Hakerzy z Dragon Breath z nową techniką ataku

Hakerzy z Dragon Breath z nową techniką ataku

Specjaliści z Sophos wykryli niedawno złośliwą aktywność polegającą na klasycznym DLL side-loadingu, ale ze zwiększoną złożonością i dodatkową warstwą wykonania. Co więcej, dochodzenie wskazuje, że oso...
Polowanie na eskalację uprawnień w Windows: sterowniki jądra i Named Pipe pod lupą

Polowanie na eskalację uprawnień w Windows: sterowniki jądra i Named Pipe pod lupą

Podatności typu Local Privilege Escalation (LPE) pozostają jednym z kluczowych elementów realnych ataków na systemy Windows. Nawet przy poprawnie skonfigurowanym systemie i aktualnym oprogramowaniu bł...