安全測試套件貿易聯盟 (st-tradefed) 的基礎 Android 貿易聯盟 測試控管工具,測試所有 Android 裝置的安全性 不屬於 Compatibility Test Suite 的修補程式測試。這些測試 專門用來修正與 常見安全漏洞與資料外洩風險 (CVE)。
這個 SDK 允許在 Android 原始碼樹狀結構外開發 STS 測試 Android Studio 或標準 Android SDK其中包含所有公用程式 建構及執行 STS 測試所需的資源。
必要條件
- 64 位元 Linux 電腦。
- Android Studio (也可以安裝 建立 Deployment 資訊清單
- Android 平台工具
您需要安裝 (
adb
、fastboot
) 且位於$PATH
(即您) 應該能從指令列執行adb
)。您可以輕鬆建構 請透過 Distro 的套件管理工具安裝平台工具。- 使用 Android Studio 的 SDK Manager 而非獨立平台
工具,請記得將 SDK 的
platform-tools
目錄加進 $PATH。
- 使用 Android Studio 的 SDK Manager 而非獨立平台
工具,請記得將 SDK 的
- aapt、 您也可以透過發行的套件管理工具安裝這個映像檔。
開始使用 Android Studio
解壓縮封存後,請在 Android Studio 中以
現有專案執行 assembleSTSARM
或 assembleSTSx86
建構目標,即可
根據目標 Android 的架構
建構基本架構測試
裝置。執行 runSTS
建構目標,在已連結的連線上執行架構測試
(必須授權 ADB)。
開始使用 Gradle
擷取封存後,請在sdk.dir
local.properties
檔案,然後執行
assembleSTSARM
用於建構架構測試的 Gradle 工作。建構後
結束,點選 (cd
) 即可執行測試
build/android-sts/tools
並執行 sts-tradefed
包裝函式。
$ echo 'sdk.dir=/home/<myusername>/Android/Sdk' > local.properties
$ ./gradlew assembleSTSARM
$ cd build/android-sts/tools
$ ./sts-tradefed run sts-dynamic-develop -m hostsidetest
編寫 STS 測試
STS 測試包含三個部分:
- 透過 ADB 與裝置互動的主機端交易測試
sts-test
子目錄。 - 一種選用的原生概念驗證攻擊,會推送至
並透過
adb push
執行,並由native-poc
子目錄。 - 透過以下方式安裝在裝置上的選用應用程式或服務 APK
adb install
,且由主機端測試啟動。應用程式或服務 也可以包含自己的一組 JUnit 斷言,回報給 主機端執行器這個檔案位於test-app
子目錄中。
典型的 STS 測試流程通常遵循以下其中一種模式:
原生概念驗證:
- 主機端測試會推送並啟動 裝置。
- 原生程式異常終止或傳回特定的結束代碼。
- 主機端測試會檢查當機情形、查看 logcat 反向追蹤, 或尋找特定的結束程式碼,以判斷攻擊是不是 成功。
檢測設備測試應用程式:
- 主機端測試會將內含應用程式或服務的 APK 推送至 裝置。
- 主機端測試會啟動隨附的裝置端 JUnit 測試
透過
runDeviceTest()
使用 APK - 裝置端的 JUnit 測試輕觸按鈕,並使用 UIAutomator 或以其他方式存取 Android 系統的方式 找出安全漏洞
- 裝置端 JUnit 測試成功或失敗時會傳回 主機端測試,可用來判斷測試是否通過 不一定。
兩種模式的組合 (例如,在
搭配裝置端測試)。其他檢測
您也可以使用 frida-inject
這類架構。
詳情請參閱
Security Test Suite 參考文件和
交易參考文件。
概念驗證攻擊不需要測試應用程式或原生執行檔
大多數測試不需要同時採用裝置端應用程式和原生執行檔。
如果測試期間未涉及使用裝置上的應用程式/服務,請直接刪除
test-app
子目錄。同樣地,如果您的測試並未使用
執行檔,請刪除 native-poc
子目錄,再透過 Gradle 同步處理專案。
專案設定為在建構模組時自動略過建構這些模組
不存在。
概念驗證攻擊涉及第二個應用程式/服務
首先,在專案中新增第二個應用程式/服務模組,然後寫入 使用任何其他 APK
接著,在這個目錄的根目錄編輯 build.gradle
,並新增模組
請按照 copyArtifacts
、assembleStsARM
和
assembleStsx86
。這樣就能確保已編譯的 APK 會複製到輸出內容
並允許安裝/呼叫做為測試的新應用程式。
最後,Gradle 會同步處理專案。
提交 STS 測試
執行zipForSubmission
工作 (使用 Android Studio 或在
指令列)。請在 build
中建立新檔案 codesubmission.zip
複製到專案根目錄請將該檔案連同您的
提交至 Android 安全漏洞檢舉計畫。