Kompleks złośliwego oprogramowania Drovorub infekuje system operacyjny Linux

Agencja Bezpieczeństwa Narodowego i Federalne Biuro Śledcze USA opublikował raport, zgodnie z którym 85. główny ośrodek służb specjalnych Dyrekcja Główna Sztabu Generalnego Sił Zbrojnych Rosji (85 GCSS GRU) wykorzystywany jest kompleks złośliwego oprogramowania o nazwie „Drovorub”. Drovorub zawiera rootkita w postaci modułu jądra Linuksa, narzędzie do przesyłania plików i przekierowywania portów sieciowych oraz serwer sterujący. Część kliencka może pobierać i przesyłać pliki, wykonywać dowolne polecenia jako użytkownik root i przekierowywać porty sieciowe do innych węzłów sieci.

Centrum sterowania Drovorub otrzymuje ścieżkę do pliku konfiguracyjnego w formacie JSON jako argument wiersza poleceń:

{
"host_db": " ",
"port_bazy danych": " ",
"db_db": " ",
"użytkownik_db": " ",
"hasło_db": " ",

"port": " ",
"lhost": " ",
"ping_sec": " ",

"plik_klucza_prywatnego": " ",
"wyrażenie" : " »
}

MySQL DBMS jest używany jako backend. Do łączenia klientów używany jest protokół WebSocket.

Klient ma wbudowaną konfigurację obejmującą adres URL serwera, jego klucz publiczny RSA, nazwę użytkownika i hasło. Po zainstalowaniu rootkita konfiguracja jest zapisywana w postaci pliku tekstowego w formacie JSON, który jest ukrywany przed systemem przez moduł jądra Drovoruba:

{
«id» : «cbcf6abc-466b-11e9-853b-000c29cb9f6f»,
„klucz”: „Y2xpZW50a2V5”
}

Tutaj „id” jest unikalnym identyfikatorem wydanym przez serwer, w którym ostatnie 48 bitów odpowiada adresowi MAC interfejsu sieciowego serwera. Domyślnym parametrem „key” jest ciąg „clientkey” zakodowany w formacie base64 używany przez serwer podczas początkowego uzgadniania. Dodatkowo plik konfiguracyjny może zawierać informacje o ukrytych plikach, modułach i portach sieciowych:

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
"klucz": "Y2xpZW50a2V5",
„monitoruj” : {
"plik" : [
{
„aktywny”: „prawda”
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
"maska": "plik testowy1"
}
],
„moduł”: [
{
„aktywny”: „prawda”
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
"maska": "moduł testowy1"
}
],
"internet" : [
{
„aktywny”: „prawda”
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
"port": "12345",
„protokół”: „tcp”
}
] }
}

Kolejnym składnikiem Drovoruba jest agent, którego plik konfiguracyjny zawiera informacje dotyczące połączenia z serwerem:

{
"login_klienta": "użytkownik123",
"client_pass": "pass4567",
„id klienta”: „e391847c-bae7-11ea-b4bc-000c29130b71”,
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file":"public_key",
"host_serwera": "192.168.57.100",
"port_serwera":"45122″,
"serwer_uri":"/ws"
}

Pola „clientid” i „clientkey_base64” początkowo brakuje, są one dodawane po wstępnej rejestracji na serwerze.

Po instalacji wykonywane są następujące operacje:

  • ładowany jest moduł jądra, który rejestruje hooki dla wywołań systemowych;
  • klient rejestruje się w module jądra;
  • Moduł jądra ukrywa działający proces klienta i jego plik wykonywalny na dysku.

Pseudourządzenie, na przykład /dev/zero, służy do komunikacji pomiędzy klientem a modułem jądra. Moduł jądra analizuje wszystkie dane zapisane na urządzeniu i dla transmisji w przeciwnym kierunku wysyła do klienta sygnał SIGUSR1, po czym odczytuje dane z tego samego urządzenia.

Aby wykryć Lumberjacka, możesz użyć analizy ruchu sieciowego za pomocą NIDS (nie można wykryć szkodliwej aktywności sieciowej w samym zainfekowanym systemie, ponieważ moduł jądra ukrywa używane przez siebie gniazda sieciowe, reguły netfilter i pakiety, które mogłyby zostać przechwycone przez surowe gniazda). . W systemie, w którym zainstalowany jest Drovorub, możesz wykryć moduł jądra, wysyłając mu polecenie ukrycia pliku:

dotknij pliku testowego
echo „ASDFZXCV:hf:plik testowy” > /dev/zero
ls

Utworzony plik „testfile” staje się niewidoczny.

Inne metody wykrywania obejmują analizę pamięci i zawartości dysku. Aby zapobiec infekcji zaleca się stosowanie obowiązkowej weryfikacji podpisów jądra i modułów, dostępnej począwszy od wersji jądra Linuksa 3.7.

Raport zawiera reguły Snorta służące do wykrywania aktywności sieciowej Drovoruba oraz reguły Yara służące do wykrywania jego komponentów.

Przypomnijmy, że z grupą związany jest 85. GTSSS GRU (jednostka wojskowa 26165) APT28 (Fantazyjny Miś), odpowiedzialny za liczne cyberataki.

Źródło: opennet.ru