你被 app 中的開屏廣告折磨多久了?
許多應(yīng)用的開屏廣告不僅點(diǎn)哪里都能跳轉(zhuǎn),還將「跳過」按鈕做得極小。更可氣的是,一些廣告還會(huì)「?jìng)窝b」成 app 本身或系統(tǒng)彈窗,點(diǎn)按假的取消按鈕便會(huì)跳轉(zhuǎn)到廣告主的網(wǎng)站,實(shí)在是令人防不勝防。
之后的事情大家也知道了:工信部開始整治 app 中的開屏廣告,不再允許這種全屏觸發(fā)跳轉(zhuǎn)和帶有誘導(dǎo)性質(zhì)的廣告,「關(guān)不掉」「亂跳轉(zhuǎn)」的情況得以遏制。
然而就在近期,我們又看到了幾種新的廣告形態(tài),比如知乎、愛奇藝、WPS 等都允許「搖一搖」跳轉(zhuǎn)到另一款 app,識(shí)別非常靈敏,可能坐車、小跑輕微晃動(dòng)都能「跳轉(zhuǎn)到第三方」。
▲從《QQ 音樂》搖動(dòng)手機(jī)跳轉(zhuǎn)到淘寶
問題就在于,與相機(jī)、錄音、通訊錄等權(quán)限可自行開關(guān)不同,這些「搖一搖」廣告依賴的傳感器數(shù)據(jù),并不需要經(jīng)過用戶的授權(quán)。
的確如此,作為我們?nèi)粘I钪行斡安浑x的設(shè)備,我們的手機(jī)掌握的數(shù)據(jù)遠(yuǎn)比我們想象中要多得多;而這些數(shù)據(jù)看似「人畜無害」,實(shí)際上也可能會(huì)潛在地泄露我們的一舉一動(dòng)。
那么,小小的手機(jī)里,究竟有哪些數(shù)據(jù)和權(quán)限是不需要經(jīng)過同意就能讀寫的呢?
如果你看過初代 iPhone 發(fā)布會(huì),那么你很有可能對(duì)喬布斯演示 iPhone 會(huì)根據(jù)你手持方向來調(diào)整屏幕顯示留有很深的印象,這個(gè)功能與「搖一搖」一樣,都是通過智能手機(jī)內(nèi)部的傳感器實(shí)現(xiàn)的。
為了讓手機(jī)能夠?qū)ΜF(xiàn)實(shí)世界有所感知,幾乎所有智能手機(jī)廠商都在竭盡全力地將陀螺儀、加速度計(jì)、氣壓計(jì)等等的傳感器塞到這個(gè)小薄玻璃里,它們的確也能為用戶和 app 開發(fā)者們帶來新的可能性。但是,這些帶有對(duì)現(xiàn)實(shí)世界的感知的傳感器,卻缺乏對(duì)應(yīng)的管理工具和邏輯。
2011 年,就有兩位來自加利福尼亞大學(xué)戴維斯分校的研究人員,利用手機(jī)內(nèi)置的陀螺儀傳感器開發(fā)出一款鍵盤記錄器。通過記錄手機(jī)的移動(dòng)、偏轉(zhuǎn)和旋轉(zhuǎn)等運(yùn)動(dòng),這個(gè)記錄器可以以七成的準(zhǔn)確率讀取到數(shù)字鍵盤的輸入記錄(QWERTY 鍵盤的準(zhǔn)確率稍低)??紤]到這項(xiàng)來自 2011 年的研究?jī)H依靠手機(jī)上搭載的三軸陀螺儀完成,可以預(yù)想到,這個(gè)記錄器用在近兩年擁有更多傳感器的智能手機(jī)上,準(zhǔn)確率很有可能只增不減。
▲通過分析陀螺儀數(shù)據(jù)判斷數(shù)字鍵盤的按鍵情況. 圖片來自:ucdavis
除了記錄鍵盤輸入,利用這些傳感器還能得知你的運(yùn)動(dòng)軌跡、速度和方式等,不需要使用 GPS。
例如,百度地圖的賣點(diǎn)之一「智能定位」,其原理就是利用這些傳感器數(shù)據(jù),判斷你當(dāng)前的速度、加速度等信息,以在隧道等 GPS 信號(hào)不佳的地方完成定位和導(dǎo)航。
▲Google Maps 的 Live View 功能也用到這些傳感器,但應(yīng)用方向與百度地圖有所差異. 圖片來自:Google
有些遺憾的是,目前這些傳感器的隱私泄露風(fēng)險(xiǎn)并沒有被廣大用戶所注意,甚至許多瀏覽器也允許網(wǎng)頁直接獲取部分傳感器數(shù)據(jù)。
設(shè)想一下,廣告商在未經(jīng)你同意的情況下,知道你究竟是躺在床上看手機(jī),還是在車上看;黑客攻擊只需要獲取你的傳感器數(shù)據(jù),就能猜測(cè)到你的鍵盤輸入,想想還是有點(diǎn)可怕。
好在,以目前移動(dòng)操作系統(tǒng)的特性而言,想要實(shí)現(xiàn)這樣的目標(biāo)而不被人發(fā)現(xiàn)還挺難,但并不代表我們不需要警惕這樣的攻擊手段。更進(jìn)一步,如果你的手機(jī)是 Android 10 以上版本,那么你也可以選擇將這些傳感器關(guān)閉。以基于 Android 10 的 Lineage OS 17 為例:
進(jìn)入設(shè)置,拉到底部的「關(guān)于手機(jī)」
點(diǎn)按 7 次最底部的「版本號(hào)」,輸入手機(jī)解鎖密碼,進(jìn)入開發(fā)者模式
返回至設(shè)置主菜單,進(jìn)入「系統(tǒng)」,點(diǎn)擊「高級(jí)」,找到「開發(fā)者選項(xiàng)」
找到「快捷設(shè)置開發(fā)者圖塊」,開啟「?jìng)鞲衅饕殃P(guān)閉」開關(guān)
從屏幕頂部下拉兩次,找到「?jìng)鞲衅饕殃P(guān)閉」圖標(biāo),將其打開即可
之后,包括指南針、陀螺儀和加速度計(jì)等傳感器就會(huì)停止工作,但有單獨(dú)權(quán)限控制的 GPS、相機(jī)和麥克風(fēng)等硬件設(shè)備不受影響。可以嘗試在「搖一搖廣告」中搖晃手機(jī)來測(cè)試這個(gè)開關(guān)是否有效(不同手機(jī)型號(hào)和系統(tǒng)可能存在差異,我們用測(cè)試機(jī)操作多次結(jié)果均為有效)。
在 iOS 14 中,app 想要訪問你同一 Wi-Fi 網(wǎng)絡(luò)下的其他設(shè)備,那么就需要經(jīng)過你的授權(quán)。很多人不理解,為什么這也需要經(jīng)過用戶同意授權(quán)?
簡(jiǎn)單來說,這樣做可以有效防止惡意 app 通過局域網(wǎng)攻擊你的其他設(shè)備,同時(shí)防止廣告商通過這個(gè)方法來進(jìn)行用戶畫像。
先來談?wù)劸钟蚓W(wǎng)攻擊。我們?cè)诩依?、公共?chǎng)所里用的 Wi-Fi 網(wǎng)絡(luò),一般都需要先連接到局域網(wǎng),才能連接到互聯(lián)網(wǎng)。如果將局域網(wǎng)看作一個(gè)小鎮(zhèn),那么接入 Wi-Fi 中的設(shè)備就是小鎮(zhèn)中的其他居民。本來居民之間互相相安無事,大家各自出城(到互聯(lián)網(wǎng))辦自己的事,但有一些居民卻不懷好意,四處打探別人家的房子(掃描局域網(wǎng)內(nèi)設(shè)備和開放端口),看是不是危房(尋找漏洞),然后企圖進(jìn)行攻擊。
然后是用戶畫像。越來越多的智能設(shè)備支持與手機(jī)聯(lián)動(dòng),其中有許多設(shè)備的連接方式是 Wi-Fi。同樣是局域網(wǎng)掃描,比漏洞更吸引廣告商的,就是這些設(shè)備的型號(hào)、制造商和 MAC 地址(設(shè)備硬件地址)。廣告商可以利用它獲知你購買過什么電子產(chǎn)品,甚至判斷你和誰住在一起、去過哪些公共場(chǎng)所,以此進(jìn)行更精準(zhǔn)的廣告投放和推銷。
目前,iOS 14 已經(jīng)支持 app 對(duì)局域網(wǎng)訪問的權(quán)限控制,你可以在設(shè)置中的「隱私」>「本地網(wǎng)絡(luò)」找到它。如果不是智能家居、智能硬件配套的 app,或是沒有投屏功能的 app,通常而言并不需要開啟這項(xiàng)權(quán)限。這樣就能有效避免絕大多數(shù)惡意 app 攻擊、探測(cè)同一 Wi-Fi 下的網(wǎng)絡(luò)設(shè)備。
如果你是大陸 Android 玩家,你很可能早已對(duì)「放任自流」的文件系統(tǒng)見怪不怪。由于 Android 上并沒有采用 iOS 那樣嚴(yán)格的「文件沙盒」機(jī)制,使得 app 可以將文件存儲(chǔ)在所有 app 共享的同一個(gè)外部目錄中。
在 Android 還沒有收緊權(quán)限的 4.x 年代,許多應(yīng)用就已經(jīng)在濫用這個(gè)功能:這些 app 以存儲(chǔ)用戶文件名義,將自身數(shù)據(jù)和 SDK 數(shù)據(jù)保存到公共存儲(chǔ)空間(app 的外部目錄),以保證 app 卸載后這些數(shù)據(jù)可以保留,或是跨 app 讀取用戶畫像等等。
大陸 Android 至今依舊存在的推送 SDK 就是依靠在「存儲(chǔ)空間」里保存垃圾文件,達(dá)到判斷用戶的目的,而這也已嚴(yán)重侵犯用戶隱私。正因如此,存儲(chǔ)空間也成為 Android 上被濫用得最多的權(quán)限(也許沒有之一),即使后來 Android 推出官方的權(quán)限精細(xì)控制之后,情況也不容樂觀——想想哪些不給存儲(chǔ)空間讀寫權(quán)限就不給打開的 app 們吧。
▲從 Android 10(Q)開始,Google 就對(duì) app 濫用公共存儲(chǔ)空間行為進(jìn)行「整治」. 圖片來自:Google I/O 19
到了 Android 11,官方終于強(qiáng)制 app 開發(fā)者采用分區(qū)存儲(chǔ)。不過,好像哪里不太對(duì):實(shí)際上,app 們依然可以讀取 Google 限定的公共文件夾(下載、文檔等等)內(nèi)的全部文件夾名字(看不到其他 app 創(chuàng)建的文件),并在其中寫入自己的文件,而這樣做并不需要用戶授權(quán)。也許以后我們可以在 Android 11 的文件系統(tǒng)里見到 /Download/.push-sdk/xxxxxxxx 這樣的文件夾……
如果你的手機(jī)支持 root 以及安裝 Xposed 框架,名為「存儲(chǔ)空間隔離」的 Xposed 插件就是一款可以有效避免上述問題的工具。利用它,我們可以強(qiáng)制將每一個(gè) app 生成的文件存放在自身的分區(qū)文件夾中,從根源上避免 app 間互相「串通」你的隱私信息的情況。
存儲(chǔ)空間隔離適用于已經(jīng)安裝 Xposed 框架的 Android 6.0+ 設(shè)備,大小因設(shè)備而異,免費(fèi)有內(nèi)購。下載地址: https://sr.rikka.app/zh-hans/download/
在隱私與安全越來越受到我們重視的同時(shí),黑客和廣告商們也在竭盡全力地在人們的目光之外,尋找新的「隱私突破口」。也許安全和方便不可能真正做到兩全其美,但我們依然可以嘗試去學(xué)習(xí),而這是對(duì)抗嘗試跟蹤我們的人的最好方法。
除了上文提到的這些「隱私短板」,你還發(fā)現(xiàn)手機(jī)、電腦里,哪些情況可能泄露隱私?歡迎在留言區(qū)告訴大家。
題圖來自:Markus Winkler / Unsplash
本文來自微信公眾號(hào)“APPSO”(ID:appsolution),作者:鄭智文,36氪經(jīng)授權(quán)發(fā)布。