Група от израелски студенти доказа нова уязвимост, която може да доведе до пълен интернет апокалипсис. Тя засяга DNS – един от протоколите, считани за гръбнака на съвременните мрежи.
Подходът за атака е наречен NXNSAttack: Recursive DNS Inefficiencies and Vulnerabilities и е насочен към рекурсивни и авторитетни DNS сървъри. Резултатът е DDoS с коефициенти на увеличение над 1600 пъти.
Засегнати са както ISC BIND (CVE-2020-8616), така и някои от най-големите публични DNS услуги:
Public DNS recursive resolver (IP) | Max # of delegations = F/2 | Victim cost Cpkt/v | PAF |
CloudFlare (1.1.1.1) | 24 | 96 | 48x |
Comodo Secure (8.26.56.26) | 140 | 870 | 435x |
DNS.Watch (84.200.69.80) | 135 | 972 | 486x |
Dyn (216.146.35.35) | 50 | 408 | 204x |
FreeDNS (37.235.1.174) | 50 | 100 | 50x |
Google (8.8.8.8) | 15 | 60 | 30x |
Hurricane (74.82.42.42) | 50 | 98 | 49x |
Level3 (209.244.0.3) | 135 | 546 | 273x |
Norton ConnectSafe (199.85.126.10) | 140 | 1138 | 569x |
OpenDNS (208.67.222.222) | 50 | 64 | 32x |
Quad9 (9.9.9.9) | 100 | 830 | 415x |
SafeDNS (195.46.39.39) | 135 | 548 | 274x |
Ultra (156.154.71.1) | 100 | 810 | 405x |
Verisign (64.6.64.6) | 50 | 404 | 202x |
В зависимост от фактора на увеличение (PAF), жертвата, подложена на NXNSAttack, би получила многократно повече пакети от изпратените от нападателите. Цифрите са наистина впечатляващи, като се има предвид, че досега известни методи за такъв тип DNS увеличителни и отразителни атаки са с доста по-ниски стойности.
Основните съставки на новата атака са:
- лекотата, с която може да се притежава или контролира авторитетен DNS сървър;
- използването на несъществуващи имена на домейни;
- допълнителна резервираност в DNS структурата, за да се постигне отказоустойчивост и бързо време за реакция.
Важно е да отбележим, че някои от възможните средства за защита, като например различни ограничители (rate limits), са нож с две остриета, което позволява на атакуващия да доведе до отказ от услугата за легитимни потребители.
Зловещи ефекти
От февруари насам откривателите на NXNSAttack са започнали работа със съответните разработчици на DNS софтуер, CDN и DNS доставчици, за да им помогнат да отстранят тази заплаха и да смекчат ефекта от евентуални атаки след публикуване на своето проучване.
Дори и след месеци усилена колаборация и пачване, най-вероятно са останали кътчета от интернет, които са все още уязвими и могат да бъдат експлоатирани. Това би довело до инциденти, подобни на тези причинени от Mirai botnet, макар и с далеч по-малък на брой зомбирани устройства.
Уязвимостта се корени в това, как DNS рекурсивни сървъри обслужват Name Server насочващи отговори (NS referral response), без да имат IP лепнат (glue) запис.
Как работи атаката
Графично представяне на самата атака:
И разменените съобщения:
За да разберем как работи NXNSAttack, трябва да вземем под внимание йерархичната структура на DNS в интернет. Когато браузър се обърне към домейн като google.com, той пита DNS сървър, за да открие IP адреса на този домейн, число като 64.233.191.255.
Обикновено на тези заявки се отговаря от DNS рекурсивни (резолюционни) сървъри, контролирани от доставчици на интернет и DNS услуги. Но ако тези рекурсивни DNS сървъри не разполагат с точния IP адрес под ръка, те пренасочват заявката към „авторитетен“ сървър, свързан с конкретни домейни, за отговор.
NXNSAttack злоупотребява с доверената комуникации между тези различни слоеве на DNS йерархията. Атаката има за „реквизит“ не само достъп до колекция от персонални компютри и/или други IoT устройства (ботнет), но и създаване на DNS сървъри за домейн, който бихме нарекли „attacker.com“. (Изследователите твърдят, че всеки може да си купи домейн и да си настрои DNS сървър само за няколко долара).
След това нападателят изпраща поредица заявки от ботовете за домейна, който контролира. Или по-точно – вълна от заявки за фалшиви поддомейни като 123.attacker.com, 456.attacker.com и т.н., използвайки низове от произволни числа, за да променя постоянно заявките за поддомейни.
Опитите за посещения на тези недействителни домейни ще задействат обръщения към рекурсивният DNS сървър (примерно този на интернет доставчика), който от своя страна ще изпрати заявката към авторитетен сървър – в случая, DNS сървърът под контрола на атакуващия. Вместо само да предостави IP адрес, този авторитетен сървър ще съобщи на рекурсивният (resolver) DNS сървър, че не знае местоположението на исканите поддомейни, като ще го насочи да поиска друг авторитетен DNS сървър, прехвърляйки заявката към домейна на жертва по избор на нападателя.
Откривателите на тази уязвимост са установили, че насочването на заявки за един несъществуващ поддомейн (123.attacker.com) към стотици несъществуващи поддомейни, принадлежащи на жертвата (asd.victim.com, 4321.victim.com и тн…), би могло да позволи на хакер да претовари не само DNS сървърите на интернет доставчиците, като ги подмами да изпратят повече заявки, отколкото сървърите биха могли да обработят (потенциално да спрат и всичките им услуги, както се случи при атаката на Mirai срещу Dyn), но също да „свалят“ авторитетните DNS сървъри на жертвата, следователно целия домейн victim.com ще остане offline за света.
Жертвата вероятно ще открие, че един злонамерен DNS сървър стои зад атаката и ще спре да отговаря на искания от attacker.com. Но Шафир от университета в Тел Авив изтъква, че нападателите могат да използват няколко домейна, за да променят атаката и да затруднят защитата. „Можете да имате десетки подобни домейни и да ги сменяте на всеки няколко минути“, казва Шафир – „Много е лесно.“
Повече от един вариант
В друг вариант на NXNSAttack, хакер може дори да насочи своите действия към несъществуващи домейни от най-високо ниво (TLD) като „.fake“, за да атакува така наречените root сървъри, които отговарят за домейни от най-високо ниво – .com и .gov.
Въпреки че тези сървъри обикновено са проектирани да разполагат с много голяма честотна лента, изследователите казват, че биха могли да използват много фалшиви домейни, използвайки фалшиви поддомейни от първата версия на тяхната атака, потенциално увеличавайки всяка заявка повече от хиляда пъти. Резултатът е можело да бъде катастрофален за целият интернет:
„Когато се опитате да атакувате един от root сървърите, атаката става много по-разрушителна“, казва Шафир. „Не успяхме да покажем (докажем), че root сървъри могат да бъдат изцяло претоварени, защото са много мощни, но атаката има огромен фактор на усилване (PAF), а това са най-важните активи на световната мрежа. Части от интернет изобщо няма да работят в този най-лош случай.“
Ако всичко до тук ви се струва познато (deja vu), не сте сгрешили – подобна уязвимост, която би могла да доведе до сравними атаки и резултати, е била тайно отстранена през 2008 година. Препоръчвам да изгледате видеото от статията HACKER HISTORY: HOW DAN KAMINSKY ALMOST BROKE THE INTERNET
„От моя гледна точка съм просто в екстаз, че подобно сътрудничество, което получих през 2008 г., все още се случва през 2020 г.“, казва Камински. „Интернет не е нещо, което би оцеляло, ако не се правеха цялостни подобрения, всеки път когато някой подпали нещо.“
В заключение – интернет е много „крехка“ екосистема, като градивните и компоненти (DNS, BGP и други) са били проектирани колкото да работят. За великите умове, създали интернет, не е било възможно да предвидят мащабите и значението на своите творения, следователно не са обърнали достатъчно внимание на въпроса – „Какво ще стане, ако …. ?“