Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Botnety na urządzeniach sieciowych
Botnety oparte na urządzeniach sieciowych
Wstęp
Botnety to dość powszechnie znane zjawisko w dzisiejszym świecie. Liczące często setki tysięcy przejętych komputerów, kontrolowanych zdalnie przez cyberprzestępców, wykorzystywane do masowych ataków odmowy usługi (DDoS) są potężną bronią i jednym z największych problemów współczesnego Internetu. Mimo dość powszechnie znanych mechanizmów pozyskiwania kolejnych maszyn tworzących botnet, nadal nie wymyślono skutecznej metody zapobiegania temu zjawisku. Główną przyczyną jest bierność i nieznajomość zagrożenia ze strony zwykłych użytkowników, co przekłada się na skalę zjawiska i jego powszechność
Nieco mniej znaną formą botnetów są sieci składające się z wszelkiego rodzaju urządzeń sieciowych (routerów, switchy, modemów ADSL/kablowych itp.). Postaram się zatem nieco przybliżyć zagadnienie.
2007 – pierwsze sygnały
Już w 2007 roku Gadi Evron we wpisie Broadband Routers and Botnets: Being Proactive, opublikowanym na łamach portalu CircleID zwrócił uwagę na coraz częstsze przypadki odkrywania luk w routerach i modemach, jako przykład podając modem Deutsche Telekom Speedport w700v. W opisie luki, dostępnym na liście Bugtraq pod adresem http://seclists.org/bugtraq/2007/May/178 można przeczytać dokłany opis błędu w formularzu logowania, zbudowanym w oparciu o skrypt w języku JavaScript, opóźniający kolejne błędne próby logowania i jednocześnie możliwość jego ominięcia, co pozwalało atakującemu na bezpośrednie odpytywanie skryptu CGI odpowiedzialnego za sprawdzanie uprawnień, a tym samym atak typu Brute Force.
Sam atak, jak i sposób jego przeprowadzenia nie był niczym wyjątkowym. Gadi Evron zwrócił jednak uwagę na coś innego – mianowicie dość „lekkie” podejście do tematu zabezpieczeń urządzeń sieciowych (pozostawianie domyślnych haseł, niczym nie ograniczany dostęp do webowych paneli administracyjnych z dowolnych adresów IP itd.). Wskazał także, że dotyczy to urządzeń należących do dostawcy usług (ISP), co w naturalny sposób wielokrotnie zwiększało skalę problemu.
W tym samym roku także Borys Łącki na łamach swojego bloga opublikował wpis o innej luce w urządzeniu innego ISP (brytyjskiego BeThere) – pełny tekst można przeczytać pod adresem Accidental backdoor by ISP [updated x2]
2009 – pierwszy udokumentowany przypadek – psyb0t
Jako prekursora opisywanych botnetów uznaje się psyb0t’a – odkrytego w styczniu 2009 roku przez australijskiego specjalistę od bezpieczeństwa komputerowego Terry Baume’a w modemie ADSL firmy Netcomm (pod tym adresem znajduje się dokładna analiza – .pdf, 150kB).
Niedługo po tym fakcie, w marcu tego samego roku, doszło do pierwszego zarejestrowanego ataku DDoS, dokonanego przez botnet psyb0t. Celem ataku była usługa DroneBL, zbierająca informacje o adresach IP wykorzystywanych m.in. przez botnety. Po tym ataku psyb0t został deaktywowany i już więcej (oficjalnie) nie został użyty. Zwrócił jednak uwagę społeczności związanej z bezpieczeństwem informatycznym na nowe zagrożenie.
Oprogramowanie modemu NB5, w którym Baume znalazł malware, oparte było na Linuksie z jądrem w wersji 2.4.17 (do dzisiaj malware takie, jak aidra atakuje właśnie urządzenia oparte o firmware zbudowane na architekturze MIPS). Cechą szczególną tej architektury jest jej powszechność właśnie na wszelkiego rodzaju systemach wbudowanych (routery, Windows CE, Sony PlayStation 2, Sony PlayStation Portable itp.).
2010 – Chuck Norris i Tsunami
W 2010 roku wspomniany już wcześniej Gadi Evron, we wpisie opublikowanym na liście dyskusyjnej SecurityFocus.org, poinformował o odkryciu przez czeskich specjalistów do spraw bezpieczeństwa nowego robaka zarażającego routery i budującego duży botnet przeznaczony do ataków DDoS. Więcej o ich odkryciu można przeczytać w materiałach źródłowych wskazanych przez Gadi Evrona: Chuck Norris Botnet and Broadband Routers – SecurityFocus.org archives, 22.02.2010.
Chuck Norris został zneutralizowany, zanim jeszcze zdążył poczynić jakiekolwiek szkody. Niestety, w tym samym roku, w marcu, pojawiła się jego mutacja, znana jako Tsunami – badacze znależli w jego kodzie źródłowym wiele fragmentów analogicznych do tych odkrytych wcześniej w Norrisie.
1. Komendy IRC sterujące botnetem Tsunami
2012 – eksperyment z botnetem Carna
W marcu 2012 roku anonimowy haker zbudował botnet „Carna” (oparty o około 420 tysięcy urządzeń). Botnet przeskanował łącznie około cztery miliardy (!!!) adresów IP zbierając w tym czasie około 9 TB danych. Z jego badań wynikało, że 1,3 miliarda adresów IP to aktywne urządzenia, z czego 141 milionów znajdowało się za firewall’em; 729 milionów urządzeń zwróciło adres domenowy dla swojego adresu IP. 2,3 miliarda urządzeń nie dało „znaków życia”. Malware napiane przez hakera próbowało połączyć się z każdym z odkrytych urządzeń przy użyciu nazw użytkowników 'root’ lub 'admin’. Jeśli próba kończyła się sukcesem, malware instalowało się na urządzeniu i dołączało je do botnetu. W ten sposób już po pierwszym dniu botnet składał się z około 100 tysięcy urządzeń. Dokładniejszy opis „eksperymentu” można przeczytać w artykule Guerilla researcher created epic botnet to scan billions of IP addresses.
2. Aktywność botnetu Carna w okresie od marca do grudnia 2012 roku
2013 – Aidra i jej odmiany
Nadal dość popularnym jest malware znane jako 'aidra’, 'Aidra’ bądź 'Lightaidra 0×2012′. O tej ostatniej mutacji można przeczytać więcej pod adresem lightaidra 0×2012 (aidra). W dokumentacji zamieszczonej w folderze z kodem źródłowym autor, Federico Fazzi, zamieścił podstawowe informacje o tym, jak uruchomić i skompilować aidrę. Jak zaznaczył w opisie, głownym celem aidry jest budowa botnetów zdolnych przeprowadzać ataki DDoS poprzez zalew „uszkodzonymi” pakietami TCP (tcp flood).
Poniżej – przykład urządzenia zaatakowane przez Aidrę:
Proces zarażenia
Wbrew pozorom, mimo potencjalnej mniejszej widoczności w Internecie urządzenia sieciowe z wielu powodów są łatwiejsze do „przejęcia” od klasycznych maszyn:
- najczęciej są bezpośrednio podłączone do sieci (w większości same są jej węzłami), co ułatwia ich wyszukiwanie. Oznacza to także, że nie chroni ich choćby stosowany w sieciach wewnętrznych NAT czy też firewalle lub systemy wykrywania włamań IDS
- z reguły są to urządzenia przeznaczone do pracy ciągłej (24 godziny na dobę, 7 dni w tygodniu). To sprawia, że „okno czasowe” do przeprowadzenia skutecznego ataku jest w zasadzie dowolne (w przeciwieństwie do przykładowo komputerów lub drukarek sieciowych w sieciach korporacyjnych, działających w godzinach pracy personelu)
- urządzenia te nie posiadają zainstalowanego żadnego oprogramowania zabezpieczającego – antywirusów, firewalli itp. Oznacza to, że po uzyskaniu do takiego urządzenia dostępu, nie chroni go już nic.
- do urządzeń sieciowych bardzo rzadko zalogowany jest jakikolwiek użytkownik, który mógłby zauważyć próbę włamania. Dużo rzadziej niż na maszynach produkcyjnych przeglądane są czy wręcz rejestrowane próby nieautoryzowanego dostępu
- bardzo wiele urządzeń posiada niezmienione od czasu instalacji i uruchomienia domyślne (fabryczne) ustawienia uprawnień dostępu (nazw użytkowników i haseł). Informacje te można bez żadnych problemów odnaleźć w Internecie, także w oficjalnej dokumentacji na stronach producentów
Jak zatem dochodzi do zarażenia takich urządzeń?
Malware tworzący botnet oparty na nich działa według prostego, kilkuetapowego schematu.
Pierwszym krokiem jest odnalezienie w sieci tych adresów, na których działają usługi służące do zdalnej komunikacji (port 23 – telnet, 22 – SSH, 80 – WWW) i ich identyfikacja jako należących do określonego typu urządzenia (a nie np. serwera WWW, FTP, drukarki czy zwykłego komputera osobistego).
Kolejnym krokiem jest sprawdzenie, czy malware jest w stanie zalogować się przy użyciu domyślnych loginów i haseł (bądź, co możliwe jest w urządzeniach niektórych producentów – wręcz logowanie się tylko przy użyciu domyślnej nazwy użytkownika, bez podania hasła). W tym celu malware wykorzystuje zapisaną bazę domyślnych nazw użytkowników i haseł dla kilku tysięcy urządzeń, stosuje zatem klasyczny atak słownikowy.
Po pomyślnym zalogowaniu się następuje faza instalacji właściwego oprogramowania, które przemieni urządzenie w jeden z węzłów botnetu. Przykładowo, malware o nazwie „aidra” pobiera skrypt o nazwie getbinaries.sh, który jest uruchamiany. Skrypt pobiera i uruchamia binaria botnetu, który z kolei łączy się z serwerem zarządzającym całym botnetem (najczęściej wykorzystywany jest tu protokół IRC). W tym momencie botnet rozrasta się o kolejne przejęte urządzenie.
Profilaktyka i wykrywanie
Ponieważ malware, które instaluje się na urządzeniach sieciowych w ramach botnetu jest bardzo trudno wykrywalne, gdyż praktycznie nie widać żadnych, dających się jednoznacznie zidentyfikować cech „zarażenia”, bardzo ważna jest odpowiednia profilaktyka. Sprowadza się ona w zasadzie do kilku podstawowych zasad, wspólnych dla wszystkich punktów sieci, nie tylko routerów czy modemów:
- nie pozostawiajmy domyślnych (fabrycznych) loginów oraz haseł na urządzeniu, do którego jest możliwy dostęp z poziomu sieci (poprzez np. telnet, SSH czy panel administracyjny w postaci aplikacji www)
- wyłączmy bądź zablokujmy usługi sieciowe udostępniane przez urządzenie, które nie będą wykorzystywane
- dbajmy o regularne aktualizacje firmware, śledźmy strony producentów w poszukiwaniu informacji o nich lub potencjalnych zagrożeniach dotyczących posiadanych urządzeń. Możemy także szukać takich informacji w serwisach poświęconych bezpieczeństwu informatycznemu (PacketStorm Security, Secunia)
Sporo przydatnych informacji mogących pomóc w zdiagnozowaniu naszej sieci pod kątem obecności malware na urządzeniach sieciowych można znaleźć w opracowaniu Pavla Celedy „Network Security Monitoring and Behavior Analysis”. Jest ono dostępne w postaci dokumentu PDF do pobrania pod adresem http://www.ces.net/events/2012/campus-monitoring/p/celeda-behavior-analysis.pdf.
W wyszukiwaniu informacji o podatnościach w omawianych urządzeniach nieocenioną pomocą jest sama sieć, a w szczególności następujące miejsca:
- www.routerpwn.com – zebrane szczegółowe dane na temat większości najpopularniejszych urządzeń, z podziałem na producentów i konkretne błędy. Całośc uporządkowana jest chronologicznie i zawiera odnośniki do szczegółowych informacji
- opisywany już na łamach Sekuraka w artykule Wojciecha Smola „Shodan, czyli Google dla urządzeń sieciowych” projekt Shodan (http://www.shodanhq.com/), zbierający informacje o podłączonych do sieci urządzeniach, wraz z ich charakterystyką, adresami IP i wieloma innymi użytecznymi informacjami
- serwis Packet Strom Security (http://packetstormsecurity.org/) – kopalnia wiedzy, nie tylko w opisywanym temacie, ale o wszelkich podatnościach, exploitach oraz sztuczkach i kruczkach związanych z tematyką IT security
- strony firmowe producentów urządzeń sieciowych, przykładowo http://tools.cisco.com/security/center/publicationListing.x, będąca wyszukiwarką informacji o podatnościach w urządzeniach Cisco.
Mimo, że temat nie jest tak popularny i „medialny”, jak włamania do serwisów internetowych czy ataki DDoS na popularne usługi – nie brakuje o nim informacji i każdy zainteresowany może bez problemu do nich dotrzeć. Nawet do kodów źródłowych opisywanych tutaj botnetów.
Źródła
- Heads of the Hydra. Malware for Network Devices – jedna z najdokładniejszych analiz na temat botnetów zbudowanych na urządzeniach sieciowych, napisana przez Martę Janus z Kaspersky Lab
- analiza botnetu Tsunami (format .pdf)
- Botnet psyb0t stworzony z małych routerów wbudowanych
- Broadband Routers and Botnets: Being Proactive
- Port scanning /0 using insecure embedded devices
- lightaidra 0×2012 (aidra)
Rafał 'bl4de’ Janicki– bloorq[at]gmail.com
Zastanawiam się, w jaki sposób botnet zachowuje się, gdy plik nie jest używany przez oprogramowanie i jak „dodaje się do autostartu” rc-update? No i w jaki sposób znajduje kolejne adresy IP, w randomowy sposób odpytuje dane IPiki (jak dziala shodanhq)? Czy przechwytuje jakoś adresy które później próbuje odpytać ze standardowymi loginami/hasłami?
@Mateusz -> z poszukiwaniem IPków – różnie bywa, ale jedna z opcji to odpytywanie losowe. AFAIR dość szczegółowo to jest opisane np. w analizie psyb0t-a – pdf linkowany w tekście
2012 – eksperyment z botnetem Carna – to ten sam botnet który opisano w artykule:
http://zaufanatrzeciastrona.pl/post/przeskanowal-caly-internet-botnetem-ktory-stworzyl-skanujac-internet/
?
AFAIK – tak :)
@Amadeusz
Dokładnie :)
Swoją drogą, nigdzie nie spotkałem się z podanym przez Ciebie artykule podejrzeniem, że to Fyodor miałby być tym rzekomym anonimowym hakerem :)
„W 2010 roku wspomniany już wcześniej Gadi Evron we wpisie opublikowanym na liście dyskusyjnej SecurityFocus.org poinformował o odkryciu czeskich specjalistów do spraw bezpieczeństwa o odkryciu nowego robaka zarażającego routery i budującego duży botnet przeznaczony do ataków DDoS.” – Panowie, polska języka – trudna języka ;>
błąd przy grafice 2102
Tak w ogóle – duże podziękowania dla Rafała – naszego czytelnika za przygotowanie tego tekstu.
Wbrew pozorom jest z tym dużo pracy – podczas recenzji tekstu trochę go wywróciliśmy – trochę zostało wycięte, sporo dodane, część przeorganizowana, część uporządkowana. Miejmy nadzieję że finalny efekt się Wam podoba ;-)
Fajny tekscik bl4de. Od sibie dodalbym jeszcze takie pozycje jak:
http://ph-neutral.darklab.org/talks/wlan.html (kiedys byla online dostepna prezentacja, teraz nie widze ale moze zle szukam)
http://www.data.proidea.org.pl/confidence/10edycja/materialy/prezentacje/FilipPalian_MateuszKocielski.pdf
Dla osob niebawiacych sie w edytory tekstu z funkcja wylapywania bledow, a zadajacych dobre pytania w komentarzach, z pewnoscia linki okaza sie pomocne w pelniejszym zrozumieniu tematu (szczegolnie slajdy z odnosnikami do kolejnych materialow).
@f
Dziękuję za dodatkowe materiały :)
Pozdrawiam :)