自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Palo Alto 對(duì)近些年 DNS 歷史漏洞的整理分析(上)

安全 漏洞
在本文中,我將解釋什么是DNS,并回顧DNS緩存攻擊漏洞的歷史,從過去的漏洞到近年來發(fā)現(xiàn)的更高級(jí)的漏洞都會(huì)講到。

每隔一段時(shí)間,一個(gè)新的域名系統(tǒng)(DNS)漏洞被會(huì)被發(fā)現(xiàn),從而使全球數(shù)十億設(shè)備處于危險(xiǎn)之中,DNS漏洞通常是至關(guān)重要的。想象一下,你正在瀏覽你的銀行賬戶網(wǎng)站,但是你的DNS解析器不是返回你的銀行網(wǎng)站的IP地址,而是把你重定向到一個(gè)攻擊者網(wǎng)站的地址。而那個(gè)網(wǎng)站看起來和銀行的網(wǎng)站一模一樣,不僅如此,即使你看一下URL欄,你也不會(huì)發(fā)現(xiàn)任何錯(cuò)誤,因?yàn)槟愕臑g覽器實(shí)際上認(rèn)為這是你的銀行網(wǎng)站,以上就是DNS緩存攻擊的一個(gè)例子。

在本文中,我將解釋什么是DNS,并回顧DNS緩存攻擊漏洞的歷史,從過去的漏洞到近年來發(fā)現(xiàn)的更高級(jí)的漏洞都會(huì)講到。

我選擇的這些漏洞涵蓋了過去20年出現(xiàn)的幾乎所有DNS緩存攻擊。

什么是DNS?

域名系統(tǒng)是連接到互聯(lián)網(wǎng)(或?qū)S镁W(wǎng)絡(luò))的計(jì)算機(jī)、服務(wù)或其他資源的分層和分散式命名系統(tǒng)。它將各種信息與分配給每個(gè)參與對(duì)象的域名關(guān)聯(lián)起來。

簡(jiǎn)而言之,DNS是一種協(xié)議,主要用于將名稱轉(zhuǎn)換為IP地址。當(dāng)人們?yōu)g覽http://www.example.com時(shí),www.example.com域名即被轉(zhuǎn)換為實(shí)際的IP地址,例如93.184.216.34。

什么是DNS服務(wù)器?

DNS服務(wù)器,通常被稱為名稱服務(wù)器,是提供DNS解析的設(shè)備或程序。大多數(shù)桌面和移動(dòng)操作系統(tǒng)內(nèi)置的DNS客戶端與DNS服務(wù)器交互,以便將名稱轉(zhuǎn)換為IP地址。

重要的是要記住,最終只有兩種類型的服務(wù)器:權(quán)威名稱服務(wù)器和遞歸名稱服務(wù)器。權(quán)威名稱服務(wù)器是負(fù)責(zé)域名的名稱服務(wù)器——鏈中的最后一個(gè)。所有不是權(quán)威名稱服務(wù)器的東西都是遞歸的。例如,路由器的DNS服務(wù)器、ISP的DNS服務(wù)器、Kubernetes集群的DNS服務(wù)器都是遞歸名稱服務(wù)器。所有這些遞歸服務(wù)器的行為都是相同的。最后,經(jīng)過一些遞歸之后,它們聯(lián)系所需域的權(quán)威名稱服務(wù)器,有些服務(wù)器同時(shí)具有權(quán)威名稱服務(wù)器和遞歸名稱服務(wù)器的功能,本文不會(huì)進(jìn)行介紹。

它是如何工作的?

DNS協(xié)議的工作方式

DNS解析器是DNS層次結(jié)構(gòu)中的最低節(jié)點(diǎn),例如,在Kubernetes集群中。 DNS工作原理的基本思想是,當(dāng)詢問DNS解析器不知道的域時(shí),首先詢問DNS根服務(wù)器。根服務(wù)器是層次結(jié)構(gòu)中的最高節(jié)點(diǎn),其地址在解析程序中進(jìn)行了硬編碼。根服務(wù)器會(huì)給出相關(guān)頂級(jí)域(TLD)DNS服務(wù)器的地址列表,這些地址負(fù)責(zé)相關(guān)DNS區(qū)域(.com,.net等)。TLD服務(wù)器使用下一個(gè)層次較低的服務(wù)器的地址進(jìn)行應(yīng)答,依此類推,直到到達(dá)權(quán)威服務(wù)器為止。

云中的DNS

近年來,云計(jì)算迅速普及。在某些情況下,云產(chǎn)品實(shí)施DNS的方式可能并不直觀。云中的虛擬機(jī)非常簡(jiǎn)單,DNS解析器由虛擬機(jī)的操作系統(tǒng)確定。如果使用Windows,則Windows具有其內(nèi)置的DNS解析器。如果使用Linux,則取決于發(fā)行版。

但是,其他云產(chǎn)品(如Kubernetes)呢?與簡(jiǎn)單的虛擬機(jī)不同,Kubernetes在其節(jié)點(diǎn)上使用了自定義虛擬機(jī),而該虛擬機(jī)沒有內(nèi)置的DNS解析器。

每個(gè)Kubernetes集群還包含一個(gè)特殊的容器化DNS解析器,集群中的所有應(yīng)用程序都將其DNS請(qǐng)求轉(zhuǎn)發(fā)到該容器化的DNS解析器,由它來處理它們。

過去,在Kubernetes的1.10版本之前,它曾經(jīng)是kube-dns,這是用于處理,緩存和轉(zhuǎn)發(fā)DNS請(qǐng)求的應(yīng)用程序包。 kube-dns中的核心應(yīng)用是dnsmasq。 dnsmasq是一種輕型,易于配置的DNS轉(zhuǎn)發(fā)器,旨在為小型網(wǎng)絡(luò)提供DNS服務(wù)。從那時(shí)起,Kubernetes轉(zhuǎn)移到CoreDNS,這是用Go編寫的開源DNS服務(wù)器, CoreDNS是一種快速靈活的DNS服務(wù)器。

緩存

緩存是存儲(chǔ)數(shù)據(jù)的硬件或軟件組件,因此可以更快地滿足對(duì)該數(shù)據(jù)的將來請(qǐng)求。這是DNS服務(wù)器中一個(gè)非常重要的特性,DNS服務(wù)器使用緩存存儲(chǔ)以前翻譯的名稱。

例如,如果客戶端C嘗試訪問www.example.com,并且名稱服務(wù)器將www.example.com解析為93.184.216.34,則它將在www.example.com的IP地址中保留任意時(shí)間,因此下一個(gè)與之聯(lián)系以嘗試解析此名稱的DNS客戶端將立即從緩存中得到答復(fù)。

什么是DNS緩存攻擊?

DNS緩存攻擊是對(duì)DNS服務(wù)器的一種攻擊,其最終結(jié)果是服務(wù)器將攻擊者的控制IP地址保存到非攻擊者的控制域。

例如,攻擊者設(shè)法誘騙DNS服務(wù)器將www.example.com IP地址保存為13.37.13.37,這是攻擊者控制的邪惡IP地址,而不是實(shí)際的真實(shí)IP地址。

直到緩存的IP地址超時(shí),所有嘗試解析www.example.com的DNS客戶端都將“重定向”到攻擊者的網(wǎng)站。

過去的DNS漏洞

在過去的20年中發(fā)現(xiàn)了許多DNS攻擊,DNS緩存攻擊,也稱為DNS欺騙,這是最廣為人知的DNS攻擊。

那么DNS緩存攻擊如何工作?

如上所述,解析器需要花費(fèi)一些時(shí)間來解析域的IP地址。在獲得權(quán)威服務(wù)器之前,通常需要聯(lián)系多臺(tái)服務(wù)器,攻擊者可以濫用這段時(shí)間來向解析器發(fā)送虛假地址。

在以下情況下可能會(huì)發(fā)生這種攻擊,所有這些情況都會(huì)導(dǎo)致攻擊者能夠?qū)?shù)據(jù)包發(fā)送到解析器:

  • 解析器保留其偵聽端口向Internet開放;
  • 設(shè)法控制內(nèi)部網(wǎng)絡(luò)中終端的攻擊者;
  • 內(nèi)部網(wǎng)絡(luò)中的客戶端,瀏覽攻擊者控制的網(wǎng)站;

例如,假設(shè)攻擊者攻擊了內(nèi)部網(wǎng)絡(luò)中的一個(gè)終端,并且現(xiàn)在正試圖攻擊本地解析器的緩存。值得注意的是,這種攻擊可以在更關(guān)鍵的解析器(如ISP的解析器)上以完全相同的方式實(shí)現(xiàn)。

客戶端訪問www.example.com時(shí),解析器緩存中缺少該域,因此它啟動(dòng)上述過程來解析該域的地址。與此同時(shí),攻擊者向帶有假IP地址的解析器發(fā)送應(yīng)答包,偽造DNS服務(wù)器的應(yīng)答。這是攻擊的基本思路,但有一些緩解措施,這些包括事務(wù)ID和源端口隨機(jī)化。

DNS使用稱為事務(wù)ID(TXID)的名稱來將每個(gè)響應(yīng)與正確的請(qǐng)求進(jìn)行匹配,攻擊者必須提供帶有正確事務(wù)ID的響應(yīng),否則DNS服務(wù)器將丟棄數(shù)據(jù)包。早在多年前,人們就發(fā)明了這種機(jī)制,但這并不是要成為一種安全功能,而僅僅是一種將響應(yīng)與請(qǐng)求進(jìn)行匹配的方法。在發(fā)現(xiàn)DNS漏洞之前,DNS使用升序索引作為事務(wù)ID。不過,攻擊者很容易猜出這個(gè)數(shù)字。

DNS緩存攻擊

攻擊者必須購(gòu)買域并配置自己的受控DNS服務(wù)器,接下來,攻擊者會(huì)向本地網(wǎng)絡(luò)中的解析器詢問有關(guān)自己的域的信息。本地解析器會(huì)將請(qǐng)求轉(zhuǎn)發(fā)到分層DNS階梯,直到它到達(dá)一個(gè)DNS服務(wù)器,該DNS服務(wù)器知道攻擊者控制的DNS服務(wù)器。此時(shí),原始的DNS請(qǐng)求(攻擊者從內(nèi)部網(wǎng)絡(luò)發(fā)出的請(qǐng)求)將到達(dá)攻擊者控制的DNS服務(wù)器,從而向攻擊者揭示事務(wù)ID。

使用攻擊者先前發(fā)現(xiàn)的事務(wù)ID,他們可以很好地了解接受虛假響應(yīng)所需的事務(wù)ID。在這種情況下,攻擊者可以發(fā)送多個(gè)帶有多個(gè)事務(wù)ID的虛假響應(yīng),以確保其中一個(gè)是正確的。然后,攻擊者所能做的就是向不在本地DNS解析器緩存中的域發(fā)出DNS請(qǐng)求,并立即使用該域的事務(wù)ID發(fā)送虛假響應(yīng)。

本地解析器將獲得具有正確事務(wù)ID的響應(yīng),刪除其他事務(wù)并緩存地址。從現(xiàn)在開始,在任意時(shí)間范圍內(nèi),所有將訪問該域的本地客戶端都將被定向到攻擊者的網(wǎng)站。

本文翻譯自:https://unit42.paloaltonetworks.com/dns-vulnerabilities/

 

責(zé)任編輯:趙寧寧 來源: 嘶吼網(wǎng)
相關(guān)推薦

2021-02-10 09:33:39

漏洞

2024-12-30 12:02:29

2025-02-20 14:36:38

2018-04-12 17:44:48

2024-12-27 16:34:15

2025-02-19 16:09:24

2017-03-06 18:43:09

2025-02-21 15:50:21

2019-02-26 15:15:16

DNS漏洞IP

2012-07-20 09:56:20

checkpointpaloalto防火墻

2014-01-07 15:29:45

2015-05-29 19:01:39

Palo AltoSaaS安全性

2024-11-25 16:03:21

2021-12-19 07:33:19

Palo Alto網(wǎng)絡(luò)安全網(wǎng)絡(luò)犯罪

2013-05-14 10:41:16

Palo AltoNGFWUTM

2020-04-03 15:38:51

派拓網(wǎng)絡(luò)CloudGenixPalo Alto N

2021-09-29 10:13:16

Azurescape漏

2018-03-22 18:08:29

2021-01-04 14:16:11

網(wǎng)絡(luò)安全

2011-12-11 17:52:40

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)