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.
Ö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ındanadb
ç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.
- Bağımsız platform yerine Android Studio'nun SDK yöneticisini kullanıyorsanız
araçlarınız varsa SDK'nın
- aapt, Dağıtımınızın paket yöneticisi aracılığıyla da yüklenebilir.
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:
- Adb üzerinden cihaz ile etkileşimde bulunan bir ana makine tarafı Tradefed testi
sts-test
alt dizini. - İsteğe bağlı yerel bir kavram kanıtlama saldırısı olan
adb push
üzerinden çalıştırılmış venative-poc
alt dizin. - 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 dosyatest-app
alt dizinindedir.
Tipik bir STS test akışı genellikle iki kalıptan birini izler:
Doğal kavram kanıtlama:
- Ana makine tarafı testi, olanak tanır.
- Yerel program kilitleniyor veya belirli bir çıkış kodu döndürüyor.
- 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ı:
- Ana makine tarafı testi, uygulama veya hizmetten oluşan bir APK'yı için geçerlidir.
- Ana makine tarafı testi, paket halinde sunulan cihaz tarafı JUnit testlerini başlatır
runDeviceTest()
üzerinden APK ile - 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.
- 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.