Какво е DNS тунелиране? Инструкция за откриване

Какво е DNS тунелиране? Инструкция за откриване

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

Как работи DNS тунелирането

Какво е DNS тунелиране? Инструкция за откриване

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

Какво е DNS тунелиране? Инструкция за откриване

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

Въпреки всичко, по същество DNS протоколът се занимава с предаване на заявката до сървъра и неговия отговор обратно на клиента. А какво, ако злонамерен потребител добави скрито съобщение в заявката за домейн име? Например, вместо да въведе напълно легитимен URL, той ще въведе данни, които иска да предаде:

Какво е DNS тунелиране? Инструкция за откриване

Да предположим, че злонамереният потребител управлява DNS сървър. Тогава той може да предава данни – например, лични данни – и не непременно ще бъде открит. В крайна сметка, защо изобщо DNS запитването да стане нещо нелегитимно?

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

Тунелиращата част на тази атака се състои в скритие на данни и команди от системите за наблюдение. Хакерите могат да използват набори от символи base32, base64 и т.н., или дори да криптират данните. Тази кодировка ще премине незабелязана от простите инструменти за откритие на заплахи, които търсят в открит текст.

И това е DNS тунелиране!

История на атаките чрез DNS тунелиране

Всичко има начало, включително идеята за захващане на DNS протокола за хакерски цели. Доколкото можем да преценим, първото обсъждането такава атака е била извършена от Оскар Пирсан (Oskar Pearson) в пощенската разпращалня Bugtraq през април 1998 година.

До 2004 година DNS тунелирането беше представено на Black Hat като хакерски метод в презентация на Дън Камински (Dan Kaminsky). По този начин, идеята много бързо прерасна в истински инструмент за атака.

В момента DNS тунелирането заема стабилна позиция на картата на потенциални заплахи (и блогъри в областта на информационната сигурност често биват помолени да го обяснят).

Чували ли сте за Sea Turtle ? Это действующая кампания киберпреступных группировок — скорее всего, спонсируемая государством, — направленная на захват легитимных DNS-серверов с целью перенаправления DNS-запросов на собственные сервера. Это означает, что организации будут получать «плохие» IP-адреса, указывающие на поддельные веб-страницы под управлением хакеров, — например, Google или FedEx. При этом злоумышленники смогут заполучить учётные записи и пароли пользователей, которые те неосознанно введут их на таких поддельных сайтах. Это не DNS-туннелирование, но просто ещё одно скверное последствие контроля DNS-серверов хакерами.

Заплахи от DNS тунелиране

Какво е DNS тунелиране? Инструкция за откриване

DNS тунелирането е като индикатор за началото на етапа на лошите новини. Какви точно? Вече споменахме няколко, но нека ги структурираме:

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

Разпознаване на DNS тунелиране

Какво е DNS тунелиране? Инструкция за откриване

Съществуват два основни метода за откриване на злоупотреба с DNS: анализ на натовареността и анализ на трафика.

При анализ на натовареността защитената страна търси аномалии в данните, предавани в двете посоки, които могат да бъдат открити чрез статистически методи: странно изглеждащи имена на хостове, тип DNS записи, който не се използва толкова често, или нетипична кодировка.

При анализ на трафика оценява броя на DNS запитванията към всеки домейн в сравнение с средностатистическото ниво. Злоумисници, използващи DNS тунелиране, ще генерират голям обем трафик на сървъра. В теорията, значително надминаващ нормалния обмен на DNS съобщения. И това е необходимо да се следи!

Инструменти за DNS тунелиране

Ако искате да проведете собствен тест за проникване и да проверите колко добре компанията ви може да открие и реагира на подобна активност, има няколко инструмента за това. Всички те могат да тунелират в режим IP-Over-DNS:

  • Iodine – наличен на много платформи (Linux, Mac OS, FreeBSD и Windows). Позволява създаване на SSH обвивка между целевия и управляващия компютър. Ето едно добро гид ръководство за настройка и употреба на Iodine.
  • OzymanDNS – проект за DNS тунелиране от Дан Камински, написан на Perl. Може да се свързва чрез SSH.
  • DNSCat2 – "DNS тунел, от който не ти става лошо". Създава криптиран C2 канал за изпращане/изтегляне на файлове, стартиране на обвивки и т.н.

Инструменти за DNS мониторинг

По-долу е представен списък с няколко инструмента, които ще бъдат полезни за откриване на тунелиращи атаки:

  • dnsHunter – Python модул, написан за MercenaryHuntFramework и Mercenary-Linux. Чита .pcap файлове, извлича DNS заявки и извършва геолокационно сопоставяне, което помага при анализа.
  • reassemble_dns – инструмент на Python, четящ .pcap файлове и анализиращ DNS съобщения.

Микро FAQ по DNS тунелиране

Полезна информация под формата на въпроси и отговори!

В: Какво е тунелиране?
О: Това е просто начин за предаване на данни над съществуващ протокол. Основният протокол осигурява отделен канал или тунел, който след това се използва за скриване на информация, която всъщност се предава.

В: Кога е извършена първата атака с DNS тунелиране?
О: Не знаем! Ако вие знаете - моля, уведомете ни. Така, както сме добре запознати, първото обсъждане на атака беше инициирано от Оскар Пирсан в пощенския списък Bugtraq през април 1998 година.

В: Какви атаки са сходни с DNS тунелирането?
О: DNS не е единственият протокол, който може да се използва за тунелиране. Например, зловредните програми за управление и контрол (C2) често използват HTTP, за да маскират канала си за взаимодействие. Както при DNS тунелирането, хакерът скрива данните си, но в този случай те изглеждат като трафик от обикновен уеб браузър, който се обръща към отдалечен сайт (контролиран от злосторника). Това може да остане незабелязано от мониторинг софтуер, ако не е настроен да разпознава заплахата Злоупотребления HTTP протоколом с хакерскими целями.

Искате ли да получим помощ за откритие DNS тунелиране? Прочетете наш модул Varonis Edge и опитайте безплатно демо!

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster