DNS 安全威脅調(diào)研報(bào)告
DNS 安全威脅調(diào)研報(bào)告 隱私泄露NSEC 行走隱藏主服務(wù)器D(DoS)攻擊主服務(wù)器攻陷存儲(chǔ)區(qū)損壞信息更改輔服務(wù)器攻陷解析器攻陷主機(jī)滲入DNS 安全威脅數(shù)據(jù)損壞系統(tǒng)損壞客戶端攻陷惡意軟件過分自由的附加
DNS 安全威脅調(diào)研報(bào)告 隱私泄露NSEC 行走隱藏主服務(wù)器
D(DoS)攻擊主服務(wù)器攻陷
存儲(chǔ)區(qū)損壞信息更改輔服務(wù)器攻陷
解析器攻陷主機(jī)滲入DNS 安全威脅數(shù)據(jù)損壞系統(tǒng)損壞客戶端攻陷惡意軟件過分自由的附加信息遞歸開放協(xié)議問題固定端口號(hào)
查詢預(yù)測(cè)弱ID 算法不安全的網(wǎng)絡(luò)路徑特制數(shù)據(jù)包系統(tǒng)/應(yīng)用程序崩潰針對(duì)DNS 服務(wù)器
資源耗盡
拒絕服務(wù)
核心設(shè)施針對(duì)網(wǎng)絡(luò)基礎(chǔ)設(shè)施DoS 攻擊服務(wù)器端設(shè)施
客戶端設(shè)施
,一、 緩存窺探(Cache Snooping)
DNS 緩存窺探是一個(gè)確定某一個(gè)資源記錄是否存在于一個(gè)特定的DNS 緩存中的過程。通過這個(gè)過程攻擊者可以得到一些信息,例如解析器處理了哪些域名查詢,等等。
DNS 遞歸服務(wù)器接收到一個(gè)沒有設(shè)置遞歸位的域名查詢,當(dāng)它對(duì)該查詢進(jìn)行響應(yīng)時(shí),就會(huì)為一個(gè)遠(yuǎn)程攻擊者提供一次窺探的機(jī)會(huì),使攻擊者能夠確定最近該服務(wù)器對(duì)哪些域名進(jìn)行了解析,更進(jìn)一步,有哪些主機(jī)或站點(diǎn)被訪問過。因此,通過DNS 緩存窺探,攻擊者可以發(fā)現(xiàn)例如B2B 商業(yè)伙伴、網(wǎng)絡(luò)用戶行為模式、外部郵件服務(wù)器等重要信息。
防范建議:
1. DNS 遞歸服務(wù)器應(yīng)該只允許本地用戶的訪問。由于緩存的局部性原理,允許處于不同網(wǎng)絡(luò)的用戶訪問本地的緩存本身就沒有意義。
2. 不允許非權(quán)威的請(qǐng)求。例如,DNS 緩存服務(wù)器(僅有緩存的DNS 服務(wù)器實(shí)現(xiàn))應(yīng)盡力通過拒絕對(duì)非遞歸查詢進(jìn)行響應(yīng)來防止緩存窺探。另一種選擇是在響應(yīng)非遞歸查詢時(shí)避免訪問緩存。
3. 遞歸服務(wù)器從權(quán)威服務(wù)器獲取記錄以及其對(duì)應(yīng)的TTL 時(shí),隨機(jī)地對(duì)TTL 增加或減少很小的一段時(shí)間,這樣,僅利用遞歸查詢就不可能進(jìn)行DNS 緩存窺探。
二、 重放攻擊(Replay Attack)
由于DNSSEC 方案的設(shè)計(jì)中缺少一種“簽名撤銷”機(jī)制,使得部署了DNSSEC 的DNS 服務(wù)器仍有遭受到“DNS 重放攻擊”的可能。如圖1所示:
,圖1 DNS重放攻擊原理
在t 0時(shí)刻,RRset 1產(chǎn)生并且被簽名。簽名中包含生存期,指出在t 2時(shí)刻該簽名過期。在t 1時(shí)刻RRset 1的值被修改(例如,主機(jī)IP 地址的更改),則之后被修改的RRset 1會(huì)被同步到所有的權(quán)威服務(wù)器并且當(dāng)遞歸服務(wù)器緩存中的TTL 過期后,存儲(chǔ)在緩存中的之前的RRset 1的值也會(huì)被清除。然而,在t 2時(shí)刻到來即簽名過期之前,攻擊者可以繼續(xù)用之前那個(gè)舊的RRset 1響應(yīng)解析器。解析器在收到已無效的RRset 1之后,將會(huì)檢驗(yàn)還未過期的簽名,并錯(cuò)誤地認(rèn)為該記錄是有效的。
防范建議:
在DNSSEC 方案部署過程中加入“簽名撤銷”機(jī)制。
三、 社會(huì)工程攻擊(Social Engineering Attack)
社會(huì)工程攻擊是一種利用" 社會(huì)工程學(xué)" 來實(shí)施的網(wǎng)絡(luò)攻擊行為。社會(huì)工程學(xué)是一種利用人的弱點(diǎn)如人的本能反應(yīng)、好奇心、信任、貪便宜等弱點(diǎn)進(jìn)行諸如欺騙、傷害等危害手段,獲取自身利益的手法。現(xiàn)實(shí)中運(yùn)用社會(huì)工程學(xué)的犯罪很多。短信詐騙如詐騙銀行信用卡號(hào)碼,電話詐騙如以知名人士的名義去推銷詐騙等,都運(yùn)用了社會(huì)工程學(xué)的方法。
近年來,更多的黑客轉(zhuǎn)向利用人的弱點(diǎn)即社會(huì)工程學(xué)方法來實(shí)施網(wǎng)絡(luò)攻擊。
,利用社會(huì)工程學(xué)手段,突破信息安全防御措施的事件,已經(jīng)呈現(xiàn)出上升甚至泛濫的趨勢(shì)。最近流行的免費(fèi)下載軟件中捆綁流氓軟件、免費(fèi)音樂中包含病毒、網(wǎng)絡(luò)釣魚、垃圾電子郵件中包括間諜軟件等,都是近來社會(huì)工程學(xué)的代表應(yīng)用。
防范建議:
社會(huì)工程攻擊不屬于傳統(tǒng)信息安全的范疇,傳統(tǒng)信息安全辦法解決不了非傳統(tǒng)信息安全的威脅。一般認(rèn)為,解決非傳統(tǒng)信息安全威脅也要運(yùn)用社會(huì)工程學(xué)來反制社會(huì)工程攻擊。
四、 域名劫持(Domain Name Hijacking)
域名劫持通常是指,通過采用黑客手段控制了域名管理密碼和域名管理郵箱,然后將該域名的NS 紀(jì)錄指向到黑客可以控制的DNS 服務(wù)器,然后通過在該DNS 服務(wù)器上添加相應(yīng)域名紀(jì)錄,從而使網(wǎng)民訪問該域名時(shí),進(jìn)入了黑客所指向的內(nèi)容。如圖2所示。
圖2 域名劫持
值得注意的是:域名被劫持后,不僅網(wǎng)站內(nèi)容會(huì)被改變,甚至可以導(dǎo)致域名所有權(quán)也旁落他人。如果是國內(nèi)的CN 域名被劫持,還可以通過和注冊(cè)服務(wù)商或注冊(cè)管理機(jī)構(gòu)聯(lián)系,較快地拿回控制權(quán)。如果是國際域名被劫持,恰巧又是通過國際注冊(cè)商注冊(cè),那么其復(fù)雜的解決流程,再加上非本地化的服務(wù),
會(huì)使得奪回
,域名變得異常復(fù)雜。
域名劫持的具體實(shí)施步驟如下:
1. 獲取劫持域名注冊(cè)信息:首先攻擊者會(huì)訪問域名查詢站點(diǎn),通過MAKE CHANGES 功能,輸入要查詢的域名以取得該域名注冊(cè)信息。
2. 控制該域名的E-MAIL 賬號(hào):此時(shí)攻擊者會(huì)利用社會(huì)工程學(xué)或暴力破解進(jìn)行該E-MAIL 密碼破解,有能力的攻擊者將直接對(duì)該E-MAIL 進(jìn)行入侵行為,以獲取所需信息。
3. 修改注冊(cè)信息:當(dāng)攻擊者破獲了E-MAIL 后,會(huì)利用相關(guān)的MAKE CHANGES 功能修改該域名的注冊(cè)信息,包括擁有者信息,DNS 服務(wù)器信息等。
4. 使用E-MAIL 收發(fā)確認(rèn)函:此時(shí)的攻擊者會(huì)在信件賬號(hào)的真正擁有者之前,截獲網(wǎng)絡(luò)公司回潰的網(wǎng)絡(luò)確認(rèn)注冊(cè)信息更改件,并進(jìn)行回件確認(rèn),此時(shí)攻擊者成功劫持域名。
防范建議:
1. 在技術(shù)上解決,應(yīng)遵循DNS 使用最佳慣例:
a) 在不同的網(wǎng)絡(luò)上運(yùn)行分離的域名服務(wù)器來取得冗余性。
b) 將外部和內(nèi)部域名服務(wù)器分開(物理上分開或運(yùn)行BIND Views)并使
用轉(zhuǎn)發(fā)器(forwarder )。外部域名服務(wù)器應(yīng)當(dāng)接受來自幾乎任何地址的查詢,但是轉(zhuǎn)發(fā)器則應(yīng)當(dāng)被配置為只接受來自內(nèi)部地址的查詢。關(guān)閉外部域名服務(wù)器上的遞歸功能。這可以限制哪些DNS 服務(wù)器與Internet 聯(lián)系。
c) 可能時(shí),限制動(dòng)態(tài)DNS 更新。
,d) 將區(qū)域傳送僅限制在授權(quán)的設(shè)備上。
e) 利用事務(wù)簽名對(duì)區(qū)域傳送和區(qū)域更新進(jìn)行數(shù)字簽名。
f) 隱藏運(yùn)行在服務(wù)器上的BIND 版本。
g) 刪除運(yùn)行在DNS 服務(wù)器上的不必要服務(wù),如FTP 、telnet 和HTTP 。 h) 在網(wǎng)絡(luò)外圍和DNS 服務(wù)器上使用防火墻服務(wù)。將訪問限制在那些DNS
功能需要的端口/服務(wù)上。
2. 在組織上解決,應(yīng)讓注冊(cè)商承擔(dān)責(zé)任:
a) 要求注冊(cè)商拿出書面的、可執(zhí)行的政策聲明。將“如果需要轉(zhuǎn)移域名,
注冊(cè)商必須及時(shí)與用戶聯(lián)系”的條款寫入書面文件。
b) 鎖定域名。要求注冊(cè)商在得到解鎖口令或其他身份信息后才允許轉(zhuǎn)移。 c) 用戶需使保存在注冊(cè)商那里的正式聯(lián)系信息保持最新狀態(tài)。
d) 選擇提供24/7服務(wù)的注冊(cè)商,這樣他們可以在發(fā)生違規(guī)事件時(shí)迅速
采取行動(dòng)。
e) 若發(fā)現(xiàn)未經(jīng)授權(quán)的轉(zhuǎn)移,立即與有關(guān)注冊(cè)商聯(lián)系。
f) 如果問題仍未解決,與域名注冊(cè)機(jī)構(gòu)聯(lián)系,如果在拿回自己的域名時(shí)
仍遇到問題,與ICANN 聯(lián)系。
g) 如果擁有一個(gè)大型的域,那就像Google 那樣,成為自己的注冊(cè)商或
自己的轉(zhuǎn)銷商,控制屬于自己的所有域名。
五、 緩存中毒(或DNS 欺騙)(Cache Poisoning or DNS
Spoofing )
域名欺騙的方式有多種多樣,但其攻擊現(xiàn)象就是利用控制DNS 緩存服務(wù)器,把原本準(zhǔn)備訪問某網(wǎng)站的用戶在不知不覺中帶到黑客指向的其他網(wǎng)站上,其實(shí)現(xiàn)方
,式可以通過利用網(wǎng)民ISP 端的DNS 緩存服務(wù)器的漏洞進(jìn)行攻擊或控制,從而改變?cè)揑SP 內(nèi)的用戶訪問域名的響應(yīng)結(jié)果。或者黑客通過利用用戶權(quán)威域名服務(wù)器上的漏洞,如當(dāng)用戶權(quán)威域名服務(wù)器同時(shí)可以被當(dāng)作緩存服務(wù)器使用,黑客可以實(shí)現(xiàn)緩存投毒,將錯(cuò)誤的域名紀(jì)錄存入緩存中,從而使所有使用該緩存服務(wù)器的用戶得到錯(cuò)誤的DNS 解析結(jié)果。緩存中毒對(duì)于普通用戶而言,危害很大,而且非常難于防范,在目前的DNS 攻擊中非常常見。
關(guān)于緩存中毒有很多手段和方法,下面列舉幾種比較典型的手段。
方法一:直接攻陷一個(gè)域名服務(wù)器,假設(shè)為A ,然后向其他的DNS 服務(wù)器發(fā)送域名解析請(qǐng)求,且請(qǐng)求的域名屬于A 負(fù)責(zé)的域,并且要求采用遞歸請(qǐng)求,那么其他的DNS 服務(wù)器就會(huì)向A 提出查詢請(qǐng)求,詢問A 的IP 地址,由于A 已經(jīng)被攻擊者控制,所以就回送一個(gè)假的IP 地址,這樣,正常的DNS 緩存中就存放了假的IP 地址。
方法二:生日攻擊,其出現(xiàn)的原因是“生日悖論”?!吧浙U摗钡妹谝粋€(gè)能產(chǎn)生奇怪現(xiàn)象的數(shù)學(xué)模型,即如果有23人在一起,那么很有可能其中的兩人有相同的生日。而生日攻擊正是利用這一特點(diǎn),向一臺(tái)域名服務(wù)器發(fā)出同一個(gè)域名的查詢請(qǐng)求的同時(shí),也發(fā)送大量的該域名的回應(yīng)報(bào)文,但是其transaction ID 是不同的,從而就有很大可能使該域名服務(wù)器受騙。
方法三:偵聽DNS 服務(wù)器發(fā)出的查詢請(qǐng)求,猜測(cè)其transaction ID,從而在他發(fā)出某個(gè)請(qǐng)求后,立刻給出回應(yīng)。
方法四、本地主機(jī)(攻擊者)至少與DNS 服務(wù)器或客戶端主機(jī)中的某一臺(tái)處在同一個(gè)局域網(wǎng)內(nèi),攻擊者可以通過ARP 欺騙來實(shí)現(xiàn)可靠而穩(wěn)定的transaction ID 欺騙。
,防范建議:
1、 反向查詢。對(duì)于自己發(fā)出的查詢請(qǐng)求得到的IP 地址,再進(jìn)行一次反向查詢,如果得到的域名和自己查的域名一致,則認(rèn)為是對(duì)的,否則認(rèn)為是被改寫,通知相關(guān)人員檢查該域名的權(quán)威服務(wù)器。缺點(diǎn)是并不是所有的DNS 服務(wù)器都支持反向查詢。
2、 緩存中毒往往把TTL 值設(shè)置很大。TTL>=12h,要進(jìn)行關(guān)注,缺點(diǎn)是易受攻擊的網(wǎng)站本身就是一些TTL 值很大的網(wǎng)站。
3、 緩存中毒的對(duì)象一般是銀行網(wǎng)站、搜索網(wǎng)站、熱門的新聞網(wǎng)站等等,可以自行記錄這些IP 地址,即自學(xué)習(xí)域名IP 地址對(duì)應(yīng)表,如果查詢到的IP 地址與這個(gè)IP 地址不一樣,就認(rèn)為返回信息不可靠。
4、 被動(dòng)監(jiān)聽檢測(cè):如果對(duì)于一個(gè)查詢報(bào)文,有兩個(gè)或多個(gè)應(yīng)答,則懷疑有欺騙,正常的請(qǐng)求應(yīng)該只有一個(gè)服務(wù)器應(yīng)答,而且只回一次。
5、 部署DNSSEC 。
六、 中間人攻擊(Man in the Middle Attack)
中間人攻擊,是攻擊者冒充域名服務(wù)器的一種欺騙行為,它主要用于向主機(jī)提供錯(cuò)誤DNS 信息。
執(zhí)行中間人攻擊的方法有很多,在這里介紹一種稱為DNS ID欺騙的技術(shù)。每個(gè)通過互聯(lián)網(wǎng)發(fā)送的DNS 請(qǐng)求都包含一個(gè)獨(dú)特的識(shí)別碼,其目的在于辨識(shí)查詢和響應(yīng),并將對(duì)應(yīng)的查詢和響應(yīng)配對(duì)在一起。這就意味著,如果攻擊計(jì)算機(jī)可以攔截目標(biāo)設(shè)備發(fā)送的DNS 查詢,只需要做一個(gè)包含該識(shí)別碼的假數(shù)據(jù)包,這樣目標(biāo)計(jì)算機(jī)就會(huì)根據(jù)識(shí)別碼而接受查詢結(jié)果。可以分兩個(gè)步驟來完成整個(gè)操作。首先,對(duì)目標(biāo)設(shè)備進(jìn)行ARP 緩存中毒攻擊以重新路由通過攻擊主機(jī)的目標(biāo)設(shè)備的通信,這樣攻擊者就能夠攔截DNS 查詢請(qǐng)求,然后就能夠發(fā)送欺騙性的數(shù)據(jù)包。
,這樣做的目的是為了讓目標(biāo)網(wǎng)絡(luò)的用戶訪問攻擊者制造的惡意網(wǎng)址而不是他們?cè)噲D訪問的網(wǎng)址,如圖3所示。
圖3 DNS中間人攻擊
防范建議:
DNS 中間人攻擊是很難防御的,因?yàn)檫@種攻擊大多數(shù)本質(zhì)都是被動(dòng)的。通常情況下,除非發(fā)生攻擊,否則用戶不可能知道DNS 已經(jīng)被欺騙,只是用戶打開的網(wǎng)頁與想要看到的網(wǎng)頁有所不同。在很多針對(duì)性的攻擊中,用戶都無法知道自己已經(jīng)將網(wǎng)上銀行帳號(hào)信息輸入到錯(cuò)誤的網(wǎng)址,直到接到銀行的電話告知其賬號(hào)已購買某某高價(jià)商品時(shí)用戶才會(huì)知道。這就是說,在抵御這種類型攻擊方面還是有跡可循:
1. 保護(hù)內(nèi)部設(shè)備:像這樣的攻擊大多數(shù)都是從網(wǎng)絡(luò)內(nèi)部執(zhí)行攻擊的,如果網(wǎng)絡(luò)設(shè)備很安全,那么那些感染的主機(jī)就很難向設(shè)備發(fā)動(dòng)欺騙攻擊。
2. 不要依賴DNS:在高度敏感和安全的系統(tǒng),
網(wǎng)絡(luò)用戶通常不會(huì)在這些系統(tǒng)
,上瀏覽網(wǎng)頁,最后不要使用DNS 。如果用戶的軟件依賴于主機(jī)名來運(yùn)行,那么可以在設(shè)備主機(jī)文件里手動(dòng)指定。
3. 使用入侵檢測(cè)系統(tǒng):只要正確部署和配置,使用入侵檢測(cè)系統(tǒng)就可以檢測(cè)出大部分形式的ARP 緩存中毒攻擊和DNS 中間人攻擊。
4. 使用DNSSEC 。
七、 分布式拒絕服務(wù)攻擊(DDoS Attack)
DNS 服務(wù)器作為“受害者”:
DoS 的攻擊方式有很多種,最基本的DoS 攻擊就是利用合理的服務(wù)請(qǐng)求來占用過多的服務(wù)資源,從而使合法用戶無法得到服務(wù)的響應(yīng)。DDoS 攻擊手段是在傳統(tǒng)的DoS 攻擊基礎(chǔ)之上產(chǎn)生的一類攻擊方式。單一的DoS 攻擊一般是采用一對(duì)一方式的,當(dāng)攻擊目標(biāo)CPU 速度低、內(nèi)存小或者網(wǎng)絡(luò)帶寬小等等各項(xiàng)性能指標(biāo)不高的時(shí)候,它的效果是明顯的。隨著計(jì)算機(jī)與網(wǎng)絡(luò)技術(shù)的發(fā)展,計(jì)算機(jī)的處理能力迅速增長,內(nèi)存大大增加,同時(shí)也出現(xiàn)了千兆級(jí)別的網(wǎng)絡(luò),這使得DoS 攻擊的困難程度加大了,因?yàn)楣裟繕?biāo)對(duì)惡意攻擊包的" 消化能力" 加強(qiáng)了不少。這時(shí)分布式拒絕服務(wù)攻擊手段(DDoS )就應(yīng)運(yùn)而生。
DDoS 就是利用更多的傀儡機(jī)來發(fā)起進(jìn)攻,以比從前更大的規(guī)模來進(jìn)攻受害者。高速廣泛連接的網(wǎng)絡(luò)給大家?guī)砹朔奖?,也為DDoS 攻擊創(chuàng)造了極為有利的條件。在低速網(wǎng)絡(luò)時(shí)代,黑客占領(lǐng)攻擊用的傀儡機(jī)時(shí),總是會(huì)優(yōu)先考慮離目標(biāo)網(wǎng)絡(luò)距離較近的機(jī)器,因?yàn)榻?jīng)過路由器的跳數(shù)少,效果好。而現(xiàn)在電信骨干節(jié)點(diǎn)之間的連接都是以G 為級(jí)別的,大城市之間更可以達(dá)到2.5G 的連接,這使得攻擊可以從更遠(yuǎn)的地方或者其他城市發(fā)起,攻擊者的傀儡機(jī)位置可以分布在更大的范圍,選擇起來更加靈活。