【網(wǎng)絡(luò)安全】:基于Web攻擊的方式發(fā)現(xiàn)和介紹
【網(wǎng)絡(luò)安全】:基于Web攻擊的方式發(fā)現(xiàn)和介紹
近二十年來(lái),DNS重綁定(DNS rebinding)攻擊一直是討論的話題。盡管瀏覽器廠商做出了努力,但仍然無(wú)法找到一個(gè)能穩(wěn)定抵御這些攻擊的防御系統(tǒng)。據(jù)說(shuō)這類問(wèn)題八年前就已經(jīng)被修復(fù)了。但是這類攻擊通過(guò)新的攻擊向量再次出現(xiàn)。總的來(lái)說(shuō),可以肯定未來(lái)的黑客活動(dòng)將通過(guò)多個(gè)現(xiàn)有攻擊組合形成新的攻擊向量。這些新攻擊向量的一個(gè)很好的例子就是攻擊加密貨幣錢包的DNS重綁定攻擊。
下面就來(lái)看看正文吧!
設(shè)備與黑客發(fā)現(xiàn)和攻擊物聯(lián)網(wǎng)設(shè)備的方法
研究人員的目標(biāo)是測(cè)試15個(gè)物聯(lián)網(wǎng)設(shè)備。這些設(shè)備中只有七臺(tái)有本地HTTP服務(wù)器,所以研究的重點(diǎn)放在它們上,它們包括:Google Chromecast、Google Home、一臺(tái)智能電視、一個(gè)智能開(kāi)關(guān)和三個(gè)攝像頭。
使用的攻擊方法是:
欺騙受害人,誘導(dǎo)他們?cè)L問(wèn)攻擊者控制的網(wǎng)站。
在受害者的本地網(wǎng)絡(luò)上發(fā)現(xiàn)物聯(lián)網(wǎng)設(shè)備。
通過(guò)基于web的攻擊控制設(shè)備。
攻擊的持續(xù)時(shí)間
從技術(shù)上講,這不是新的攻擊向量。研究報(bào)告引用了之前的研究,發(fā)現(xiàn)攻擊者使用這些攻擊向量平均需要一分鐘才能獲得結(jié)果。奇怪的是,一項(xiàng)著名的研究結(jié)果
(What You Think You Know About the Web is Wrong)顯示,55%的用戶花在網(wǎng)站上的時(shí)間不超過(guò)15秒??磥?lái)大多數(shù)用戶不會(huì)受到物聯(lián)網(wǎng)漏洞的影響。
但是在普林斯頓大學(xué)和加州大學(xué)伯克利分校的研究中,研究人員明顯縮短了攻擊的持續(xù)時(shí)間。研究人員表示使用他們發(fā)現(xiàn)的方法,可以比之前的研究更快地發(fā)現(xiàn)和訪問(wèn)本地網(wǎng)絡(luò)中的設(shè)備。但是Chrome除外,因?yàn)樗彺鍰NS請(qǐng)求,如果TTL低于某個(gè)閾值,則忽略TTL。需要注意的是,隔離區(qū)(DMZ,防火墻內(nèi)的內(nèi)部網(wǎng)絡(luò))中的設(shè)備通常被認(rèn)為是安全的,因?yàn)橛脩艏僭O(shè)外部是無(wú)法訪問(wèn)這些設(shè)備的。但是,通過(guò)這里描述的攻擊,攻擊者可以訪問(wèn)受害者內(nèi)部網(wǎng)絡(luò)中的瀏覽器。
發(fā)現(xiàn)HTTP端點(diǎn)
研究人員通過(guò)將這些設(shè)備連接到Raspberry Pi的無(wú)線接入點(diǎn)來(lái)分析這些設(shè)備。觀察并分析了從設(shè)備發(fā)送和接收的數(shù)據(jù)包,以及與每個(gè)設(shè)備綁定的移動(dòng)應(yīng)用發(fā)送和接收的數(shù)據(jù)包。通過(guò)分析發(fā)現(xiàn)了35個(gè)GET請(qǐng)求端點(diǎn)和8個(gè)POST請(qǐng)求端點(diǎn)。這些端點(diǎn)用于識(shí)別發(fā)現(xiàn)階段中的IP地址。
研究的階段
研究人員通過(guò)兩個(gè)不同的階段進(jìn)行研究,即發(fā)現(xiàn)階段和接入階段:
發(fā)現(xiàn)階段的目標(biāo)是在本地網(wǎng)絡(luò)上找到瀏覽器上包含HTML5元素的物聯(lián)網(wǎng)設(shè)備。
接入階段的目標(biāo)是使用DNS重綁定和已發(fā)現(xiàn)的IP地址訪問(wèn)HTTP端點(diǎn)。
1. 發(fā)現(xiàn)階段:識(shí)別物聯(lián)網(wǎng)設(shè)備
使用WebRTC獲取本地IP地址。
通過(guò)81端口向IP范圍內(nèi)的所有IP地址發(fā)送請(qǐng)求。由于81端口通常不被占用,活動(dòng)設(shè)備將立即響應(yīng)一個(gè)TCP RST數(shù)據(jù)包。而對(duì)于IP范圍內(nèi)的非活動(dòng)設(shè)備,請(qǐng)求數(shù)據(jù)包將超時(shí)。
每個(gè)活動(dòng)IP地址都接收到最初階段使用HTML5為35個(gè)GET端點(diǎn)收集的請(qǐng)求。根據(jù)返回的錯(cuò)誤消息信息,攻擊腳本將識(shí)別IP地址是否與七個(gè)設(shè)備中的任意一個(gè)匹配。
研究計(jì)劃使用三種不同的操作系統(tǒng)(Windows 10、MacOS和Ubuntu)和四種不同的瀏覽器(Chrome、Firefox、Safari、MicrosoftEdge)。然而只有Chrome和Firefox這兩個(gè)瀏覽器適合這項(xiàng)研究。因此不使用Safari和Edge瀏覽器,因?yàn)楦鶕?jù)(基于Web的方式對(duì)本地物聯(lián)網(wǎng)設(shè)備的發(fā)現(xiàn)和控制的攻擊):
在Safari上,所有的FETCH請(qǐng)求都超時(shí)了,導(dǎo)致攻擊腳本將所有IP地址識(shí)別為不活動(dòng)。而在Edge瀏覽器上,腳本可以使用FETCH請(qǐng)求正確識(shí)別活動(dòng)IP地址,但Edge沒(méi)有公開(kāi)詳細(xì)的HTML5錯(cuò)誤消息,所以攻擊腳本無(wú)法識(shí)別Edge上的任何設(shè)備。
2. 接入階段:控制物聯(lián)網(wǎng)設(shè)備
受害者訪問(wèn)攻擊者控制的域名(domain.tld),瀏覽器執(zhí)行在攻擊者站點(diǎn)上找到的惡意JavaScript代碼。域名仍然解析為攻擊者的服務(wù)器IP。
惡意腳本請(qǐng)求domain.tld上的另一個(gè)資源,該資源僅存在于攻擊者服務(wù)器上。
如果受害者的本地DNS緩存仍然解析為攻擊者的遠(yuǎn)程IP,則對(duì)/hello.php的請(qǐng)求將返回字符串“hello”,并重復(fù)步驟2。
但是如果受害者緩存中的domain.tld過(guò)期,則將向攻擊者發(fā)送新的DNS查詢。
最后將返回從發(fā)現(xiàn)階段中獲得的本地IP,而不是攻擊者的遠(yuǎn)程IP,/hello.php不會(huì)使用字符串“hello”進(jìn)行響應(yīng),而是使用不同的內(nèi)容,如404錯(cuò)誤,它告訴惡意腳本DNS重綁定攻擊已經(jīng)成功。
通過(guò)這次攻擊,惡意腳本繞過(guò)了瀏覽器同源策略(Same-Origin Policy),并獲得了對(duì)運(yùn)行在設(shè)備上的Web應(yīng)用的訪問(wèn)權(quán)限。現(xiàn)在攻擊者已經(jīng)可以在Google Chromecast、Google Home、智能電視和智能開(kāi)關(guān)設(shè)備上執(zhí)行重新啟動(dòng)或啟動(dòng)視頻/音頻文件。
如何防止針對(duì)物聯(lián)網(wǎng)設(shè)備的DNS重綁定攻擊
研究人員稱,用戶、瀏覽器廠商、物聯(lián)網(wǎng)廠商和DNS提供商需要采取預(yù)防措施,以避免DNS重綁定攻擊。以下是研究給出的一些措施:
用戶可以在瀏覽器上禁用WebRTC,并防止泄露私有IP。攻擊者將能夠通過(guò)向私有IP范圍內(nèi)的所有*.1地址(路由器地址)發(fā)送請(qǐng)求來(lái)發(fā)現(xiàn)用戶的私有IP。
攻擊者假設(shè)所有物聯(lián)網(wǎng)設(shè)備的IP范圍與受害者的PC具有相同的IP范圍。用戶可以通過(guò)配置路由器的DHCP服務(wù)器,在另一個(gè)子網(wǎng)(如 /16)上分配IP地址。
用戶可以安裝dnsmasq,通過(guò)從DNS響應(yīng)中刪除RFC 1918地址來(lái)防止DNS重綁定攻擊。用戶還可以使用dnsmasq的OpenWRT路由器。
物聯(lián)網(wǎng)廠商可以在發(fā)送到Web接口的請(qǐng)求中控制Host標(biāo)頭。如果沒(méi)有符合RFC 1918的私有IP,則可以阻止訪問(wèn)。
DNS提供商可以使用像dnswall這樣的機(jī)制從DNS響應(yīng)中篩選私有IP。
瀏覽器廠商可以開(kāi)發(fā)限制公網(wǎng)訪問(wèn)私有IP范圍的擴(kuò)展程序。
好了今天小編的介紹就到這里了,希望對(duì)大家有所幫助!如果你喜歡記得分享給身邊的朋友哦!