Pixnapping(CVE-2025-48561)是研究人員在Android上的安全漏洞,讓應用程式可以從螢幕上盜竊密碼、一次性編碼和其他機密資料,無需操作系統的特別權限,只需要螢幕截圖,幸好暫時只是研究項目,未有被利用的跡象。
截圖、媒體投影和螢幕讀取的危險
在年初SparkCat OCR時已經發現,犯罪份子已精通圖像處理,如果智能手機上的圖像含有具價值的資料,惡意程式就能偵測它,直接在手機上進行光學字元識別,然後把獲得的資料洩露到攻擊者的伺服器,SparkCat的特別之處是成功滲透官方應用程式市集,惡意具備Pixnapping的應用程式不難複製它的成功,尤其攻擊者無需特別權限,令應用程式看起來合法,也可以具備實用功能然後暗地裡發送一次性多重登入驗證碼、加密貨幣錢包密碼和其他資料到騙徒手上。
另一種普遍的策略是犯罪份子即是觀看所需資料,這種社交工程的手法,受害者會透過通訊應用程式被聯絡,以各種藉口被說服啟動螢幕分享功能。
Pixnapping攻擊的運作
研究人員通過結合已知的方法,從瀏覽器和ARM手機顯示元件(GPU)中盜竊像素,從其他應用程式內截圖,惡意應用程式暗地圖把半透明的視窗覆蓋目標資料,然後計算視像系統如何把分層視窗的像素組合成最終影像。早在2013年,研究人員描述了一次攻擊讓一個網站在自身一部份視窗載入另一個網站,通過合法的圖像分層和變換操作、準確推斷另一個網站繪製或書寫的內容,當現代瀏覽器已緩解那特定攻擊,一班美國研究人員現在發現如何在Android上使用。
惡意應用程式首先發送系統呼叫,在Android中這被稱為Intent,它除了通常簡單啟動應用程式,也可立即打開瀏覽器的特定網址或通訊應用程式的特定聯絡人聊天。攻擊用應用程式的Intent則是強制目標應用程式把敏感資料展示螢幕,當中使用了特別的隱藏啟動標誌,再向自己發送啟動Intent,這特定的組合動作使受害應用程式完全不會顯示在螢幕,但仍然把攻擊者尋求的資料顯示於背景視窗。
攻擊的第二階段是惡意應用程式,透過連串半透明視窗覆蓋隱藏的受害應用程式,每個都會遮蔽和模糊內容,這個複雜的舖排不會在用戶眼前顯現,但Android仍會計算如果用戶把這些視窗放到前台時的顯示模樣。攻擊應用程式只可以從半透明視窗讀取像素,最終含有受害者應用程式圖面內容的合成圖像,攻擊者無法直接存取,為了繞過這限制,研究人員使用了兩種技巧,一種是通過在受害應用程式上覆蓋近乎完全不透明的視窗,再把一個只在目標像素上精確放置一個透明點視窗,把準備盜竊的特定像素和其他周圍環境分隔。第二種是在這組合上設置放大層,該層由嚴重模糊的功能視窗組成。
為了解讀模糊圖像並確定最底層的像素值,研究人員利用另一個安全漏洞GPU.zip(看起來是一個檔案連結,其實是指向一篇研究論文的網站),這安全漏洞基於現代智能手機都會把CPU的圖像資料壓縮再發送到GPU,這是無損的壓縮(像一個ZIP檔案),但封包和解封的速度因應傳送的資料而改變,GPU.zip讓攻擊者計算壓縮資料的時間,藉此操作攻擊者能推測被傳輸的資料,憑著GPU.zip的幫助、分隔、模糊和放大受害應用視窗的單一像素,就能讀取被攻擊的應用程式。
盜竊有意義的資料需要重複整個盜竊程序數百次,因為每一點都要分別應用,然而整個程序可以短時間內完成,在示範影像中,6位數字的Google Authenticator成功在22秒獲得。
Android保護螢幕機密的方法
Google工程式經歷接近20年不同的私隱攻擊,架設了不同層級的防護對抗非法截圖和錄影:
- FLAG_SECURE視窗標誌預防操作系統內容被截圖
- 存取媒體投影工具需要明確的用戶確定,只能在應用程式可視和活躍的情況下使用。
- 嚴限存取管理服務,例如AccessibilityService和其他覆蓋其他應用程式的功能。
- 偵測到媒體投影時一次性密碼和其他資料將被自動隱藏
- Android限制應用程式存取其他應用程式的資料,應用程式也不能要求已安裝應用程式的完整清單。
不幸地,Pixnapping繞過以上的限制,完全無需特別權限,攻擊應用程式只需兩個基本能力,展示自己視窗和向其他應用程式發送系統呼叫,他們屬於Android的基礎功能,所以難以限制。
受影響的裝置和自保方法
Pixel第6至9代裝置,Android版本13至16,加上Samsung Galaxy 25已確定受影響,由於所有機制使用相同標準,研究人員相信攻擊在其他Android裝置同樣有效,然而第二階段的攻擊則可能存在些許分別。Google在2月收到通知後,已在9月推出補丁,可惜修復漏洞的方法被認為缺乏可靠性,研究人員快速找到繞過的方法,堵塞安全漏洞的新方法已計劃在Google的12月更新中推出,對於GPU.zip則沒有計劃推出補丁針對這特定資料外洩渠道,至少漏洞於2024至今仍未有GPU製造商公佈修復的計劃。
用戶防範Pixnapping的措施有限,我們建議採取以下考量:
- 定期更新至具備所有保安補丁的最新版本的Android
- 避免自非官方資源安裝應用程式,對官方商店內的最新、少量下載數或低評級的應用程式小心提防。
- 確定在Android手機內安裝可靠的保安系統
資料來源:Kaspersky Blog


