Android Güvenlik Test Paketi geliştirme kiti (STS SDK'sı)

Güvenlik Test Paketi Ticari Federasyon (sts-tradefed), Android Trade Federasyonu tüm Android cihazları güvenlik açısından test etmek için test bandı Uyumluluk Test Paketi'ne dahil olmayan yama testlerine uygulanır. Bu testler, özel olarak bir Yaygın Güvenlik Açıkları ve Karşılaşmalar (CVE).

SDK, Android kaynak ağacının dışında STS testlerinin geliştirilmesine olanak tanıyor Android Studio veya standart Android SDK'sı kullanarak yapabilirsiniz. Tüm yardımcı programları içerir STS testi oluşturun.

En son STS SDK'sını edinin

Ön koşullar

  • 64 bit Linux PC.
  • Android Studio (ayrıca yüklenebilir paketinizin yöneticisinden iletişim kurabilirsiniz.
  • Android platformu araçları (adb, fastboot) adlı uygulamanın yüklenmeli ve $PATH içinde (ör. komut satırından adb çalıştırılabilir). Bir projeyi yönetmenin en kolay yolu platform araçlarını dağıtmanız için dağıtımınızın paket yöneticisini kullanmanız gerekir.
    • Bağımsız platform yerine Android Studio'nun SDK yöneticisini kullanıyorsanız araçlarınız varsa SDK'nın platform-tools dizinini $PATH sayfanıza eklemeyi unutmayın.
  • aapt, Dağıtımınızın paket yöneticisi aracılığıyla da yüklenebilir.
ziyaret edin.

Android Studio'yu kullanmaya başlama

Arşivi çıkardıktan sonra dizini Android Studio'da açın: nasıl oluşturulduğunu göstereceğim. Şunlar için assembleSTSARM veya assembleSTSx86 derleme hedefini çalıştırın: hedef Android'in mimarisine bağlı olarak iskelet testini tasarlar. olanak tanır. Bağlı cihazda iskelet testini çalıştırmak için runSTS derleme hedefini çalıştırın belirtin (ADB yetkilendirilmelidir).

Gradle'ı kullanmaya başlayın

Arşivi çıkardıktan sonra sdk.dir özelliğini local.properties dosyasını açın ve şunu çalıştırın: assembleSTSARM İskelet testi oluşturmak için Gradle görevi. Derleme tamamlandıktan sonra tamamlandıktan sonra, (cd) konumuna giderek testi build/android-sts/tools ve sts-tradefed sarmalayıcısı yürütülüyor.

$ 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 testi yazma

STS testi üç bölümden oluşur:

  1. Adb üzerinden cihaz ile etkileşimde bulunan bir ana makine tarafı Tradefed testi sts-test alt dizini.
  2. İsteğe bağlı yerel bir kavram kanıtlama saldırısı olan adb push üzerinden çalıştırılmış ve native-poc alt dizin.
  3. Cihaza şuradan yüklenen isteğe bağlı bir uygulama veya hizmet APK'sı: adb install ve ana makine taraf testi tarafından başlatıldı. Uygulama veya hizmet yardımcı olan bir kod. Bu dosya test-app alt dizinindedir.

Tipik bir STS test akışı genellikle iki kalıptan birini izler:

  • Doğal kavram kanıtlama:

    1. Ana makine tarafı testi, olanak tanır.
    2. Yerel program kilitleniyor veya belirli bir çıkış kodu döndürüyor.
    3. Ana makine tarafı testi kilitlenmeleri kontrol eder, logcat geri izlemesine bakar ve veya saldırganın saldırının açık olup olmadığını belirlemek için başarılı oldu.
  • Araçlı test uygulaması:

    1. Ana makine tarafı testi, uygulama veya hizmetten oluşan bir APK'yı için geçerlidir.
    2. Ana makine tarafı testi, paket halinde sunulan cihaz tarafı JUnit testlerini başlatır runDeviceTest() üzerinden APK ile
    3. Cihaz tarafındaki JUnit, düğmelere dokunmayı test eder ve uygulamayı izlemek için UIAutomator'a erişemez veya Android sistemine ortaya çıkarmanıza yardımcı olabilir.
    4. Cihaz tarafı JUnit testlerinin başarılı veya başarısız olması durumunda testin başarılı olup olmadığını belirlemek için kullanılabilecek ana makine tarafı testi hakkında bilgi edindiniz.

Bu iki örüntünün birleşimi (örneğin, yerel programın testlerle birlikte kullanıldığında) de mümkündür. Başka enstrümantasyonlar frida-inject gibi çerçeveler de mevcuttur. Ayrıntılar için Güvenlik Test Paketi referans dokümanları ve Ticarete konu olan referans dokümanlar.

Kavram kanıtlama saldırım için test uygulaması veya yürütülebilir yerel uygulama gerekmiyor.

Çoğu testin hem cihaz tarafı uygulamasına hem de yürütülebilir yerel uygulamaya ihtiyacı yoktur.

Testiniz cihaz üzerinde bir uygulamanın/hizmetin kullanımını içermiyorsa test-app alt dizininde bulabilirsiniz. Benzer şekilde, testinizde yerel yürütülebilir, native-poc alt dizinini silin ve ardından projeyi Gradle-sync ile senkronize edin. Proje, çalışırken bu modüllerin oluşturulmasını otomatik olarak atlayacak mevcut değil.

Kavram kanıtlama saldırım ikinci bir uygulama/hizmet içeriyor

İlk olarak, ikinci uygulamanız/hizmetiniz için projenize yeni bir Modül ekleyin ve olduğu gibi kullanabilirsiniz.

Sonra, bu dizinin kök dizininde build.gradle dosyasını düzenleyin ve modülünüzü ekleyin copyArtifacts, assembleStsARM ve assembleStsx86. Bu işlem, derlenen APK'nın çıkışa kopyalanmasını sağlar dizinini oluşturur ve testten yeni uygulamanın yüklenmesini/çağrısını etkinleştirir.

Son olarak, projeyi Gradle senkronize edin.

STS testini gönderme

zipForSubmission görevini Android Studio veya Gradle ile komut satırından). build içinde codesubmission.zip adlı yeni bir dosya oluşturulmalı dizin oluşturun. Bu dosyayı Android Güvenlik Açıklarını Bildirenler İçin Ödül Programı'na gönderilir.