Storm Botnet: I. - Úvod do botnetov

04.01.2009 19:54 | triki

V posledom čase som sa téme botnetov, špeciálne Stormu venoval trošku viac, preto som sa rozhodol, že sa podelím so svojimi vedomosťami. Preto publikujem aj tento seriál. Dopredu vás upozorňujem, že niektoré časti môžu byť trošku dlhšie, tak dúfam, že to neodradí.
V prípade otázok, hlade po ďalších informáciách a pod. je k dispozícii diskusia i PM. Rád si vypočujem aj kritiku, pripomienky a feedback celkovo je vítaný.
_______________________________________________________

Seriál je zameraný na Storm Botnet, no na začiatok si zopakujeme niektoré základy o botnetoch všeobecne.

Čo je botnet

Botnet sa dá charakterizovať ako sieť počítačov schopných istým spôsobom komunikovať a ktoré môžu byť ovládané z nadradeného - riadiaceho počítača. Zároveň sú schopné koordinovane vykonávať od neho obdržané automatizované príkazy a úlohy. Komunikujú pomocou niektorého zo sieťových protokolov, často implementujú viaceré (P2P, IRC, HTTP ...).

Všeobecne sa môžu botnety orientovať dvoma smermi: dobrým a zlým. "Dobré" botnety sa väčšinou využívajú na výskumné účely, riešenie zložitých výpočtových úloh, paralelné a gridové výpočty, a pod. Pod slovom botnet sa v súčasnosti ale viac rozumie sieť počítačov využívaná na "zlé" účely. Týmto spôsobom využívania sa budeme zaoberať aj v tejto práci.

Botnet používaný na nekalé účely využíva jednotlivé počítače, ktoré dokáže ovládať, bez vedomia ich vlastníkov a bez nutnosti sa na dané stanice prihlásiť. Ich spoločná činnosť môže ísť rôznymi cestami. Najčastejšie sa botnety budujú za účelom peňažného zisku alebo získania popularity autora, pričom jedno nevylučuje druhé. Pri tom vykonávajú úlohy ako:

  • šírenie sa
  • kompromitovanie užívateľských a korporátnych počítačov
  • získavanie užívateľských dát
  • kradnutie osobných a prihlasovacích údajov z počítačov
  • rozosielanie spamu na objednávku
  • DDoS útoky
  • phishing
  • prenájom častí alebo celého botnetu klientom
  • hostovanie web-stránok
  • poskytovanie proxy pre niektoré služby

Šírenie botnetu, špecifickejšie kódu, ktorý zabezpečí možnosť komunikácie a ovládania napadnutého počítača sa najčastejšie deje pomocou rozosielania spamu s infikovanou prílohou a sociálne inžinierstvo. K tomu sa pridávajú ešte zraniteľnosti webových prehliadačov a samotných systémov. Toto umožní kódu zahniezdiť sa v počítači a v prípade potreby bez vedomia majiteľa vykonávať škodlivú činnosť. Takto infikovaný počítač, ktorý je súčasťou botnetu sa zvykne označovať ako "bot" alebo "zombie". Na to, aby vedeli čo je aktuálnym cieľom botnetu sa tieto počítače pripájajú k riadiacemu centru ("Command-and-Control center") odkiaľ je ich činnosť koordinovaná. Toto riadiace centrum je väčšinou počítač s rýchlym pripojením na internet, aby bolo možné rýchlo pripájať väčšie množstvá klientov a znížiť riziko odhalenia iných ako regulárnych aktivít. Bežia na ňom služby a procesy potrebné pre ich ovládanie.

Riadiace centrum zvykne byť tak isto kompromitovaný počítač, ku ktorému sa bezpečne pripája osoba riadiaca činnosť botnetu (označovaná aj ako "botnet herder"). Znižuje sa tak riziko jeho triviálneho odhalenia. Čím viac takýchto centier existuje, tým viac je decentralizovaná štruktúra botnetu. Sieť by mala byť decentralizovaná, kvôli útokom na ňu. V prípade, že by na riadenie bol používaný jeden centrálny bol, bolo by "jednoduché" odstaviť celú sieť ak by sa nad ním podarilo získať kontrolu alebo ho odstaviť.

Príkladom môže byť v celku rozšírený spôsob ovládania - privátny IRC kanál bežiaci na kompromitovanom počítači. Pred začiatkom šírenia sa kompromituje server, resp. počítač s rýchly pripojením na internet. Na ňom sa nainštalujú a spustia služby IRC a vytvorí sa privátny kanál s prístupom len pomocou hesla. Vytvorí a špecifikuje sa nick admina, ktorý môže zadávať príkazy. Na kanály zostane prihlásený aspoň jeden bot, ktorý bude kanál udržiavať funkčný. Takto sa z tohto počítača stáva riadiace centrum. V pripravenom malware, ktorý bude šírený, sa uložia parametre potrebné na pripojenie k danému kanálu na serveri. Malware za pripraví na šírenie. Po infikovaní počítača, kde sa podarí získať administrátorský prístup sa tento malware pokúsi pripojiť k danému kanálu. Po úspešnom pripojení je pripravený na použitie. Samozrejme, vykonáva len príkazy od špecifikovaného užívateľa, ktoré majú často veľmi špecifickú syntax. Záleží od programátora, ktorý dané funkcionality implementoval. Na riadiace centrum pristupuje majiteľ botnetu často bezpečnými spôsobmi - používanie bezpečných tunelov, séria proxy, v niektorých prípadoch šifrované VPN. Pokiaľ používa aj servre iných krajín, je celkovo veľmi ťažké ho vystopovať. Takto si spoločnosti, ak im vznikne ujma na majetku vďaka takejto činnosti rozmyslia, či je pre nich výhodné investovať do ďalšieho spätného hľadania pokiaľ stopy vedú mimo krajinu. Problémy zvyknú byť s rôznymi právnym úpravami platiacimi v rôznych štátoch a vnútornými politikami firiem.

Predchádzajúci príklad zároveň ukazuje najväčší problém tejto centralizovanej štruktúry. Pokiaľ by bol počítač správajúci sa ako riadiace centrum odhalený a vyliečený, resp. vypnutý alebo by nad ním kontrolu prevzal niekto iný, riadenie botnetu je už ďalej nemožné. Každopádne sú si tohto problému tvorcovia vedomí, preto používajú aj alternatívne spôsoby - momentálne je v tomto najúspešnejšia P2P komunikácia, no tu je už trošku odlišná architektúra.

V ďalšej časti sa zameriame na vznik, funkcie a život jedného takéhoto botnetu nazývaného Storm Botnet.

Zdroje k tejto časti: