Botnet – zbiór połączonych ze sobą botów, których zadaniem jest utrzymywanie porządku na kanale IRC. Oprócz tego, wewnątrz botnetów są tzw. botlinie – czyli wewnętrzne czaty, na których mogą rozmawiać osoby, posiadające uprawnienia do sterowania botami. Wiele botnetów ma znacznie większy zasięg niż tylko jeden kanał. Istnieją botnety, w skład których wchodzą setki botów, działających często na różnych kanałach a nawet w różnych sieciach IRC.
Przyczyny stawiania botnetów
Jeden bot zazwyczaj nie wystarcza do skutecznego kontrolowania kanału, ze względu na splity oraz możliwość zrywania się łącza między botem i serwerem IRC. Z tego względu na kanale musi zwykle przebywać grupa botów, najlepiej przyłączona przez różne serwery danej sieci IRC, które powinny z sobą współpracować, nawzajem się wspierając.
Tego typu grupy botów powstają zazwyczaj spontanicznie – odpowiednio zaawansowani technicznie użytkownicy kanału stopniowo wstawiają na kanał kolejne boty. Każdy nowy bot musi być odpowiednio skonfigurowany, aby nie stwarzał konfliktów z innymi. Na przykład musi mieć dopisane do „listy przyjaciół” wszystkie wcześniejsze boty oraz nie może forsować innego trybu kanału niż uzgodniony wcześniej. Jednak, nawet przy dobrym zegraniu botów, gdy są one pozostawione same sobie dochodzi wcześniej czy później do samozapętlających się konfliktów. Typowy scenariusz konfliktu wygląda tak:
- jeden z botów dopisuje z jakiegoś powodu kogoś do „czarnej listy”
- drugi bot o tym „nie wie” i gdy pierwszy założy bana po wejściu osoby z „czarnej listy” drugi zdejmie tego bana, bo nie ma danej osoby na swojej „czarnej liście”
- pierwszy ponownie założy tego bana, drugi go zdejmie i tak w kółko, co uniemożliwi normalną rozmowę na kanale, gdyż kanał będzie wyglądał następująco:
bot1 has banned !*.hostxxx.neostrada.adsl.pl bot2 has changed channel mode to -b !*.hostxxx.neostrada.adsl.pl bot1 has banned !*.hostxxx.neostrada.adsl.pl bot2 has changed channel mode to -b !*.hostxxx.neostrada.adsl.pl bot1 has banned !*.hostxxx.neostrada.adsl.pl bot2 has changed channel mode to -b !*.hostxxx.neostrada.adsl.pl bot1 has banned !*.hostxxx.neostrada.adsl.pl bot2 has changed channel mode to -b !*.hostxxx.neostrada.adsl.pl bot1 has banned !*.hostxxx.neostrada.adsl.pl bot2 has changed channel mode to -b !*.hostxxx.neostrada.adsl.pl itd.
- jeśli na kanale nie będzie właścicieli botów, którzy ręcznie uzgodnią „czarną listę” na obu botach, jedynym rozwiązaniem będzie wykopać i zbanować jednego z tych dwóch botów; to jednak często pogorszy jeszcze sytuację, gdyż kolejne boty mają dopisanego tego bota do „białej listy”, będą więc go chroniły
- w rezultacie boty zaczną nawzajem wykopywać się z kanału, banować, zabierać sobie opa, aż wreszcie na kanale pozostanie jeden.
Stawianie botnetów
Aby zapobiec tego rodzaju kłopotom, boty muszą między sobą automatycznie wymieniać podstawowe informacje, takie jak białe i czarne listy, listy operatorów botów itd. Sieci te konstruowane są albo poprzez stale utrzymywane połączenie DCC CHAT albo w bardziej zaawansowanych przypadkach połączenia telnet lub nawet SSH. Połączenia te zwane są botliniami i tworzą one rodzaj wewnętrznego chata całego botnetu. Chat ten jest głównie używany do automatycznej wymiany podstawowych danych konfiguracyjnych, ale może też być stosowany do prowadzenia rozmów między osobami, które zostały do botlinii dopuszczone.
Wewnątrz botnetu istnieją flagi hierarchizujące boty. Na przykład botnet można tak ustawić, aby jeden, główny bot gromadził czarną i białą listę od pozostałych botów, a następnie zwrotnie uzgadniał ją z nimi. Można jednak ustalić, że np. białe listy będą różne na każdym z botów, zaś czarna będzie narzucana przez głównego bota. Wewnątrz botnetu odpowiednie flagi nadaje się też osobom dopuszczonym do poszczególnych botów. Na przykład część osób może sobie tylko rozmawiać w botlinii, inni mogą w pewnym zakresie sterować jednym botem, ale nie mają prawa ingerowania w działanie pozostałych, wreszcie są też tacy którzy otrzymują flagi „globalne” pozwalające sterować całą botlinią.
Botnety mogą posiadać rozmaite topologie:
- Rozproszoną – w której nie występuje wyróżniony główny bot, lecz boty wymieniają stale między sobą dane i pewna grupa użytkowników (zwykle właścicieli botów) otrzymuje jednakowe uprawnienia sterowania całością.
- Scentralizowaną – w której występuje główny bot, zwany hubem, który narzuca wszelkie reguły pozostałym botom. Całym botnetem zarządza się z huba. Taki botnet jest dość łatwo skonfigurować, ale można go całkowicie zniszczyć przez atak na huba. Z tego powodu często hub nie jest w ogóle logowany do serwera, dzięki czemu jest „ukryty”, nie można go zaatakować z poziomu IRC, a jego wytropienie i przejęcie wymaga wyśledzenia na jakim koncie jest umieszczony i dokonanie włamania na to konto lub uzyskanie do niego dostępu za pośrednictwem użytkownika posiadającego odpowiednio wysokie prawa.
- Mieszaną – w której występują boty „węzłowe” i boty częściowo ubezwłasnowolnione, przy czym węzłowe mogą z kolei być „ubezwłasnowolnione” przez boty węzłowe „wyższego rzędu”, w wyniku czego tworzy się złożony, częściowo zhierarchizowany graf, nie posiadający jednak łatwo wyróżnialnego centralnego punktu. Tego typu botnety jest niezwykle ciężko skonstruować w sposób zapobiegający konfliktom.
Społeczny aspekt botnetów
Botnety oprócz funkcji pilnowania kanałów mają szereg aspektów społecznych – można je rozbudowywać nie tylko w oparciu o boty z danego kanału, lecz także tworzyć botnety międzykanałowe, a nawet między różnymi sieciami IRC. Celem takich rozbudowanych botnetów nie jest już zarządzanie kanałami lecz tworzenie rodzaju „podsieci”, dostępnej dla grona „wybranych” – czyli tych, którzy potrafią postawić, poprawnie skonfigurować i utrzymać bota.
Botnety oparte na trojanach
Botnety tego rodzaju służą do zmasowanego ataku na określone kanały, serwery lub nawet całe sieci IRC. Takie botnety powstają w następujący sposób:
- do pliku dystrybucyjnego klienta IRC, skryptu lub bota dodaje się trojana i tak spreparowany plik dystrybuuje się w sieci (Czasami trojany tworzące botnety są też dodawane do programów niemających żadnego związku z IRC.)
- trojan ten po zainstalowaniu na komputerze ofiary uruchamia prymitywnego bota IRC, który loguje się do wybranej przez twórcę trojana sieci i wysyła do niego ustalony komunikat ctcp, że jest już gotowy do pracy, po czym zostaje włączony do botnetu.
- właściciel komputera, z którego został uruchomiony bot-trojan, nie jest świadomy tego faktu
- osoba kontrolująca botnet ma zatem dostęp do dużej liczby botów, którymi na określoną komendę może wejść na dowolny kanał i próbować go przejąć
- tego rodzaju botnety są również wykorzystywane do „oślepiania” serwerów, w celu spowodowania splitu i przejęcia danego kanału „zwykłymi” botami
- botnety tego typu nie tylko atakują użytkowników czy serwery IRC, lecz również inne cele niezwiązane z IRC-em, np. określonych serwerów przedsiębiorstw czy instytucji, najczęściej przez zmasowany atak typu DDoS (Distributed Denial of Service attack); w tym przypadku IRC służy wyłącznie do koordynowania całego ataku.
Bibliografia
- An Introduction to IRC Bots z coste.com. cotse.com. [zarchiwizowane z tego adresu (2006-06-27)].
- Curve, Just What Is a Botnet?, The DALnet Ezine. zine.dal.net. [zarchiwizowane z tego adresu (2011-09-17)].