一(yī)、DNS介紹
DNS域名系統是(shì)互聯網關鍵的(de)基礎設γ≤π"施之一(yī),它是(shì)一(yī)個(g↕™è)将域名與IP地(dì)址互相(xiàn↕©g)映射的(de)全球分(fēn)布數(shù)據∞∑©↑庫。對(duì)于惡意DNS的(de)過濾、檢測惡意網站(zhànα§Ω)域名、
僵屍網絡和(hé)網絡隐秘通(tōng)道(dào)發現(xiàn★♣™)是(shì)安全防護設備中必不(bù)可(kě)少(shǎo)的(de)一± (yī)種手段。
二、原理(lǐ)
RFC 1035規定了(le)域名每個(gè)ε★标簽不(bù)超過63字節,域名總長(chán™↔↑g)不(bù)超過255字節。可(kě)以含有(yǒu)任意8bi'×t值,通(tōng)常情況下(xià)域名÷←标簽由英文(wén)字母、數(shù)字和(hé)連字符構成。RFC 218"λ•1進一(yī)步明(míng)确了(le),DN>εS本身(shēn)不(bù)對(duì)域≤β↑£名所含字符內(nèi)容進行(xíng)限制(zhì)。一©λ♦(yī)些(xiē)文(wén)獻中驗證了(le)ISC BIND等♥÷φ£常用(yòng)DNS服務器(qì)軟件(jiàn)對(duì)二進制(>§∑zhì)域名的(de)支持。盡管在RFC1 1∑♥$23 之中對(duì)于DNS軟件(jiàn←↕)支持無法轉換為(wèi)可(kě)打印¥←λ格式的(de)資源記錄,內(nèi)部存儲不ש↑(bù)能(néng)使用(yòng)文(wé÷→∞n)本格式。由于Letter Digit Hyp∏♣σhen規則的(de)域名含有(yǒu)可(kě)打印字符&↑≠,如(rú)此産生(shēng)了(le)兩種問(wèn)題,其一¶↓>¥(yī)為(wèi)大(dà)多(duō)數(shù®♠•)程序對(duì)于域名的(de)處理(lǐ)采用(y↔↕♣òng)字符串函數(shù),可(kě)能(néng)₽♣ 會(huì)對(duì)于某些(xiē)特定結束字符進行(xíng)&δ處理(lǐ)(例如(rú)C語言中對(duì)于\000進行(xíng)處€λ理(lǐ)),其二DNS服務器(qì)對(duì)于特殊β®™字符進行(xíng)處理(lǐ)後依然返回解析結果λ>,某些(xiē)程序過濾惡意DNS域名并未考慮。
三、測試方法
用(yòng)PYTHON socketserver和(hé)struct↔₹φ開(kāi)發簡單的(de)DNS服務器(Ω> qì)進行(xíng)測試,再使用(yòng)DNSPytho♣✘¶n模塊作(zuò)為(wèi)DNS請(qǐng)求的(de)測試。在對(dπ♥uì)DNS服務器(qì)測試時(shí),我們向被測的(de)服務≤↔↓ 器(qì)發送正常的(de)或者帶有(yǒu)特殊字符的(deβ∏¥)DNS兩種請(qǐng)求方式,如(rú)$¥果DNS服務器(qì)兩種數(shù)據報(bào)★π→文(wén)傳輸的(de)請(qǐng)求 ☆>結果存在區(qū)别則證明(míng)其二失敗,否則成功。
四、危害
1.隐藏惡意軟件(jiàn)域名:
通(tōng)過該方法可(kě)繞過基于D✔≠★¶NS流量檢測的(de)流量分(fēn)析軟件(jiàn)、算α (suàn)法和(hé)相(xiàng)關安全設備及在線文(wén)件(σ§×jiàn)分(fēn)析系統,通(tōng)過構造加入特殊字符的(de)→♥←DNS請(qǐng)求,既保證了(le)域名成功解析,又(yò♦£ u)保護了(le)惡意域名難以被發現(xiàn)。
2.隐藏DNS隐蔽通(tōng)道(dào)
将僞造源地(dì)址的(de)方法與本文(wén)域名欺騙方法δ→結合,可(kě)以起到(dào)更好(hǎo)的(de)'↑αDNS隧道(dào)流量隐蔽效果,通(tōng)過僞造源地¶¶σ(dì)址來(lái)分(fēn)散DNS隧道β♥ (dào)流量,對(duì)內(nèi)網數(shù)據洩密和(hé)₹×₽Ω遠(yuǎn)程控制(zhì)隧道(dào)加入了(le)新的∞✘≈(de)挑戰。
3.繞過DNS過濾
利用(yòng)這(zhè)個(gè)方法進行(xíng)DNS過濾設備的(♠∑₩♦de)穿透具有(yǒu)一(yī)定的(de)可(kě)行(xíngγ£σ)性,目前已發現(xiàn)大(dà)量帶有(yǒu)域名λ₩←過濾的(de)安全設備.存在被繞過的(de)風(fēn↔♦π✘g)險。
五、修複
所謂有(yǒu)攻就(jiù)有(yǒu)防,通(tōng)過DNSPy'σthon修複,在dns記錄中,加入過濾異常的(de)特殊字符。 同時(shí)¶ε✔在安全設備中擴大(dà)過濾DNS請(qǐng)求§∏≈特殊字符的(de)範圍。
本文(wén)章(zhāng)轉自(zì♣>ε)安全大(dà)咖vr_system分(fēn)享的(d←®€€e)原創文(wén)章(zhāng),經作(zuò)者♦↑授權同意後墨者安全轉載來(lái)的(de),如(rú¶÷±☆)有(yǒu)任何版權或者內(nèi)容錯(cuò)誤>☆問(wèn)題,請(qǐng)聯系小(xiǎ™π↕o)編删除,謝(xiè)謝(xiè)!僅供安全δ✘↕ 愛(ài)好(hǎo)者研究學習(xí),對(duì)用(yΩ™òng)于非法途徑的(de)行(xíng)為(w>σ₩γèi),發布者及作(zuò)者不(bù)承擔任何責εε©任。