Protokol IPv6 a jeho použitie na lokálnych sieťach prináša nové funkcionality a prvky, ktorých primárnou úlohou je zvýšiť efektivitu a bezpečnosť. Tieto mechanizmy však nie vždy slúžia pre účel, na ktorý boli primárne navrhnuté. Dôkazom je i problém zneužitia mechanizmu Duplicate Addresss Detection – DAD (Detekcia duplicitných adries). Tento mechanizmus môže viesť i k DoS útoku. Článok prakticky poukazuje v čom spočíva problém a aké hrozia riziká.
Upozornenie: Všetky publikované informácie a postupy slúžia výhradne na študijné účely, prevádzané len na sieťach, ktoré patria pod vaše vlastníctvo, ak týmto konaním priamo, či nepriamo nezasiahnete ich používateľov. Vykonávanie týchto postupov na sieťach s reálnou prevádzkou môže byť ilegálne a v každom prípade ide o amorálne počínanie. Autor článku nenesie žiadnu zodpovednosť za škody, ktoré môžu vzniknúť v dôsledku realizácie týchto postupov.
Jedná sa v podstate o DoS útok, kedy je zneužitý mechanizmus Duplicate Addresss Detection – DAD (Detekcia duplicitných adries). Tento mechanizmus sa využíva pri použití IPv6 bezstavovej konfigurácie. Jeho primárnou úlohou je zistiť, či sa prideľovaná IPv6 adresa, ktorú si vygeneruje zvyčajne zariadenie samo, na základe mechanizmu ako EUI-64, už na danej IPv6 LAN v súčasnosti nepoužíva. Mechanizmus využíva opäť ICMPv6 pakety Neighbor Solicitation (NS), táto správa je zaslaná na multicastovú adresu FF02::1, takže je doručená všetkým uzlom na lokálnej sieti.
Ak sa daná IPv6 adresa v súčasnosti na LAN nenachádza odosielateľ, ktorým je stanica snažiaca získať IPv6 adresu, nedostane žiadnu spätnú odpoveď – paket NA. Danú IPv6 adresu tak môže používať a stáva sa tak plnohodnotne pripojenou a komunikácie schopnou stanicou. Táto kontrola sa prevádza i ak sa použije automatická stavová konfigurácia a globálna IPv6 adresa je pridelená za pomoci DHCPv6 servera.
Problém nastáva ak sa útočník rozhodne zneužiť princíp tohto mechanizmu. Znamená to že každá stanica na sieti môže odpovedať na pakety (správu) NS od žiadateľa o IPv6 adresu, tak akoby bola vlastníkom IPv6 adresy, ktorú chce tento žiadateľ získať. Výsledkom útoku je, že žiadna nová stanica sa nemôže pripojiť na LAN, pretože nezíska svoju vlastnú IPv6 adresu. Klamlivo sa tak budú javiť všetky IPv6 adresy, ktoré chce nová stanica použiť ako používané, čoho následkom je, že ich nemožno prideliť po druhý raz. Žiadna nová stanica sa tak na sieť v dobe tohto DoS útoku nepripojí.
Ide o pomerne sofistikovaný a ľahko vykonateľný útok, vychádzajúci zo základného princípu DAD. Obrana voči jeho dopadom je tak pomerne komplikovaná. Účinnou ochranou môže byť stanovenie limitu pre pakety NS počas určitého časového úseku. Najefektívnejšie je však použitie IPS systému, prípadne špeciálneho manažovateľného prepínača s bezpečnostnými funkciami.
V určitých prípadoch sa mohli vyskytnúť na lokálnej sieti 2 zhodné link-local adresy aj legitímnym spôsobom. Jedná sa o malé percento lacných sieťových kariet, kde sa fyzická adresa konfiguruje obslužným programom. Tento program môže byť štandardne nastavený na rovnaké hodnoty a následné odvodenie link-local IPv6 adresy pomocou mechanizmu EUI-64 vygeneruje opodstatnene 2 rovnaké adresy. Ak sú takéto sieťové karty použité na rovnakej lokálnej sieti 2, vyskytnú sa tak 2 úplné rovnaké IPv6 link-local adresy. Tento prípad môýe nastať v praxi napríklad i pri klonovaní virtuálneho počítača.
Na vykonanie útoku bol použitý nástroj dos-new-ipv6 z balíka THC-IPv6. V sieti nebol prítomný DHCPv6 server, adresy tak boli získavané za pomoci bezstavovej konfigurácie.
V úlohe obete najskôr vystupoval počítač so systémom Microsoft Windows 7. Keďže útok DoS new IP ma zmysel iba vo chvíli, keď sa zatiaľ nepripojená stanica pripája na IPv6 lokálnu sieť, spustenie nástroja dos-new-ipv6 prebehlo ešte pred samotným štartom systému obete.
Po spustení počítača patriacemu obeti – klientovi, nedokázal jeho systém prideliť žiadnu IPv6 adresu – link local ani adresu s globálnou platnosťou. Sieťová komunikácia bez vlastnej IPv6 nie je možná.
Počas stále prebiehajúceho útoku nasledoval reštart sieťového adaptéra. Vtedy už systém Windows zobrazil hlásenie, že daná IPv6 adresa sa už na danej sieti používa. Počítač teda rovnako ako v prvom prípade nemal žiadne sieťové údaje okrem východzej brány. Túto informáciu dokázal získať z periodicky posielaných správ RA, avšak pred reštartom adaptéra, priamo po spustení systému k podobnej udalosti nedošlo.
Útok bol následne ukončený. Systém Windows však počítaču obete nedokázal predeliť IPv6 sieťové údaje ani napriek tomuto faktu. Neodoslal žiaden ICMPv6 paket typu RS z nedefinovanej IPv6 adresy (::). Na získanie IPv6 adresy bolo tak potrebné reštartovať sieťový adaptér, alebo celý počítač.
V druhom prípade bol použitý počítač so systémom Linux Debian. Postup bol analogický. Po zapnutí systému Linux Debian počítač získal aj napriek prebiehajúcemu útoku link-local IPv6 adresu. Nezískal len IPv6 adresu s globálnou platnosťou.
No o jej získanie sa na rozdiel od systému Windows neustále pokúšal zasielaním ICMPv6 paketov RS. Vždy však získal odpoveď RA, že daná IPv6 adresa s globálnou platnosťou sa už používa.
Smerovacia tabuľka vyzerala nasledovne:
root@debianHP:~# ip -6 route
fe80::/64 dev eth0 proto kernel metric 256
Po ukončení útoku prebehol proces pridelenia IPv6 adresy štandardným spôsobom.
Možno tak konštatovať, že sa jedna o typ útoku DoS, ktorý efektívne zabráni prideleniu akejkoľvek IPv6 adresy v systéme Windows 7, v systéme Linux Debian získa počítač počas útoku len link-local IPv6 adresu. Komunikácia však aj tak nie je možná. Systém ju zastaví s hlásením: „connect: Cannot assign requested address.“ Proti tomuto útoku sa nedá brániť na strane klienta. Opäť je potrebné využiť len potenciálnu ochranu na prepínači.