DNS緩存中毒攻擊
什么是DNS緩存中毒
DNS緩存中毒是一種網(wǎng)絡(luò)攻擊,它使您的計(jì)算機(jī)誤以為它會(huì)到達(dá)正確的地址,但事實(shí)并非如此。攻擊者使用DNS緩存中毒來(lái)劫持互聯(lián)網(wǎng)流量并竊取用戶憑據(jù)或個(gè)人數(shù)據(jù)。DNS緩存中毒攻擊也稱為DNS欺騙,它試圖誘騙用戶將其私人數(shù)據(jù)輸入不安全的網(wǎng)站。
什么是DNS緩存
在討論攻擊之前,我們需要重新了解DNS和DNS緩存。DNS是IP地址和域名的全球目錄。DNS緩存是將這些地址存儲(chǔ)在世界各地的DNS服務(wù)器中的系統(tǒng)。
為了保持您的DNS請(qǐng)求快速,原始開(kāi)發(fā)人員創(chuàng)建了一個(gè)分布式DNS系統(tǒng)。每個(gè)服務(wù)器都存儲(chǔ)一個(gè)它知道的DNS記錄列表–這稱為緩存。如果離您最近的DNS服務(wù)器不知道您需要的IP地址,它將詢問(wèn)其他DNS服務(wù)器,直到找到您要訪問(wèn)的網(wǎng)站的IP地址。然后,您的DNS服務(wù)器將該新條目保存到緩存中。
DNS緩存中毒攻擊如何工作
DNS緩存中毒通過(guò)欺騙DNS服務(wù)器保存?zhèn)卧斓腄NS條目來(lái)起作用。偽造的DNS條目的流量流向選擇竊取數(shù)據(jù)的攻擊者的服務(wù)器。
- 攻擊者植入假的地址到DNS;
- 服務(wù)器緩存假地址;
- 流量被牽引到攻擊者服務(wù)器。
常用技術(shù)手段如下:
(1) Birthday Attack
DNS不會(huì)驗(yàn)證對(duì)遞歸查詢的響應(yīng),因此第一個(gè)響應(yīng)存儲(chǔ)在緩存中。攻擊者使用“Birthday Attack”來(lái)嘗試預(yù)測(cè)偽造的響應(yīng)并將其發(fā)送給請(qǐng)求者。BirthdayAttack使用數(shù)學(xué)和概率論進(jìn)行猜測(cè)。在這種情況下,攻擊者試圖猜測(cè)您的DNS請(qǐng)求的事務(wù)ID,因此帶有偽造的DNS條目的偽造響應(yīng)會(huì)在真正響應(yīng)之前到達(dá)您。
Birthday Attack不一定能成功,但最終,攻擊者會(huì)將偽造的響應(yīng)偷偷溜進(jìn)緩存。一旦攻擊確實(shí)成功,攻擊者將看到來(lái)自偽造的DNS條目的流量,直到生存時(shí)間(TTL)到期為止。
(2) Kaminsky漏洞
Kaminsky漏洞利用是BlackHat 2008上提出的Birthday Attack的一種變體。首先,攻擊者向目標(biāo)解析器發(fā)送不存在域的DNS查詢,例如“fake.dingxinsec.com.cn”。然后,解析程序?qū)⒉樵冝D(zhuǎn)發(fā)到權(quán)威名稱服務(wù)器,以獲取錯(cuò)誤子域的IP地址。此時(shí),攻擊者向解析器注入了大量偽造的響應(yīng),希望這些偽造之一與原始查詢的事務(wù)ID相匹配。
如果攻擊成功,則攻擊者已使用dingxinsec.com.cn的偽造IP地址毒害了目標(biāo)解析器的DNS緩存。直到TTL為止,請(qǐng)求dingxinsec.com.cn的人都將獲得偽造的IP地址。
(3) 竊聽(tīng)
攻擊者如果有足夠的網(wǎng)絡(luò)訪問(wèn)權(quán)限,就可以監(jiān)視本地DNS流量并使用多種技術(shù)手段破壞緩存。
如何檢測(cè)DNS緩存中毒
那么,如何檢測(cè)DNS緩存中毒攻擊?監(jiān)視DNS服務(wù)器以獲取可能的攻擊指示,將數(shù)據(jù)安全分析應(yīng)用于您的DNS監(jiān)視,以識(shí)別正常的DNS行為免受攻擊。
- 來(lái)自單個(gè)來(lái)源的有關(guān)單個(gè)域的DNS活動(dòng)突然增加表示潛在的Birthday Attack。
- 從單一來(lái)源查詢DNS服務(wù)器以獲取多個(gè)域名而不進(jìn)行遞歸的DNS活動(dòng)的增加表示嘗試查找用于中毒的條目。
除了監(jiān)視DNS之外,還監(jiān)視Active Directory事件和文件系統(tǒng)行為是否存在異?;顒?dòng)。甚至更好的是,使用分析來(lái)關(guān)聯(lián)所有三個(gè)媒介之間的活動(dòng),從而為您的網(wǎng)絡(luò)安全策略添加有價(jià)值的環(huán)境。
如何防止
除了監(jiān)視和分析之外,您還可以在DNS服務(wù)器上進(jìn)行配置更改。
- 限制遞歸查詢以防止?jié)撛诘挠嗅槍?duì)性的中毒攻擊
- 僅存儲(chǔ)與請(qǐng)求域相關(guān)的數(shù)據(jù)
- 限制響應(yīng)以僅提供有關(guān)請(qǐng)求域的響應(yīng)
- 強(qiáng)制客戶端使用HTTPS
請(qǐng)確保您使用的是BIND和DNS軟件的最新版本,以便您具有最新的安全修復(fù)程序。
最后,DNSSEC是一種新的DNS協(xié)議,可對(duì)DNS請(qǐng)求進(jìn)行加密以防止偽造。該協(xié)議尚未得到廣泛采用,因?yàn)樗_實(shí)會(huì)減慢DNS進(jìn)程。HTTPS上的DNS(DoH)是下一版本DNS的競(jìng)爭(zhēng)規(guī)范,可以在不犧牲DNSSEC之類的速度的情況下確保DNS請(qǐng)求的安全。