新式攻擊使用W3C環境光線感測器來竊取瀏覽器的敏感信息
概述
在這篇文章中,我們將會給大家介紹一種從瀏覽器中提取敏感信息的方法,而我們所要用到的工具就是你的智能手機或筆記本電腦中的環境光感測器。文章結構如下:
1.首先,我們會介紹與光感測器有關的內容。
2.接下來,我們會描述用戶設備的屏幕顏色將會對光感測器的數據產生怎樣的影響。我們的主要目標是跨域提取瀏覽器的數據和歷史記錄,而攻擊者將可以從中提取出敏感文檔和圖片(例如用於賬號恢復的二維碼圖片)。
3.最後,我們會介紹瀏覽器廠商所能採取的應對策略,並幫助大家緩解這種風險。
註:當前版本的Firefox和Chrome瀏覽器都無法抵禦這種攻擊,包括帶有光感測器的Android以及桌面設備(例如MacBookPro)。
背景知識:智能手機中的光感測器
現在,幾乎所有型號的智能手機和絕大多數的筆記本電腦都配備有環境光感測器。這種感測器一般會被安裝在設備的頂部,也就是在靠近前置攝像頭的地方。智能手機不僅可以利用環境光感測器來檢測用戶距離,而且還可以感應外部環境,並通過調整屏幕亮度來達到省電的目的。除此之外,光環境信息也可以用來調整智能手機的響應方式,或者對硬體進行配置。因此,光感測器的數據是十分敏感的。
環境光感測器返回的數據其精確度是非常高的,在國際標準單位中,衡量光強度所用的單位是勒克斯(lux),輸出數據範圍在0(黑暗)到上萬lux不等。而且光感測器輸出數據的頻率也是非常高的,讀取間隔大約為100-200毫秒。
為了與原生App競爭並給用戶提供更好的用戶體驗,越來越多的網站開始有訪問環境光感測器數據的需求了。但是,W3C設備與感測器工作組織目前還在討論是否要允許網站在沒有得到用戶許可的情況下訪問光感測器數據。但是,當前版本的Chrome和Firefox都已經實現了相應的API。
感測器隱私
W3C組織近期正在討論有關通用感測器API的內容,其中一個主要的話題就是第三方服務在訪問特定感測器數據時是否需要徵得用戶的許可。因此,我們此次研究的目的就是要研究環境光感測器(ALS)目前所面臨的安全威脅。在此之前,我曾從安全和隱私這兩個方面對ALS進行過全面的分析,通過研究發現,攻擊者不僅可以通過感測器泄漏數據來檢測房間內是否有人,而且還可以找出目標用戶的銀行密碼。
在這篇文章中,我們的重點是感測器數據將如何幫助攻擊者從目標用戶的瀏覽器中提取出隱私數據。接下來,我們會討論實際的攻擊場景。
利用光感測器提取數據
那麼我們到底如何才能通過環境光感測器來提取出用戶的隱私數據呢?首先,我們要注意以下兩點:
1.用戶屏幕的顏色攜帶著大量的有用信息,但是出於安全方面的考慮,網站是禁止直接讀取這方面信息的。
2.攻擊者可以通過光感測器的讀數來區分不同的屏幕顏色
我們待會兒再詳細描述第二點,但簡而言之,屏幕所發出的光不僅會對光感測器的讀數產生影響,而且還會允許網站判斷設備屏幕的顏色。
而第一點肯定會讓你感到驚訝吧?畢竟網站可以控制它們在用戶屏幕上所顯示的內容,所以它們為什麼還會對這些數據感興趣呢?但你要知道,下面這兩種顏色狀態是網站無法直接獲取的:
1.已訪問過的鏈接顏色:出於隱私原因,瀏覽器不會向開發者透露頁面所顯示的鏈接顏色,否則惡意開發者就可以利用「:visited」這種頁面style來檢測用戶所訪問過的網站了。
2.跨域資源:同源策略可以防止惡意網站跨域訪問受害網站的合法資源。雖然網站不能跨域檢查其他網站的框架和圖片,但他們可以根據自己的需要來顯示這些內容,例如縮放大小和改變顏色。
接下來,我們將介紹攻擊的實現方法。
檢測已訪問過的鏈接
雖然網站可以採用不同的style來顯示已訪問過的和未訪問過的鏈接顏色,但是它們不能檢測鏈接是如何顯示給用戶的。不過,我們可以通過感測器來識別鏈接的真實顏色。大致步驟如下:
1.設置鏈接的style:已訪問過的(白色)、未訪問過的(黑色)。
2.校準:顯示一個白色背景然後再顯示黑色背景,以此來識別用戶環境的光等級。不過需要注意的是,感測器讀數波動較大將會增加我們的攻擊難度。
3.遍歷鏈接列表:一個接一個地讀取列表中的地址,然後顯示在屏幕中。已訪問過的鏈接將以白色顯示,未訪問過的鏈接則是黑色。
4.記錄下每一條鏈接的光等級,識別它們的顏色。由於我們已經在第二步中對屏幕進行了校準,所以我們現在就能知道光感測器的每一個讀數所代表的顏色了。
最後,攻擊者將獲取到所有白色的鏈接,這樣他們就能知道用戶之前訪問過哪些頁面了。
<視頻演示點擊文末的閱讀原文查看>
在演示視頻中,我們實驗環境的光條件在數據提取階段是不會發生變化的,但是去除這個限制條件也並非難事。
竊取跨域資源
在我們的實驗過程中,我們的重點將放在竊取圖片上,因為圖片資源比較好提取。在下面的演示視頻中,網站允許用戶通過掃描二維碼(https://victim.com/account-code.png)來緊急訪問或恢復賬號,而攻擊者就可以利用這個二維碼來劫持用戶賬戶了。
<視頻演示點擊文末的閱讀原文查看>
攻擊機制大致如下:
1.
從受攻擊的域名嵌入一張圖片。一般情況下,這張圖片對於不同身份的用戶是不一樣的,例如用戶頭像或安全碼。
2.
使用SVG過濾器來創建黑白形式的圖片。
3.
縮放圖片,讓圖片充滿整個屏幕。
4.
遍歷圖片中的所有像素,並在用戶屏幕上顯示每一個像素,然後記錄下光感測器對每一個像素的讀數。
5.
將所有像素組合成結果圖像。
檢測速度
由於我們一次只能提取一位數據,所以檢測速度就成為了這種攻擊技術的主要瓶頸。雖然瀏覽器感測器的讀取速率只有60Hz,但這並不意味著我們每秒能提取出60位數據,而最終的檢測速度也會受到感測器檢測屏幕亮度的頻率所限制。
不同情況所對應的檢測時間如下:
-8個字元所組成的明文字元串:24秒-16個字元所組成的明文字元串:48秒-20x20的二維碼圖片:3分20秒-掃描瀏覽歷史中1000個訪問頻率最高的URL:8分20秒-64x64的像素圖片:34分08秒
下面這個視頻演示了竊取圖片的完整過程:
<視頻演示點擊文末的閱讀原文查看>
應對方法
目前比較有效的應對方法主要有以下兩種:
1.
限制感測器的讀取速率(低於60Hz)
2.
限制感測器的輸出精度
不過對於光感測器而言,限制頻率也無法阻止我們的攻擊,就算頻率降低至1Hz我們也同樣能夠進行攻擊,但限制頻率可以顯著增加攻擊的時間成本。相比而言,限制感測器的輸出精度也許是更加好的解決方案。但很明顯,最佳的解決方案應該是限制網站訪問感測器數據,至少也要在它們訪問這些數據之前得到用戶的許可權許可。
總結
我們此次演示的攻擊技術不僅暴露了目前光感測器所存在的安全隱患,而且也證明了惡意網站能夠利用光感測器數據來繞過網站的同源策略並跨域竊取用戶的敏感信息。其實除了光感測器之外,像溫度感應器、GPS和陀螺儀等感測器或多或少都存在著各種安全問題,而以安全和隱私為主要考量因素來設計這些設備的行業標準其實也並非易事。因此,我們希望廠商能夠更加關注感測器的安全問題,並且能夠在將來為這些設備增加更多的安全保護功能。
* 參考來源:lukaszolejnik, FB小編Alpha_h4ck編譯,轉載請註明來自FreeBuf.COM
※公有雲廠商DDoS防護產品競品分析
※Pwnable.tw刷題之calc
※NSA工具DoublePulsar已入侵數萬Windows設備,來看你是否也在其中?
TAG:FreeBuf |
※Vishay推出針對可穿戴設備和智能手機應用優化的新型高靈敏度環境光感測器
※使用Linux容器迅速搭建滲透測試環境
※愛德華醫生非凡之光LED檯燈評測:靈動調節,適用多種使用環境
※火星飛行器熱環境預測及熱防護系統設計取得突破
※箱式變電站使用環境
※大多數動物使用觸鬚來感知周圍的環境
※C+環境下調用銳視開源測控軟體
※微軟環境驅動BCB錯誤
※冰與火之歌 軍用飛機的極端環境測試
※蘋果智能手錶觸覺通知專利技術;Bose AR 眼鏡搭載運動感測器;NEM-AMORE睡眠環境控制系統
※智能家庭通訊標準混用問題難解 宜特推「環境模擬器測試」
※感測器、測試和商業化:中汽中心發起環境感知技術探討
※凈化器環境測試艙的污染源發生裝置詳解
※像水母一樣的軟性機器人 可以用來保護海洋生態環境
※工程師們發明了用於可穿戴設備的生物感測器技術,可監測人體健康和環境問題
※用戶行為監測及徵信系統,TOGO途歌實現優質共享環境
※DARPA地面X戰車展示高機動性和環境感知能力
※食品安全與環境監測再加碼 相關儀器採購頻爆大單
※打造安全上網環境 春節期間路由器使用技巧
※全球四大耳機品牌「AKG」推無線藍牙耳機:環境感知+高品質音質