Badacze z firm Intezer i BlackBerry odkryli złośliwe oprogramowanie o nazwie kodowej Simbiote, stosowane do wprowadzania backdoorów i rootkitów na skompromitowane serwery działające na systemie Linux. Złośliwe oprogramowanie zostało zidentyfikowane w systemach instytucji finansowych w kilku krajach Ameryki Łacińskiej. Aby zainstalować Simbiote w systemie, atakujący musi uzyskać dostęp do konta root, co może być osiągnięte na przykład w wyniku eksploatacji niepoprawionych luk w zabezpieczeniach lub wycieku danych logowania. Simbiote pozwala na utrzymanie obecności w systemie po włamaniu, aby przeprowadzać dalsze ataki, ukrywać aktywność innych złośliwych aplikacji oraz organizować przechwytywanie poufnych danych.
Cechą charakterystyczną Simbiote jest rozprzestrzenianie się w formie dzielonej biblioteki, która jest ładowana podczas uruchamiania wszystkich procesów za pomocą mechanizmu LD_PRELOAD, a także podmienia niektóre wywołania standardowej biblioteki. Operatory podmienionych wywołań ukrywają związane z backdoorem aktywności, na przykład pomijają poszczególne elementy na liście procesów, blokują dostęp do określonych plików w /proc, ukrywają pliki w katalogach, pomijają złośliwą dzieloną bibliotekę w wyjściu ldd (co osiągane jest poprzez przechwycenie funkcji execve i analizę wywołań z zmienną środowiskową LD_TRACE_LOADED_OBJECTS), oraz nie pokazują związanych z złośliwą aktywnością gniazd sieciowych.
Aby chronić się przed inspekcją ruchu, przeprowadzane jest nadpisywanie funkcji biblioteki libpcap, filtrowanie odczytów z /proc/net/tcp oraz ładowanie do jądra programów eBPF, które zapobiegają pracy analizatorów ruchu i odrzucają nieautoryzowane zapytania do własnych procesorów sieciowych. Program eBPF uruchamiany jest jako jeden z pierwszych procesorów i działa na najniższym poziomie stosu sieciowego, co pozwala ukryć aktywność sieciową backdoora także przed analizatorami uruchomionymi później.
Simbiote umożliwia również obejście niektórych analizatorów aktywności w systemie plików, ponieważ kradzież poufnych danych może odbywać się nie na poziomie otwierania plików, a poprzez przechwytywanie operacji odczytu z tych plików w legitymowanych aplikacjach (na przykład, podmiana funkcji bibliotecznych pozwala na przechwytywanie wprowadzonego przez użytkownika hasła lub danych z pliku z kluczem dostępu). W celu zorganizowania zdalnego dostępu Simbiote przechwytuje niektóre wywołania PAM (Pluggable Authentication Module), co pozwala na podłączenie się do systemu przez SSH z określonymi agresywnymi danymi logowania. Przewidziana jest również ukryta możliwość podniesienia swoich uprawnień do użytkownika root poprzez ustawienie zmiennej środowiskowej HTTP_SETTHIS.

Źródło: opennet.ru
