繼iOS7.1.1出現多個漏洞后。近日,Android系統中也被發現一新漏洞,可在用戶完全不知道的情況下使用設備自帶攝像頭進行拍照并上傳。
該漏洞的發現者Sidor表示,雖然他已經在Google Play的大量軟件中發現可秘密拍下照片的功能,但它們每個都會在屏幕上顯示出對應的操作內容。不過,這次他發現的新漏洞卻完全不是這么一回事,它可以悄無聲息地完成拍攝、上傳的一系列操作。
Sidor稱,他只是破解了一個極為簡單的漏洞就完成以上所說的一切,他將原先的預覽圖片換成了像素提示。而在一般情況下,人們基本上不大可能注意到這個像素提示。
令人最感到害怕的是,該像素提示是絕對不會在高分辨率的手機屏幕上出現,而且即便Android手機處于黑屏狀態,攝像頭仍舊可以正常運轉。Sidor已經Android安全團隊反映了這個問題,希望Android能夠盡快修復好這個漏洞,保護好用戶的隱私。
擴展閱讀:Android“隱匿拍照”漏洞詳解
漏洞原理:
Android camera進行拍照的一般步驟如下:
調用Camera的open()方法打開相機。
調用Camera的startPreview()的方法開始預覽取景。
調用Camera的takePicture()方法進行拍照
第一步的工作是在后臺進行,而第二步則是關鍵。由于Android規定,必須顯示Preview,才能進行拍照,這樣就造成,很難達到隱匿拍攝。考慮到這種情況,使用了以下幾種方法進行preview隱藏均告失敗。
把preview設置為invisible——失敗:Android忽略preview的這個設置屬性。
把preview設置為transparent——失敗:Android忽略preview的這個設置屬性。
用另一個View覆蓋preview——部分失敗:上層的view依然顯示在屏幕上。
最后Szymon Sidor 發現了一種極端巧妙的方法:把preview設置為1*1 像素,這個方法獲得了完全的成功,達到了隱匿拍攝的目的。
目前,手機的分辨率越來越高,以Nuxus5為例,其分辨率是1920×1080像素,屏幕像素密度高達445ppi,在這樣的高分辨率下,1像素對肉眼來說,幾乎完全注意不到它的存在。這樣就實現了界面幾乎完全不可見,通過前置或后置攝像頭便會向這個只有1像素大小的視圖對象反饋視頻預覽,后臺可以直接把偷拍的照片通過Internet發送到遠程服務器。
漏洞實現:
研究員在對漏洞進行研究后,并進行了漏洞實現,下面是漏洞實現的部分關鍵代碼: