打過碼的圖片等于沒打,用Windows的要小心了

上周有外媒爆出了一個和谷歌隱私安全有關的小瓜。事兒本身不大,但聊一聊還是蠻有意思的。
報道講說,谷歌自家的Pixel 手機系統內置的 “ Markup ” 截圖工具,存在一個嚴重的隱私漏洞。
只要你通過這個截圖工具來剪輯 PNG 格式的圖片,就有一定概率還原出原圖被截掉的其他信息。。。

發現這個漏洞的程序員 Simon Aarons,還寫了一個可以檢測這個漏洞的程序 Acropalypse。

只要你把 Pixel 手機的機型和用 Markup 裁出的上傳上去,就能得到原圖的其他信息。
世超拿 Pixel 4 試了一下,效果拔群。。。

一石激起千層浪啊,谷歌這事兒被爆出來之后,被一群碼農大佬們順藤摸瓜,發現類似的 Bug,微軟似乎也有份。
他們直接使用 Windows 系統重的截圖工具,也重現了和谷歌Pixel 一樣的問題。

這下問題就大條了。
要說 Pixel 手機用的人少和咱們關系也不大,可 Windows 的截圖工具,可是大伙兒經常會摸到的常用工具。
數以十億計的用戶,可能在自以為隱私部分已經抹掉了的情況下,把截圖發了出去。
但凡有什么個人隱私信息,想想都覺得后脊背發涼。那世超就好奇了,兩家大廠,在兩個毫不相關的系統上,出現了一模一樣的嚴重錯誤。。。
難道是 PNG 的標準實在是太老被鉆了漏洞,或者是什么基礎軟件有問題?

世超懷著揣揣不安的心情,深入調查了一下這件事兒的來龍去脈。
先說結論啊:并不是圖像處理和儲存的標準出了問題,而是谷歌微軟同時以不同的方式犯了傻。

首先說明一下,這個 Bug 的真正原因,并不是 PNG 透明通道( RGBA中的A )的問題。這個有歧義的新聞讓世超原地研究半小時,下為原文


簡單來說,這個 Bug 的本質,其實是因為截圖工具沒有刪除舊圖片數據,而是直接把新圖片,覆蓋寫入在了舊圖片的開頭。
所以只要新的圖片文件大小小于舊文件,沒完全用數據把原圖覆蓋掉,就留下了可恢復的舊圖像數據。

而標準的 PNG 解碼器,在讀到新 PNG 文件尾的時候,就不會再讀下去了,所以剩余的舊數據,會被解碼器直接忽略。

這也是用戶很難發現舊圖片數據泄露的原因:不用特別手段,一般人根本看不出。

不過,雖說問題的本質一樣,但這兩個大廠出問題的理由卻并不相同。
谷歌是因為 Android 9 到 Android 10 的時候,讀寫文件相關的一個接口發生了變動,而且沒有記載在文檔和更新日志里。

祖傳的代碼在舊接口上會正確刪除舊文件,不會留下只因腳。然而在新版本下,同樣的代碼就只能覆蓋寫入舊文件,只要新文件小于舊文件,舊文件的殘余部分就會留下來。

而微軟這邊的問題可能要更大些。。。
根據微軟的 API 規則,程序員在調用覆蓋文件的接口時,如果沒有額外的特別指示 Windows 把舊文件刪掉,那么新文件就會直接從頭開始覆蓋舊文件,然后留下一堆舊文件的殘余。
但凡程序員在寫的時候沒注意到這個規則,就會有安全風險。。。
至于微軟為何要把這種不安全的行為作為接口的默認值,世超只能說,或許這就是國際大廠對編程的精妙理解吧。
好消息:微軟的接口一直都沒變過;壞消息:但是設計的和狗屎一樣。

嚴重的是,隨著這個漏洞原因的公開,已經有人在更加常用的 JPG 格式的圖像上發現了類似的問題。
考慮到大多數截屏和手機拍照都是 JPG 直出,漏洞擴展到 JPG 后,這個問題其實是是擴散了。
而且由于 JPG 和 PNG 的壓縮方式不同,文件頭部被覆蓋的 JPG 舊文件,搞不好還能實現幾乎完美的還原。。。還原的JPG圖像只是比原圖多了點噪點

這 Bug,好像有那么點剎不住車了。。。好消息是,如今信息安全的概念已經深入人心,在我們的隱私完全漏勺之前,其實還有一道防線。
世超在當年試圖成為一個程序猿的時候,學到的第一課,就是絕對不能信任用戶提交的數據。
用戶試圖刪掉網站的用戶數據表
一些技術人員甚至可以利用解碼器 “ 只讀取文件尾之前數據 ” 的特性,在一張正常圖片的尾部附帶惡意代碼,從而攻擊網站服務器或其他用戶。
之前在貼吧里流行過的圖種也是類似原理。

為了清除這些可能有風險的無關數據,同時節約服務器流量和存儲,一般網站都會先用解碼器讀取圖片,然后重新編碼成低質量的 JPG。
這樣,即使是用戶上傳的圖片里有額外數據
( 比如這次 Bug 留下來的舊圖 ),也不會出現在其他用戶那里。

但也有例外。比如說,微信和 Discord 就提供下載原圖的選項,而且提供的是真正的原圖。這樣,那些無關數據就還是公開了。
按照安全原則,他們應當提供 “ 偽原圖 ”

總結一下,谷歌和微軟這次的 Bug,是兩個影響相當廣泛、原因極其簡單、后果控制不好可能會嚴重的漏洞。
其中一個從 Android 10(2019)開始,影響所有 Pixel 手機;
另一個從 Windows 10 (2015)開始,影響所有使用系統自帶截圖工具的用戶。
更離譜的是,這兩個漏洞前幾天才剛剛修復。。。
世超覺得,考慮到時間跨度、受害者數量和形成原因,這兩個漏洞完全有資格參與 “ 年度最弱智漏洞 ” 的競爭。
但不管怎么樣,在關系到用戶隱私信息這一塊的問題,谷歌和微軟確實應該加強代碼的檢查。
各家互聯網平臺運營商,也應該以此為戒,避免在公共場合分發原始圖片的原文件,這不僅可能損害自家服務器的安全,而且還可能暴露用戶的隱私。
原圖信息中甚至還能有地點定位信息

從咱們用戶自己的角度來說,世超的建議也很簡單:在任何公開平臺都不要上傳原圖!不要上傳原圖!不要上傳原圖!

當圖片經過在本地完成解碼 —— 重新編碼上傳的過程,原圖上的信息自然也就會被處理。
安全這塊兒,還得是自己把住最后一關。。。
隨便看看:
- [數據]視頻號苦無“超頭”久矣
- [數據]摩托羅拉Edge 50 Fusion關鍵規格、顏色可選 可能
- [數據]對話OpenAI研究科學家:他們是如何讓GPT4更像人的?
- [數據]三星Galaxy Watch7傳有三個版本!電池續航大幅提升
- [數據]三星Galaxy Tab S6 Lite 2024平板電腦通
- [數據]2025年最受歡迎的電動窗簾品牌排名,AI幫您揭曉
- [數據]星地融合通信突破,中國信科牽頭制定兩項 ITU 國際標準獲批
- [數據]新產品 新場景 新生活 家電“新物種”助推消費煥新升級
- [數據]用好巨量千川AIGC智能創意工具,讓智能創意為生意加速!
- [數據]魅族20首發評測:久別重逢,還是熟悉的味道
相關推薦:
網友評論:
推薦使用友言、多說、暢言(需備案后使用)等社會化評論插件