A pak take existuji DNS servery, ktere uz davno od sveho vzniku pouzivaji nahodny odchozi port i transaction id - protoze byly napsane s durazem na bezpecnost - napr. DJBDNS
Nechapu proc je nyni kolem toho takoveho povyku, kdyz se o teto slabine primo v navrhu DNS vi snad 10 let.
Pri poslani dostatecne velkeho mnozstvi packetu se takto da nakazit kazdy DNS server.
Co se teda nyni nove objevilo?
Ze nektere implementace DNS serveru nerandomizuji port nebo id? To je pak diletantstvi vyrobce takoveho softwaru a stejne tak i admina, ktery takovy software vubec pouziva.
Když on DNSSEC znamená příliš velkou změnu infrastruktury. Přemýšlel jsem, jestli by nestačilo, kdyby forwardovací DNS server nejprve zkoušel TCP, a pak až UDP. To by přece (za cenu cca 3x víc packetů) mělo problém podvržených odpovědí řešit, ne?
O teto slabine se pravda chvili vi, ale pokud byste chtel se znalostmi pred cervnem napadnou DNS, ktery nerandomizuje zdrojovy port, musel byste vystihnou spravne casove okno pro utok a to se otvira jen jednou za cas (TTL domeny na kterou utocite). Pravdepodobnost, ze se Vam podari ono casove okno vyuzit je pomerne mala, takze Vas utok by trval pravdepodobne velmi dlouho.
Pan Kaminski dokazal, ze utok muzete provest v jakemkoliv case a jeste ho opakovat. To tedy znamena, ze i kdyz pravdepodobnost uspesneho napadeni daneho DNS serveru neni prilis vysoka, muze te jej okamzite opakovat, dokud se Vam to nepovede. (Navic jeste zpusob utoku mirne vylepsil.)
Mimochodem ani pouziti randomizovaneho zdrojoveho portu nam nedava jistotu, pouze snizuje pravdepodobnost uspechu utoku! A proto "vylepseni" pana Kaminskeho naopak zvysuje sance utocnika otravit cache i takto "zabezpeceneho" DNS serveru.
Jedine reseni, ktere se mi v soucasne dobe jevi jako bezpecne, je pouziti DNSSEC.
Mělo, ale z reakcí jsem tak nějak vysledoval, že se do toho nikomu moc nechce.
S TCP je mimo jiné i problém, že to není jenom trojnásobný počet paketů, ale někdo ty spojení musí udržovat. Ať už server nebo routery po cestě, atp... Zatímco UDP je přijmu paket, zpracuju, pošlu odpověď, zapomenu. Bylo by o dost jednodušší cokoli zaDoSovat. Nezapomeňte, že se bavíme o provozu, kde nejsou neobvyklé stovky, tisíce (někde možná i více) dotazů za sekundu.