Niedawno firma Trustwave poinformowała o nowej rodzinie złośliwego oprogramowania, którą odkryto podczas dochodzenia po naruszeniu bezpieczeństwa. Backdoor nazwany został Pingback. Działa w systemach Windows i komunikuje się ze serwerem C2 za pomocą komunikatów ICMP. ICMP (Internet Control Message Protocol) to protokół używany do wymiany komunikatów kontrolujących między punktami końcowymi komunikującymi się za pośrednictwem standardu IP. Komunikaty „Echo Request” i „Echo Reply”, odpowiednio typ 8 i typ 0, są wspólnie nazywane komunikatami ping i są często używane do diagnostyki problemów z łącznością sieciową. Ponieważ protokół ICMP jest powszechnie dozwolony przez zapory sieciowe, osoby atakujące często ukrywają swoją komunikację w ładunkach wiadomości ping. Na kapitanie hacku wielokrotnie pisaliśmy o sposobach wykorzystania ICMP w atakach sieciowych.


Jak działa ICMP tunneling?

Teraz, gdy znamy podstawy komunikacji ICMP, możemy wyjaśnić w jaki sposób osoba atakująca może przechwycić dane w pakietach ICMP.

Pingback używa w szczególności żądania echa lub komunikatu ICMP typu 8. Uruchamia sniffer dla każdego adresu IP na hoście, tworząc wątek do podsłuchiwania pakietów na każdym indywidualnym adresie IP. Aby odróżnić własne pakiety od innych pakietów, sniffer ignoruje wszystko, co nie jest pakietem echa ICMP i nie zawiera numeru sekwencji ICMP 1234, 1235 lub 1236. Ignoruje również pakiety, które nie są przeznaczone dla określonego adresu IP.

Następnie interpretuje dane w formacie:

źródło: trustwave.com

Sekwencja jest używana jako typ wiadomości dla wszystkich danych ICMP. Obecnie obsługuje 3 typy wiadomości:

  • 1234 – pakiet zawiera polecenie lub dane.
  • 1235 i 1236 – używane tylko do czystej komunikacji pakietowej. 1235 oznacza, że dane zostały odebrane na drugim końcu, a 1236, gdy nowe dane zostały odebrane przez złośliwe oprogramowanie.

Pingback obsługuje kilka wewnętrznych poleceń, w tym:

  • shell – uruchom powłokę
  • download – dostępne są 3 różne tryby pobierania:
    – Tryb 1: zainfekowany host łączy się z powrotem z hostem atakującego (działa dobrze, jeśli przychodzące połączenia TCP są blokowane przez zaporę).
    – Tryb 2: zainfekowany host otwiera gniazdo na określonym porcie i czeka na połączenie się atakującego.
    – Tryb 3: wyłącznie oparty na protokole ICMP; jest to bardzo powolne, a bieżąca implementacja jest zbyt zawodna pod względem sterowania przepływem danych.
  • upload – obsługuje również 3 różne tryby, podobne do wcześniejszego polecenia.
  • exec – wykonuje polecenie na zainfekowanym hoście.

Widzimy więc, że Pingback używa kombinacji ICMP do inicjowania dowolnego polecenia i TCP, aby uzyskać lepszą wydajność i niezawodność. Dostępny jest również czysty tryb ICMP, ale nie jest on stabilny i niezawodny.


Jak wykryć złośliwą komunikację?

Członkowie zespołu Corelight Labs zbadali artefakty komunikacyjne zostawiane przez złośliwe oprogramowanie Pingback i publicznie udostępnili skrypt wykrywający taką komunikacje. Jest on dostępny w repozytorium tutaj. Skrypt ten rejestruje wykrycia w dzienniku zdarzeń Windows i filtruje komunikacje zaufaną oraz wskazuje tylko tą powiązaną z malware.

Ponieważ ładunki są pierwotnie tworzone przez backdoor jako struktury C, ich długość nie będzie się zmieniać tak, jak w przypadku łańcucha zakończonego znakiem null. Obrońcy mogą wykorzystać to ograniczenie na swoją korzyść, obserwując wiadomości ping o określonej długości. Ponadto, według firmy Trustwave, Pingback używa tylko trzech numerów sekwencji ping ICMP: 1234, 1235, 1236.

Dlatego reguły wykrycia Pingback w skrypcie są zbudowane na podstawie długości wiadomości, trzech wartości numerów sekwencyjnych i wzorców w ładunkach wiadomości. Odpowiednie narzędzia sieciowe (np. WireShark) są w stanie ładnie analizować wszystkie te pola, dlatego logika skryptu wykrywania jest dość prosta.


Podsumowanie

Tunelowanie ICMP nie jest niczym nowym, ale ten konkretny malware wzbudza zainteresowanie sympatyków bezpieczeństwa jako rzeczywisty przykład złośliwego oprogramowania wykorzystującego tę technikę do uniknięcia wykrycia. Protokół ICMP jest przydatny do diagnostyki i wydajności połączeń IP w świecie rzeczywistym. Powszechne stosowanie go jest uzasadnione i bardzo przydatne, ale musi być równoważone przez rzeczywiste zagrożenia. Chociaż nie sugerujemy całkowitego wyłączenia protokołu ICMP, sugerujemy wprowadzenie monitorowania go w celu wykrycia takiej ukrytej komunikacji. Dobrze radzą sobie tutaj systemy oparte na AI monitorujące ruch sieciowy pod kątem anomalii.

W przypadku administratorów sieci i operatorów technicznych można zaimplementować regułę sprawdzającą, czy pakiet jest echem ICMP (typ 8), czy rozmiar danych wynosi 788 bajtów lub więcej i sprawdzać numer sekwencyjny ICMP: 1234, 1235 lub 1236. Ciągi poleceń backdoor’a takie jak „download”, „upload”, „exec”, „exep”, „rexec”, „shell”, które znajdują się w pakiecie danych ICMP, również mogą być oznaczone.

Nie jest na razie jasne w jaki sposób to złośliwe oprogramowanie dostało się do sieci organizacji. Wektor ataku cały czas jest badany.

Podziel się z innymi tym artykułem!