Android Security Test Suite 開發套件 (STS SDK)

安全測試套件貿易聯盟 (st-tradefed) 的基礎 Android 貿易聯盟 測試控管工具,測試所有 Android 裝置的安全性 不屬於 Compatibility Test Suite 的修補程式測試。這些測試 專門用來修正與 常見安全漏洞與資料外洩風險 (CVE)。

這個 SDK 允許在 Android 原始碼樹狀結構外開發 STS 測試 Android Studio 或標準 Android SDK其中包含所有公用程式 建構及執行 STS 測試所需的資源。

取得最新版 STS SDK

必要條件

  • 64 位元 Linux 電腦。
  • Android Studio (也可以安裝 建立 Deployment 資訊清單
  • Android 平台工具 您需要安裝 (adbfastboot) 且位於 $PATH (即您) 應該能從指令列執行 adb)。您可以輕鬆建構 請透過 Distro 的套件管理工具安裝平台工具。
    • 使用 Android Studio 的 SDK Manager 而非獨立平台 工具,請記得將 SDK 的 platform-tools 目錄加進 $PATH。
  • aapt、 您也可以透過發行的套件管理工具安裝這個映像檔。
,瞭解如何調查及移除這項存取權。

開始使用 Android Studio

解壓縮封存後,請在 Android Studio 中以 現有專案執行 assembleSTSARMassembleSTSx86 建構目標,即可 根據目標 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 測試包含三個部分:

  1. 透過 ADB 與裝置互動的主機端交易測試 sts-test 子目錄。
  2. 一種選用的原生概念驗證攻擊,會推送至 並透過 adb push 執行,並由 native-poc 子目錄。
  3. 透過以下方式安裝在裝置上的選用應用程式或服務 APK adb install,且由主機端測試啟動。應用程式或服務 也可以包含自己的一組 JUnit 斷言,回報給 主機端執行器這個檔案位於 test-app 子目錄中。

典型的 STS 測試流程通常遵循以下其中一種模式:

  • 原生概念驗證:

    1. 主機端測試會推送並啟動 裝置。
    2. 原生程式異常終止或傳回特定的結束代碼。
    3. 主機端測試會檢查當機情形、查看 logcat 反向追蹤, 或尋找特定的結束程式碼,以判斷攻擊是不是 成功。
  • 檢測設備測試應用程式:

    1. 主機端測試會將內含應用程式或服務的 APK 推送至 裝置。
    2. 主機端測試會啟動隨附的裝置端 JUnit 測試 透過 runDeviceTest() 使用 APK
    3. 裝置端的 JUnit 測試輕觸按鈕,並使用 UIAutomator 或以其他方式存取 Android 系統的方式 找出安全漏洞
    4. 裝置端 JUnit 測試成功或失敗時會傳回 主機端測試,可用來判斷測試是否通過 不一定。

兩種模式的組合 (例如,在 搭配裝置端測試)。其他檢測 您也可以使用 frida-inject 這類架構。 詳情請參閱 Security Test Suite 參考文件交易參考文件

概念驗證攻擊不需要測試應用程式或原生執行檔

大多數測試不需要同時採用裝置端應用程式和原生執行檔。

如果測試期間未涉及使用裝置上的應用程式/服務,請直接刪除 test-app 子目錄。同樣地,如果您的測試並未使用 執行檔,請刪除 native-poc 子目錄,再透過 Gradle 同步處理專案。 專案設定為在建構模組時自動略過建構這些模組 不存在。

概念驗證攻擊涉及第二個應用程式/服務

首先,在專案中新增第二個應用程式/服務模組,然後寫入 使用任何其他 APK

接著,在這個目錄的根目錄編輯 build.gradle,並新增模組 請按照 copyArtifactsassembleStsARMassembleStsx86。這樣就能確保已編譯的 APK 會複製到輸出內容 並允許安裝/呼叫做為測試的新應用程式。

最後,Gradle 會同步處理專案。

提交 STS 測試

執行zipForSubmission工作 (使用 Android Studio 或在 指令列)。請在 build 中建立新檔案 codesubmission.zip 複製到專案根目錄請將該檔案連同您的 提交至 Android 安全漏洞檢舉計畫。