Android 12 是 Google 研發的操作系統,于 2021 年 10 月 5 日發布 。雖然最引人注目的是用戶界面(Material You)的重新設計,但增加了隱私控制面板,這是谷歌向用戶提供的通過透明度增加對 Android 平臺信任的設計。
谷歌決定實現隱私控制面板,以響應用戶的請求,了解他們的應用程序正在訪問或使用哪些數據。知道你的手機在做什么總是一件好事,包括當你沒有使用它時它在做什么,或者你在使用它時它在后臺做什么。 Android 設備不斷生成、收集和使用來自各種類別(我們的位置、我們的聯系人等)的數據,其中大部分是在后臺生成。 OEM/ 操作系統開發人員這樣做是為了提供更好的用戶體驗。作為用戶,當我們在使用我們的設備之前同意服務條款時,我們會盲目地同意。不過,隱私控制面板旨在通過讓 Android 用戶了解手機上發生的位置、攝像頭和麥克風活動來消除用戶的安全疑慮。
現在讓我們看看隱私控制面板,看看是否有任何方法可以檢查該功能捕獲數據。了解應用程序使用了手機的位置、攝像頭或麥克風可以通過多種方式在檢查期間提供幫助。對新手來說,當應用程序報告的目的與錄制音頻無關時,知道可疑應用程序正在訪問手機的麥克風可能會對涉及移動惡意軟件的檢查有所幫助。或者,據稱手機所有者從未使用過的應用程序在隱私控制面板的攝像頭部分中有條目。當然,這只是兩個例子。我相信有創意的審查員 / 調查員可以想出其他方法來應用這些數據。
在測試中,我使用 Pixel 3 運行 Android 12,并安裝了 10 月的補丁。我還使用了最新版本的 WhatsApp ( 2.21.24.22 ) 和 AirTracker ( 1.1.0 ) 作為第三方應用程序。
隱私控制面板是 Android 12 獨有的功能。在運行 Android 11 或更低版本的設備上找不到它。默認情況下啟用。從用戶的角度來看,隱私控制面板與 Google 的 Digital Wellbeing 非常相似。可以通過進入設置 > 隱私 >隱私控制面板找到它。UI 中有一個圓圈,顯示過去 24 小時內 Location、Camera 和 Microphone ( LCM ) 的使用情況。

隱私控制面板 UI
關于時間限制的一個說明。谷歌聲明用戶不會在 24 小時后回憶他們的活動,這解釋了 24 小時的限制。
在圓圈下方,用戶可以按下這三種類別中的一種,以獲得使用該類別的更多應用信息 ( 紅框 - 圖 1 ) 。

使用手機位置的應用程序
上圖顯示了使用手機位置的應用程序以及使用該位置的時間線,所有這些都是按照時間順序排列的。按下右上角的三個點,用戶就可以選擇顯示使用過位置功能的系統應用程序。下圖顯示了與上圖大致相同的時間框架,但是添加了系統應用程序。

更多使用位置的應用程序
有趣的是,攝像頭和位置并不提供查看使用過它們的系統應用的功能。
在圖 1 中紅色框的下方有一個部分:" 參見其他權限 ",展開它會顯示額外的權限,例如電話、通話記錄、身體傳感器以及文件和媒體。在撰寫本文時,隱私控制面板還沒有跟蹤這些權限,但可能以后會跟蹤。
圖 4 和圖 5 顯示了 UI 中攝像頭和麥克風的使用情況。

下面兩個圖顯示了攝像頭和麥克風在 UI 中的使用情況。

使用手機麥克風的應用程序
從用戶的角度來看,就是這樣,操作很簡單。
不幸的是,隱私控制面板背后的取證并不像 UI 那么簡單。隱私控制面板將其數據存儲在 USERDATA/system/appops/discrete 目錄路徑中。如下圖所示:

隱私控制面板文件
我觀察到在目錄中八 ( 8 ) 到十七 ( 17 ) 分鐘之間的任何地方都創建了文件。這只是我的觀察;根據電話使用情況,頻率可能會更低或更高。除非最近卸載了某個應用程序,否則審查員應該會在此目錄中找到大量文件(稍后會詳細介紹)。在此目錄路徑中找到的文件聚合代表 24 小時的使用時間。每個文件都以特定格式命名,以文件創建時的 Unix 紀元時間戳開頭,后跟字母 "tl"。雖然文件沒有擴展名,但它們是 XML 文件。而且,它們不僅僅是任何 XML 文件,它們是 Android 二進制 XML 文件。 Android 12 已開始對其部分 XML 文件使用新的二進制格式,這些文件采用新格式。如果你有興趣了解有關格式的更多信息,請參閱 Alex Caithness 的這篇文章。不用說,在檢查它們之前必須進行一些解碼,或者使用的取證工具需要能夠解釋格式。在我寫這篇文章的時候,我知道有兩個工具可以解碼這些文件:Alexis Brignoni 的 ALEAPP 和 Cellebrite Physical Analyzer 7.52(我還沒有測試過 7.52,但我有權威的它可以解碼它們)。為了快速解碼,我使用 Alex Caithness 的 ABX Python 模塊將文件轉換為人類可讀的形式。我強烈建議下載模塊以進行快速解碼;亞歷克斯在這方面做得非常出色。圖 7 顯示了使用模塊解碼后的文件之一。

解碼的隱私控制面板 XML 文件
Alex 的模塊將文件解碼為沒有任何格式的流程,為了便于閱讀,我對已解碼的 XML 文件進行了格式化處理。
隱私控制面板是 AppOps 的一部分,它可以做幾件事,包括跟蹤應用程序何時利用手機的運行時權限。如果你不熟悉 Android 的危險權限,我去年寫了一篇關于它們的文章,你可以點擊這里閱讀。危險權限包括授予應用使用手機位置、攝像頭或麥克風的權限。因此,如果你曾經查看過 appops.xml ( USERDATA/system/ ) 文件,那么隱私控制面板中文件的一些內容會看起來很熟悉。
上圖所示的文件中表示了多個應用程序,每個應用程序都有自己的信息。為了幫助理解應用程序是如何表示的,下圖僅顯示了一個應用程序 AirTracker 的條目。

AirTracker 的入口
上圖中的條目表示隱私控制面板中的單個條目,有三個與此條目相關的 XML 值。第一個是 "pn"(包名稱 - 紅色框),它代表利用 LCM 的應用程序。接下來是值 "op"(可能代表 " 操作 " ——藍色框)。這表示使用了哪個 LCM。在此條目中,AirTracker 使用了位置 ( op=1 ) 。由于隱私控制面板正在跟蹤三件事(位置、攝像頭和麥克風),因此審查員可以在這里看到三個 " 操作 " 值:
1 = 位置
26 = 攝像頭
27 = 麥克風
上圖中最后的重要值是 "nt" ( 綠框 ) 。雖然我無法準確確定 "nt" 代表什么,但我懷疑它是與 noteOps 相關的 "note time"。不管它是什么意思,與 "nt=" 相關的時間戳代表了 AirTracker 使用手機位置的時間。
下圖顯示了如何在隱私控制面板 UI 中查看它(使用相同的顏色編碼)。請注意,隱私控制面板中顯示的時間為當地時間 ( UTC -0500 ) 。

上圖在隱私控制面板 UI 中表示
有一件重要的事情需要注意。圖 8 和圖 9 所示的條目是 AirTracker 在后臺自動運行的結果。檢查人員應該了解隱私控制面板及其寫入存儲的基礎文件將包含與用戶活動和系統 / 自動活動相關的信息。當嘗試將隱私控制面板條目歸因于用戶活動時,檢查者應在此處與在設備上發現的其他人確認工件。
圖 8 是一個簡單的條目,圖 10 顯示了一個更復雜的條目。它代表了我用 Google 攝像頭拍攝的一段大約兩分鐘長的視頻。

拍攝完兩分鐘的視頻后進入攝像頭
創建視頻時,攝像頭利用了手機的位置、攝像頭和麥克風。圖 10 具有圖 8 中所示的先前 XML 值(pn、op 和 nt)和一個附加值。該條目可以分為三個部分,每個部分代表一個 LCM。橙色箭頭標記每個新部分的開始。在圖 10 的頂部,我們有包名稱(紅色框)、位置使用情況(op=1 - 頂部藍色框)和使用位置的時間(nt - 頂部綠色框)。
在該條目下方,我們有第二個操作(op=26 - 中間藍色框)和第二個時間戳(中間綠色框)。 op=26 代表攝像頭使用情況。雖然該操作下有多個時間戳(nt 值),但操作下的第一個時間戳(中間綠色框)是隱私控制面板 UI 中顯示的時間戳。紫色框中的值 ( nd=133443 ) 表示攝像頭使用的持續時間 ( "d" ) ,以毫秒為單位。請注意,雖然我的視頻大約兩分鐘,但在拍攝實際視頻之前和之后的短時間內,攝像頭都在使用。
底部條目的最后一部分以 XML 值 op=27(底部藍色框)開頭,它表示我在拍攝視頻時攝像頭使用的麥克風。注意,時間戳 ( 底部綠色框 ) 與攝像頭使用相關的時間戳很接近。麥克風使用的持續時間(以毫秒為單位)顯示在底部的紫色框中(nd=126022)。
下面三幅圖代表隱私控制面板 UI 中的進程(時間以 UTC -0500 為單位)。雖然下圖中顯示的麥克風使用持續時間為 "3 分鐘 ",但上圖中顯示的麥克風使用持續時間值 ( nd ) 是準確的。

Google 攝像頭的位置使用情況

Google … Camera 的攝像頭使用情況

通過谷歌攝像頭使用麥克風
圖 8 和圖 10 顯示了應用程序在其中一個 XML 文件中的單個操作。在某些情況下,同一個應用程序會被多次使用并在單個 XML 文件中表示。具體如下圖所示。

在單個 XML 文件中多次使用 Google 攝像頭
上圖顯示了 Google 攝像頭在短時間內多次利用手機的位置(紅色框)和攝像頭(藍色框)。如下面兩個圖所示。

隱私控制面板 UI 中的攝像頭位置使用條目

隱私控制面板 UI 中的 Camera … camera
根據此處的調查結果,隱私控制面板似乎會在短時間內頻繁使用的情況下,在 UI 中向用戶顯示上次使用的時間和總的使用持續時間。當出現這種情況時,最好查看持續時間值 ( nd= ) ,以確定是否有大量使用。
審查員可能會發現的另一個 XML 值是屬性標簽或 "at",請參見下圖中的紅色框。

屬性標簽 ( at )
據我所知,屬性標簽允許應用程序開發者提供他們正在執行的操作的上下文。應用程序開發人員不需要提供屬性標簽。
不幸的是,隱私控制面板不會保留有關已刪除應用程序使用情況的數據。為了測試這一點,我使用 WhatsApp 錄制了大約 38 秒長的視頻,然后從 USERDATA/system/appops/discrete 文件夾中提取了相應的 XML 文件。如下圖所示。

攝像頭和麥克風使用的 WhatsApp 條目
在上圖中,可以看到包名稱(紅框)攝像頭使用情況(藍框)、麥克風使用情況(綠框)以及兩者的持續時間(紫框)。該條目也可以在隱私控制面板 UI 中看到。如下面兩個圖所示:

WhatsApp 攝像頭使用情況

WhatsApp 麥克風使用情況
我卸載了 WhatsApp 并返回到 USERDATA/system/appops/discrete 文件夾,發現了一些有趣的行為,如下圖所示。

一切都消失了
上圖中的綠色框是我卸載 WhatsApp 之前 USERDATA/system/ apppops /discrete 文件夾中的文件列表的最后一部分。紅色框表示卸載 WhatsApp 后的相同文件夾。安裝后,整個文件夾被刷新,不留下任何文件。然而,大約一分鐘后,一個新文件被創建(上圖中的藍色框)。我還注意到隱私控制面板 UI 保留了有關應用程序使用情況的數據,但有關 WhatsApp 的數據除外。我從 USERDATA/system/appops/discrete(以 4300tl 結尾)中提取了一個新文件并對其進行了解碼,具體如下圖所示。

數據轉儲
似乎在卸載應用程序時,會刷新 USERDATA/system/appops/discrete 文件夾,有關剩余應用程序的使用數據被轉儲到單個 XML 文件中,該文件被放回 USERDATA/system/appops/discrete 文件夾中,這樣隱私控制面板就可以開始創建新的 XML 文件。我搜索了新的單一文件,但沒有找到任何有關 WhatsApp 的信息。隱私儀表板的 UI 中也刪除了對 WhatsApp 的引用。

WhatsApp 不再使用攝像頭

WhatsApp 不再使用麥克風
關于三星的注意事項
截至本文發表之時,運行 Android 12 系統的三星手機還沒有大量供貨。三星已經推出了 Android 12 來選擇設備,但在我的 DFIR 圈子里,沒有一個人有可以進行安全檢查。不過,我還是找到了三星隱私儀表盤功能的截圖。

三星 Android 12 中隱私和隱私 > 權限使用歷史的屏幕截圖
雖然三星將擁有此功能,但他們已將名稱更改為 " 隱私使用歷史 "。我懷疑名字不會是唯一的區別。三星背后的取證可能與這篇文章中描述的有所不同。
