有沒有可能我們在不知情的情況下被電腦錄音和錄像?黑客可以從而聽到你的每一通電話,看到你周圍的人。
聽來恐怖,但有的時候我們真的無法完全知曉我們的電腦在干什么。正因如此,就連扎克伯格這樣的大佬也需要用膠帶把麥克風和攝像頭封起來。

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沒有修復這個隱私問題,具體的利用方式就是黑客們的想象空間了。
|