安全動(dòng)態(tài)

新式攻擊使用W3C環(huán)境光線傳感器來(lái)竊取瀏覽器的敏感信息(含演示視頻)

來(lái)源:聚銘網(wǎng)絡(luò)    發(fā)布時(shí)間:2017-05-01    瀏覽次數(shù):
 

信息來(lái)源:FreeBuf


概述

在這篇文章中,我們將會(huì)給大家介紹一種從瀏覽器中提取敏感信息的方法,而我們所要用到的工具就是你的智能手機(jī)或筆記本電腦中的環(huán)境光傳感器。文章結(jié)構(gòu)如下:

1.    首先,我們會(huì)介紹與光傳感器有關(guān)的內(nèi)容。

2.    接下來(lái),我們會(huì)描述用戶設(shè)備的屏幕顏色將會(huì)對(duì)光傳感器的數(shù)據(jù)產(chǎn)生怎樣的影響。我們的主要目標(biāo)是跨域提取瀏覽器的數(shù)據(jù)和歷史記錄,而攻擊者將可以從中提取出敏感文檔和圖片(例如用于賬號(hào)恢復(fù)的二維碼圖片)。

3.    最后,我們會(huì)介紹瀏覽器廠商所能采取的應(yīng)對(duì)策略,并幫助大家緩解這種風(fēng)險(xiǎn)。

注:當(dāng)前版本的Firefox和Chrome瀏覽器都無(wú)法抵御這種攻擊,包括帶有光傳感器的Android以及桌面設(shè)備(例如MacBookPro)。

背景知識(shí):智能手機(jī)中的光傳感器

現(xiàn)在,幾乎所有型號(hào)的智能手機(jī)和絕大多數(shù)的筆記本電腦都配備有環(huán)境光傳感器。這種傳感器一般會(huì)被安裝在設(shè)備的頂部,也就是在靠近前置攝像頭的地方。智能手機(jī)不僅可以利用環(huán)境光傳感器來(lái)檢測(cè)用戶距離,而且還可以感應(yīng)外部環(huán)境,并通過(guò)調(diào)整屏幕亮度來(lái)達(dá)到省電的目的。除此之外,光環(huán)境信息也可以用來(lái)調(diào)整智能手機(jī)的響應(yīng)方式,或者對(duì)硬件進(jìn)行配置。因此,光傳感器的數(shù)據(jù)是十分敏感的。

環(huán)境光傳感器返回的數(shù)據(jù)其精確度是非常高的,在國(guó)際標(biāo)準(zhǔn)單位中,衡量光強(qiáng)度所用的單位是勒克斯(lux),輸出數(shù)據(jù)范圍在0(黑暗)到上萬(wàn)lux不等。而且光傳感器輸出數(shù)據(jù)的頻率也是非常高的,讀取間隔大約為100-200毫秒。

為了與原生App競(jìng)爭(zhēng)并給用戶提供更好的用戶體驗(yàn),越來(lái)越多的網(wǎng)站開始有訪問(wèn)環(huán)境光傳感器數(shù)據(jù)的需求了。但是,W3C設(shè)備與傳感器工作組織目前還在討論是否要允許網(wǎng)站在沒(méi)有得到用戶許可的情況下訪問(wèn)光傳感器數(shù)據(jù)。但是,當(dāng)前版本的Chrome和Firefox都已經(jīng)實(shí)現(xiàn)了相應(yīng)的API。

傳感器隱私

W3C組織近期正在討論有關(guān)通用傳感器API的內(nèi)容,其中一個(gè)主要的話題就是第三方服務(wù)在訪問(wèn)特定傳感器數(shù)據(jù)時(shí)是否需要征得用戶的許可。因此,我們此次研究的目的就是要研究環(huán)境光傳感器(ALS)目前所面臨的安全威脅。在此之前,我曾從安全和隱私這兩個(gè)方面對(duì)ALS進(jìn)行過(guò)全面的分析,通過(guò)研究發(fā)現(xiàn),攻擊者不僅可以通過(guò)傳感器泄漏數(shù)據(jù)來(lái)檢測(cè)房間內(nèi)是否有人,而且還可以找出目標(biāo)用戶的銀行密碼。

在這篇文章中,我們的重點(diǎn)是傳感器數(shù)據(jù)將如何幫助攻擊者從目標(biāo)用戶的瀏覽器中提取出隱私數(shù)據(jù)。接下來(lái),我們會(huì)討論實(shí)際的攻擊場(chǎng)景。

利用光傳感器提取數(shù)據(jù)

那么我們到底如何才能通過(guò)環(huán)境光傳感器來(lái)提取出用戶的隱私數(shù)據(jù)呢?首先,我們要注意以下兩點(diǎn):

1.    用戶屏幕的顏色攜帶著大量的有用信息,但是出于安全方面的考慮,網(wǎng)站是禁止直接讀取這方面信息的。

2.    攻擊者可以通過(guò)光傳感器的讀數(shù)來(lái)區(qū)分不同的屏幕顏色

我們待會(huì)兒再詳細(xì)描述第二點(diǎn),但簡(jiǎn)而言之,屏幕所發(fā)出的光不僅會(huì)對(duì)光傳感器的讀數(shù)產(chǎn)生影響,而且還會(huì)允許網(wǎng)站判斷設(shè)備屏幕的顏色。

而第一點(diǎn)肯定會(huì)讓你感到驚訝吧?畢竟網(wǎng)站可以控制它們?cè)谟脩羝聊簧纤@示的內(nèi)容,所以它們?yōu)槭裁催€會(huì)對(duì)這些數(shù)據(jù)感興趣呢?但你要知道,下面這兩種顏色狀態(tài)是網(wǎng)站無(wú)法直接獲取的:

1.    已訪問(wèn)過(guò)的鏈接顏色:出于隱私原因,瀏覽器不會(huì)向開發(fā)者透露頁(yè)面所顯示的鏈接顏色,否則惡意開發(fā)者就可以利用“:visited”這種頁(yè)面style來(lái)檢測(cè)用戶所訪問(wèn)過(guò)的網(wǎng)站了。

2.    跨域資源:同源策略可以防止惡意網(wǎng)站跨域訪問(wèn)受害網(wǎng)站的合法資源。雖然網(wǎng)站不能跨域檢查其他網(wǎng)站的框架和圖片,但他們可以根據(jù)自己的需要來(lái)顯示這些內(nèi)容,例如縮放大小和改變顏色。

接下來(lái),我們將介紹攻擊的實(shí)現(xiàn)方法。

檢測(cè)已訪問(wèn)過(guò)的鏈接

雖然網(wǎng)站可以采用不同的style來(lái)顯示已訪問(wèn)過(guò)的和未訪問(wèn)過(guò)的鏈接顏色,但是它們不能檢測(cè)鏈接是如何顯示給用戶的。不過(guò),我們可以通過(guò)傳感器來(lái)識(shí)別鏈接的真實(shí)顏色。大致步驟如下:

1.    設(shè)置鏈接的style:已訪問(wèn)過(guò)的(白色)、未訪問(wèn)過(guò)的(黑色)。

2.    校準(zhǔn):顯示一個(gè)白色背景然后再顯示黑色背景,以此來(lái)識(shí)別用戶環(huán)境的光等級(jí)。不過(guò)需要注意的是,傳感器讀數(shù)波動(dòng)較大將會(huì)增加我們的攻擊難度。

3.    遍歷鏈接列表:一個(gè)接一個(gè)地讀取列表中的地址,然后顯示在屏幕中。已訪問(wèn)過(guò)的鏈接將以白色顯示,未訪問(wèn)過(guò)的鏈接則是黑色。

4.    記錄下每一條鏈接的光等級(jí),識(shí)別它們的顏色。由于我們已經(jīng)在第二步中對(duì)屏幕進(jìn)行了校準(zhǔn),所以我們現(xiàn)在就能知道光傳感器的每一個(gè)讀數(shù)所代表的顏色了。

最后,攻擊者將獲取到所有白色的鏈接,這樣他們就能知道用戶之前訪問(wèn)過(guò)哪些頁(yè)面了。

演示視頻如下:

視頻地址:https://youtu.be/Rg0LQ3npkP0

在演示視頻中,我們實(shí)驗(yàn)環(huán)境的光條件在數(shù)據(jù)提取階段是不會(huì)發(fā)生變化的,但是去除這個(gè)限制條件也并非難事。

竊取跨域資源

在我們的實(shí)驗(yàn)過(guò)程中,我們的重點(diǎn)將放在竊取圖片上,因?yàn)閳D片資源比較好提取。在下面的演示視頻中,網(wǎng)站允許用戶通過(guò)掃描二維碼(https://victim.com/account-code.png)來(lái)緊急訪問(wèn)或恢復(fù)賬號(hào),而攻擊者就可以利用這個(gè)二維碼來(lái)劫持用戶賬戶了。

視頻地址:https://youtu.be/LF8Wi1UVj7U

攻擊機(jī)制大致如下:

1.    從受攻擊的域名嵌入一張圖片。一般情況下,這張圖片對(duì)于不同身份的用戶是不一樣的,例如用戶頭像或安全碼。

2.    使用SVG過(guò)濾器來(lái)創(chuàng)建黑白形式的圖片。

3.    縮放圖片,讓圖片充滿整個(gè)屏幕。

4.    遍歷圖片中的所有像素,并在用戶屏幕上顯示每一個(gè)像素,然后記錄下光傳感器對(duì)每一個(gè)像素的讀數(shù)。

5.    將所有像素組合成結(jié)果圖像。

檢測(cè)速度

由于我們一次只能提取一位數(shù)據(jù),所以檢測(cè)速度就成為了這種攻擊技術(shù)的主要瓶頸。雖然瀏覽器傳感器的讀取速率只有60Hz,但這并不意味著我們每秒能提取出60位數(shù)據(jù),而最終的檢測(cè)速度也會(huì)受到傳感器檢測(cè)屏幕亮度的頻率所限制。

不同情況所對(duì)應(yīng)的檢測(cè)時(shí)間如下:

-8個(gè)字符所組成的明文字符串:24秒-16個(gè)字符所組成的明文字符串:48秒-20x20的二維碼圖片:3分20秒-掃描瀏覽歷史中1000個(gè)訪問(wèn)頻率最高的URL:8分20秒-64x64的像素圖片:34分08秒

下面這個(gè)視頻演示了竊取圖片的完整過(guò)程:

視頻地址:https://youtu.be/SI8Uf-VCixs

應(yīng)對(duì)方法

目前比較有效的應(yīng)對(duì)方法主要有以下兩種:

1.    限制傳感器的讀取速率(低于60Hz)

2.    限制傳感器的輸出精度

不過(guò)對(duì)于光傳感器而言,限制頻率也無(wú)法阻止我們的攻擊,就算頻率降低至1Hz我們也同樣能夠進(jìn)行攻擊,但限制頻率可以顯著增加攻擊的時(shí)間成本。相比而言,限制傳感器的輸出精度也許是更加好的解決方案。但很明顯,最佳的解決方案應(yīng)該是限制網(wǎng)站訪問(wèn)傳感器數(shù)據(jù),至少也要在它們?cè)L問(wèn)這些數(shù)據(jù)之前得到用戶的權(quán)限許可。

總結(jié)

我們此次演示的攻擊技術(shù)不僅暴露了目前光傳感器所存在的安全隱患,而且也證明了惡意網(wǎng)站能夠利用光傳感器數(shù)據(jù)來(lái)繞過(guò)網(wǎng)站的同源策略并跨域竊取用戶的敏感信息。其實(shí)除了光傳感器之外,像溫度感應(yīng)器、GPS和陀螺儀等傳感器或多或少都存在著各種安全問(wèn)題,而以安全和隱私為主要考量因素來(lái)設(shè)計(jì)這些設(shè)備的行業(yè)標(biāo)準(zhǔn)其實(shí)也并非易事。因此,我們希望廠商能夠更加關(guān)注傳感器的安全問(wèn)題,并且能夠在將來(lái)為這些設(shè)備增加更多的安全保護(hù)功能。

 

* 參考來(lái)源:lukaszolejnik, FB小編Alpha_h4ck編譯,轉(zhuǎn)載請(qǐng)注明來(lái)自FreeBuf.COM


 
 

上一篇:2017年04月30日 聚銘安全速遞

下一篇:工信部:主動(dòng)融入網(wǎng)絡(luò)強(qiáng)國(guó)戰(zhàn)略目標(biāo)