App 開屏搖一搖廣告,你快「搖了我吧」

你被 app 中的開屏廣告折磨多久了?

許多應用的開屏廣告不僅點哪里都能跳轉,還將「跳過」按鈕做得極小。更可氣的是,一些廣告還會「偽裝」成 app 本身或系統彈窗,點按假的取消按鈕便會跳轉到廣告主的網站,實在是令人防不勝防。

App 開屏搖一搖廣告,你快「搖了我吧」

之後的事情大家也知道了:工信部開始整治 app 中的開屏廣告,不再允許這種全屏觸發跳轉和帶有誘導性質的廣告,「關不掉」「亂跳轉」的情況得以遏制。

然而就在近期,我們又看到了幾種新的廣告形態,比如知乎、愛奇藝、WPS 等都允許「搖一搖」跳轉到另一款 app,識別非常靈敏,可能坐車、小跑輕微晃動都能「跳轉到第三方」。

App 開屏搖一搖廣告,你快「搖了我吧」

▲ 從《QQ 音樂》搖動手機跳轉到淘寶

問題就在於,與相機、錄音、通訊錄等權限可自行開關不同,這些「搖一搖」廣告依賴的傳感器數據,並不需要經過用戶的授權。

的確如此,作為我們日常生活中形影不離的設備,我們的手機掌握的數據遠比我們想像中要多得多;而這些數據看似「人畜無害」,實際上也可能會潛在地泄露我們的一舉一動。

那麼,小小的手機里,究竟有哪些數據和權限是不需要經過同意就能讀寫的呢?

陀螺儀、加速度計等傳感器

如果你看過初代 iPhone 發布會,那麼你很有可能對賈伯斯演示 iPhone 會根據你手持方向來調整螢幕顯示留有很深的印象,這個功能與「搖一搖」一樣,都是通過智慧型手機內部的傳感器實現的。

為了讓手機能夠對現實世界有所感知,幾乎所有智慧型手機廠商都在竭盡全力地將陀螺儀、加速度計、氣壓計等等的傳感器塞到這個小薄玻璃里,它們的確也能為用戶和 app 開發者們帶來新的可能性。但是,這些帶有對現實世界的感知的傳感器,卻缺乏對應的管理工具和邏輯。

2011 年,就有兩位來自加利福尼亞大學戴維斯分校的研究人員,利用手機內置的陀螺儀傳感器開發出一款鍵盤記錄器。通過記錄手機的移動、偏轉和旋轉等運動,這個記錄器可以以七成的准確率讀取到數字鍵盤的輸入記錄(QWERTY 鍵盤的准確率稍低)。考慮到這項來自 2011 年的研究僅依靠手機上搭載的三軸陀螺儀完成,可以預想到,這個記錄器用在近兩年擁有更多傳感器的智慧型手機上,准確率很有可能只增不減。

App 開屏搖一搖廣告,你快「搖了我吧」

▲ 通過分析陀螺儀數據判斷數字鍵盤的按鍵情況. 圖片來自:ucdavis

除了記錄鍵盤輸入,利用這些傳感器還能得知你的運動軌跡、速度和方式等,不需要使用 GPS。

例如,百度地圖的賣點之一「智能定位」,其原理就是利用這些傳感器數據,判斷你當前的速度、加速度等信息,以在隧道等 GPS 信號不佳的地方完成定位和導航。

App 開屏搖一搖廣告,你快「搖了我吧」

▲ Google Maps 的 Live View 功能也用到這些傳感器,但應用方向與百度地圖有所差異. 圖片來自:Google

有些遺憾的是,目前這些傳感器的隱私泄露風險並沒有被廣大用戶所注意,甚至許多瀏覽器也允許網頁直接獲取部分傳感器數據。

設想一下,廣告商在未經你同意的情況下,知道你究竟是躺在床上看手機,還是在車上看;黑客攻擊只需要獲取你的傳感器數據,就能猜測到你的鍵盤輸入,想想還是有點可怕。

好在,以目前移動作業系統的特性而言,想要實現這樣的目標而不被人發現還挺難,但並不代表我們不需要警惕這樣的攻擊手段。更進一步,如果你的手機是 Android 10 以上版本,那麼你也可以選擇將這些傳感器關閉。以基於 Android 10 的 Lineage OS 17 為例:

  • 進入設置,拉到底部的「關於手機」
  • 點按 7 次最底部的「版本號」,輸入手機解鎖密碼,進入開發者模式
  • 返回至設置主菜單,進入「系統」,點擊「高級」,找到「開發者選項」
  • 找到「快捷設置開發者圖塊」,開啟「傳感器已關閉」開關
  • 從螢幕頂部下拉兩次,找到「傳感器已關閉」圖標,將其打開即可

App 開屏搖一搖廣告,你快「搖了我吧」

之後,包括指南針、陀螺儀和加速度計等傳感器就會停止工作,但有單獨權限控制的 GPS、相機和麥克風等硬體設備不受影響。可以嘗試在「搖一搖廣告」中搖晃手機來測試這個開關是否有效(不同手機型號和系統可能存在差異,我們用測試機操作多次結果均為有效)。

區域網訪問

在 iOS 14 中,app 想要訪問你同一 Wi-Fi 網絡下的其他設備,那麼就需要經過你的授權。很多人不理解,為什麼這也需要經過用戶同意授權?

簡單來說,這樣做可以有效防止惡意 app 通過區域網攻擊你的其他設備,同時防止廣告商通過這個方法來進行用戶畫像。

App 開屏搖一搖廣告,你快「搖了我吧」

▲ 圖片來自:Brett Jordan / Unsplash

先來談談區域網攻擊。我們在家里、公共場所里用的 Wi-Fi 網絡,一般都需要先連接到區域網,才能連接到網際網路。如果將區域網看作一個小鎮,那麼接入 Wi-Fi 中的設備就是小鎮中的其他居民。本來居民之間互相相安無事,大家各自出城(到網際網路)辦自己的事,但有一些居民卻不懷好意,四處打探別人家的房子(掃描區域網內設備和開放埠),看是不是危房(尋找漏洞),然後企圖進行攻擊。

然後是用戶畫像。越來越多的智能設備支持與手機聯動,其中有許多設備的連接方式是 Wi-Fi。同樣是區域網掃描,比漏洞更吸引廣告商的,就是這些設備的型號、製造商和 MAC 地址(設備硬體地址)。廣告商可以利用它獲知你購買過什麼電子產品,甚至判斷你和誰住在一起、去過哪些公共場所,以此進行更精準的廣告投放和推銷。

目前,iOS 14 已經支持 app 對區域網訪問的權限控制,你可以在設置中的「隱私」>「本地網絡」找到它。如果不是智能家居、智能硬體配套的 app,或是沒有投屏功能的 app,通常而言並不需要開啟這項權限。這樣就能有效避免絕大多數惡意 app 攻擊、探測同一 Wi-Fi 下的網絡設備。

App 開屏搖一搖廣告,你快「搖了我吧」

文件系統

如果你是大陸 Android 玩家,你很可能早已對「放任自流」的文件系統見怪不怪。由於 Android 上並沒有採用 iOS 那樣嚴格的「文件沙盒」機制,使得 app 可以將文件存儲在所有 app 共享的同一個外部目錄中。

在 Android 還沒有收緊權限的 4.x 年代,許多應用就已經在濫用這個功能:這些 app 以存儲用戶文件名義,將自身數據和 SDK 數據保存到公共存儲空間(app 的外部目錄),以保證 app 卸載後這些數據可以保留,或是跨 app 讀取用戶畫像等等。

大陸 Android 至今依舊存在的推送 SDK 就是依靠在「存儲空間」里保存垃圾文件,達到判斷用戶的目的,而這也已嚴重侵犯用戶隱私。正因如此,存儲空間也成為 Android 上被濫用得最多的權限(也許沒有之一),即使後來 Android 推出官方的權限精細控制之後,情況也不容樂觀——想想哪些不給存儲空間讀寫權限就不給打開的 app 們吧。

App 開屏搖一搖廣告,你快「搖了我吧」

▲ 從 Android 10(Q)開始,Google 就對 app 濫用公共存儲空間行為進行「整治」. 圖片來自:Google I/O 19

到了 Android 11,官方終於強制 app 開發者採用分區存儲。不過,好像哪里不太對:實際上,app 們依然可以讀取 Google 限定的公共文件夾(下載、文檔等等)內的全部文件夾名字(看不到其他 app 創建的文件),並在其中寫入自己的文件,而這樣做並不需要用戶授權。也許以後我們可以在 Android 11 的文件系統里見到 /Download/.push-sdk/xxxxxxxx 這樣的文件夾……

如果你的手機支持 root 以及安裝 Xposed 框架,名為「存儲空間隔離」的 Xposed 插件就是一款可以有效避免上述問題的工具。利用它,我們可以強制將每一個 app 生成的文件存放在自身的分區文件夾中,從根源上避免 app 間互相「串通」你的隱私信息的情況。

App 開屏搖一搖廣告,你快「搖了我吧」

存儲空間隔離適用於已經安裝 Xposed 框架的 Android 6.0+ 設備,大小因設備而異,免費有內購。下載地址:https://sr.rikka.app/zh-hans/download/

在隱私與安全越來越受到我們重視的同時,黑客和廣告商們也在竭盡全力地在人們的目光之外,尋找新的「隱私突破口」。也許安全和方便不可能真正做到兩全其美,但我們依然可以嘗試去學習,而這是對抗嘗試跟蹤我們的人的最好方法。

除了 APPSO 提到的這些「隱私短板」,你還發現手機、電腦里,哪些情況可能泄露隱私?歡迎在留言區告訴大家。

題圖來自:Markus Winkler / Unsplash

App 開屏搖一搖廣告,你快「搖了我吧」

來源:愛范兒