DNS protokol vznikl za účelem zjednodušení užívání internetu. Díky němu si nemusíme pamatovat sérii čtyř až trojciferných čísel oddělených tečkou k tomu, abychom navštívili naše oblíbené webové stránky. Hackeři samozřejmě musí najít způsob, jak zneužít libovolný protokol nebo službu a našli způsob jak pomocí DNS protokolu navázat i obousměrnou komunikaci k nepozorovanému přenosu dat.
Proč je DNS tunelování špatné? Obecně řečeno, DNS protokol není nijak omezován a ve většině případů není ani nijak kontrolován a libovolné zařízení z interní sítě ho může využívat. Není možné tuto díru odstranit tím, že se zablokuje DNS provoz, protože byste se tak reálně odřízli od možnosti komunikovat se zbytkem internetu. Představte si situaci, ve které se hacker dostane do chráněné sítě tím, že převezme kontrolu nad počítačem jednoho ze zaměstnanců tím, že mu pošle škodlivý soubor, který zaměstnanec otevře. Po jeho otevření se spustí skript, který vytvoří DNS tunel, díky kterému má útočník přístup do chráněné sítě, i když dost pomalý, čímž obešel její zabezpečení. Hacker nyní může přes tunel posílat co se mu zlíbí bez toho, aby kdokoliv věděl, co poslal, a ve většině případů i to, že vůbec něco poslal.
Na úspěšné zablokování DNS tunelů je v první řadě nutné je umět správně identifikovat. Běžné domény známe ve tvaru subdoména.doména.cz, tedy žádosti, které se tážou na weby v této formě jsou jednoduše řečeno validní. Pokud ale žádost vypadá jako Oe120yBTbWl0aD4gMTISLtQ1LdY3OFk.attacker.online, můžeme si být téměř jisti, že se jedná o tunelovaný DNS provoz, ale v rámci specifikací DNS provozu se jedná o žádost ve správném formátu, tedy nedojde k její blokaci. Co už počítač nevidí je, že v na první pohled náhodném sledu písmen a čísel jsou skryté informace, jako jsou uživatelské přihlašovací údaje, nebo celé soubory poslané ve více žádostech. Tunel je možné využít k posílání dat v obou směrech. Posílat data je stejně náročné, jako jejich přijímání, tedy lze poslat v DNS odpovědích i spustitelný příkaz na kompromitovaný počítač.
Každé DNS tunelování není nutně špatné. Spousta antivirových řešení se spoléhá na DNS tunely k posílání hashů prověřených souborů na jejich servery. Dělají to za účelem prověření, zda je soubor škodlivý, nebo ne. Některé weby využívají náhodně vygenerovaný text například k posílání telemetrických dat, tedy rozpoznávání DNS tunelů musí být dostatečně robustní na to, aby rozeznalo škodlivé tunely od těch legitimních. Je více přístupů, které Whalebone používá. Například počítáme počet DNS žádostí, protože tunelovaný provoz jich potřebuje mnohem víc než ten běžný. Co se rozbíjení tunelů týče, využíváme víceré bezpečnostní techniky v DNS standardu a jejich vynucení k rozbití většiny škodlivých tunelů, aniž by to mělo negativní dopad na běžný DNS provoz. Existuje několik domén na které randomizaci neaplikujeme, protože jinak dochází k negativnímu dopadu funkčnosti jejich nástrojů nebo služeb.
Proti sofistikovanějším tunelovacím mechanismům, které fungují i když aplikujeme výše zmíněné metody, využíváme neuronových sítí, které nám pomáhají určit zda se dá konkrétní aktivita považovat za tunel a je potřeba ji zablokovat, či nikoliv.
DNS tunely se využívají proto, že samotný protokol je ve většině případů povolený bez jakýchkoli limitací. Díky tomu se útočníci občas o DNS protokol opírají pro vytvoření tunelů přes které posílají cenná data z velmi dobře zabezpečených společností. Pro vyplnění této mezery je potřeba mít řešení, které aplikuje bezpečnost na úrovni DNS protokolu a dokáže rozeznat tunely pomocí vícero metod, nejen jedné, protože útočníci využívají různých možností k vytvoření tunelu.