Obrana před útokem DRDoS

Napadení internetových serverů, při nichž se je útočníci snaží zahltit množstvím falešných požadavků na poskyt...


Napadení internetových serverů, při nichž se je útočníci snaží zahltit
množstvím falešných požadavků na poskytnutí nějakých služeb nebo dat, nejsou
dnes ničím zvlášť neobvyklým. Komplikovanost obrany je závislá jak na intenzitě
útoku, tak na jeho přesném druhu. V CW 6/2003 jsme se věnovali novějšímu typu
útoku DRDoS a v následujícím textu se zaměříme na způsob, jak mu čelit.
Jen pro připomenutí: Nová forma SYN flood útoku nazvaná DRDoS (Distributed
Reflection Denial of Service) funguje tak, že útočník posílá na spoustu serverů
v internetu pakety s příznakem SYN (pro inicializaci spojení), přičemž jako
cílová je nastavena adresa "obětního" serveru, tedy serveru, na který je útok
směrován.
Servery přijmou SYN paket a odešlou paket s příznakem SYN a ACK na podvrženou
adresu cílového serveru jako potvrzení inicializace spojení. Ten si ale žádné
spojení nevyžádal, a tak paket zahodí. Správně by vše mělo fungovat tak, že
server, který chce inicializovat spojení, pošle SYN paket, přijme jako
potvrzení SYN/ACK a vše potvrdí ACK paketem (Three-Way Handshake). Cílový
server ale SYN/ACK pakety zahodí, takže útočníkem využívané servery nedostanou
zpět ACK potvrzení, a v domnění, že se paket někde ztratil, ho pošlou znovu. To
se opakuje stále dokola. Tak se velmi zvýší intenzita útoku a cílový server
nakonec zahltí SYN/ /ACK pakety.
S tímto typem útoku se přibližně před rokem setkal Steve Gibson, prezident
společnosti Gibson Research, o kterém byla řeč v již zmíněném Computerworldu
6/2003. Na servery společnosti GRS se útočilo po dobu čtyř hodin, což způsobilo
nemalé problémy. Jak již řekl Steve Gibson: "Filtrování příchozích paketů
nepomáhá, protože to zpomaluje veškerý provoz a navíc útok přichází z mnoha IP
adres." Pokud by ISP cílového serveru zablokoval veškeré pakety směrované na
něj, tak by vlastně útočníkovi vyšlo celé jeho snažení došlo by k odmítnutí
síťových služeb. Ke konci Gibson dodal: "Ale co se s tím dá dělat?" Nabízíme
vám řešení.

Jak se bránit
Cílový server (oběť) přece pakety SYN/ACK nemusí zahazovat, ale na zdrojové
adresy může poslal RST paket. Co se stane? Vysvětleme si to na příkladě.
Útočník provede útok a jím využívané servery pošlou cílovému serveru paket
SYN/ACK, ale už nebudou neustále posílat pakety v domnění, že se ztratily,
protože po obdržení RST paketu (reset žádost o vynulovaní spojení) se ukončí
plánovaná relace. Přerušíme tak nárůst požadavků, a tím zvýšení intenzity útoku.
Tohoto chování můžeme docílit správným nastavením systému IDS (Intrusion
Detection System systém detekce průniku). Pokud váš IDS toto nastavení
neumožňuje, nebo ho dokonce nemáte, vyzkoušejte nějaký zdarma šiřitelný IDS.
Pro platformu Windows doporučujeme produkt Snort, pro Linux Trisentry. Správné
nastavení Snortu je ovšem velice náročné a rozhodně není vhodné pro lidi, kteří
v této oblasti nemají žádné zkušenosti.

Alternativa
Další možný způsob obrany je ten, že IDS nebude automaticky posílat RST paket,
ale v případě zjištění DRDoS útoku spustí určitý program. Ten by si, pokud by
šlo o open source, mohl každý administrátor upravit podle sebe. Program by měl
být rychlý a měl by se spustit jen v případě útoku (s kontaktováním
administrátora), aby zbytečně nezatěžoval procesor. Kromě příznaku RST může
ještě například přidat paketu příznak URG (urgentní data, paket se zpracovává
přednostně).
Velkou výhodou tohoto způsobu je to, že cílový server bude pořád normálně
pracovat, tj. uživatelé se budou moci na server připojit a využívat všech jeho
služeb. Mimo jiné, abyste se vyhnuli určitému zatížení procesoru při odpovídání
na SYN/ACK pakety, můžete požádat svého ISP, aby toto pravidlo aplikoval pro
váš server na jeho systémech. K vašemu serveru se tím pádem nedostane jediný
útočníkem mířený paket.
Naprostá většina těchto útoků je právě (jak také uvedl Steve Gibson) vedena od
lidí, kterým cílový server vadí. Takže si stáhnou nějakou utilitku z internetu,
která tento útok umožňuje, a zahájí ho. Podle našeho názoru nemá nikdo takové
připojení, aby mohl zahltit systém ISP (Internet Service Provider). Pokud by
byl útok veden organizovanou skupinou, tak by k tomu dojít mohlo, ale to se
stává velmi výjimečně a většina útoků je v současné době vedena "z domova".
Uvedený způsob je tedy vhodnou obranou před DRDoS útoky a spoustě
administrátorům může ušetřit nemalé problémy s útokem spojené.

IDS Trisentry a Snort
Trisentry (http://www.trisentry.com) je jednoduchý IDS určený k monitorování
neobvyklých aktivit v systému. Obsahuje tři komponenty:
hostsentry: tato komponenta analyzuje zvyky uživatelů, které se týkají
interaktivní práce se systémem monitoruje obvyklé časové rozmezí, kdy a odkud
jsou jednotliví uživatelé přihlášeni a vyhodnocuje neobvyklá přihlášení. n
portsentry: je nástroj pro detekci příchozích skenů portů, může na pokusy o
skenování portů aktivně reagovat úpravou konfigurace tcp_wrappers či firewallu,
a tím předejít možnému útoku zvenčí.
logsentry (dříve logcheck): tato komponenta usnadňuje administrátorovi systému
analýzu systémového logu tím, že z něj vybírá neobvyklé události.
Snort (http://www.snort.org) je kvalitní analyzér procházejících paketů
(sniffer) a účinný detekční program pro odhalování bezpečnostních chyb v
systému. Umožňuje detailní logování založené na definovaných pravidlech. Dokáže
odhalit nejrůznější druhy útoků, skenování apod., umí velmi dobře spolupracovat
i se Sambou.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.