Што такое DNS-тунэляванне? Інструкцыя па выяўленні
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.
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 і паспрабуйце бясплатнае дэма!