W związku z licznymi i interesującymi komentarzami obecnymi na wielu serwisach, spróbuję odpowiedzieć na najczęściej pojawiające się pytania dotyczące działania sieci botnet i ataków DDoS.
Wstępne założenia:
Posiadamy przykładowo 100 000 komputerów pod kontrolą, a przejęte systemy znajdują się na całym świecie.
Systemy operacyjne:
Są to zarówno systemy z rodziny Windows jak i Linux i inne.
Jeśli chodzi o systemy Windows to do przejęcia kontroli, wykorzystywane są głównie błędy w programach klienckich takich jak przeglądarki internetowe i pluginy dla nich, komunikatory, antywirusy i inne aplikacje często spotykane w systemach z rodziny Windows. Ponadto przestępcy eksploitują błędy w samym systemie operacyjnym lub aplikacjach typu MS Office, Outlook itp. Dodatkowo źródłem infekcji (równie dużym) są sami ludzie, klikający w załącznik w wiadomości e-mail (być może wiadomość została wysłana od znajomego, który już został zarażony wirusem, który tę wiadomość po cichu wysłał, więc takiej wiadomości bardziej ufamy), instalujący fałszywe kodeki video, które zamiast wyświetlenia filmu video instalują trojana itp. Czasem brak najświeższych aktualizacji lub błędy, które nie są jeszcze znane w połączeniu z odwiedzaniem nawet zaufanych witryn (które to mogą posiadać błędy i mogą przekierowywać na strony nie zaufane, choćby poprzez odpowiednio spreparowaną reklamę na stronie WWW) – mogą doprowadzić do infekcji systemu.
Jeśli chodzi o systemy Linuksowe i Unixopodobne to w większości przypadków są to infekcje oprogramowania serwerowego odpowiedzialnego za dynamiczne strony WWW lub masowe próby zalogowania się na konta, których hasła są łatwe do zgadnięcia.
Statystycznie rzecz biorąc, zarażonych jest więcej komputerów z systemami Windows.
Wartość łącza
Tak naprawdę – 100 komputerów z łączami po 1 Mb/s będzie równe jednemu przejętemu serwerowi z łączem 100 Mb/s, bo dla atakującego liczy się przede wszystkim moc łącza. Oczywiście usuniecie bota z 1 komputera będzie o wiele prostsze niż ze 100 oraz 100 komputerów będzie mogło wygenerować większą ilość połączeń (choć połączeń o mniejszej skali, lecz w zależności od ataku, przestępcy może zależeć na wykonaniu bardzo dużej ilości malutkich połączeń aby maksymalnie obciążyć nie łącze a serwery ofiary), wiec coś za coś :}
Przykładowy atak:
10 000 komputerów z adresów IP z całego świata zaczyna bardzo szybko i masowo odwiedzać witrynę WWW ofiary. Dodatkowo rejestrując nowe konto użytkownika lub tylko odwiedzając poszczególne podstrony. Akcja ta wykonuje się w tle i jest niewidoczna dla użytkownika zarażonego komputera.
Serwery ofiary, które standardowo są w stanie obsłużyć przykładowo 5 000 użytkowników na sekundę, w chwili ataku posiadają takich użytkowników 10 000. W związku z tym pojawia się problem przeciążenia samych serwerów stron WWW oraz silników baz danych, które posiadają skończoną liczbę maksymalnej ilości obsługiwanych w tym samym czasie użytkowników.
Każdorazowo odwiedzając stronę wysyłamy i odbieramy odpowiednią ilość danych. Im szybsze łącze posiadamy tym więcej danych jesteśmy w stanie przesłać w tym samym czasie. Im więcej komputerów wykonuje to samo, tym większe łącze muszą posiadać serwery ofiary, gdyż najzwyczajniej w świecie łącze jest zapychane po sam przysłowiowy sufit.
Uproszczony schemat podłączenia:
Internet jest skonstruowany z drzewek sieci połączonych ze sobą. Innymi słowy jeśli posiadamy podłączenie do internetu (choćby atakowanej strony) od firmy X, to ta firma posiada na przykład podłączenia do firm Y1 oraz Y2 oraz Y3. Tamte firmy mogą być podłączone na przykład do firmy, która zajmuje się wymianą ruchu w danym kraju z innymi krajami (Z1 czy Z2).
W momencie ataku, ruch internetowy przychodzi od:
1) klientów firmy X ( zarażonych złośliwym oprogramowaniem ),
1) klientów firm Y1 Y2 Y3 oraz Z1 Z2 podłączonych bezpośrednio w danym kraju,
2) klientów z kraju A, którzy łączą się przez firmę Z1 następnie do firmy Y1, a następnie do firmy X,
3) klientów z kraju A, którzy łączą się przez firmę Z1 następnie do firmy Y2, a następnie do firmy X,
4) klientów z kraju A, którzy łączą się przez firmę Z1 następnie do firmy Y3, a następnie do firmy X,
5) klientów z kraju A, którzy łączą się przez firmę Z2 następnie do firmy Y1, a następnie do firmy X,
6) klientów z kraju A, którzy łączą się przez firmę Z2 następnie do firmy Y2, a następnie do firmy X,
7) klientów z kraju A, którzy łączą się przez firmę Z2 następnie do firmy Y3, a następnie do firmy X,
(……)
Wymieniłem jeden kraj i przykładowe połączenie 5 firm. Połączeń może być więcej, a krajów, z których pochodzi atakujący ruch internetowy jest ponad 200.
Proces obrony przed atakiem (zazwyczaj bezskuteczna):
Najpierw my, a następnie firma X, zbiera informacje o 10 tysiącach adresów IP z całego świata, i blokuje dostęp tych adresów do swoich stron u siebie w firmie. Serwery nie są już obciążone, lecz ruch przychodzący z wszystkich stron nadal jest do firmy przez zarażone komputery przesyłany. W związku z tym, łącze do operatora Y1 nadal jest zapchane, nieudanymi połączeniami, uniemożliwiając normalne korzystanie.
W takiej sytuacji firma X komunikuje się z firmą Y1 i pyta/prosi/nakazuje blokadę 10 tysięcy adresów IP u operatora Y. Operator Y blokuje lub też nie dostęp z 10 tysięcy adresów IP. Tu pojawia się poważny problem na stopie komunikacji z operatorem. Musi z nami współpracować, musi albo zebrać swoje dane albo zgodzić się na użycie naszej listy adresów IP (być może w tych adresach podamy adres popularnego serwisu WWW). A zegar tyka, z każdą sekunda narażamy się na straty finansowe.
Ruch tak naprawdę do firmy X przychodzi z firm Y1 oraz Y2 oraz Y3. Więc procedura ta musi zostać powtórzona dla 3 firm. Każda z nich posiada inne zasady kontaktu, współpracy, blokad, reakcji itd. A zegar tyka.
Załóżmy, ze firmy Y1-Y3 zablokują ruch, który przychodzi do nich z ich własnych sieci, z innych podłączonych do nich sieci i z firm Z1 i Z2. Sam ruch pomiędzy Y1, a firmą X będzie już czysty, jednakże ruch przychodzący przez firmy Z1 oraz Z2 a następnie do firmy Y1 nadal będzie zabierał potrzebne pasmo firmie Y1. Firma Y1 musi skomunikować się z firmą Z1 i podobnie jak poprzednio, ustalić blokadę w firmie Z1 na 10 tysięcy adresów IP z całego świata. Podobnie musi zrobić z firmą Z2, z której nadal pakiety atakujące są wysyłane do firmy Y1 (i tutaj dopiero blokowane). Zegar tyka.
Firmy Z1 i Z2 blokują ruch i kontaktują się z firmami z innych krajów, z którymi mają połączenie. Pojawia się problem różnego języka (komunikacja), różnych stref czasowych (choćby połączenie Japonia-USA), problem różnego prawa, problem zaufania jednej firmy do drugiej itd. A zegar tyka.
Tak skonstruowany przykład pokazuje w bardzo prosty sposób, że BARDZO trudno jest zablokować adresy IP, z których przychodzi atak, gdyż w związku ze swoją mocno rozproszoną budową, opartą o różne kraje – sieć internet jest tak naprawdę bardzo trudną do kontrolowania w skali globalnej.
Należy przypomnieć sobie wstępne założenie naszego ataku. Posiadamy 100 000 komputerów. Więc nawet jeśli po 24 godzinach (cud?) uda się wyfiltrować większą część ruchu atakującego – przestępcy wybierają następne 10 000 adresów IP, które zaczyna cały proces od nowa !!! Ponownie musimy uruchamiać procedury blokujące mając na uwadze wszystkie problemy, o których była mowa. Atakujące komputery mogą dynamicznie się zamieniać rolami, raz odpoczywając, raz atakując, a raz udając zwykłego użytkownika odwiedzającego witrynę. W takim wypadku znów bardzo trudno jest odróżnić ruch atakującego (i jego IP) od ruchu legalnego użytkownika. A zegar tyka :]
Karanie użytkowników końcowych:
Gdybyśmy chcieli namierzyć i ukarać użytkowników posiadających zainfekowane systemy, spróbujmy sobie wyobrazić jak miałaby taka akcja namierzania, a zwłaszcza karania wyglądać.
100 000 komputerów z 200 różnych krajów. W każdym kraju inny operator i inne prawo (czasami podobne)!!! Awykonalne.
Dostawcy sieci internet ISP i blokady:
Propozycja wspólnej bazy zainfekowanych adresów IP jest zasadniczo sensowna, ALE:
– często za jednym adresem IP, znajduje się kilka tysięcy komputerów (NAT) – co wtedy?
– w 200 różnych krajach będzie średnio 1-50 ISP, co daje średnio 5000 firm, które powinny się stosować do tych zaleceń (jedne nie chcą bo im nie zależy, gdyż nie mają w tym interesu; inne nie chcą bo wolą aby klient nie był blokowany gdyż wtedy muszą obsłużyć problem a to generuje koszty; jeszcze inne uważają, że podawane informacje o zarażonych komputerach w ich sieci to nie prawda; itd.).
– dodatkowo ponownie wraca tematyka prawna ( nie można stworzyć ustawy obejmującej cały świat) oraz językowa,
– problem komunikacyjny pomiędzy firmami.
Osobiście mocno polecamy wykorzystywanie w firmach ISP metodologii takich jak: dns-blackholing, bgp-blackholing oraz blokowanie zainfekowanego klienta (oraz pomoc w usunięciu wirusa). Z własnych praktyk wiemy, że takie zachowanie jest jak najbardziej opłacalne i warte zachodu.
Anonimowość przestępców:
Podobnie jak w zwyczajnej przestępczości zorganizowanej, osoby sterujące botnetami, zarabiają na nielegalnej ich działalności, w związku z tym przeznaczają odpowiednią ilość pieniędzy na zapewnienie sobie anonimowości. Pomijając fakt, że często boty komunikują się zaszyfrowanymi kanałami, z wykorzystaniem sieci P2P, co mocno utrudnia jakąkolwiek ich analizę – atakujący ukrywają się za kolejnymi adresami IP, które jedynie odbijają ich polecenia skierowane do botów. I jeśli wyobrazimy sobie sytuację, w której dowiadujemy się, że adres IP znajdujący się na terenie innego kraju – wygląda na ten, z którego przychodzą komendy nakazujące wykonanie na przykład ataku lub rozsyłanie spamu – musimy skontaktować się z odpowiedzialnym za ten adres dostawcą internetu (inna kultura, inny język, inne prawo – z jakiej racji firma X miałaby udostępniać jakiekolwiek dane firmie Y z innego kraju, dotyczące klientów). Jeśli nawet jakimś cudem uzyskamy informacje na temat końcowego użytkownika korzystającego z tego adresu IP – okazuje się, że był to zwykły niczego nieświadomy człowiek, którego komputer został wykorzystany [tak jak pozostałe 100 000] do przesłania komunikacji z innego adresu IP, znajdującego się w całkiem innym kraju. Musimy w magiczny sposób uzyskać informację z jakiego adresu IP nastąpiło połączenie (nie każdy użytkownik [czytaj: prawie żaden], posiada program zapisujący każde możliwe połączenia w komputerze). Jeśli nawet uzyskamy ten adres IP, znów wykorzystując inny język próbujemy uzyskać informację na temat właściciela adresu IP. I tak w kółko. Adresy IP są przez przestępców cały czas zmieniane i cała zabawa zaczyna się od nowa. Innymi słowy jest bardzo trudno namierzyć przestępców wykorzystujących różnego rodzaju aplikacje umożliwiające ukrywanie się poprzez setki maszyn, nad którymi posiada się kontrolę.
Podsumowanie:
Postarałem się wymienić podstawowe problemy rodzące się podczas próby obrony przez botnetami. Większość przykładów z tego tekstu ma odzwierciedlenie w rzeczywistości, o czym czytelnicy tego bloga przekonują się każdego dnia. Osobiście nadal twierdzę, że w związku z tym co napisałem powyżej, sieci botnet są jednym z najpoważniejszych zagrożeń dzisiejszej sieci Internet i będzie bardzo trudno w przyszłości powstrzymać ten rosnący trend.
Jeden komentarz do
1 kwietnia, 2009 o godzinie 01:14
Bujanie w chmurach…
Planowałem sobie na dzisiaj artykuł o rosyjskiej firmie budującej
ofertę hostingu aplikacji w chmurze obliczeniowej, która wobec
problemów ze sfinansowaniem sprzętu zdecydowała się zbudować i
wykorzystać do tego celu botnet – sieć zawirusow…