Sprawa jest bardzo ciekawa. Szczególnie dla osób interesujących się kryptowalutami i systemami blockchain. Mianowicie, znany botnet używany do nielegalnych działań związanych z wydobywaniem kryptowalut, zaczął nadużywać transakcji Bitcoin (BTC) w celu zaciemniania swojego zasięgu i pozostania niewykrywalnym.
Wiemy to na podstawie badań opublikowanych w zeszłym tygodniu przez Akamai. Technika ta jest wykorzystywana przez operatorów trwającej od dawna kampanii botnetu wydobywającego kryptowaluty (głównie Monero), w której transakcje BTC typu blockchain są wykorzystywane do ukrywania zapasowych adresów IP serwerów C2.
Jak wiemy, sercem sieci botnet są serwery C2. Od nich boty otrzymują polecenia oraz do nich wysyłają zebrane informacje. Organy ścigania i zespoły bezpieczeństwa na Świecie nieustannie wyszukują i wyłączają serwery C2, aby unieszkodliwić zorganizowanie działanie cyberprzestępców. Często w grę wchodzą całe infrastruktury zapasowe serwerów Command & Control, co znacząco utrudnia śledzenie i likwidację botnetów.
Akamai twierdzi, że operatorzy botnetów są w stanie ukryć zapasowe adresy IP serwerów C2 za pośrednictwem technologii blockchain, co jest relatywnie prostym, a zarazem skutecznym sposobem ochrony przed usunięciem.
Łańcuch ataku tego botnetu rozpoczyna się od wykorzystania luk w zabezpieczeniach zdalnego wykonania kodu (RCE) oprogramowania Hadoop Yarn i Elasticsearch. Podatności te to CVE-2015-1427 i CVE-2019-9082. W przypadku niektórych ataków zamiast zwykłego przejmowania kontroli nad systemem, RCE są również modyfikowane w celu utworzenia skanerów serwerów Redis, które znajdują dodatkowe cele Redis do kopania kryptowalut.
Od strony technicznej wygląda to następująco: w początkowym etapie infekcji dostarczany jest skrypt powłoki w celu wyzwolenia RCE w podatnym systemie, a następnie wdrażane jest szkodliwe oprogramowanie wydobywające krytpowaluty – Skidmap. Początkowy skrypt może również zabić istniejące już koparki kryptowalut na systemie, zmodyfikować klucze SSH lub wyłączyć funkcje bezpieczeństwa Unix.
Do utrzymywania trwałości w systemie oraz dalszej dystrybucji złośliwego oprogramowania używane są zaplanowane zadania (Cron oraz Scheduled Tasks). Jako domeny i adresy C2 używane są statyczne wpisy, które zgodnie z przewidywaniami są ostatecznie identyfikowane i wyłączone przez zespoły ds. Cyberbezpieczeństwa.
Operatorzy tej kampanii oczekiwali tego i uwzględnili infrastrukturę kopii zapasowych, w której infekcje mogą przełączyć się w tryb awaryjny i pobrać zaktualizowany ładunek, który z kolei nauczyłby zainfekowaną maszynę do korzystania z nowych domen i nowej infrastruktury C2.
W grudniu Akamai zauważył, że adres portfela BTC został uwzględniony w nowych wariantach złośliwego oprogramowania do wydobywania kryptowalut. Ponadto znaleziono adres URL interfejsu API do sprawdzania portfela oraz jednowierszowe skrypty bash. Wygląda na to, że do obliczenia adresu IP wykorzystano dane portfela pobierane przez interfejs API.
Taki adres IP jest następnie używany do utrzymania trwałości bota. Naukowcy twierdzą, że poprzez pobieranie adresów za pośrednictwem API portfela BTC operatorzy szkodliwego oprogramowania mogą zaciemniać i przechowywać dane konfiguracyjne w łańcuchu bloków technologii blockchain, a jak powszechnie wiadomo blockchain jest technologią zdecentralizowaną i nie da się przejąć nad nią kontroli czy wpłynąć na jej działanie.
„Wpychając niewielką ilość BTC do portfela, operatorzy mogą odzyskać zainfekowane systemy, które zostały osierocone” – mówi Akamai. „Zasadniczo opracowali metodę dystrybucji informacji konfiguracyjnych na nośniku, który jest praktycznie niemożliwy do rozdzielenia i ocenzurowania”.
Aby przekonwertować dane portfela na adres IP, operatorzy wykorzystują cztery skrypty jednowierszowe Bash do wysłania żądania HTTP. Żądanie to trafia do interfejsu API eksploratora blockchain dla danego portfela BTC, a następnie wartości „Satoshi” (najmniejszej, wstępnie zdefiniowanej wartości jednostek BTC) z ostatnich dwóch transakcji są konwertowane na zapasowe adresy IP serwerów C2.
„Infekcja wykorzystuje adres portfela BTC jako rekord podobny do DNS, a wartości transakcji jako typ rekordu A” – wyjaśnia Akamai. Na obrazku ze skryptem poniżej, zmienna „aa” zawiera adres portfela Bitcoin, zmienna „bb” zawiera punkt końcowy API, który zwraca ostatnie dwie transakcje użyte do wygenerowania adresu IP, a zmienna „cc” zawiera ostateczny adres IP C2 po procesie konwersji. Aby osiągnąć tę konwersję, łączone są ze sobą cztery zagnieżdżone jednowierszowe Bash (po jednym na każdy oktet adresu).
Bałagan cURLów, sedów, awksów i potoków jest tutaj zastosowany umyślnie, aby proces konwersji był trudny do zrozumienia i analizy. Na pierwszy rzut oka rzeczywiście tak jest, ale po uporządkowaniu kodu widać, że sama technika jest dość prosta. Na uznanie zasługuje jednak sam pomysł operatorów tego botnetu.
Akamai szacuje, że do tej pory operatorzy wydobyli ponad 30 000 USD w kryptowalucie Monero (XMR).
Sama technika jest bardzo innowacyjna. Wykorzystanie blockchain do przechowywania konfiguracji botentu może spowodować nową erę złośliwego oprogramowania, które staje się jeszcze bardziej odporne na wykrycie i unieszkodliwienie.
Akamai twierdzi, że sami wpadli już na wiele pomysłów ulepszenia tej koncepcji, jednak nie publikują swoich odkryć, aby nie ułatwiać sprawy cyberprzestępcom. Zdecydowanie warto obserwować ten trend w cyberbezpieczeństwie.