Kit Pengembangan Rangkaian Uji Keamanan Android (STS SDK)

Security Test Suite Trade Federation (sts-tradefed) dibangun di atas test harness Android Trade Federation untuk menguji semua perangkat Android untuk uji patch keamanan yang tidak termasuk dalam Compatibility Test Suite. Pengujian ini khusus untuk perbaikan yang terkait (atau akan dikaitkan) dengan Kerentanan dan Eksposur Umum (CVE).

SDK memungkinkan pengembangan pengujian STS di luar pohon sumber Android menggunakan Android Studio atau Android SDK standar. Ini mencakup semua utilitas yang diperlukan untuk membangun dan menjalankan pengujian STS.

Dapatkan STS SDK Terbaru

Prasyarat

  • PC Linux 64-bit.
  • Android Studio (juga dapat diinstal dari manajer paket distro Anda.
  • Alat platform Android ( adb , fastboot ) perlu diinstal dan berada di $PATH Anda (yaitu Anda harus dapat menjalankan adb dari baris perintah). Cara termudah untuk menginstal alat platform adalah melalui manajer paket distro Anda.
    • Jika menggunakan manajer SDK Android Studio dan bukan alat platform mandiri, ingatlah untuk menambahkan direktori platform-tools SDK ke $PATH.
  • aapt , yang juga dapat diinstal melalui manajer paket distro Anda.

Mulai menggunakan Android Studio

Setelah mengekstrak arsip, buka direktori di Android Studio sebagai proyek yang sudah ada. Jalankan target build assembleSTSARM atau assembleSTSx86 untuk membuat pengujian kerangka, bergantung pada arsitektur perangkat Android target. Jalankan target build runSTS untuk menjalankan pengujian kerangka pada perangkat yang terhubung (ADB harus diotorisasi).

Mulai menggunakan Gradle

Setelah mengekstrak arsip, atur properti sdk.dir di file local.properties di root proyek Gradle, lalu jalankan tugas assembleSTSARM Gradle untuk membuat pengujian kerangka. Setelah build selesai, pengujian dapat dijalankan dengan menavigasi ( cd ) ke build/android-sts/tools dan mengeksekusi wrapper 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

Tulis tes STS

Ada tiga bagian tes STS:

  1. Tes Tradefed sisi host yang berinteraksi dengan perangkat melalui adb, di subdirektori sts-test .
  2. Serangan pembuktian konsep asli opsional yang dimasukkan ke perangkat melalui adb push dan dijalankan oleh pengujian sisi host di subdirektori native-poc .
  3. APK aplikasi atau layanan opsional yang diinstal ke perangkat melalui adb install dan juga diluncurkan oleh pengujian sisi host. Aplikasi atau layanan juga dapat berisi kumpulan pernyataan JUnitnya sendiri yang dilaporkan ke runner sisi host. Ini ada di subdirektori test-app .

Alur pengujian STS biasanya mengikuti salah satu dari dua pola:

  • Bukti konsep asli:

    1. Tes sisi host mendorong dan meluncurkan executable asli pada perangkat.
    2. Program asli mengalami crash atau mengembalikan kode keluar tertentu.
    3. Pengujian sisi host memeriksa kerusakan, melihat penelusuran balik logcat, atau mencari kode keluar spesifik untuk menentukan apakah serangan berhasil.
  • Aplikasi tes berinstrumen:

    1. Pengujian sisi host memasukkan APK yang berisi aplikasi atau layanan ke perangkat.
    2. Pengujian sisi host memulai pengujian JUnit sisi perangkat yang dipaketkan dengan APK melalui runDeviceTest()
    3. JUnit di sisi perangkat menguji tombol dan melihat aplikasi menggunakan UIAutomator, atau mengakses sistem Android dengan cara yang mengungkap kerentanan keamanan.
    4. Keberhasilan atau kegagalan pengujian JUnit sisi perangkat dikembalikan ke pengujian sisi host, yang dapat digunakan untuk menentukan apakah pengujian berhasil atau tidak.

Kombinasi kedua pola tersebut (misalnya, menjalankan program asli bersamaan dengan pengujian sisi perangkat) juga dimungkinkan. Beberapa kerangka instrumentasi lainnya, seperti frida-inject , juga tersedia. Untuk detailnya, lihat dokumen referensi Security Test Suite dan dokumen referensi Tradefed .

Serangan pembuktian konsep saya tidak memerlukan aplikasi pengujian dan/atau executable asli

Sebagian besar pengujian tidak memerlukan aplikasi sisi perangkat dan aplikasi asli yang dapat dieksekusi.

Jika pengujian Anda tidak melibatkan penggunaan aplikasi/layanan pada perangkat, cukup hapus subdirektori test-app . Demikian pula, jika pengujian Anda tidak menggunakan executable asli, hapus subdirektori native-poc lalu sinkronkan proyek secara Gradle. Proyek ini diatur untuk secara otomatis melewati pembuatan modul-modul tersebut ketika modul-modul tersebut tidak ada.

Serangan pembuktian konsep saya melibatkan aplikasi/layanan kedua

Pertama, tambahkan Modul baru ke proyek Anda untuk aplikasi/layanan kedua dan tulis seperti yang Anda lakukan pada APK lainnya.

Selanjutnya, edit build.gradle di akar direktori ini dan tambahkan modul Anda dengan mengikuti instruksi di copyArtifacts , assembleStsARM , dan assembleStsx86 . Ini akan memastikan APK yang dikompilasi disalin ke direktori keluaran STS dan memungkinkan pemasangan/pemanggilan aplikasi baru dari pengujian.

Terakhir, sinkronisasikan proyek secara Gradle.

Penyerahan tes STS

Jalankan tugas zipForSubmission (baik dengan Android Studio atau dengan Gradle pada baris perintah). File baru, codesubmission.zip , harus dibuat di direktori build di root proyek. Unggah file tersebut bersama dengan kiriman Anda ke Program Vulnerability Reward Android.