任從容
達(dá)州職業(yè)技術(shù)學(xué)院 四川 635001
使用DNS重新綁定的易受攻擊性,攻擊者需要進(jìn)行直接套接字訪問(wèn),這種訪問(wèn)通過(guò)DNS使用Flash與Java重新綁定,其請(qǐng)求僅具有從目標(biāo)主機(jī)讀取HTTP響應(yīng)的能力。這種攻擊有兩種典型防火墻欺騙和IP劫持。
防御DNS重新綁定攻擊可以在瀏覽器、插件、DNS解析、防火墻和服務(wù)器中實(shí)現(xiàn)。
網(wǎng)絡(luò)系統(tǒng)防御防火墻欺騙攻擊通過(guò)禁止外部主機(jī)解析到內(nèi)部IP地址,這樣能夠有效地防御攻擊者重命名到目標(biāo)服務(wù)器。如果不能重命名到目標(biāo)服務(wù)器,攻擊者就不能匯聚眾多目標(biāo)服務(wù)器到其控制下的區(qū)域源內(nèi)。這樣惡意綁定就能夠在防火墻端通過(guò)過(guò)濾包而被阻止,或者通過(guò)在客戶端修改DNS解析而阻止。
通過(guò)拒絕缺省方式直接套接字訪問(wèn)可以阻止相關(guān)DNS重新綁定的攻擊。如果瀏覽器插件缺省設(shè)置成拒絕套接字訪問(wèn),對(duì)于使用Flash或TCP連接,這些防御是可行的。像Java以及一些未知名的插件請(qǐng)求套接字連接訪問(wèn)是被允許的。
1.2.1 檢查主機(jī)報(bào)頭
HTTP請(qǐng)求用戶代理,該代理包括一個(gè)在HTTP請(qǐng)求中Host頭,該HTTP請(qǐng)求詳細(xì)描述服務(wù)器的主機(jī)。這個(gè)特性廣泛應(yīng)用于HTTP代理與Web服務(wù)器,去定位大多數(shù)虛擬主機(jī)到一個(gè)IP地址。如果拒絕缺省套接字訪問(wèn),Host頭能夠可靠地指向正連接到服務(wù)器的瀏覽器所使用的主機(jī),這是因?yàn)閄MLHTTP請(qǐng)求限制欺騙Host頭。對(duì)于服務(wù)器而言,防御這些攻擊是通過(guò)拒絕引入不是預(yù)知的Host頭的HTTP請(qǐng)求。
1.2.2 細(xì)化區(qū)域源
防御:DNS重新綁定攻擊還可以通過(guò)提取包括額外信息的區(qū)域源,這些額外信息可以是服務(wù)器的IP地址或者公鑰等,這樣當(dāng)攻擊者重新綁定其域名到目標(biāo)主機(jī)時(shí),瀏覽器將認(rèn)為該重新綁定主機(jī)作用一個(gè)新區(qū)域。
IP地址:使用IP地址的細(xì)化區(qū)域比使用單一瀏覽會(huì)話的插件更具有可靠性,單一瀏覽會(huì)話策略可能會(huì)使從一個(gè)IP地址轉(zhuǎn)換到另一個(gè)IP地址時(shí)出錯(cuò)。當(dāng)這種轉(zhuǎn)換錯(cuò)誤發(fā)生時(shí),很可能破壞已經(jīng)運(yùn)行存在的AJAX應(yīng)用程序,這是因?yàn)樗鼈儗⒈蛔柚故褂肵MLHTTP請(qǐng)求新IP地址,用戶能夠通過(guò)使用單擊瀏覽器刷新按鈕來(lái)重載該請(qǐng)求。
公鑰:使用公鑰增加區(qū)域源預(yù)防可以使兩類HTTPS網(wǎng)頁(yè)服務(wù)免受來(lái)自相同區(qū)域源的攻擊,避免相同區(qū)域源使用不同的公鑰去讀取其狀態(tài)值。這種防御應(yīng)用于用戶丟失HTTPS無(wú)效證書警告的情況下,其主要防御用于攻擊只有HTTPS的個(gè)人安全設(shè)置。
為了減少重新綁定攻擊,瀏覽器可以實(shí)現(xiàn)更為智能的插件策略。插件策略是為了防御DNS重新綁定,而使解析域名更加安全。RFC1035提出一個(gè)較小值的(甚至是0)TTLs使動(dòng)態(tài)DNS成為可能,這些TTLs不允許重新綁定攻擊。瀏覽器可以實(shí)現(xiàn)不同插件的持續(xù)時(shí)間策略,這樣提高了瀏覽器的穩(wěn)定性。但是,TTLs不是能夠改變插件策略的惟一參數(shù)。
如果允許主機(jī)重新綁定到一組IP地址,使瀏覽器能夠改變其插件的寬度,這樣可以用到一些相似的策略。選擇最佳寬度與持續(xù)時(shí)間使安全與穩(wěn)定性間的轉(zhuǎn)換成為可能,而不是單獨(dú)持續(xù)時(shí)間的優(yōu)化。一個(gè)較好的策略是允許在一個(gè)網(wǎng)絡(luò)內(nèi)重新綁定。例如,如果一臺(tái)主機(jī)解析到202.117.112.10,客戶端可能也允許另一個(gè)IP地址開(kāi)始于202.117.112.內(nèi)。Firefox擴(kuò)展功能采用了該智能插件策略。
當(dāng)瀏覽器使用一個(gè)C類網(wǎng)絡(luò)插件時(shí),攻擊者可能定位那個(gè)受攻擊的服務(wù)器在其相同的C類網(wǎng)絡(luò)作為其目標(biāo),這樣使重新綁定攻擊定位更加困難。如果攻擊者協(xié)助定位到一個(gè)服務(wù)器,這個(gè)服務(wù)器使用相同協(xié)作定位的設(shè)備,或者這個(gè)協(xié)助定位的服務(wù)器具有交叉腳本嵌入的弱點(diǎn),這種攻擊也是可能的。
瀏覽器能夠在公網(wǎng)與內(nèi)網(wǎng)IP地址之間預(yù)防重新綁定,這對(duì)于不安全的數(shù)據(jù)通過(guò)與動(dòng)態(tài)DNS提供了更加穩(wěn)定性。在實(shí)現(xiàn)公網(wǎng)與內(nèi)網(wǎng)IP地址轉(zhuǎn)換中,JavaScript插件的Firefox擴(kuò)展時(shí)使用了LocalRodeo。對(duì)于安全而言,內(nèi)外網(wǎng)間IP地址的插件很大程度上預(yù)防了防火墻欺騙。但是在一些特殊情況下,不但不能保護(hù)IP欺騙也不能預(yù)防防火墻欺騙,這些特殊情況是防火墻保護(hù)非私有IP地址。
更寬的插件策略可以預(yù)防一些合法的DNS重新綁定。由組織機(jī)構(gòu)掌管的公網(wǎng)主機(jī)通常有兩個(gè)IP地址,一個(gè)私有IP地址內(nèi)部用戶防火墻使用,一個(gè)公用IP地址由Internet用戶使用。插件可以防御內(nèi)部員工完全地連接到這些服務(wù)器之后又連接到該組織的VPN,又要防御公網(wǎng)IP地址重新綁定到私有IP地址。
為了消除多插件的攻擊,基于插件的防御需要所有的瀏覽器共享一個(gè)通用的插件數(shù)據(jù)庫(kù)。許多插件,當(dāng)發(fā)出HTTP請(qǐng)求時(shí)就已經(jīng)使用了瀏覽器的插件,這是因?yàn)樗鼈兺ㄟ^(guò)瀏覽器發(fā)出這些請(qǐng)求。為了共享DNS插件給其它類型的網(wǎng)絡(luò)訪問(wèn),另外一些瀏覽器可能暴露其插件數(shù)據(jù)庫(kù)的一個(gè)接口,或者操作系統(tǒng)可能插入它的DNS解析。瀏覽器暴露了這些接口與操作系統(tǒng)插件,要么是為了其它應(yīng)用程序而改變DNS的語(yǔ)義,要么需要操作系統(tǒng)處理瀏覽器與不同應(yīng)用程序的插件。
如果不使用插件的策略,可以讓瀏覽器使用服務(wù)器替代策略以確定重新將插件從一個(gè)IP地址轉(zhuǎn)換到另一個(gè)IP地址的主機(jī)什么時(shí)候是安全的,其條件是不使用非正規(guī)的安全機(jī)制提供穩(wěn)定性。為了重新插入安全性,瀏覽器必須獲得一個(gè)來(lái)自于新舊IP地址主機(jī)的策略,這是因?yàn)橐恍┕粽呤紫冉壎ǖ焦粽?,反之另外一些首先綁定目?biāo)主機(jī)。服務(wù)器在一些定位中能夠提供這種策略,例如逆向DNS解析。
緩存:瀏覽器與所有插件的緩存必須通過(guò)改進(jìn)才可以預(yù)防重新綁定攻擊。通常,存儲(chǔ)在緩存中目標(biāo)主機(jī)通過(guò)URL重新得到而不管其最初的IP地址,建立一個(gè)重新綁定攻擊,當(dāng)攻擊者主機(jī)綁定到目標(biāo)主機(jī)時(shí),從攻擊者來(lái)的緩存腳本可能稍后運(yùn)行。為了預(yù)防這種攻擊,緩存中的目標(biāo)必須通過(guò)URL與最初的IP地址重新獲得。當(dāng)瀏覽器插進(jìn)一個(gè)新的IP地址時(shí)就可以降低系統(tǒng)性能,當(dāng)?shù)谝淮蜪P地址定位失敗時(shí)這種降低性能就成為可能,用戶啟動(dòng)一個(gè)新的瀏覽器進(jìn)程,或者用戶的網(wǎng)絡(luò)連接發(fā)生改變。
document.domain:即使使用最嚴(yán)謹(jǐn)?shù)牟寮?,如果主機(jī)打開(kāi)執(zhí)行下面的似乎無(wú)缺陷Java腳本的網(wǎng)頁(yè):document.domain=document.domain,服務(wù)器也是易受重新綁定攻擊的。
在頁(yè)面屬性設(shè)置域?qū)傩灾抵?,瀏覽器允許具有交叉區(qū)域源的頁(yè)面與其它頁(yè)面相互訪問(wèn),這些頁(yè)面已經(jīng)設(shè)置了相同的域?qū)傩灾?。通過(guò)使用Java腳本庫(kù)的值,在受攻擊者控制的當(dāng)前主機(jī)的情況下,達(dá)到設(shè)置域?qū)傩灾档哪康摹?/p>
為了代替預(yù)防主機(jī)免受來(lái)自一個(gè)IP地址到另一個(gè)IP地址重新綁定攻擊,另一種防御重新綁定攻擊的策略就是預(yù)防攻擊者命名目標(biāo)服務(wù)器。如果不具備命名目標(biāo)服務(wù)器能力,攻擊者就不可能登錄到DNS重新綁定攻擊到目標(biāo)服務(wù)器。這種方法防御重新綁定攻擊,能夠允許使用缺省值進(jìn)行套接字訪問(wèn),也能夠保護(hù)動(dòng)態(tài)DNS的穩(wěn)定性。
在互聯(lián)網(wǎng)中,客戶端需要附加信息以確定一個(gè)給定IP地址主機(jī)設(shè)置的有效性。網(wǎng)絡(luò)服務(wù)器廣播主機(jī)的設(shè)置,并且服務(wù)器認(rèn)為它們自身是有效的,客戶端在綁定主機(jī)到IP地址之前檢查這些廣播,以確定這些主機(jī)名能夠映射到這些IP地址。主機(jī)名認(rèn)證能夠預(yù)防重新綁定攻擊,這是因?yàn)檎鎸?shí)的主機(jī)不能廣播這些被攻擊者控制的主機(jī)名。
逆DNS已經(jīng)提供了一個(gè)從IP址到主機(jī)的映射。具有IP地址的用戶委派授權(quán)命名認(rèn)證該IP到其域名,同時(shí)存儲(chǔ)一個(gè)PTR記錄,該記錄包括與其IP地址相關(guān)聯(lián)的主機(jī)名。這些記錄對(duì)于主機(jī)認(rèn)證還是不夠的,這是因?yàn)橐粋€(gè)單IP地址能夠有許多有效的主機(jī)名,現(xiàn)有的PTR記錄不可以預(yù)示那些另外的主機(jī)名是無(wú)效的。
逆向DNS系統(tǒng)在向后不兼容時(shí)不能擴(kuò)展認(rèn)證主機(jī)。為了認(rèn)證主機(jī)到IP地址(例,a.b.c.d),IP地址的所有者可以插入下面的DNS記錄:
auth a.b.c.in-addr.arpa.in A a.b.c.d
www.eg.com.Auth a.b.c.in-addr.arpa.in A a.b.c.d
為了使策略可以解析主機(jī),首先按正常情況解析一組IP地址的主機(jī)名,然后按下面步驟驗(yàn)證每個(gè)IP地址的有效性:
(1)解析主機(jī)名auth.ip.in-addr.arpa。
(2)如果主機(jī)名存在,ip是策略使能(policy-enabled)同時(shí)接受僅僅已經(jīng)驗(yàn)證的主機(jī)名,否則,ip不是策略使能同時(shí)接受任何主機(jī)名。
(3)最后,如果ip是策略使能,解析主機(jī)名www.eg.com.auth.ip.in-addr.arpa,以確定主機(jī)名是否已經(jīng)驗(yàn)證通過(guò)。
IP地址ip驗(yàn)證每一個(gè)由*.auth.ip.in-addr.arpa組成的主機(jī)名,預(yù)防不正確的遞歸策略檢查。對(duì)于具有多個(gè)IP地址的主機(jī)名,只有通過(guò)驗(yàn)證的IP地址才可以包括在其結(jié)果中。如果沒(méi)有IP地址通過(guò)驗(yàn)證,其結(jié)果是沒(méi)有找到。如果IP地址不是策略使能,那么DNS重新綁定攻擊就能夠減少在拒絕缺省套接字中的使用。
由相關(guān)機(jī)構(gòu)或ISP運(yùn)行控制的策略檢查能夠在DNS解析中實(shí)現(xiàn),顯然這樣可以保護(hù)大量計(jì)算機(jī)免受IP地址劫持攻擊。像瀏覽器與插件這樣的用戶代理也能進(jìn)行策略記錄檢查,這是因?yàn)樗鼈兇鎯?chǔ)了記錄且使用HTTP請(qǐng)求時(shí)執(zhí)行策略檢查。標(biāo)準(zhǔn)DNS緩存減化了大量的過(guò)多的策略檢查。當(dāng)進(jìn)行進(jìn)一步優(yōu)化時(shí),具有策略使能的解析能夠在DNS請(qǐng)求附加部分中包括策略記錄,允許逆向解析緩存。
主機(jī)認(rèn)證策略的特點(diǎn)是IP地址的擁有者與ISP可能不是那個(gè)IP地址主機(jī)的擁有者。當(dāng)且僅當(dāng)ISP愿意授權(quán)anth子域給擁有者或者插入適當(dāng)?shù)腄NS記錄,主機(jī)才可能廣播那組已經(jīng)驗(yàn)證的主機(jī)。相反,主機(jī)可能廣播已經(jīng)驗(yàn)證的主機(jī)在HTTP已知的定位中,類似Flash的crossdomain.xml。
攻擊者能夠使用DNS重新綁定的缺點(diǎn)繞過(guò)防火墻和劫持IP地址。典型防御與插件技術(shù)具有防御基本DNS重新綁定攻擊的能力,減少了穩(wěn)定性與保護(hù)使用了插件的瀏覽器失敗就導(dǎo)致允許攻擊者直接訪問(wèn)客戶端的主機(jī)。這些攻擊能夠劫持成千上萬(wàn)的IP地址主機(jī)進(jìn)行發(fā)送垃圾郵件與點(diǎn)擊欺騙。預(yù)防DNS重新綁定攻擊欺騙防火墻可以使用阻止外部DNS域名解析到內(nèi)部IP地址的策略。對(duì)于防火墻欺騙與IP劫持提出兩種防御方案:基于策略的智能插件與主機(jī)名認(rèn)證。
[1]閆伯儒,方濱興,等.DNS欺騙攻擊的檢測(cè)和防范[J].上海:計(jì)算機(jī)工程.2006.
[2]何旭.DNS重新綁定對(duì)Web瀏覽器的影響[J].上海:計(jì)算機(jī)工程.2010.
[3]宗兆偉,黎峰,翟征德.基于統(tǒng)計(jì)分析和流量控制的DNS分布式拒絕服務(wù)攻擊的檢測(cè)及防御[C].北京:2009全國(guó)計(jì)算機(jī)網(wǎng)絡(luò)與通信學(xué)術(shù)會(huì)議.2009.
[4]任勉.DNS安全與防護(hù)[D].北京郵電大學(xué).2007.
[5]李軍利,卜曉燕,張根耀,張震.惡意DNS流量攻擊研究[J].北京:計(jì)算機(jī)應(yīng)用與軟件.2007.
[6]李基,楊義先.DNS安全問(wèn)題及解決方案[J].電信科學(xué).2005.