Zranitelnost „rom-0“ po půl roce

V předchozích blogpostech o chybě „rom-0“ jsem se věnoval postupu, jak „zazáplatovat“ napadnutelný router, rozebíral jsem rozšíření této chyby a především jsem odkazoval na webový test, který jsme v Laboratořích CZ.NIC spustili na adrese http://rom-0.cz. Poslední blogpost na toto téma se věnoval vývoji počtu napadnutelných boxů v ČR a na Slovensku za první čtyři měsíce od začátku našich měření.

Otestujte svůj router na zranitelnost „rom-0“

V návaznosti na náš výzkum rozsahu zranitelnosti „rom-0“, která postihuje celosvětově kolem 1.5 milionu SOHO ADSL routerů napříč spektrem výrobců, typů i verzí firmwaru, jsme vytvořili a zveřejnili testovací webovou aplikaci na adrese: http://rom-0.cz. Tato aplikace umožňuje každému uživateli snadno otestovat jeho router na „rom-0“ zranitelnost z perspektivy Internetu (tedy z vnějšího rozhraní routeru).

Kritická zranitelnost mnoha domácích routerů

V poslední době se objevily zprávy o útocích na malé domácí routery. Jedním z rozebíraných útoků bylo napadení routeru TP-LINK TD-W8901GB, které objevil pan Jakub Bouček. Tento napadený router byl poskytnut k analýze týmu CSIRT.CZ. Router měl několik známých bezpečnostních chyb a zjistili jsme, že jejich zneužití je poměrně jednoduché a umožňuje kompletní ovládnutí routeru a následné ovlivňování provozu, který přes něj prochází. Alarmující je především fakt, že podle našich předběžných měření je jen v českém internetu na 5000 podobných routerů s identickou chybou. CSIRT.CZ se proto rozhodl vydat následující návod na zabezpečení routeru.

router

Router TP-LINK TD-W8901GB

 

Laboratoře CZ.NIC odhalily závažnou zranitelnost linuxového jádra

V rámci vývoje a testování softwaru pro nový router CZ.NICu Turris jsme objevili nebezpečnou chybu v linuxovém jádře, která umožňuje vzdáleně způsobit kernel panic; pád jádra lze vyvolat posláním vhodně zformátovaných IPv6 fragmentů. Podle našeho názoru má chyba potenciál na DoS útoky.

Ve skutečnosti se jedná o dvě chyby v různých částech Linuxového jádra, které mohou nastat při zpracování IPv6 datagramu s nekorektně vyplněným fragmentation headerem. První chyba je známá od května 2011 pod označením CVE-2011-1927 a byla opravena ve verzi 2.6.38.9 linuxového jádra. Nyní došlo k pravděpodobné regresi této chyby v aktuálních jádrech počínaje verzí 3.11 a v mailinglistu vývojářů síťových driverů a TCP/IP stacku už je k dispozici patch, který tuto chybu opravuje. Oprava bude pravděpodobně začleněna do nejbližší budoucí udržovací verze jádra.

Druhá chyba, která dosud nebyla známá, se netýká samotného sestavování fragmentů k předání vyšší vrstvě síťového modelu, ale týká se Netfilteru – Linuxového firewallu, který sestavuje IP packety (IPv4 i IPv6) jen virtuálně, aby o nich mohl rozhodnout podle pravidel v INPUT resp. FORWARD chainech v tabulce filter. Problém, na který jsme v Laboratořích CZ.NIC narazili je, že překrývající se fragmenty můžou vyvolat kernel panic za podmínky, že dochází k pokusu o virtuální sestavení datagramu a to pravděpodobně z velmi podobných důvodů, jako v případě první chyby.

Chybu jsme reportovali v mailinglistu a spolupracujeme na vytvoření patche s vývojáři Linuxového TCP/IP stacku a Netfilteru.

Tomáš Hlaváček