虛假來電:HTML5振動API的惡意使用

梧桐發表於2014-01-16

一個新的API出來了。HTML5 (很快)將支援使用者裝置振動。這明顯是很有趣的事情,比如它可以使用者觸發提醒,提升遊戲體驗,以及其他各種好玩的事情,例如通過振動傳送摩斯程式碼

到目前為止,Chrome(以及其他Android瀏覽器)要使用位置資訊、攝像頭、地址簿等資源必須申請許可權。這是一種安全措施防止你的個人資訊在未授權的情況下洩露。

而現在使用HTML5振動API並不會在螢幕上觸發警告。因為一般認為用這個功能幾乎沒有危害,畢竟在現實中它能幹的壞事無非是持續消耗電量。事實就是這樣簡單嗎?我不敢肯定。

邪念

我們都看過那種無恥的廣告做得跟Windows彈出窗一模一樣,它們通常發出一個正當的系統請求:更新Java或類似的。

假如一個惡意網頁彈出一個虛假的系統提示並同時振動,你有多大的信心能區分一個合法的彈出框和一個png圖片?畢竟手機振動了,你就會認為它是真實的系統提示。

Fake-Airdrop

(圖1)

這時候你是收到了一個“空投”炸彈,還是說網頁在跟你開個小玩笑?

頁面廣告自動播放聲音本來就很煩人了。自動振動跟它比起來毫不遜色。回想一下你在滿螢幕搜尋那個推銷保險的廣告。

目前振動的強度還不能控制,只能控制持續時間。當然通過構造惡意程式碼去突破沒打補丁的瀏覽器也不是不可能的,甚至可以讓電機持續高負荷運轉直到損壞。

虛假來電

如果與HTML5 Audio一起使用,完全可以建立一個很真實的虛假”來電“,既有振動也有鈴聲。一旦”接聽“,頁面就可以播放一段音訊:”喂,儘快回打給我,我的號碼是“一個吸費號碼”。接下來還可以使用URI自動開啟撥號介面。

Phone-call-in-browser-scam-fs8-175x300

(圖2)

你能告訴我上面說的是真實的來電嗎?如果你夠仔細或許會發現。但如果頁面正在播放你的預設鈴聲,然後裝置還在振動,這時你就很可能迷糊。如果和WebRTC呼叫繫結,那實際上你看到的就是一個精心構造的騙局。

視訊演示

本文作者還錄了一段視訊,放在Youtube上了。http://www.youtube.com/watch?v=VqsRya3ZNoE

原始碼

下面是一個很基本的例子,你可以在手機上試驗一下。(或點選這裡看示例

目前只有Android平臺的Firefox支援,但毫無疑問其他瀏覽器將會跟進。

提示:

Firefox是Andriod平臺上唯一支援振動的。其他的比如三星瀏覽器,Chrome或者Opera都不支援。Iphone也不支援。Windows Phone或黑莓根本沒人在乎的,所以我就不測試了。

頁面使用振動API的時候,Firefox目前並不會申請許可權。

你認為瀏覽器在振動前是否應該有警告?還是說這種風險太低?我想這要看那些騙子公司是否會利用這一點了,或者要看使用者是否反對了。

更新: 感謝RedditHackerNews上面的評論,BB10似乎也支援振動API,Windows Phone不支援。

相關文章