密碼管理器的攻防

責(zé)任編輯:editor005

作者:Brexit

2017-02-20 14:03:10

摘自:安全客

到現(xiàn)在為止,我們提到的攻擊都是當(dāng)用戶沒有跟登錄表單交互時,使用密碼管理器的自動填充功能起作用。2 當(dāng)?shù)卿洷韱斡擅艽a管理器自動填充時,JavaScript無法讀取該表單(因此要有被修改的瀏覽器)。

密碼管理器的攻防

  前言

有安全意識的人肯定不會為所有的網(wǎng)站設(shè)置同樣的密碼。為了提高一站一密碼的安全系數(shù),你可能會使用到密碼管理器。不過剛開始使用時可能會有一絲不安,畢竟它將所有的密碼都放在了同一個地方,而且很多密碼管理器都會同步到所有設(shè)備和云上。在這篇文章中,作者說明了很多密碼管理器中都包含一個主要漏洞,而且這個漏洞如被利用可自動填充密碼字段!由于作者寫作本文是在2014年,因此可能所述的攻擊向量已被關(guān)閉(如果你知道相關(guān)的更新報告,請在評論區(qū)留言),不過我認(rèn)為這些攻擊的變種仍然還在。

一言以蔽之:不要使用自動填充功能。

邪惡的咖啡店攻擊者

攻擊者應(yīng)該能夠?qū)嵤┲鲃拥闹虚g人攻擊。但是要竊取網(wǎng)站的憑證,也沒有硬性要求用戶必須直接明確地訪問或者登錄到某個網(wǎng)站??Х鹊?舉個例子)的一個惡意wifi路由器就夠了:連接到這個路由器,你的密碼就不翼而飛了。

我們將這種攻擊者稱為“邪惡的咖啡店攻擊者”。這些攻擊只需要對網(wǎng)絡(luò)路由器擁有臨時控制,而且實施起來更容易,因此很可能在現(xiàn)實生活中發(fā)生。在我們所講述的很多攻擊中,用戶都無需跟受害者網(wǎng)站交互,而且用戶不會意識到密碼已被提取。

掃描攻擊

基本的掃描(sweep)攻擊會攻陷所有支持自動填充密碼字段的密碼管理器,因為目標(biāo)用戶連接到了由攻擊者控制的WiFi熱點。

當(dāng)用戶啟動瀏覽器時,瀏覽器會被重定向到一個標(biāo)準(zhǔn)的熱點登錄頁面,該頁面要求獲取用戶關(guān)于標(biāo)準(zhǔn)使用條款的同意。這種行為常見于公共熱點。然而,用戶沒有意識到的是,登錄頁面包含著實施攻擊的不可見元素。

換句話說,等到你查看完整加載的登錄頁面時,你的多數(shù)憑證可能已經(jīng)不見了。在測試中,每秒可被提取的密碼數(shù)量是10個左右。

大體來講,攻擊者有三種使用登錄頁面的方法來掃描密碼:

1. 在iFrame掃描攻擊中,登錄頁面包含指向多個目標(biāo)站點任意頁面的不可見內(nèi)嵌框架。當(dāng)瀏覽器加載這些框架時,攻擊者會向它們注入一個登錄表單和javascript(詳細(xì)方法看下文)。自動填充密碼管理器會將用戶密碼填入相應(yīng)的字段。

2. 攻擊者不會使用內(nèi)嵌框架,而是使用多個窗口。通過要求在用戶能夠獲取訪問wifi網(wǎng)絡(luò)之前打開窗口,用戶會禁用任何彈出阻攔。雖然多個窗口要比不可見的內(nèi)嵌框架更惹人注意,但是注入的javascript能夠?qū)⑺鼈冏钚』驅(qū)⑺鼈円苿拥狡聊贿吘?。密碼被盜后,窗口就會馬上被關(guān)閉。

3. 第三種方法是使用重定向鏈。當(dāng)用戶請求某個頁面時,攻擊者就會以某個站點的重定向作為響應(yīng),攻擊者正是憑此來獲悉密碼。被注入的javascript增加一個登錄表單并隱藏頁面詳情。一旦密碼管理器自動填充了密碼且密碼被提取,瀏覽器就會被重定向至下一個目標(biāo)站點,以此循環(huán)往復(fù),最終加載到用戶原來請求的頁面。而用戶看到的不過是一個緩慢的wifi連接。

下列表格展示了截止2014年被測試的密碼管理器,它們均易受掃描攻擊。

截止2014年被測試的密碼管理器

注:上表是掃描攻擊的漏洞。“+”表示漏洞沒有限制。HTTPS表示漏洞僅存在于HTTPS頁面。Single代表每個高級頁面加載中有一個站點易受攻擊。SO表示當(dāng)包含內(nèi)嵌框架的頁面跟內(nèi)嵌框架中的目標(biāo)頁面是同源時的漏洞。

注入

掃描攻擊依靠的是攻擊者通過篡改網(wǎng)絡(luò)流量而修改受害者網(wǎng)站頁面的能力。當(dāng)易受攻擊的頁面就是登錄頁面本身時,攻擊最容易實施。然而,只要有任何跟登錄頁面同源的頁面就足夠了,因為所有關(guān)聯(lián)的密碼管理器都通過域名保存密碼而忽視登錄頁面的路徑。

實施攻擊的一個簡單方法就是在HTTP協(xié)議下提供登錄表單的站點(不良實踐),而且僅在提交時使用HTTPS。截止2013年10月份,在Alex排名前500的站點中,有17%的站點都是這么做的。目前情況應(yīng)該好點了,但由于沒有數(shù)據(jù),也無法下定論。

任何一個通過HTTP獲取動態(tài)內(nèi)容的HTTPS網(wǎng)頁都易受攻擊(不過多數(shù)瀏覽器會實施攔截)。受害者網(wǎng)站任意網(wǎng)頁上的任何XSS漏洞也會起作用(即便登錄頁面用的是HTTPS協(xié)議)。實際上網(wǎng)站上任何位置的XSS漏洞即使在不需要惡意WiFi的情況下都能觸發(fā)攻擊——只要網(wǎng)絡(luò)攻擊者能夠誘騙用戶訪問受攻擊者控制的網(wǎng)站即可。

損壞的HTTPS鏈接(例如損壞的證書)也會導(dǎo)致漏洞的出現(xiàn),因為攻擊者能夠使用一個自簽名證書作為修改后的登錄頁面。瀏覽器會發(fā)出告警,但用戶通常都會選擇忽視告警信息(尤其是當(dāng)告警出現(xiàn)在登錄WiFi網(wǎng)絡(luò)時,或者至少用戶是這么認(rèn)為的)。

嵌入式設(shè)備更是如此。嵌入式設(shè)備會通過HTTP提供登錄頁面,它們一般是在受WiFi加密保護的私有網(wǎng)絡(luò)上或者是通過HTTPS提供登錄頁面但使用自簽名證書的家庭路由器。

密碼提取

一旦攻擊者頁面的javascript獲得目標(biāo)密碼,提取就容易多了。其中一種方法是加載一個不可見的內(nèi)嵌框架并將憑證作為參數(shù)通過;另一種方法是修改登錄表單的動作使其提交到受攻擊者控制的站點。

如果密碼管理器不支持自動填充呢?

到現(xiàn)在為止,我們提到的攻擊都是當(dāng)用戶沒有跟登錄表單交互時,使用密碼管理器的自動填充功能起作用。然而,我們提到的密碼提取技術(shù)跟登錄表單如何填充并沒有關(guān)系。如果用戶的密碼管理器要求用戶輸入密碼,那么攻擊者就能夠誘騙用戶在無意識的情況下跟登錄表單交互,一旦表單填充完畢,可使用相同的提取技術(shù)竊取密碼。

作者描述了一種能夠在這種場景下起作用的點擊劫持,盡管我們現(xiàn)在只限于一次只竊取一個密碼的方式。

密碼管理器中的支持弱點

密碼管理器除了自動填充功能外,還有其它一些行為也能幫助攻擊者,這些行為的目的是嘗試變得更加強大以應(yīng)對站點實現(xiàn)詳情中的變化。下表是一個簡短總結(jié)。

http://p0.qhimg.com/t01b672a43f9bc52aaa.png

注:密碼管理器的自動填充行為(自動化自動填充、手動自動填充或未填充)取決于協(xié)議 (http/https)、自動完成屬性、跟協(xié)議相關(guān)的用于當(dāng)前頁面的表單動作和保存密碼時使用的表單動作。Manual autofilling(手動自動填充)是指完成某些用戶交互后自動填充密碼如點擊或觸摸其中的一個表單字段。No fill(未填充)是指沒有自動填充密碼。倒數(shù)第二列是指當(dāng)密碼字段的自動完成屬性被設(shè)置為off時的自動填充行為。最后一列是指不良HTTPS連接狀態(tài)下針對加載的一個登錄頁面后的自動填充行為。

防御

主要的防御手段是要求安全填充,只需要一個被修改的瀏覽器就足夠了(以及需要一個被修改的密碼管理器與之相對應(yīng))。

如果一個登錄頁面是通過HTTP加載的但卻通過HTTPS提交,那么一旦登錄表單填上了用戶的密碼,那么瀏覽器或密碼管理器實現(xiàn)就無法提供安全性,因為JavaScript能夠直接從表單讀取密碼或者更改表單動作,以便提交到由攻擊者托管的密碼竊取頁面。安全填充的目標(biāo)是即使攻擊者將惡意JavaScript注入登錄頁面,密碼管理器自動填充的密碼還是安全的,前提條件是表單是通過HTTPS提交的。

安全填充要求:

1. 從當(dāng)用戶名和密碼首次被保存開始起,密碼管理器要存儲在登錄表單中顯示的行為。

2. 當(dāng)?shù)卿洷韱斡擅艽a管理器自動填充時,JavaScript無法讀取該表單(因此要有被修改的瀏覽器)。

3. 如果在自動填充正在進行過程中,用戶名或密碼字段被(用戶或JavaScript)修改,自動填充會中止從密碼字段中清除密碼并再次讓字段變?yōu)榭勺x。

4. 一旦被自動填充的表單提交,而且JavaScript運行之后,瀏覽器就會檢查表單的行為是否跟存儲的一致,只有在一致的情況下才會提交表單。

需要注意的是,這也意味著,比如,我們需要處理起始注冊頁面,尤其是當(dāng)它們經(jīng)常會包含客戶端對密碼長度進行校驗(要求js權(quán)限)時。

我們將研究結(jié)果披露給了密碼管理器廠商,并提出對自動填充策略的一些改變。從我們的研究來看,LastPass不會在內(nèi)嵌框架中自動填充密碼,而iPassword也不再為HTPP頁面提供從HTTPS頁面填充密碼的服務(wù)。

從此處可了解關(guān)于為何iPassword為何不提供自動填充功能的內(nèi)容以及關(guān)于掃描攻擊的討論。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號