PINLogger:通過移動感測器竊取智能手機PIN碼

事實上,智能手機對於其使用者都非常了解。他們知道我們是否在一輛超速駕駛的汽車中,知道我們是在走路、騎車或者是乘坐在公共汽車上,甚至也知道我們每天接收電話的數量、時間等信息,當然對於我們解鎖設備的個人識別碼或者登陸時的雙重驗證他們更是了如指掌。而最近,研究人員設計了一種攻擊方式—利用一個網站來秘密收集手機大量的數據,而這些數據目前來看準確性驚人。

目前來說鍵盤記錄攻擊最有效的是猜測四位數的PIN碼,一般來說第一次輸入的準確率為74%,第三次嘗試的成功率為94%。相同的技術還可以用於推斷其他輸入,包括許多Android用戶依賴鎖定手機的鎖定模式,儘管準確率可能會有所不同。攻擊過程中只要求用戶打開惡意網頁,並在關閉之前輸入字元就可以了,整個過程中不需要安裝任何惡意應用程序。

惡意網頁或瀏覽器可以通過基於HTML的iframe標籤提供惡意廣告或惡意內容,合法網站可以使用標準JavaScript代碼來安裝攻擊,該代碼可訪問內置於幾乎所有iOS和Android設備中的運動和方向感測器。為了說明攻擊是如何工作的,英國紐卡斯爾大學的研究人員寫了一個名為PINLogger.js的攻擊代碼。在不發生任何警告或外部預警的情況下,JavaScript能夠準確地推斷出輸入到設備中的字元。

「這意味著每當你在網頁上輸入私人數據時,例如網頁上都會顯示一些廣告橫幅,則廣告提供者可能會「監聽」並發現你在該頁面中輸入的內容。紐西蘭大學研究人員之一的暹羅F Shahandashti向我們展示了這一攻擊,「據我們所了解,當攻擊進行時,在一些瀏覽器中如果你打開一個頁面A,然後再打開一個頁面B,而不關閉頁面A(大多數人做的)那麼頁面A在後台就可以監聽你在在頁面B中輸入的內容。」

修復困難

各種類型的攻擊工作的具體條件在瀏覽器與瀏覽器之間都會有所不同,而起在一定程度上還取決於每個瀏覽器運行的操作系統。百度所提供的瀏覽器,無論是在iOS或Android上運行,都能最大限度地訪問感測器。因此,當惡意網頁直接載入到打開或背景瀏覽器標籤中時,瀏覽器會提供敏感的感測器數據,作為iframe載入或打開或背景選項卡中,甚至是當設備屏幕被鎖定時,惡意頁面直接載入或作為iframe載入。相比之下,其他廣泛使用的瀏覽器限制了對感測器數據的訪問,但也仍然提供了濫用的機會。

例如,Chrome for iOS將感測器數據提供給直接載入的惡意站點,作為iframe或作為廣告進入活動選項卡。但Google瀏覽器卻會阻止訪問載入到背景選項卡中的所有網站,並且iPhone被鎖定也會如此。Chrome for Android除了不向傳輸伺服器提供感測器數據之外工作原理都類似。當JavaScript直接託管或通過活動選項卡上的iframe載入而不是後台選項卡時,Android上的Firefox也可以訪問感測器。與此同時,Safari具有與Firefox相同的訪問許可權,但是當iPhone屏幕被鎖定時,Apple製造的瀏覽器也訪問了代碼。各種瀏覽器的條件完整總結如下表所示:

研究人員分別向Chrome,Firefox,Safari和Opera的廠商報告了這一情況。Mozilla在版本46中發布了部分修復程序,其中Firefox限制了JavaScript訪問運動和方向感測器到頂級文檔和同源的iframe。在2016年3月發布的iOS 9.3的Apple安全更新中,Safari在隱藏頁面時暫停了運動和方向數據的可用性,採取了類似的對策。儘管這些確實是阻止PINLogger攻擊的有效手段,但更新也阻止了瀏覽器支持一些有用的功能,例如健身和運動網站提供的功能。而Chrome則還是可以使感測器數據可用於載入到活動選項卡中的網頁,Chrome開發人員在此公開承認這個問題。(Opera開發人員回應不清楚)

另外紐卡斯爾大學的研究員馮浩告訴我們,「這個問題沒有直接的解決辦法,也沒有打破潛在有用的Web應用程序,目前沒有人能夠提出明確的解決方案。」

它知道你什麼時候睡覺

通過訪問加速度計和陀螺儀感測器,Web託管的JavaScript可以測量手機角度,旋轉,移動速度和類似特徵的微妙變化。這些數據反過來可以顯示關於手機及其用戶的敏感信息,包括每個電話的準確開始和結束以及使用它的人是不動的,行走的,在公共汽車上,在汽車中或在一列火車上。研究人員還嘗試使用運行在Android 5.1.1版的Nexus 5手機上的Maxthon瀏覽器來進行攻擊,它和運行其他瀏覽器的不同設備的行為也類似。

在感測器顯示的所有信息中,輸入的擊鍵幾乎可以說是最敏感的。研究人員使用人工神經網路訓練將某些感測器測量結合到50位四位PINS中包含的特定字元中。PINLogger能夠在第一次嘗試時推斷出準確率為74%的受試者PIN,並在五次嘗試中使得準確率接近100%。相比之下,來自一組50個PIN的隨機猜測在第一次嘗試中只有2%的準確率,在三次嘗試中也只有6%的準確性。

研究人員寫道:「人們可能會認為攻擊應該針對整個4位數的PIN空間進行評估。但是,我們認為,由於用戶不會隨機選擇PIN碼,因此從有限的一組PIN中進行選擇時,這種攻擊仍然可行。據報道,所有可能的4位數PIN碼中約有27%屬於一組20 PIN,包括簡單的PIN,如「1111」,「1234」或「2000」。」

研究人員繼續進行了一輪評估對所有可能的四位數PIN的培訓。培訓包括兩種模式。第一種,被稱為多用戶模式,其被訓練使用幾個主題。另外一種則被稱為同一用戶模式,它主要依賴於攻擊目標的個人的訓練。研究人員寫道:

我們在多用戶模式的結果表明,我們可以分別在第一,第二和第三次嘗試中推斷成功概率為70.75%,83.27%和94.03%。這意味著對於4位數的PIN,並且基於獲得的感測器數據,攻擊者可以從一組3 ^4 = 81個可能的PIN 中猜測PIN ,成功概率為0.92064 = 71.82%。然而,隨機攻擊只能在81次嘗試中以0.81%的概率預測4位數PIN。相比之下,PINlogger.js的成功率比隨機攻擊者高得多。

而在同一用戶模式下,81次嘗試中猜測PIN的成功概率為85.46%。

還有個「關鍵問題」

現在沒有理想的方法來防止攻擊,是因為如前所述,一個無法訪問感測器數據的瀏覽器可能會阻止許多有用的程序站點進行正常工作。對於使用Chrome的用戶,一個很好的做法是儘可能多地關閉標籤頁。研究人員警告說,除非瀏覽器和操作系統製造商找出更好的長期解決方案,否則威脅可能會持續增加。

他們寫道:「通過JavaScript訪問移動感測器數據其實僅限於幾個感測器,但這一情況可能會在未來擴大,特別是隨著物聯網中感測器設備的快速發展,因此設計安全可用的感測器數據管理的機制仍然是未來研究的關鍵問題。

本文翻譯自:Meet PINLogger, the drive-by exploit that steals smartphone PINs,如若轉載,請註明來源於嘶吼: PINLogger:通過移動感測器竊取智能手機PIN碼 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

為什麼很多瀏覽器上面地址欄和搜索欄要分開來?
互聯網進入下半場,逐鹿江湖成敗關鍵取決於年輕用戶
有有效辦法判斷是否是偽造的User Agent的瀏覽嗎?
為什麼 Android 上內置瀏覽器(不是 Chrome)的性能很差?
被低估的移動瀏覽器:輒待挖掘的數據價值富礦

TAG:信息安全 | 移动浏览器 |