Hermina
15 °C
27 °C

Szétlőttünk egy szervert ionágyúval

2011.03.23. 20:18
2007-ben egy vélhetően orosz eredetű online támadás napokra lebénította az internetet Észtországban, egy év múlva ugyanez ismétlődött meg Grúziában a dél-oszétiai konfliktus online melléktermékeként. Tavaly egy izraeli katonai vírus, a Stuxnet csapott le iráni atomlétesítményekre, szakértők szerint annyi kárt okozva, ami két évvel veti vissza az iráni atomprogramot, később a Wikileaks-botrány kapcsán kitört kiberháborúban online bankokat értek sorozatos támadások. Pár év alatt a szemünk előtt vált az internet háborús zónává; ennek a háborúnak a legpusztítóbb fegyvere, a DOS, avagy túlterheléses támadás pedig olyan egyszerű, hogy bárki különösebb technikai tudás nélkül a gép bekapcsolásától számított öt perc alatt összerakhatja és már lőhet is vele. Ami azért minimum aggasztó.

DOS annyit tesz, Denial of Service, tükörfordításban ez azt jelenti, a kiszolgálás megtagadása. Ha két D van az elején, akkor az egyik a distributed, vagyis elosztott szó rövidítése, ez azt takarja, hogy több gépről támadunk egyszerre.

A DOS valójában egy gyűjtőfogalmom, és rengeteg fajtája van. A legegyszerűbb az ICMP ping dos, ami a ping parancson alapszik, ez egy adatcsomagot küld a célpont szerverig, és onnan vissza, közben méri az időt; arra jó, hogy ellenőrizhetjük, milyen sebességgel érünk el egy gépet a hálózaton (ha például parancssorba beírjuk, hogy ping www.index.hu, azzal lemérhetjük az Index szervereinek válaszidejét). Ha ebből a tesztadatcsomagból kiküldünk másodpercenként egymilliót, az a célpont szerveren a puszta tömegével okoz fennakadást a működésben, mert amíg ezekre válaszol, nem marad ereje a normál látogatók kiszolgálására.

A kifinomultabb támadási technikák a szervert olyan lekérdezésekkel terhelik, amelyekkel az vagy nem tud mit kezdeni, vagy aránylag sok időbe és erőforrásba kerül a kezelésük. Ilyen például a SYN flood, ami a kapcsolat felépítéséhez szükséges szinkronizálás folyamatára épül, ilyen kérésekkel bombázza a szervert, eldugítja a kapcsolatok adatait tároló memóriát, és azt használja ki, hogy ha a SYN kérés nyugtázására nem kap választ a szerver, azt megpróbálja még néhányszor elküldeni.

SkullKey

Egy rosszul bekonfigurált webszervernél akár több ezerszeres lehet a támadásra használt, és a célpontnál lefoglalt erőforrások között a különbség: egy szál gprs kapcsolatról túl lehet terhelni egy webshopot vagy kisebb netbankot. Egy ilyen támadáshoz azonban már feltétlenül szükséges a célpont webkiszolgálójának, vagy az operációs rendszere hálózatkezelésének mélyebb ismerete.

Zombik hajnala

A védekezés DOS-támadás ellen elvileg egyszerű: tiltólistára kell tenni a szerveren azokat az ip-címeket, ahonnan a támadás érkezik, és egyszerűen nem foglalkozni velük. A gyakorlatban ez több ok miatt sem működik: egyrészt ha egy támadás szabályos lekéréseket használ, nehéz eldönteni, hogy valaki csak kíváncsi, vagy szét akarja lőni a szerverünket. Másrészt ott a már említett második D, és a zombigépekről indított támadás, rengeteg, állandóan változó ip-címmel. Hálózati szinten lehet szűrni a nem szabványos csomagokat, és speciális címekről érkező lekérdezéseket, de az internet felépítése olyan, hogy ha egy szerverre elég nagy forgalmat generálunk, az összedől.

DOS-sal támadni gyakorlatilag bármit lehet, ami az internetre csatlakozik: szervert, okostelefont, akár kenyérpirítót is, ha van ip-címe. Vannak ugyanakkor olyan szolgáltatások, amiket nem érdemes ilyen módszerrel támadni, például a Google vagy a YouTube, ahol az egész világon szétszórt szerverparkok között oszlik el a terhelés, ha egy szervert ki is üt a támadó, negyvenezer másik veszi át a munkáját.

Turbolaser

Támadhatók viszont például az internet leginkább kritikus infrastruktúrájának számító DNS root szerverek, az a 13 központi kiszolgáló, ami a weboldalak neveit fordítja le ip-címekké. Történt már több ilyen támadás, a legutóbbi kapcsán az USA védelmi minisztériuma be is jelentette, hogy a következő ilyet hadüzenetnek tekinti, és porig bombázza a támadót válaszként.

Ionágyú for dummies

A DOS-támadások általában nem a legkifinomultabb hekkertrükkök közé számítanak (már ha eltekintünk a zombihálózatok építésétől, összehangolásától és irányításától), de egészen a legutóbbi időkig azért igényelt némi háttértudást, hogy az ember beszerezzen és kezeljen egy DOS-oló programot.

Ezen változtatott gyökeresen a LOIC, vagyis Low Orbit Ion Cannon (a Command and Conquer számítógépes játékban szereplő ionágyúról kapta a nevét), ami eredetileg egy hálózattesztelő szoftver volt, és a szcientológia egyház ellen szerveződött internetes mozgalom, a Project Chanology használta először fegyverként. Bár egy jól bekonfigurált tűzfal megállítja, és a támadó ip-címét sem rejti el, annyira egyszerű a kezelése, hogy tényleg bárki képes a használatára – ráadásul a Hive Mind funkcióval az irányítása lepasszolható egy központi szervernek, ezzel gyakorlatilag önkéntesen átadva a gépünk kapacitását és sávszélességét a nagy közös ionágyúnak. Például egy olyannak, ami tavaly decemberben lelőtte a PayPalt, a Visát és az Amazont.

loicc

Ezt a programot próbáltuk ki élesben, egy ismerős rendszergazda által felajánlott célpontszerveren. És mielőtt még továbbmennénk, ahogy a veszélyes bűvészmutatványok előtt, itt is figyelmeztetnünk kell mindenkit, hogy ezt ne próbálja utánunk csinálni, ugyanis a DOS-támadás a Btk 300/C paragrafusa szerint („Aki adat bevitelével, továbbításával, megváltoztatásával, törlésével, illetőleg egyéb művelet végzésével a számítástechnikai rendszer működését jogosulatlanul akadályozza, vétséget követ el”) két évig terjedő szabadságvesztéssel büntethető.

Fire in the hole

A LOIC kezelése tényleg gyermekien egyszerű. Letöltjük, elindítjuk, megadjuk a célpont ip-címét (opcionálisan lehet a beállításokkal szórakozni, de nem muszáj, ha nem értjük, mi mit jelent), és bumm, már megy is.

Vagy ha nem is megy, hát megyeget. Egy 35 megabites vonalon lógó webszervert támadtunk meg tesztként az Index szerkesztőségéből, a speedtest.net adatai szerint 60 megabites kimenő sávszélességen, tehát papírforma szerint simán szét kellett volna tudnunk lőni a célt. A gyakorlatban azonban a hálózati monitor 3 százalékos terhelést mutatott csak leendő áldozatunknál.

A kudarc oka egyrészt az volt, hogy a támadó gépünk processzora túl gyenge volt ahhoz, hogy a teljes sávszélességet kihasználja, egyszerűen nem tudott annyi lekérdezést kiküldeni, amennyi elfért volna a dróton. Másrészt a mi hálózatunk, és a célpont szerver is jól volt konfigurálva, előbbi egy szint után (amit valószínűleg tizedmásodpercek alatt túlléptünk) lekorlátozta az adott idő alatt kifelé küldött lekérdezések számát, utóbbi pedig azt, hogy egy ip-címről mennyi kapcsolatot építhet fel a rendszer. Magyarán csak annyit értünk el, hogy villámgyorsan feltöltöttük az egy gépről létesíthető kapcsolatokat a limitig, és ezzel valamennyire csökkentettük azt, hogy mellettünk mennyien férnek még be a szerverre.

Ion cannon

A LOIC tehát önmagában, egy az egy ellen nem sokat ér egy rendesen karbantartott szerver ellen; ahhoz, hogy ilyen felállásban eredményesek lehessünk, ennél sokkal kifinomultabb fegyverre (és mélyebb szakértelemre) van szükség. Veszélyessé akkor válik az ionágyú, ha – ahogyan az Anonymous által szervezett támadások esetében – több tízezren vetik be egyszerre a kőbalta bonyolultságú eszközt.

Végül, hogy legyen valami sikerélményünk, a célpont ellen egy helyi hálózaton levő 12 processzoros szerverről indítottuk meg a végső támadást. A végtelen sávszélesség és brutális számítási kapacitás meg is tette a hatását, a megtámadott szerver szinte azonnal lebénult. Persze ha már ott vagyunk a célpontunkkal egy helyi hálózaton, és nagyon rombolhatnékunk van, az ilyesfajta trükközésnél sokkal hatékonyabb, és élvezetesebb apró darabokra verni egy kalapáccsal az egész cuccot.