"Nejkrásnejší na světe nejsou věci, ale okamžiky."
Karel Čapek

"The only limitations you have are the ones you set yourself."
neznámy autor

"Cenu má iba cesta. Len ona trvá, kdežto cieľ je ilúzia pútnika, kráčajúceho po hrebeni, akoby zmysel bol v dosiahnutom cieli."
Antoine de Saint-Exupéry

Overiť CSS!

Overiť HTML 4.01 Transitional!

Program DDoS Protect vznikol po dôkladnej analýze efektivity DDoS útokov a je výstupom mojej diplomovej práce. V tejto časti stránky získate zopár informácií o DDoS útokoch, obrane voči nim a o programe DDoS Protect, ktorý optimalizuje bezpečnostné nastavenia voči DDoS na rôznych úrovniach. V prípade nejakých nápadov alebo postrehov ohladom zvyšovania rezistencie webového servera Apache voči DoS útokom alebo taktiež v prípade nejakých problémov so zapezpečovaním Apache servera ma prosím kontaktujte.


Niečo k problematike DDoS

Cieľom DoS (Denial of Service) útoku (útok odmietnutia služby) je, ako aj názov napovedá, spôsobiť odmietnutie služieb serverom, čo je dané veľkým zahltením požiadaviek, po ktorom webový server nestíha obsluhovať požiadavky a stáva sa nedostupným.

Najsilnejšie DDoS útoky spôsobili až 48h nedostupnosť webových sídiel, čo viedlo k niekoľko miliónovým stratám a najmä k strate dôveryhodnosti firmy. Stali sa dobrým nástrojom odstavenia konkurencie a biznisom, na ktorom podnikavci zarábajú veľké peniaze. V dnešnej dobe nie je vôbec problematické si prenajať tzv. botnet, čiže skupinu počítačov (zdrojov), ktorá je centrálne ovládaná a synchronizovane zahlcuje požiadavkami webový server.

Podľa [1] je DDoS útok problémom zahltenia zdrojov, ktorými môže byť nielen šírka prenosového pásma, ale aj pamäť, CPU, súborové deskriptory, buffery a rôzne iné. Útočníci zahlcujú zdroj záplavou paketov alebo logickým paketom, ktorý môže aktivovať sériu procesov na vyťaženie zdrojov, ktoré sú pravdaže limitované.
Na nasledujúcom obrázku je znázornená schéma spracovania paketov webového servera počas útoku DDoS. V stave, keď sa zahltí buffer, tak Apache server nie je schopný spracovávať legitímne požiadavky a stáva sa nedostupným.

ddos


DoS útok sa od DDoS útoku líši v podstate len jedným písmenom, ktoré znamená „distribuovaný“. Väčšinou na odstavenie webového servera je nutné mať k dispozícií viac ako jeden infikovaný počítač a tým je DDoS útok zákernejší a spoľahlivejší. Tento typ útoku je neprijateľný najmä pre organizácie a firmy, ktoré potrebujú mať svoje webové sídla dostupné 24h denne.

Najrizikovejšie objekty pre DDoS útoky sú najmä zdravotnícke a vládne organizácie, ktoré potrebujú byť stále dostupné a v prípade nedostupnosti im okrem rizika veľmi vysokých pokút hrozí aj riziko ohrozenia na živote bezbranných ľudí. Pre Spojené štáty americké je často DDoS útok spájaný s teroristickým činnom a preto je podľa [2] od roku 1996 DoS/DDoS útok zaradený medzi trestné činy a útočníkovi hrozia vysoké pokuty a niekoľko rokov väzenia.

Vo všeobecnosti je za rozdiel medzi DoS a DDoS útokom považovaný najmä pomer počtu počítačov podnikajúcich útok k počtu pripojení na Internet. V prípade DoS útoku sa jedná o jeden počítač s jedným pripojením a v prípade DDoS útoku sa jedná aspoň o 2 počítače s dvomi internetovými pripojeniami (väčšinou je DDoS útok realizovaný stovkami až tisíckami počítačov).

Princíp útoku a problematickosť jeho vypátrania

Veľkým problémom je vypátranie útočníka, ktorý spôsobí DDoS útok, keďže jeho podstata spočíva v infikovaní veľkého množstva počítačov (ktoré často vlastnia nevedomí používatelia) malware-om, ktorý „spí“ a v nejakom čase ho útočník „zobudí“ a vykoná prostredníctvom nich DDoS útok. Práve infikovanie malware-om je najnáročnejšou etapou pred útokom a keď ide o malware, ktorý dobre využíva zraniteľnosti aplikácií alebo nedostatky v zabezpečení siete alebo počítačov, tak môže útočník získať až niekoľko tisícok počítačov pre vykonanie DDoS útoku.

Útočníkov stroj zväčša nie je útočiacim strojom, ale len strojom riadiacim útok (čím je sťažené vypátranie útočníka). Útočiace stroje sú výstižne pomenované „zombie“. Na nasledujúcom obrázku je znázornený princíp DDoS útoku.

schema ddos


Ďalším veľkým problémom DDoS útokov z hľadiska vypátrania útočníka, ale aj z hľadiska firewall-ovania falošných požiadaviek, je tzv. IP spoofing (falšovanie IP adries).
Hlavnou otázkou problematiky DDoS útoku na Apache server je, že ako má Apache rozoznať, či ide o regulárnu požiadavku od klienta, ktorú má spracovať a odpovedať na ňu alebo či ide o podvrhnutú požiadavku, ktorej cieľom je zahltiť Apache server.

K problematickosti vypátrania útočníka prispieva fakt, o ktorom píše Liang Hu a Xiaoming Bi [3], podľa ktorých sa útočiaca sieť skladá ešte z počítačov zvaných „control zombie“ a útok prebieha nasledovne: Útočník musí najprv ovládať zombie počítače a nainštalovať do nich softvér na uskutočnenie DDoS útoku. Potom musí nainštalovať ovládací softvér do control zombie počítačov a až potom môže prísť k útoku. Ako je znázornené na obrázku 5, útočník ovláda vo fáze útoku len control zombie, ktoré majú softvér na spustenie útočiaceho softvéru zo zombie počítačov, a tak sa útočník elegantnejšie vyhýba vysledovaniu útoku až k jeho počítaču. Veľakrát sa control zombie počítače nazývajú master alebo handler.

schema ddos


Podľa [4] je celý DDoS útok rozdelený do nasledovných piatich bodov:
  1. Výber zombie počítačov. Útočník si vyberie zombie počítače, ktoré majú takú zraniteľnosť, že k nim môže získať plný prístup. Musia mať silný výkon, vďaka ktorému môže vykonať silný útok.
  2. Kompromitácia. Útočník využije bezpečnostné zraniteľnosti zombie počítačov a umiestni do nich útočiaci kód. Popri tom sa útočník môže pokúsiť ochrániť tento kód voči deaktivácii a jeho zisteniu. Používatelia zombie počítačov nevedia o útočiacom kóde a to aj počas útoku, keďže samotný program je navrhnutý tak, že využíva malé množstvo zdrojov počítača (či už pamäte alebo šírky prenosového pásma).
  3. Komunikácia. Útočník komunikuje s handlermi, aby zistil, ktoré zombie počítače sú aktívne a vďaka tomu vie naplánovať útoky. Komunikácia medzi handlermi a zombie počítačmi je riadená cez TCP, UDP alebo ICMP protokoly.
  4. Útok. V tomto kroku posiela útočník príkazy k útoku, ktorými je daná obeť, dĺžka útoku, typ útoku, TTL, čísla portov a iné.

Ako prevenciu voči DDoS útokom je nutné vykonávať utesňovanie na viacerých úrovniach. Na najvyššej úrovni je aplikačné utesňovanie, čiže utesňovanie webového servera Apache. Ako vhodná prevencia voči DDoS útoku na tejto úrovni môžu poslúžiť nasledovné utesnenia:
  • aktualizovaný softvér webového servera a všetky moduly
  • využitie potenciálu modulov na obranu voči DDoS útokom
  • správne nastavené direktívy (napríklad v prípade vyššieho rizika DDoS útoku zvážiť zmenu niektorých direktív
  • prestavenie direktív podľa odporúčaní organizácií zameraných na počítačovú bezpečnosť
O úroveň nižšie sa nachádza vrstva operačného systému. Tu je taktiež vhodnou prevenciou aktualizovaný operačný systém (poprípade voľba menej rizikového operačného systému). Ako ďalšiu úroveň by som charakterizoval úroveň sieťovú, ktorá je administrátormi považovaná za najpodstatnejšiu v prevencii voči DDoS útokom. Utesnenia na tejto vrstve môžu byť nasledovné:
  • vhodne nastavený firewall (rovnako aj na aplikačnej úrovni), ktorý môže byť nastavený na automatické blokovanie ICMP paketov, čiže ICMP záplavy budú neefektívnym útokom (takto to rieši napríklad aj samotný Microsoft)
  • filtrovanie na úrovni sieťových zariadení – router, switch...
  • proxy server umiestnený pred webovým serverom
  • rozšírenie šírky prenosového pásma
  • GRE tunely v prípade útoku
  • detektor anomálií umiestnený pred webovým serverom (napr. Cisco Guard s Cisco Anomally Detector-om)

Testovanie DDoS útokov

Na testovacie účely bola zvolená učebňa na fakulte, ktorá mala dostatočné hardvérové a softvérové vybavenie potrebné na uskutočnenie testov. Pred začatím procesu testovania bolo dôležité pripraviť a nakonfigurovať prostriedky na testovanie. Prvotným krokom bol výber desiatich plne funkčných počítačov s OS Windows a ich následné zapojenie do prepínača (CISCO Catalyst 2950). Tieto počítače predstavovali aktívnych útočníkov, tzv. zombie. Do prepínača bol taktiež pripojený jeden notebook, ktorý predstavoval iniciátora útoku, tzv. útočník a jeden počítač s OS Linux a webovým serverom Apache, ktorý predstavoval obeť útoku. Kompletná schéma zapojenia je zobrazená na nasledujúcom obrázku.

schema zapojenia


Z dôvodu, že bolo treba zabrániť rozšíreniu útoku mimo testovanú LAN sieť, tak boli všetky počítače, ktoré sa zúčastnili experimentu odpojené od prístupu k Internetu a ostatných častí fakultnej siete.

Separovaná testovacia LAN sieť mala IP adresu 10.10.10.0/8 a počítače mali nakonfigurované IP adresy v rozsahu od 10.10.10.10/8 po 10.10.10.150/8. Konfigurácia 12-portového prepínača sa nachádzala v predvolenom stave (spustená konfigurácia bola zmazaná a uložená ako štartovacia konfigurácia).

Tesne pred testom boli spustené všetky programy potrebné na vykonanie a meranie testu. Na serveri bol spustený Apache, umiestnená pokusná webová stránka, ktorej dostupnosť sa testovala, spustené služby ako PHP a MySQL a pripravené existujúce utesnenia počítača s webovým serverom. Zombie počítače mali spustenú aplikáciu DDoS Zombie a DoS Bandwidth a útočník mal spustenú aplikáciu DDoS Útočník (aplikácie, ktoré som vytvoril za účelom testovania rezistencie počítača s webovým serverom Apache).

Na testovanie bezpečnostných mechanizmov stroja s Apache serverom voči DDoS útokom som si vybral nasledovné DDoS útoky:
  • Smurf útok
  • ACK záplava
  • UDP záplava
  • TCP SYN záplava
  • HTTP záplava
  • ICMP záplava
  • TCP záplava (kompletný handshake)

Počítač s webovým serverom Apache som testoval za štyroch stavov:
  • bez aplikovanej ochrany, s preddefinovanými nastaveniami direktív a štandardnými modulmi
  • aplikovaná ochrana – modul mod_security
  • aplikovaná ochrana – modul mod_evasive
  • aplikovaná ochrana – skript (D)DoS Deflate
  • aplikovaná ochrana – moja aplikácia DDoS Protect

Výsledky niektorých testov

Testovanie bez aplikovania ochrany programom DDoS Protect:

graf


graf


graf


Testovanie s aplikovaním ochrany programom DDoS Protect:

graf


graf


graf




DDoS Protect

Základné funkcie aplikácie

DDoS Protect vykonáva nasledovné funkcie:
  • zobrazenie aktuálnych nastavení direktív Apache servera
  • možnosť úpravy jednotlivých hodnôt direktív podľa používateľa - GUI editor nastavení direktív Apache servera
  • rekonfigurácia súboru httpd.conf (apache2.conf) podľa odporúčaných nastavení org. DISA
  • rekonfigurácia súboru httpd.conf (apache2.conf) podľa odporúčaných nastavení org. CIS
  • prestavenie iptables používateľom podľa voľby ochrán voči DDoS
  • inštalácia, aktivácia a deaktivácia modulu mod_evasive
  • zvyšovanie povedomia o problematike
  • predstavenie aplikácií vhodných na monitoring stroja s webovým serverom – Nikto, nmap, netstat, apachetop a iftop

Špeciálne funkcie aplikácie

Aplikácia DDoS Protect vykonáva aj niekoľko špeciálnych funkcií:
  • zobrazenie informácii o direktíve
  • plná podpora pre anglický a slovenský jazyk
  • aktualizácia externých nastavení
  • vykonanie zálohy konfiguračného súboru pri prvom a poslednom spustení aplikácie
  • blacklist s blokovanými IP adresami – na základe IP adresy, cieľového portu a protokolu
Obrazovky aplikácie


Zobrazenie aktuálneho nastavenia konfiguračného súboru Apache servera (po dvojitom kliknutí na hodnotu direktívy je možné danú direktívu upraviť)
obrazovka


Použitie dynamického filtra direktív (stlačením na stĺpec DDoS je možné direktívy prefiltrovať podľa toho, že čí ich nastavenie súvisí s DDoS útokom)
obrazovka


Prestavenie iptables na zabezpečenie voči útokom DDoS (v spodnej časti aplikácie sa nachádza separovaný blacklist IP adries)
obrazovka


Nastavenie, inštalácia a zavedenie modulu mod_evasive do Apache servera (GUI pre editáciu hodnôt direktív modulu)
obrazovka




Riešenie viacúrovňovej ochrany voči DDoS útoku:
help




Stiahnutie a spustenie DDoS Protect

Systémové požiadavky aplikácie DDoS Protect sú nasledovné:

  • OS Linux, distribúcia Fedora alebo Debian, grafické prostredie min. verzie Gnome 2
  • podpora C# aplikácií pod OS Linux – mono, gtk-sharp2
  • webový server Apache – httpd (Fedora) alebo apache2 (Debian)
  • kompilátor a inštalátor modulov do Apache-a – apxs (Fedora) alebo apxs2 (Debian)
  • iptables a kompilátor gcc (nutný pre správnu funkčnosť apxs)

Spustenie programu

mono DDoS_Protect.exe

Stiahnutie programu

disketa


Odkazy a bibliografia

[1] KRISHAN, KUMAR. JOSHI, R., C. KULDIP SINGH.
An Integrated Approach for Defending Against Distributed Denial-of-Service (DDoS) Attacks.
In proceedings of IRISS- 2006. India.
[2] HANG CHAU. Defense Against DoS/DDoS Attack.
http://www.infosecwriters.com/text_resources/pdf/Defense_DDoS.pdf
[3] LIANG, HU. XIAOMING, BI. Research of DDoS attack mechanism and its defense frame.
Computer Research and Development (ICCRD). 2011. In 3rd International Conference on.
vol.4. pp.440-442. 11-13 March 2011. doi: 10.1109/ICCRD.2011.5763941
http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5763941&isnumber=5763837
[4] DOULIGERIS, CH. MITROKOTSA, A. DDoS attack and defense mechanisms: classification and state-of-the-art.
In The International Journal of Computer and Telecommunications Networking. vol. 44. pp. 643-666. issue 5. 5. April 2004. ISSN: 1389- 1286. doi>10.1016/j.comnet.2003.10.003
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.7118&rep=rep1&type=pdf

Matej Mihalech © 2017