Chrome漏洞可致惡意站點在使用者在不知情的情況下錄製音訊和視訊

2017-06-04 19:08:30


有沒有可能我們在不知情的情況下被電腦錄音和錄影?黑客可以從而聽到你的每一通電話,看到你周圍的人。

聽來恐怖,但有的時候我們真的無法完全知曉我們的電腦在幹什麼。正因如此,就連扎克伯格這樣的大佬也需要用膠帶把麥克風和攝像頭封起來。

Chrome瀏覽器最近就被發現了這樣的一個漏洞,惡意網站可以在使用者不知情的情況下錄製音訊和視訊。

漏洞的發現者是來自AOL的開發者Ran Bar-Zik。他在4月10日將漏洞彙報給了Google,但Google認為這並非漏洞,因此目前漏洞尚未被修復,也可能不會有補丁。

瀏覽器如何錄音

HTML5中的新API讓網站可以直接從瀏覽器獲取視訊和音訊。通過WebRTC協議,瀏覽器不需要安裝外掛就能向網站提供麥克風錄音及攝像頭視訊。

為了保護隱私讓使用者免於被竊聽的困擾,瀏覽器的開發者們使用了兩個辦法。

首先是請求許可權。

const constraints = {

  audio: true,

  video: true

};

navigator.mediaDevices.getUserMedia(constraints).

then((stream) => {

  handleSuccess(stream); // This is basic handler with stream input.

});

這段程式碼就是在錄音/錄影前需要用到的js程式碼。執行後瀏覽器會彈出視窗請求相應許可權。但是大家都知道,很多時候我們沒有多想就會同意這些請求。

網站申請許可權

第二個防護措施就是在錄音時進行提醒。

網站獲得第一步申請的許可權時就能獲取到裝置的資料流。但是要使用資料流,開發者需要錄音,這就用到了MediaRecorder API。

const recordedBlobs = [];

const mediaRecorder = new window.MediaRecorder(window.stream,{ mimeType: ‘audio/mpeg’ });

mediaRecorder.ondataavailable = (event) => {

  recordedBlobs.push(event.data);

};

mediaRecorder.start();

呼叫這個API時,瀏覽器會提醒使用者,網站正在錄音,Firefox會以一個置頂小視窗進行提醒,而Chrome則會在標籤頁閃爍一個紅點。(Internet Explorer、Edge、Safari和Opera還不支援Media Recorder API)

網站錄音時瀏覽器的提醒方式

漏洞原理

研究人員發現 ,如果有已經經過授權的網站使用JS進行彈窗,網站就可以直接錄音,標籤頁上方不會有閃爍的紅點,在這種情況下,使用者只知道自己曾經授權了這個網站錄音許可權,而不知道自己正在被錄音。

研究人員提供了相關的PoC程式碼和演示網站,我們先點選第一個按鈕進行授權,再點選第二個按鈕就會彈出一個小視窗,這個小視窗會進行20秒的錄音。

Google:並非漏洞

Ran Bar-Zik在4月10日將漏洞彙報給Google,但Google認為這並非漏洞。

Google員工迴應稱:

“這其實並不算漏洞,比方說在移動瀏覽器上,WebRTC就沒有錄音的提示(紅點)。”

“紅點顯示的前提是Chrome UI有空間顯示,不過我們會想辦法解決這個問題。”

Chromium的開發人員認為在較小的空間放不下錄音的提示紅點,比如在移動裝置中就沒有使用紅點,而本例中彈出的小視窗也是狹小空間的一種。

但在真實環境下,這個“不是漏洞”的漏洞也是有利用價值的。作者認為,攻擊者可以製造一個極小的彈窗進行錄音, 當用戶切換到視窗時立即關閉;或者可以呼叫幾毫秒的攝像頭拍下你的照片;或者使用XSS攻擊正規的網站從而獲取許可權。小編認為一些正規的網站也可以通過某些看似正當的請求申請到麥克風/攝像頭的許可權,隨後彈出小窗偷偷地進行持續錄音。總之,如果Chrome沒有修復這個隱私問題,具體的利用方式就是黑客們的想象空間了。

*參考來源:THN,本文作者:Sphinx,轉載請註明來自FreeBuf(FreeBuf.COM)




熱點新聞