亚洲日本免费-啊轻点灬太粗太长了三男一女-麻豆av电影在线观看-日韩一级片毛片|www.grbbt.com

解密黑客巧妙神奇的“離線”入侵手段

  在上一篇《什么是網(wǎng)絡(luò)流量劫持?》一文中,我們介紹了常見(jiàn)的黑客劫持網(wǎng)絡(luò)流量的途徑。然而無(wú)論用何種方式獲得流量,只有加以利用才能發(fā)揮作用。

  不同的劫持方式,獲得的網(wǎng)絡(luò)流量也有所差異。DNS 劫持,只能截獲通過(guò)域名發(fā)起的流量,直接使用 IP 地址的通信則不受影響;CDN 入侵,只有瀏覽網(wǎng)頁(yè)或下載時(shí)才有風(fēng)險(xiǎn),其他場(chǎng)合則毫無(wú)問(wèn)題;而網(wǎng)關(guān)被劫持,用戶所有流量都難逃魔掌。在本文中,我們通過(guò)技術(shù)原理,講解如下問(wèn)題:

  黑客為什么喜歡劫持網(wǎng)頁(yè)?

  只瀏覽不登陸就沒(méi)事嗎?

  自動(dòng)填寫(xiě)表單有風(fēng)險(xiǎn)嗎?

  離開(kāi)劫持環(huán)境還受影響嗎?

  使用 HTTPS 能否避免劫持?

  流量劫持能否控制我電腦?

  黑客為什么喜歡劫持網(wǎng)頁(yè)?

  理論上說(shuō),劫持到用戶的流量數(shù)據(jù),也就獲得相應(yīng)程序的網(wǎng)絡(luò)通信。但在現(xiàn)實(shí)中,數(shù)據(jù)并不代表真實(shí)內(nèi)容。一些重要的網(wǎng)絡(luò)程序,都是私有的二進(jìn)制協(xié)議,以及各種加密方式。想通過(guò)流量來(lái)還原出譬如用戶的 QQ 聊天記錄信息、網(wǎng)銀支付密碼等敏感內(nèi)容幾乎是不可能的。即使花費(fèi)各種手段,破解出某個(gè)程序的通信協(xié)議,然而一旦程序升級(jí)改變了協(xié)議格式,或許就前功盡棄了。因此,很難找到種一勞永逸的客戶端劫持方案。

  然而,并非所有程序都是客戶端的。一種新興的應(yīng)用模式 —— WebApp (網(wǎng)頁(yè)版應(yīng)用),發(fā)展是如此之快,以至于超越客戶端之勢(shì)。在如今這個(gè)講究跨平臺(tái)、體驗(yàn)好,并有云端支持的年代,WebApp 越來(lái)越火熱。各種應(yīng)用紛紛移植成網(wǎng)頁(yè)版,一些甚至替代了客戶端。同時(shí),也造就了流量劫持前所未有的勢(shì)頭。WebApp,其本質(zhì)仍是普通的網(wǎng)頁(yè)而已。盡管網(wǎng)頁(yè)技術(shù)在近些年里有了很大的發(fā)展,各種新功能一再增加,但其底層協(xié)議始終沒(méi)有太大的改進(jìn) —— HTTP,一種使用了 20 多年古老協(xié)議。

  在 HTTP 里,一切都是明文傳輸?shù)模髁吭谕局锌呻S心所欲的被控制。傳統(tǒng)程序事先已下至本地,運(yùn)行時(shí)只有通信流量;而在線使用的 WebApp,流量里既有通信數(shù)據(jù),又有程序的界面和網(wǎng)頁(yè)源代碼,劫持簡(jiǎn)直輕而易舉。

  在上一篇中 也提到,如果在戶外沒(méi)有 3G 信號(hào)的地方釣魚(yú),無(wú)法將獲得的流量轉(zhuǎn)發(fā)到外網(wǎng)。然而,使用網(wǎng)頁(yè)這一切就迎刃而解。我們完全可以在自己的設(shè)備上搭建一個(gè)本機(jī)的假冒站點(diǎn),留住用戶來(lái)發(fā)起離線攻擊。對(duì)于那些連上 WiFi 能自動(dòng)彈網(wǎng)頁(yè)的設(shè)備,那就更容易入侵了。因此,劫持網(wǎng)頁(yè)流量成了各路黑客們的鐘愛(ài),一種可在任意網(wǎng)頁(yè)發(fā)起 XSS 的注入入侵方式。

  每當(dāng)磚家出來(lái)提醒時(shí),總免不了這么一句:公共場(chǎng)合盡量不登錄賬號(hào)。于是,大家就認(rèn)為只看網(wǎng)頁(yè)不登陸就平安無(wú)事了。如果是公共的電腦,那也就無(wú)所謂;否則,自己的一些賬號(hào)可能就倒霉了。在自己的設(shè)備上,大家一般都會(huì)記住各種賬號(hào)的登錄狀態(tài),反正只有自己用,也沒(méi)什么大不了的。然而,在被劫持的網(wǎng)絡(luò)里,一切皆有可能發(fā)生。即使瀏覽再平常不過(guò)的網(wǎng)頁(yè),或許一個(gè)悄無(wú)聲息的間諜腳本已暗藏其中,正偷偷訪問(wèn)你那登錄著的網(wǎng)頁(yè),操控起你的賬號(hào)了。

  聽(tīng)起來(lái)似乎很玄乎吧,磚家似乎也沒(méi)說(shuō)已登錄的賬號(hào)會(huì)怎么樣。難道隨便一個(gè)網(wǎng)頁(yè),就能讓各種賬號(hào)被控制嗎?大家都知道,HTTP 是無(wú)狀態(tài)的,不像傳統(tǒng)協(xié)議有個(gè)『會(huì)話』之類的概念。各種賬號(hào)的登錄狀態(tài),只能依靠瀏覽器的 Cookie 來(lái)實(shí)現(xiàn)。因此,只要有了的 Cookie 也就獲得了用戶賬號(hào)的使用權(quán)。

  和傳統(tǒng) XSS 攻擊不同,流量劫持可以得到任何通信數(shù)據(jù),當(dāng)然也包括那些受 HttpOnly 保護(hù)的 Cookie。攻擊腳本只需對(duì)某個(gè)站點(diǎn)發(fā)起請(qǐng)求,黑客即可在中途劫持到傳輸?shù)?Cookie 數(shù)據(jù)。如果同時(shí)發(fā)起眾多站點(diǎn),就能覆蓋相當(dāng)一部分目標(biāo)了。

  這種請(qǐng)求未必要真正訪問(wèn)一次頁(yè)面,僅僅將 URL 作為圖片加載,將目標(biāo)站點(diǎn)的 Cookie 送出即可。黑客得到 Cookie,即可在自己瀏覽器里還原出登錄狀態(tài)。盡管你確實(shí)沒(méi)有登錄操作,但那些已登錄的卻能出賣你。

  防范措施:訪問(wèn)一些重要的網(wǎng)站,盡量不要記住登錄狀態(tài),以免 Cookie 被泄露。不過(guò),只要網(wǎng)站綁定了 Cookie 和 IP 段,這招的危害程度就大幅降低了,僅憑 HttpOnly 還是很不靠譜的。

  使用上面的方法獲得 Cookie,即使能控制賬號(hào),但其密碼仍無(wú)法得知,隨時(shí)都有可能失去控制權(quán)。不過(guò),一些用戶有讓瀏覽器自動(dòng)保存密碼的習(xí)慣。通過(guò)這點(diǎn),我們是否能套出記住的密碼來(lái)呢?分析下瀏覽器是如何自動(dòng)填寫(xiě)頁(yè)面表單的。其實(shí)很簡(jiǎn)單,瀏覽器發(fā)現(xiàn)頁(yè)面 URL 和表單名匹配記錄里的,就自動(dòng)填上了。

  要是在流量可控的網(wǎng)絡(luò)里,剝離頁(yè)面所有內(nèi)容只剩表單,又會(huì)如何?

  保存著的密碼仍能自動(dòng)填上,并且可被腳本訪問(wèn)到!如果我們?cè)谟脩粼L問(wèn)的頁(yè)面里,創(chuàng)建大量的隱藏框架頁(yè),即可嘗試獲取各種網(wǎng)站保存著的賬號(hào)了。(如今 Chrome 框架頁(yè)已經(jīng)不會(huì)自動(dòng)填寫(xiě)了。具體實(shí)現(xiàn)和瀏覽器有關(guān))。

  然而,即使框架頁(yè)不自動(dòng)填寫(xiě),但主頁(yè)面總得保留該功能吧。如果發(fā)現(xiàn)用戶某個(gè)打開(kāi)著的網(wǎng)頁(yè)很久沒(méi)有交互了,可悄悄跳轉(zhuǎn)到如上那樣的純表單頁(yè),無(wú)論能否獲取數(shù)據(jù),都將繼續(xù)跳轉(zhuǎn),一個(gè)接一個(gè)的嘗試。。。直到用戶切回窗口,再恢復(fù)到原先那個(gè)頁(yè)面。

  由于泄露的是明文的賬號(hào)和密碼,即使數(shù)量不多,也能通過(guò)社會(huì)工程學(xué)來(lái)獲取到用戶的更多信息,最終導(dǎo)致更嚴(yán)重的泄露。

  防范措施:所以無(wú)論是 Cookie 記住登錄,還是瀏覽器自動(dòng)填表,重要的賬號(hào)都應(yīng)慎用。

  瀏覽器的自動(dòng)填表也應(yīng)增加些安全策略,例如必須有用戶的交互才開(kāi)始填寫(xiě),規(guī)定的時(shí)間里只能填有限次。PS:使用 1Password 或者 LastPass 似乎可以避開(kāi)這個(gè)問(wèn)題。

  或許你在想,網(wǎng)絡(luò)再怎么不安全,離開(kāi)之后就應(yīng)該沒(méi)事了吧。有時(shí)在公共場(chǎng)合趕上免費(fèi)的 WiFi,打開(kāi)網(wǎng)頁(yè)看一會(huì)新聞,是常有的事。這么短的時(shí)間里能有多大的事。不過(guò)在入侵腳本面前,一小會(huì)和長(zhǎng)久并沒(méi)太大區(qū)別。機(jī)會(huì)只要出現(xiàn)了,無(wú)論多么短暫都能滲透。

  如果只看重眼前利益,這種短暫的入侵并沒(méi)多少利用價(jià)值;但若放遠(yuǎn)目光,能讓攻擊在今后發(fā)起,那就不再局限于時(shí)間和空間了。因此,我們需要一個(gè)時(shí)光機(jī),讓入侵腳本穿越到用戶未來(lái)的時(shí)空運(yùn)行。若用傳統(tǒng) XSS 的思維,這幾乎無(wú)法實(shí)現(xiàn)。但在流量劫持面前,一切皆有可能 —— 因?yàn)槲覀兡芸刂迫我饬髁浚?/p>

  上一篇文章提到,但凡有緩存的地方都是大有可為的。顯然,對(duì)于有著復(fù)雜的 HTTP 緩存系統(tǒng)來(lái)說(shuō),存在缺陷是在所難免了。這種簡(jiǎn)單的純文本協(xié)議,幾乎沒(méi)有一種簽名機(jī)制,來(lái)驗(yàn)證內(nèi)容的真實(shí)性。即使頁(yè)面被篡改了,瀏覽器也完全無(wú)法得知,甚至連同注入的腳本也一塊緩存起來(lái)。于是,我們可以將『緩存投毒』的概念,引入 HTTP 協(xié)議里。但凡具備可執(zhí)行的資源,都可以通過(guò)預(yù)加載帶毒的版本,將其提前緩存起來(lái)。

  為了將緩存的有效期發(fā)揮到極致,我們事先在各大網(wǎng)站上,找出一些過(guò)期時(shí)間長(zhǎng)、很久沒(méi)有修改的資源,評(píng)估其未來(lái)變化不大的可能。

  當(dāng)用戶打開(kāi)任意一個(gè) HTTP 網(wǎng)頁(yè)時(shí),注入的 XSS 代碼開(kāi)始預(yù)加載這些資源。由于一切流量都在控制之中,我們可以完全不走代理,而是返回自己的攻擊腳本。

  用戶瀏覽器收到回復(fù)后,就將其一一緩存起來(lái)了。我們可以事先收集大量的資源地址,讓用戶在線的時(shí)間里,盡可能多的緩存受到感染。未來(lái),用戶再次訪問(wèn)引用了這些資源的網(wǎng)站時(shí),入侵腳本將穿越時(shí)空,從沉睡中喚醒。

  只要用戶不清空緩存,這些被感染的腳本始終附著在瀏覽器緩存里,直到用戶強(qiáng)制刷新頁(yè)面時(shí)或許才能解脫。更多細(xì)節(jié)可參考這里 (不得不說(shuō),這太可怕了)。

  不過(guò),有些網(wǎng)站使用的都是很短的緩存,上述的入侵方式似乎就無(wú)能為力了。不過(guò),HTML5 時(shí)代帶來(lái)了一項(xiàng)新的緩存技術(shù) —— 離線儲(chǔ)存。由于它沒(méi)有過(guò)期時(shí)間,因此適用于任意網(wǎng)頁(yè)的投毒!類似的,當(dāng)用戶觸發(fā)了我們的注入腳本之后,我們創(chuàng)建一個(gè)隱形的框架頁(yè),加載被感染的網(wǎng)頁(yè)。同樣,通過(guò)流量劫持,我們返回一個(gè)簡(jiǎn)單的頁(yè)面,里面包含一個(gè)帶有 manifest 屬性的 HTML 文檔,以及后期運(yùn)行的腳本。

  由于通過(guò)隱藏 iframe 框架訪問(wèn)了這個(gè)頁(yè)面,用戶并不知情,但盡職的瀏覽器卻將其緩存起來(lái)。未來(lái),用戶打開(kāi)被感染的網(wǎng)頁(yè)時(shí),瀏覽器直接從離線儲(chǔ)存里取出,其中布置的腳本因此觸發(fā)。由于是個(gè)空白頁(yè)面,因此需要填充上真實(shí)的網(wǎng)站內(nèi)容。最簡(jiǎn)單的方法,就是嵌套一個(gè)原頁(yè)面的框架,并在 URL 里加上隨機(jī)數(shù),確保是最新的在線內(nèi)容。

  因?yàn)榍短椎氖峭蛎目蚣埽罱K仍能被入侵腳本所控制。不過(guò),離線存儲(chǔ)投毒的后期影響會(huì)小一些。未來(lái)用戶在安全的網(wǎng)絡(luò)里打開(kāi)頁(yè)面時(shí),雖然能立即顯示之前緩存的頁(yè)面,但同時(shí)也會(huì)嘗試訪問(wèn) .appcache 文件。由于這個(gè)文件大多都不存在,因此瀏覽器很可能刪除掉離線數(shù)據(jù),導(dǎo)致之后的訪問(wèn)不再使用離線儲(chǔ)存。因此理論上說(shuō)只有一次的觸發(fā)機(jī)會(huì),但它沒(méi)有過(guò)期時(shí)間,適用于任意 HTTP 頁(yè)面投毒。

  防范措施:在不安全的場(chǎng)合,盡量使用『隱身模式』瀏覽網(wǎng)頁(yè)。例如 Chrome 里按 Ctrl+Shift+N 就能調(diào)出,可將自己處于隔離的沙盒里。而 FireFox 瀏覽器存儲(chǔ)離線文件時(shí),會(huì)有用戶交互提示,提醒用戶是否有這必要。

  也許不久后,框架頁(yè)面不再被離線儲(chǔ)存所接受,新標(biāo)準(zhǔn)隨時(shí)都有可能改變。但 HTTP 緩存投毒是協(xié)議棧的缺陷,因此很難防范,下一篇會(huì)發(fā)現(xiàn)實(shí)際入侵效果非常理想。

  如果從密碼學(xué)的角度來(lái)說(shuō),使用了 SSL 加密的數(shù)據(jù)確實(shí)難以破解,更不用談修改了。然而,惹不起但總躲得起吧。雖然無(wú)法破解,但流量仍掌握在自己手中,走哪條路還是由我說(shuō)的算,完全可以繞過(guò)你。

  不同于簡(jiǎn)單的 HTTP 代理,HTTPS 服務(wù)需要一個(gè)權(quán)威機(jī)構(gòu)認(rèn)定的證書(shū)才算有效。自己隨便簽發(fā)的證書(shū),顯然是沒(méi)有說(shuō)服力的,HTTPS 客戶端因此會(huì)質(zhì)疑。在過(guò)去,這并不怎么影響使用過(guò)程,無(wú)非彈出一個(gè)無(wú)效的證書(shū)之類的提示框。大多用戶并不明白是什么情況,就點(diǎn)了繼續(xù),導(dǎo)致允許了黑客的偽證書(shū),HTTPS 流量因此遭到劫持。

  在經(jīng)歷越來(lái)越多的入侵事件之后,人們逐漸意識(shí)到,不能再輕易的讓用戶接受不信任的證書(shū)了。如今,主流瀏覽器對(duì)此都會(huì)給予嚴(yán)重的警告提示,避免用戶進(jìn)入偽安全站點(diǎn)。

  如果重要的賬戶網(wǎng)站遇到這種情況,無(wú)論如何都不該繼續(xù),否則大門(mén)鑰匙或許就落入黑客之手。因此,這種偷換證書(shū)的劫持,在安全意識(shí)越來(lái)越高的今天,很難再發(fā)揮實(shí)效了。我們需要一個(gè)更隱蔽的方式來(lái)躲開(kāi)加密數(shù)據(jù)。

  事實(shí)上,在 PC 端上網(wǎng)很少有直接進(jìn)入 HTTPS 網(wǎng)站的。例如支付寶網(wǎng)站,大多是從淘寶跳轉(zhuǎn)過(guò)來(lái),而淘寶使用的仍是不安全的 HTTP 協(xié)議。如果在淘寶網(wǎng)的頁(yè)面里注入 XSS,屏蔽對(duì) HTTPS 的頁(yè)面訪問(wèn),強(qiáng)制用 HTTP 取而代之,那么用戶也就永遠(yuǎn)無(wú)法進(jìn)入安全站點(diǎn)了。

  盡管地址欄里沒(méi)有出現(xiàn) HTTPS 的字樣,但域名看起來(lái)也是正確的,大多用戶都會(huì)認(rèn)為不是釣魚(yú)網(wǎng)站,因此也就忽視了。因此,只要入口頁(yè)是不安全的,那么之后的頁(yè)面再安全也無(wú)濟(jì)于事。

  當(dāng)然也有一些用戶通過(guò)輸網(wǎng)址訪問(wèn)的,他們輸入了 www.alipaly.com 就敲回車進(jìn)入了。然而,瀏覽器并不知道這是一個(gè) HTTPS 的站點(diǎn),于是使用默認(rèn)的 HTTP 去訪問(wèn)。不過(guò)這個(gè) HTTP 版的支付寶的確也存在,其唯一功能就是重定向到自己 HTTPS 站點(diǎn)上。劫持流量的中間人一旦發(fā)現(xiàn)有重定向到 HTTPS 站點(diǎn)的,顯然不愿意讓用戶走這條不受自己控制的路。于是攔下重定向的命令,自己去獲取重定向后的站點(diǎn)內(nèi)容,然后再回復(fù)給用戶。于是,用戶始終都是在 HTTP 站點(diǎn)上訪問(wèn),自然就可以無(wú)限劫持了。

  事實(shí)上,HTTPS 站點(diǎn)還有個(gè)很大的來(lái)源 —— 搜索引擎。遺憾的是,國(guó)產(chǎn)搜索引擎幾乎都不提供 HTTPS 服務(wù)。因此在不安全的網(wǎng)絡(luò)里,搜索結(jié)果是不具備任何權(quán)威的。

  防范措施:重要的網(wǎng)站必定使用 HTTPS 協(xié)議,登陸時(shí)需格外留意。

  國(guó)外的大型網(wǎng)站幾乎都提供 HTTPS 服務(wù),甚至是默認(rèn)的標(biāo)準(zhǔn)。相比國(guó)內(nèi)只有少數(shù)重要的服務(wù)才使用,絕大多數(shù)的信息都是在明文傳輸。這是為了方便什么來(lái)著,你猜。

  如果不考慮一些瀏覽器安全漏洞,理論上說(shuō)網(wǎng)頁(yè)與系統(tǒng)是完全隔離的,因此無(wú)需擔(dān)心系統(tǒng)受到影響。

  有時(shí)為了能讓網(wǎng)頁(yè)獲得更多的在線能力,安裝插件必不可少,例如支付控件、在線播放器等等。在方便使用的同時(shí),也埋下了安全隱患。如果是一些小網(wǎng)站強(qiáng)迫用戶安裝插件的,大家?guī)缀醵际侵弥焕怼5粢恍┱?guī)的大網(wǎng)站,提示用戶缺少某些插件,并且配上一些專業(yè)的提示,相信大多都會(huì)選擇安裝。而這一切,通過(guò)被注入的攻擊腳本完全能辦到。

  不過(guò),正規(guī)的插件都是有完整的數(shù)字簽名的,而偽造的很難躲過(guò)瀏覽器的驗(yàn)證,會(huì)出現(xiàn)各種安全提示。因此,攻擊者往往使用直接下載的方式,提示用戶保存并打開(kāi)安裝包。

  現(xiàn)在越來(lái)越多的應(yīng)用程序,選擇使用內(nèi)嵌網(wǎng)頁(yè)來(lái)簡(jiǎn)化界面的開(kāi)發(fā),在移動(dòng)設(shè)備上更是普遍。通常為了能讓頁(yè)面和客戶端交互,賦予一些本地程序的接口供調(diào)用,因此具有了較高的權(quán)限。不過(guò),正常情況下嵌入的都是受白名單限制的可信頁(yè)面,因此不存在安全隱患。然而在被劫持的網(wǎng)絡(luò)里,一切明文傳輸?shù)臄?shù)據(jù)都不再具備可信度。同樣的腳本注入,就能獲得額外的權(quán)限了。

  一些帶有缺陷的系統(tǒng),攻擊腳本甚至能獲得出乎意料的能力。通過(guò)之前提到的網(wǎng)頁(yè)緩存投毒,這顆埋下的地雷隨時(shí)都有可能觸發(fā)。

  即使上網(wǎng)從不安裝插件,但是下載應(yīng)用程序還是經(jīng)常需要的。由于大多數(shù)的下載網(wǎng)站,使用的都是 HTTP 流量,因此劫持者能輕易的修改可執(zhí)行文件,將其感染上病毒或木馬,甚至完全替換成另一個(gè)程序。用戶總認(rèn)為從官網(wǎng)上下載的肯定沒(méi)問(wèn)題,于是就毫無(wú)顧慮的打開(kāi)了。這時(shí),入侵的不再是瀏覽器環(huán)境,而是能控制整個(gè)系統(tǒng)了。

  防范措施:如果是從瀏覽器里下載的程序,留意是否具有數(shù)字簽名,正規(guī)的廠商幾乎都會(huì)提供。如果想試用一些來(lái)路不明的小程序,保存到虛擬機(jī)里使用就放心多了。

  未來(lái) SPDY 技術(shù)普及的時(shí)候,就再不用擔(dān)心網(wǎng)頁(yè)劫持這些事。它將 HTTP 協(xié)議封裝在加密的流量里傳輸,想劫持一個(gè)普通網(wǎng)頁(yè)都很困難了。

  結(jié)尾

  暫時(shí)就說(shuō)到這。事實(shí)上類似 XSS 的攻擊方式還有很多,這里只談了一些能和流量劫持配合使用的。利用上一篇講述的各種劫持途徑,配合本文提到的入侵方式,可以劫持不少用戶了。下一篇,我們將演示如何利用這些原理,發(fā)起實(shí)戰(zhàn)攻擊,敬請(qǐng)期待。

 

上一篇:智能無(wú)懼挑戰(zhàn) 山石網(wǎng)科轟動(dòng)RSA2015

下一篇:數(shù)字鏈系統(tǒng)供應(yīng)安全:外包代碼開(kāi)放