
DNS тунелирането превръща системата за домейнни имена в оръжие за хакери. DNS е по същество огромна телефонна книга на интернет. Освен това DNS е основният протокол, който позволява на администраторите да правят запитвания към базата данни на DNS сървъра. Досега всичко е ясно. Но хитри хакери осъзнаха, че могат тайно да комуникират с компютъра жертва, внедрявайки управляващи команди и данни в DNS протокола. Тази идея лежи в основата на DNS тунелирането.
Как работи DNS тунелирането

За всичко в интернет има отделен протокол. DNS поддържа относително прост тип заявка-отговор. Ако искате да видите как работи, можете да стартирате nslookup – основният инструмент за подаване на DNS запитвания. Можете да поискате адрес, просто като посочите интересуващото ви домейн име, например:

В нашия случай протоколът отговори с IP адреса на домейна. В термини на DNS протокола, направих запитване за адрес или запитване с т.н. «А»-тип. Има и други типове запитвания, при които DNS протоколът ще отговори с различен набор от данни, които, както ще видим по-късно, могат да бъдат използвани от хакерите.
Въпреки всичко, по същество DNS протоколът се занимава с предаване на заявката до сървъра и неговия отговор обратно на клиента. А какво, ако злонамерен потребител добави скрито съобщение в заявката за домейн име? Например, вместо да въведе напълно легитимен URL, той ще въведе данни, които иска да предаде:

Да предположим, че злонамереният потребител управлява DNS сървър. Тогава той може да предава данни – например, лични данни – и не непременно ще бъде открит. В крайна сметка, защо изобщо DNS запитването да стане нещо нелегитимно?
Като управляват сървъра, хакерите могат да фалшифицират отговори и да изпратят данни обратно на целевата система. Това им позволява да предават съобщения, скрити в различни полета на DNS отговора, към злонамерен софтуер на заразен компютър, с инструкции подобни на търсене в определена папка.
Тунелиращата част на тази атака се състои в на данни и команди от системите за наблюдение. Хакерите могат да използват набори от символи base32, base64 и т.н., или дори да криптират данните. Тази кодировка ще премине незабелязана от простите инструменти за откритие на заплахи, които търсят в открит текст.
И това е DNS тунелиране!
История на атаките чрез DNS тунелиране
Всичко има начало, включително идеята за захващане на DNS протокола за хакерски цели. Доколкото можем да преценим, първото такава атака е била извършена от Оскар Пирсан (Oskar Pearson) в пощенската разпращалня Bugtraq през април 1998 година.
До 2004 година DNS тунелирането беше представено на Black Hat като хакерски метод в презентация на Дън Камински (Dan Kaminsky). По този начин, идеята много бързо прерасна в истински инструмент за атака.
В момента DNS тунелирането заема стабилна позиция на картата (и блогъри в областта на информационната сигурност често биват помолени да го обяснят).
Чували ли сте за ? Это действующая кампания киберпреступных группировок — скорее всего, спонсируемая государством, — направленная на захват легитимных DNS-серверов с целью перенаправления DNS-запросов на собственные сервера. Это означает, что организации будут получать «плохие» IP-адреса, указывающие на поддельные веб-страницы под управлением хакеров, — например, Google или FedEx. При этом злоумышленники смогут заполучить учётные записи и пароли пользователей, которые те неосознанно введут их на таких поддельных сайтах. Это не DNS-туннелирование, но просто ещё одно скверное последствие контроля DNS-серверов хакерами.
Заплахи от DNS тунелиране

DNS тунелирането е като индикатор за началото на етапа на лошите новини. Какви точно? Вече споменахме няколко, но нека ги структурираме:
- Извеждане на данни (ексфилтрация) – хакер тайно предава критични данни чрез DNS. Това определено не е най-ефективният начин за предаване на информация от компютъра на жертвата — като се вземат предвид всички разходи и кодировки — но работи и то на скрито!
- Управление и контрол (Command and Control, съкратено C2) – хакерите използват DNS протокола за изпращане на прости управляващи команди, например, чрез (Remote Access Trojan, съкратено RAT).
- Тунелиране на IP-Over-DNS – това може да звучи лудо, но има утилити, реализиращи IP стек върху DNS запитвания и отговори. Това прави предаването на данни с помощта на FTP, Netcat, ssh и т.н. относително лесно. Изключително зловещо!
Разпознаване на DNS тунелиране

Съществуват два основни метода за откриване на злоупотреба с DNS: анализ на натовареността и анализ на трафика.
При анализ на натовареността защитената страна търси аномалии в данните, предавани в двете посоки, които могат да бъдат открити чрез статистически методи: странно изглеждащи имена на хостове, тип DNS записи, който не се използва толкова често, или нетипична кодировка.
При анализ на трафика оценява броя на DNS запитванията към всеки домейн в сравнение с средностатистическото ниво. Злоумисници, използващи DNS тунелиране, ще генерират голям обем трафик на сървъра. В теорията, значително надминаващ нормалния обмен на DNS съобщения. И това е необходимо да се следи!
Инструменти за DNS тунелиране
Ако искате да проведете собствен тест за проникване и да проверите колко добре компанията ви може да открие и реагира на подобна активност, има няколко инструмента за това. Всички те могат да тунелират в режим IP-Over-DNS:
- – наличен на много платформи (Linux, Mac OS, FreeBSD и Windows). Позволява създаване на SSH обвивка между целевия и управляващия компютър. Ето едно добро ръководство за настройка и употреба на Iodine.
- – проект за DNS тунелиране от Дан Камински, написан на Perl. Може да се свързва чрез SSH.
- – "DNS тунел, от който не ти става лошо". Създава криптиран C2 канал за изпращане/изтегляне на файлове, стартиране на обвивки и т.н.
Инструменти за DNS мониторинг
По-долу е представен списък с няколко инструмента, които ще бъдат полезни за откриване на тунелиращи атаки:
- – Python модул, написан за MercenaryHuntFramework и Mercenary-Linux. Чита .pcap файлове, извлича DNS заявки и извършва геолокационно сопоставяне, което помага при анализа.
- – инструмент на Python, четящ .pcap файлове и анализиращ DNS съобщения.
Микро FAQ по DNS тунелиране
Полезна информация под формата на въпроси и отговори!
В: Какво е тунелиране?
О: Това е просто начин за предаване на данни над съществуващ протокол. Основният протокол осигурява отделен канал или тунел, който след това се използва за скриване на информация, която всъщност се предава.
В: Кога е извършена първата атака с DNS тунелиране?
О: Не знаем! Ако вие знаете - моля, уведомете ни. Така, както сме добре запознати, първото обсъждане на атака беше инициирано от Оскар Пирсан в пощенския списък Bugtraq през април 1998 година.
В: Какви атаки са сходни с DNS тунелирането?
О: DNS не е единственият протокол, който може да се използва за тунелиране. Например, зловредните програми за управление и контрол (C2) често използват HTTP, за да маскират канала си за взаимодействие. Както при DNS тунелирането, хакерът скрива данните си, но в този случай те изглеждат като трафик от обикновен уеб браузър, който се обръща към отдалечен сайт (контролиран от злосторника). Това може да остане незабелязано от мониторинг софтуер, ако не е настроен да разпознава Злоупотребления HTTP протоколом с хакерскими целями.
Искате ли да получим помощ за откритие DNS тунелиране? Прочетете наш модул и опитайте безплатно !
Източник: habr.com
