Siedem nowych odmian Mirai z aspirującym cyberprzestępcą w tle

Dwa lata po sprawie Mirai botnety stają się zabawkami w rękach skryptowych dzieciaków

We wrześniu 2016 roku Twitter, CNN, Spotify i wiele innych serwisów zostało wyłączonych przez największy atak DDoS w historii. Dzisiaj już wiemy, że to był Mirai, ale wtedy nikt sobie nie wyobrażał, że za atakiem stała rzesza urządzeń Internetu rzeczy (Internet of Things — IoT) podstępnie włączonych do botnetu.

Mirai został odkryty przez badaczy z grupy MalwareMustDie w sierpniu 2016 roku. Chociaż to nie było pierwsze odkryte złośliwe oprogramowanie dotyczące IoT, z pewnością było najbardziej brzemienne w skutkach.

Po wyłączeniu większej części Internetu na Wschodnim Wybrzeżu USA sprawy przybrały jeszcze gorszy obrót, kiedy twórca tego złośliwego oprogramowania, przedstawiający się jako Anna-Senpai, opublikował jego kod źródłowy. Od tego czasu ambitni hakerzy na całym świecie używają go jako szkieletu do tworzenia własnych odmian botnetów. Pierwotni twórcy tego złośliwego oprogramowania zostali w końcu aresztowani i uznani za winnych przez sąd, jednak ujawnienie kodu istotnie przyspieszyło powstawanie kolejnych botnetów. Zaczęły się pojawiać nowe odmiany z nową funkcjonalnością, wykorzystujące szereg luk w zabezpieczeniach niechronionych urządzeń IoT.

Każdy domorosły haker może to zrobić

Mijają dwa lata od sprawy Mirai, a jego nowe odmiany wciąż sieją chaos, zniszczenie i szkody. Niedoświadczeni hakerzy wprowadzają drobne modyfikacje w oryginalnym kodzie Mirai, wdrażają go i tworzą nowe botnetowe armie. W niektórych przypadkach nawet oferują ich usługi jako botnetowych najemników.

Jeden z takich cyberprzestępców wkroczył na scenę w lipcu 2018 roku, kiedy to pojawiło się kilka nowych odmian Mirai, wywołując dyskusję online wśród ekspertów ds. bezpieczeństwa. Uczestniczący w dyskusji użytkownik nieobserwowanego konta na Twitterze zauważył, że badacze popełnili błąd w klasyfikacji wariantów Mirai. Na dowód udostępnił link z kodem źródłowym siedmiu odmian Mirai. To wyzwanie zmotywowało nas do pobrania kodu źródłowego w celu klasyfikacji tych siedmiu odmian i określenia, na ile faktycznie różnią się one od Mirai (uwaga spoiler: nie aż tak bardzo).

hacker-tweet-about-mirai-botnets Konto na Twitterze odpowiedzialne za publikację kodu

Mirai w kilku słowach

Aby wychwycić różnice w odmianach Mirai, krótko podsumujmy sposób działania samego Mirai. Oryginalny kod Mirai działa następująco:

  1. Skanuje Internet w poszukiwaniu urządzeń IoT podatnych na atak.

  2. Próbuje uzyskać dostęp przez atak siłowy z użyciem kilkunastu słabych poświadczeń domyślnych z wykorzystaniem protokołu Telnet.

  3. Pomyślnie infekuje urządzenie, które staje się częścią botnetu i zaczyna szukać podatnych urządzeń w tej samej sieci, a następnie przeprowadza atak siłowy w celu zainfekowania ich.

  4. Bot przesyła regularnie raport do serwera sterującego (C&C). Serwer sterujący może wysyłać polecenia lub instrukcje do bota w celu uruchomienia ataku DDoS

Ponieważ większość odmian to naśladowcy oryginalnego kodu Mirai, mają one podobną strukturę kodu. Składają się z trzech głównych części: bota, serwera sterującego i modułu ładującego.  Część bota jest napisana w języku C, a moduł serwera sterującego w języku Go.

Na potrzeby tej analizy skupimy się na następujących odmianach Mirai, które wyciekły do domeny publicznej: Akiru, Katrina_V1, Sora, Owari, Saikin, Josho_V3 i Tokyo oraz ich trzech modułach w katalogu bot, takich jak:  

  • c: informacje konfiguracyjne

  • c: lista poświadczeń używanych podczas skanowania do wykrywania potencjalnie podatnych urządzeń, a także funkcja wysyłania raportu ze skanowania do modułu ładującego.

  • c: informacje o tym, które procesy powinny zostać wyłączone.

Wszystkie zdekodowane hasła, ciągi i informacje dodatkowe można znaleźć w informacjach uzupełniających na końcu tego artykułu.

Analiza odmian — co jest w nazwie?

Kod Mirai to szkielet, coś w rodzaju szablonu. Każdy, kto znajdzie nowy sposób wykorzystania nowego urządzenia, może go dodać do tego szablonu, tworząc w ten sposób „nową” odmianę. Kluczowe zmienne w botnetach to nazewnictwo oraz wypróbowywane poświadczenia, stanowiąca przedmiot ataku architektura, a także porty wyłączane w celu uniemożliwienia innemu złośliwemu kodowi zdobycia przyczółku w urządzeniu. Aby poznać różnice między odmianami, można je porównać ze sobą, tak jak w tabeli poniżej.

differences-between-mirai-botnet-variantsTa tabela zawiera podsumowanie zmian dla każdej odmiany

A teraz przyjrzyjmy się bliżej pewnym różnicom.

Nazewnictwo

Wszystkie odmiany Mirai mają implementację ciągu kontrolnego pomyślnego wykonania. Większość ciągów kontrolnych wariantów odpowiada nazwie wariantu. Jest kilka wyjątków, na przykład odmiana Tokyo ma domyślny ciąg kontrolny Mirai, odmiana Sora nie ma nazwy, a Josho_V3 ma kompletnie inną nazwę.

Kombinacje poświadczeń

W oryginalnym kodzie Mirai użyto wpisanych na stałe 62 haseł w celu przeprowadzania ataku siłowego (ataku słownikowego) na podatne urządzenia IoT. Lista jest zamaskowana i można ją odkodować kluczem DEADBEEF.

Patrząc na jej odmiany, możemy stwierdzić, że lista haseł zmienia się dla poszczególnych botów. Pobraliśmy i zdekodowali wszystkie hasła używane przez wszystkie odmiany, aby dowiedzieć się, czy lista haseł pochodzi z kodu Mirai i czy w jakimś stopniu pokrywa się z tą listą. Najobszerniejszą listę haseł zaimplementowano w odmianie Saikin. Liczy ona osiemdziesiąt pozycji i tylko cztery pokrywają się z oryginalnym kodem Mirai. Decydując się na implementację innej listy haseł, atakujący obiera na cel inne urządzenia IoT.

Nowe porty

Podobnie jak Mirai, wszystkie odmiany mają moduł killer.c, który realizuje kilka zadań. Po pierwsze, eliminuje wszelkie inne złośliwe oprogramowanie, które może działać na bieżącym urządzeniu. Po drugie, uniemożliwia innym uzyskanie zdalnego dostępu do urządzenia przez Telnet, SSH lub HTTP. Analizy ujawniły, że oprócz portów standardowo zabijanych przez Mirai, pięć z siedmiu odmian (z wyjątkiem Saikin i Josho_V3) dodawało do swojej listy zabijania nowe porty właściwe dla protokołu/urządzenia. Te porty to: port 53413 powiązany z routerami Netis, port 37215 powiązany z routerami Huawei HG532, port 52869 usługi SOAP UPnP z zestawu Realtek SDK oraz port 81 dla kamer CCTV-DVR. Dodanie tych portów pozwala autorowi botnetu łączyć się z większą liczbą urządzeń, a jednocześnie zapobiegać zdalnym połączeniom innych z tymi urządzeniami.

Nowe architektury

Wszystkie badane przez nas odmiany Mirai biorą za cel te same architektury co Mirai i tylko trzy z nich: Sora, Saikin i Akiru dodają dwie nowe architektury: ARC (Argonaut RISC Core) oraz RCE (Motorola RCE).

Po zbadaniu kodu Mirai i jego odmian zaciekawiło nas, kto stoi za tymi odmianami i do kogo należy konto na Twitterze, z którego je udostępniono.

W poszukiwaniu tożsamości skryptowego dzieciaka

Po przejrzeniu kodu i jego analizie przedstawionej w dalszej części w tym poście stało się jasne, że chociaż kod miał potencjał wyrządzenia wielu szkód, żadna z odmian nie różniła się znacząco od oryginalnego kodu źródłowego Mirai. Wykorzystano w nim pewne zalety modularnej architektury Mirai do potencjalnego łamania zabezpieczeń nowych urządzeń i konfigurowania postawy obronnej w urządzeniach, które próbuje się zainfekować, ale nie stanowiło to nic naprawdę nowego ani wartego uwagi.

To, co zainteresowało nas przede wszystkim, to lepsze poznanie sposobu pracy autora tego botnetu, dlatego zdecydowaliśmy się zbudować przypadek w celu określenia tożsamości autora.

Na początku podejrzewaliśmy, że osoba kryjąca się za twitterowym identyfikatorem 400kQBOT to znana postać sceny zagrożeń i twórca programu Owari/Sora, który kiedyś zidentyfikował się w wywiadzie jako Anarchy. Ta osoba znana była także jako Wicked.

Jednak proste googlowanie pozwoliło dotrzeć do informacji, które wskazywały w innym kierunku. Znaleźliśmy inny katalog zawierający opublikowany kod źródłowy odmian Mirai, który był praktycznie identyczny z próbkami opublikowanymi przez 400kQBot. Wśród skompilowanych źródeł odmian Mirai oraz kompilatorów i samouczków kompilacji kodu źródłowego Mirai znaleźliśmy plik tekstowy z następującą wiadomością. Autor podpisał się jako Scarface#1162.

scarface-message-2

Wiadomość od Scarface#1162, następcy Senpai, do wszystkich dzieciaków

Proste wyszukiwanie nazwy ujawniło, że Scarface#1162 nie tylko „charytatywnie” pisze i publikuje kod źródłowy botnetów dla amatorów hakerstwa, ale także sprzedaje dostęp do swojego botnetu jako usługę.

scarface-botnet-setup-service Oferta usługi konfigurowania botnetu od Scarface

Ta osoba ma także kanał YouTube, na którym demonstruje swoje umiejętności, przejmując botnety innych nowicjuszy. W jednym materiale pokazuje w czasie rzeczywistym, jak przejmuje botnet Akiru, a następnie informuje jego twórcę, naszego dobrego znajomego Wicked, w kanale aplikacji czatu dla „członków personelu money team”. Oprócz pseudonimu Wicked, inna znajoma nazwa zwróciła naszą uwagę: Anarchy. Zatem ostatecznie Wicked i Anarchy mogą nie być tą samą osobą, ale dwoma członkami tego samego zespołu.

Nasze podejrzenia, że 400kQbot i Scarface to ta sama osoba potwierdziły się, gdy w połowie września zidentyfikowała się ona w tweecie z konta 400kQBot.

No to zdaje się, że jesteśmy blisko. Scarface wypływa jako nowy i bardzo skuteczny autor botnetów, a jednocześnie jako osoba z tendencją do angażowania badaczy i mediów. Ale nadal nie wiemy, kim on (ona?) jest.

Skupiliśmy uwagę na wskazówce, którą znaleźliśmy podczas badania kodu. Kiedy Mirai atakuje urządzenie, używa ciągu kontrolnego jako potwierdzenia pomyślnego ukończenia sekwencji poleceń. Nie mamy informacji, w jaki sposób Scarface uzyskał dostęp do tych odmian, ani nie możemy potwierdzić, że on jest ich autorem. Na przykład jedna z odmian, Josho_V3, ma inny ciąg kontrolny pomyślnego wykonania: daddyl33t: nie znaleziono apletu.

Dla tych, którzy nigdy nie słyszeli tej historii, daddyl33t to 13-latek szukający pracy freelancera w programowaniu, który próbował doskonalić swoje kwalifikacje w zakresie skryptów, kompilując botnet QBot. Być może szukający sławy 13-letni skryptowy dzieciak jest również częścią zespołu zarabiającego pieniądze wraz z Wicked i Anarchy. Być może wszyscy oni to jedna i ta sama osoba.

Doszliśmy w końcu do kilku opcji i połączeń, ale żadne z nich nie wskazało nam określonego kierunku. Czy Scarface trolluje nas, przybierając różne pseudonimy i wiążąc je z różnymi rodzajami złośliwego oprogramowania? Czy jest tą samą osobą, co daddyl33T, czy tylko wspomina go w wyrazie uznania? To ćwiczenie dało nam do myślenia, jednak niewystarczająca ilość prawdziwych informacji nie pozwoliła nam sformułować żadnych wniosków.     

W końcu szukanie tożsamości użytkownika anonimowego konta na Twitterze czy Discordzie opiera się głównie na spekulacjach, i może nawet nie to jest najważniejsze, a na pewno nie w tym artykule. Interesująca jest konkluzja, że tak łatwo można utworzyć kilka odmian botnetu na podstawie dostępnego publicznie kodu, a następnie rozpowszechniać go w celach zarobkowych i dla zdobycia rozgłosu.  

Podsumowanie

Śmiesznie łatwo można mnożyć odmiany Mirai z upublicznionego kodu źródłowego i wcale nie dziwi fakt, że spotyka się początkujących cyberprzestępców zarabiających na zbudowanych w ten sposób botnetowych armiach. Botnet to wszechstronne narzędzie, którego można użyć do zapoczątkowania ataku DDoS, wykorzystania przejętych urządzeń jako koparek kryptowalut lub przekształcenia ich w serwery proxy dla złośliwego oprogramowania.

„Nie wiem, co powiedzieć ludziom, a zabezpieczenia IoT to żart”.  
 WICKED, autor odmian botnetu 

Wszyscy intensywnie korzystamy z technologii, a czasy są takie, że względnie łatwo jest tworzyć złośliwe oprogramowanie, a następnie dzierżawić lub sprzedawać jego możliwości. Każdy może wziąć szkielet Mirai dodać kilka haseł tu i tam, wymyślić atrakcyjną nazwę botnetu i... kurtyna w górę — można rozpoczynać infekowanie dla sławy i zysku.

Ale to my sami gromadzimy w domach urządzenia, które są dosłownie PLACEM ZABAW w tej niekończącej się grze przejmowania kontroli nad naszymi zapasami mocy obliczeniowej. Tu nie trzeba żadnej wiedzy tajemnej; Wasze urządzenia IoT są gotowe do wynajęcia.

Odmiany botnetu, jak te siedem opartych na Mirai, są preparowane codziennie. Z każdą kolejną odmianą coraz lepiej przejmują kontrolę nad Waszymi urządzeniami, wyrzucają z nich innych użytkowników, a następnie okopują się na swoich pozycjach. Dodatkowo, tylko nieliczne urządzenia IoT można zaktualizować lub zabezpieczyć przed siłowym zwerbowaniem do botnetowej armii.

Przez dekady martwiliśmy się wirusami uzyskującymi dostęp do naszych komputerów i telefonów komórkowych. I słusznie, ale zdajemy się kompletnie ignorować fakt, że blokując nasze laptopy, pozostawiliśmy szeroko otwarte drzwi do naszych sieci osobistych za sprawą słabo zabezpieczonych urządzeń IoT.

Ale cóż to jest odrobina mocy obliczeniowej między kumplami? Czyż botnety nie są charakterystycznym dla ery IoT przestępstwem bez ofiar? Niezupełnie. Chociaż dla przeciętnego użytkownika jest praktycznie niemożliwe stwierdzenie, czy jego urządzenie IoT zostało zainfekowane przez Mirai lub jedną z jego odmian, oznakami pośrednimi może być zauważalny spadek szybkości przetwarzania i ogólnej wydajności oraz wzrost zużycia energii. W miarę jak zwiększamy liczbę urządzeń inteligentnych w swoim życiu, możliwości botnetów w zakresie infekowania, rekrutowania i atakowania rosną, tak samo jak skala szkód, których mogą dokonać.

Jeśli używasz routera w domu, biurze domowym lub małej firmie, możesz podjąć następujące kroki, aby chronić swoją sieć:

  1. Zmieniaj domyślne hasło administratora w routerze i wszystkich urządzeniach IoT od razu, kiedy trafią w Twoje ręce.

  2. Dbaj o regularne instalowanie najnowszych aktualizacji oprogramowania sprzętowego.

  3. Wyłącz zdalne zarządzanie na stronie ustawień routera.

  4. Jeśli podejrzewasz, że urządzenia zostały zainfekowane, rozważ ich zresetowanie do ustawień fabrycznych i powtórz czynności od kroku 1.

 

Powiązane artykuły

--> -->