DDoS támadások veszélyei és az ellenük való védekezés lehetséges módszerei Gyányi Sándor
DoS támadás meghatározása Denial of Service: szolgáltatás megtagadás. A támadó a célpont informatikai rendszerét próbálja olyan módon túlterhelni, hogy az képtelen legyen a normál, üzemszerű működésre és így az általa nyújtott szolgáltatás nyújtására. Leggyakoribb módszer: túlterhelés.
„Klasszikus” DoS A célpontot egyetlen pontból támadják. A támadó a célpont erőforrásait próbálja lefoglalni. Lehetséges hálózati rétegben (pl. TCP Syn Flood Attack) vagy alkalmazási rétegben (e-mail flooding vagy anonymous ftp tárolóhely lefoglalás)
TCP Syn Flood Attack Az IP hálózatok - így az Internet is - legnépszerűbb szolgáltatásai (SMTP, HTTP, FTP) TCP kapcsolatot alkalmaznak. TCP kapcsolat felépítését egy úgynevezett „háromutas” kézfogás előzi meg. A kliens Syn csomagot küld. A szerver Syn + ACK csomaggal nyugtáz. A kliens Syn + ACK csomaggal nyugtáz. A kapcsolat ettől a ponttól működőképes.
TCP Syn Flood Attack 2. A támadás menete: A támadó Syn csomagot küld, hamisított feladó címmel. A célpont tárolja a leendő kapcsolat adatait, majd Syn + ACK nyugtázó csomagot küld a feladónak (a hamisított, esetleg nem is létező címre). A célpont nem kap választ, ezért néhányszor (általában még háromszor) újraküldi az üzenetet. A célpont felszabadítja a kapcsolat tárolására szolgáló memóriát. A támadó nagy mennyiségű Syn csomaggal árasztja el a célpontot, amelynek a kapcsolatok állapotát tároló memóriája megtelik, így nem lesz képes új TCP kapcsolatot létrehozni.
TCP Syn Flood Attack 3. Védekezés módszerei: A „félkész” kapcsolatok tárolására szolgáló memória megnövelése. Speciális eljárások (Syn Cookie).
E-mail flooding A támadó a célpont SMTP szerver számára nagy mennyiségű elektronikus levelet küld. A célpont tárolókapacitása véges, így kellő mennyiségű levéltől megtelik, ami további levelek fogadását lehetetlenné teszi. Ha a célponton a beérkezett leveleket szűrésnek vetik alá, akkor a szűrés gyengeségeinek kihasználása, és így a rendszer erőforrásainak lefoglalása (pl. 2GB-nál nagyobb ZIP állomány csatolása).
E-mail flooding 2. Védekezés: a támadás detektálása, a támadó címének meghatározása majd hálózati rétegben kitiltása.
HTTP kiszolgáló leterhelése Egy HTTP kiszolgáló általában maximalizálja az egy időben működő processzeinek számát. A támadó sok egyidejű kapcsolatot hoz létre, amelyeken lassú adatátvitelt végez, így igénybe veszi az összes rendelkezésre álló processzt. A támadó speciális kérések kiadásával elfogyasztja a kiszolgáló belső erőforrásait.
DDoS Distributed Denial of Service: elosztott szolgáltatás megtagadásos támadási módszerek. A támadó egyidejűleg nagyszámú végpontot használva indítja meg a támadást. Lehetséges a hálózati rétegben (ICMP vagy UDP flooding) vagy az alkalmazási rétegben.
ICMP flooding, „Smurf” attack AZ ICMP az IP segédprotokollja. A hálózati hibakereséshez használt „ping” parancs ICMP Echo Request és Echo Reply üzeneteket használ. Minden IP hálózatnak létezik egy „broadcast” címe, amelyre üzenetet küldve a hálózat összes végpontja válaszol. Hibás konfigurálás esetén ez a broadcast cím nem csak hálózaton belül érhető el.
ICMP flooding, „Smurf” attack 2. A támadó keres ilyen hibásan konfigurált, nagy sávszélességű, sok végpontot tartalmazó hálózatokat. A célpont címét hamisítva feladóként, a hálózat broadcast címére elkezd Echo request üzeneteket küldeni. A hálózat összes végpontja válaszol, Echo reply üzeneteket küldve a célpont címére.
ICMP flooding, „Smurf” attack 3. Védekezés: A hálózati útválasztók helyes konfigurálása. Támadás észlelése esetén a támadást akaratlanul végrehajtó (vagy ideiglenesen az összes) hálózatból érkező Echo reply üzenet szűrése.
DDOS az alkalmazási rétegben A támadó nagyszámú végpontot használva normál, a rendes működés során általánosan használt kéréseket küld a célpontnak. A kiszolgálókat nem az extrém esetekre méretezik, így az erőforrások kimerülnek. A szolgáltatások általában aszimmetrikus működésűek (a kérést elküldeni egyszerűbb, mint a választ előállítani), így könnyű lefoglalni az erőforrásokat (hálózati sávszélesség, számítási kapacitás).
HTTP támadás Helyesen megválasztott kérésekkel a kiszolgálót nagy mennyiségű művelet végrehajtására lehet késztetni, így a kiszolgálás sebessége használhatatlan értékre csökken. A legnépszerűbb webszolgáltatások dinamikusan állítják elő az oldalakat, tipikusan adatbázisból dolgozva.
HTTP támadás 2. Egy rövid példa: <html> <head> <title>DOS</title> <script type="text/javascript"> function Tolt() { sSearch = ""; for (i=0; i<7; i++) sSearch += String.fromCharCode(65+Math.floor(Math.random()*27)); document.getElementById("dframe").src="http://www.google.hu/search?hl=hu&q="+sSearch+"&btnG=Google+keres%C3%A9s&meta="; var tt = setTimeout("Tolt()",1000); } </script> </head> <body onload="Tolt()"> <iframe id="dframe" src="about:blank" width="600" height="600"></iframe> </body>
HTTP támadás 3. Védekezés: Csaknem lehetetlen, a támadás módszerének ismeretében egyedileg meghatározott módszerrel. Drága megoldást jelent az elosztott architektúra (cache szerverek), így a támadás jobban eloszlik.
Reflektív DDoS támadások Viszonylag fiatal DDoS támadási módszer. A támadás során más, „ártatlan” végpontokat használnak fegyverként. Az „ártatlan” végpontokat nem szükséges uralni a támadás indításához. Hálózati és alkalmazási rétegben egyaránt elvégezhető.
Reflektív DDoS támadások 2. Hálózati rétegben kivitelezett reflektív támadás: TCP Syn+ACK Attack. A támadó a harmadik félnek („ártatlan végpont”) TCP Syn csomagot küld, a célpont címét hamisítva a feladó címeként. Az „ártatlan végpont” erre TCP Syn + ACK csomaggal válaszol, elkezdve a TCP kapcsolat létrehozását. A TCP Syn + ACK csomag a célpontot találja el. Mivel az „ártatlan végpont” nem kap választ, ezért újraküldi (általában még háromszor) a csomagot. A támadó egyetlen csomagjának hatására a célpont négy csomagot kap. Egy valós támadás: http://www.grc.com/dos/drdos.htm
Reflektív DDoS támadások 3. Védekezés: Hamisított IP csomagok szűrése (ISP szintű beavatkozás). TCP portcím alapján a keletkező forgalom egy része kiszűrhető (ISP szintű beavatkozás).
Reflektív DDoS támadások 4. Alkalmazás rétegben: egyes SMTP kiszolgálók a nem létező címre érkező elektronikus leveleket elfogadják, majd amikor kiderül, hogy a kézbesítés lehetetlen, a feladó számára értesítést küldenek. Ha a támadó a célpont email címét adja meg az SMTP párbeszéd során, akkor az értesítést az áldozat kapja meg. A levelek küldését botnetek nagy tömegben képesek elvégezni, a reflektív működés miatt a hlózati szintű szűrés nehezen kivitelezhető.
Reflektív DDoS támadások 5. HELO sanyi 250 mail.webgame.hu Hello 3e44bd93.adsl.enternet.hu [62.68.189.147], pleased to meet you MAIL FROM: bill.gates@microsoft.com 250 2.1.0 bill.gates@microsoft.com... Sender ok RCPT TO: george.w.bush@whitehouse.gov 550 5.7.1 george.w.bush@whitehouse.gov... Relaying denied RCPT TO: bill.clinton@kewl.hu 550 5.1.1 bill.clinton@kewl.hu... User unknown
Reflektív DDoS támadások 6. Védekezés: Levelező szerverek helyes konfigurálása.
Összefoglaló A DDoS támadások végrehajtása a botnetek segítségével egyre egyszerűbb, így a támadások száma várhatóan növekedni fog. A támadások elindulása után a védekezés már nehéz, utólag az események rekonstruálása (és így a felelősök megbüntetése) ritkán megoldható. Az ilyen támadások visszaszorítása érdekében megelőző tevékenységeket kell végezni (botnet vezérlő végpontok felderítése, lekapcsolása).
Források RFC 793: Transmission Control Protocol http://www.techzoom.net/paper-mailbomb.asp http://www.cert.org/advisories/CA-1998-01.html http://www.newscientist.com/article.ns?id=dn4858 http://www.cert.org/tech_tips/denial_of_service.html