安卓安全測試套件開發包(STS SDK)

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

安全測試套件 Trade Federation (sts-tradefed) 建立在Android Trade Federation測試工具之上,用於測試所有 Android 設備的安全補丁測試,這些補丁測試不屬於兼容性測試套件。這些測試專門針對與(或將要)與常見漏洞和披露 (CVE) 相關聯的修復程序。

該 SDK 允許使用 Android Studio 或標準 Android SDK 在 Android 源代碼樹之外開發 STS 測試。它包括構建和運行 STS 測試所需的所有實用程序。

獲取最新STS SDK

先決條件

  • 64 位 Linux PC。
  • Android Studio (也可以從發行版的包管理器安裝。
  • 需要安裝Android 平台工具adbfastboot )並將其放在您的$PATH中(即您應該能夠從命令行運行adb )。安裝平台工具的最簡單方法是通過發行版的包管理器。
    • 如果使用 Android Studio 的 SDK 管理器而不是獨立的平台工具,請記住將 SDK 的platform-tools目錄添加到 $PATH 中。
  • aapt ,也可以通過發行版的包管理器安裝。

開始使用 Android Studio

解壓縮存檔後,在 Android Studio 中將目錄作為現有項目打開。運行assembleSTSARMassembleSTSx86構建目標以構建骨架測試,具體取決於目標 Android 設備的架構。運行runSTS構建目標以在連接的設備上運行骨架測試(必須授權 ADB)。

開始使用 Gradle

解壓存檔後,在 Gradle 項目根目錄下的local.properties文件中設置sdk.dir屬性,然後運行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. sts-test子目錄中通過 adb 與設備交互的主機端 Tradefed 測試。
  2. 一種可選的本機概念驗證攻擊,通過adb push推送到設備上,並由native-poc子目錄中的主機端測試執行。
  3. 通過adb install安裝到設備上並由主機端測試啟動的可選應用程序或服務 APK。應用程序或服務還可以包含自己的一組 JUnit 斷言,這些斷言會報告給主機端運行器。這是在test-app子目錄中。

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

  • 本機概念驗證:

    1. 主機端測試在設備上推送並啟動本機可執行文件。
    2. 本機程序崩潰或返回特定的退出代碼。
    3. 主機端測試檢查崩潰、查看 logcat 回溯或查找特定的退出代碼以確定攻擊是否成功。
  • 插樁測試應用程序:

    1. 主機端測試將包含應用程序或服務的 APK 推送到設備上。
    2. 主機端測試通過runDeviceTest()啟動與 APK 捆綁的設備端 JUnit 測試
    3. 設備端 JUnit 測試點擊按鈕並使用 UIAutomator 監視應用程序,或者以其他方式訪問 Android 系統以揭示安全漏洞。
    4. 設備端JUnit測試的成功或失敗返回給主機端測試,可以用來判斷測試是否通過。

兩種模式的組合(例如,結合設備端測試運行本機程序)也是可能的。還可以使用其他一些檢測框架,例如frida-inject 。有關詳細信息,請參閱安全測試套件參考文檔Tradefed 參考文檔

我的概念驗證攻擊不需要測試應用程序和/或本機可執行文件

大多數測試不需要設備端應用程序和本機可執行文件。

如果您的測試不涉及使用設備上的應用程序/服務,只需刪除test-app子目錄即可。同樣,如果您的測試不使用本機可執行文件,請刪除native-poc子目錄,然後 Gradle-sync 項目。該項目設置為在這些模塊不存在時自動跳過構建這些模塊。

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

首先,為您的第二個應用程序/服務向您的項目添加一個新模塊,並像編寫任何其他 APK 一樣編寫它。

接下來,在該目錄的根目錄下編輯build.gradle並按照copyArtifactsassembleStsARMassembleStsx86中的說明添加您的模塊。這將確保編譯後的 APK 被複製到 STS 的輸出目錄,並允許從測試中安裝/調用新應用程序。

最後,Gradle-sync 項目。

提交 STS 測試

運行zipForSubmission任務(使用 Android Studio 或命令行上的 Gradle)。應在項目根目錄的build目錄中創建一個新文件codesubmission.zip 。將該文件連同您提交給 Android 漏洞獎勵計劃的文件一起上傳。