Play Integrity Attestation Bypass (SafetyNet Yerine Geçme)

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Play Integrity Ne Yapar

Play Integrity, Google’ın app attestation için SafetyNet’in halefidir. Uygulama API’yi çağırır, Google Play Services yazılım/donanım sinyallerini toplar, bunları googleapis.com’a şifreli olarak gönderir ve Google tarafından imzalanmış ve şifrelenmiş bir JWT döner. Uygulama token’ı backend’ine iletir; backend Google’ın açık anahtarıyla imzayı doğrular, yükü (payload) çözer ve verdict alanlarına göre politika uygular:

  • appIntegrity: APK build/imza eşleşmesi (yeniden paketlenme/tamper yok).
  • deviceIntegrity: orijinal ve sertifikalı cihaz, kilitli bootloader, root/system tamper yok.
  • accountDetails: kurulumun Google Play üzerinden yapıldığı bilgisi.

Genelde uygulanan ana verdict bayrakları:

  • MEETS_BASIC_INTEGRITY: token, orijinal Play Services tarafından üretilmiş (emülatör/taşınan veri tahrifatı değil).
  • MEETS_DEVICE_INTEGRITY: orijinal/sertifikalı cihaz, bootloader kilitli, root/system tamper yok.
  • MEETS_STRONG_INTEGRITY: DEVICE gerektirir ve ayrıca tüm partition’larda (OS + vendor) güncel güvenlik yamaları zorunludur.

Bypass Modeli

Google’ın JWT’sini sahtelemek yerine, Google’ın değerlendirdiği sinyalleri farklı, meşru bir cihaz profiline denk gelecek şekilde spoof’layın. Saldırı zinciri:

  1. Yerel kontrollerin ve Play Services probe’larının Magisk/su’yu görmesini engellemek (root gizleme).
  2. Play Integrity’nin sertifikalı/kilitli cihaz görmesi için key attestation sertifika zinciri (keybox.xml)’i gerçek bir cihazdan alınmış olanla değiştirmek.
  3. MEETS_STRONG_INTEGRITY şartını sağlamak için security patch level’ı spoof’lamak.

Google kötüye kullanılan keybox’ları revoke ederek azaltma yapıyor; bir keybox engellendiğinde rotasyon gerekir.

Önkoşullar & Araçlar

MEETS_BASIC_INTEGRITY + MEETS_DEVICE_INTEGRITY Elde Etme

  1. Modülleri yükle & reboot: Magisk içinde TrickyStore ve Tricky Addon’u flashle, reboot yap.
  2. TrickyStore’u yapılandır (KSU Web UI üzerinden): TrickyStoreSelect AllDeselect UnnecessarySave.
  3. Geçerli bir keybox enjekte et: Keybox içinde Valid seçeneğini seçerek yeni bir keybox.xml (vendor attestation credentials) indir/uygula. Bu dosya hardware key attestation’ı destekler ve artık sertifikalı/kilitli bir cihazdan alınmış gibi spoof’lanmıştır.
  4. Doğrula: Play Integrity API Checker çalıştırın → MEETS_BASIC_INTEGRITY ve MEETS_DEVICE_INTEGRITY geçmeli. Key Attestation içinde bootloader locked görünmelidir çünkü attestation zinciri değiştirilmiştir.

MEETS_STRONG_INTEGRITY Elde Etme (Patch-Level Spoof)

STRONG eski patch seviyeleri yüzünden başarısız olur. TrickyStore tüm partition’lar için modern bir security patch tarihi spoof’layabilir:

  1. TrickyStore’da Set Security PatchGet Security Patch DateSave seçin.
  2. Play Integrity API Checker’ı tekrar çalıştırın; MEETS_STRONG_INTEGRITY artık geçmeli.

Operasyonel Notlar

  • Revocation riski: Aynı keybox.xml ile API’ye tekrar tekrar istek atmak, onu işaretleyip engellenmesine sebep olabilir. Engellenirse, yeni bir geçerli keybox ile değiştirin.
  • Arms race: Kamuya açık paylaşılan keybox’lar hızla tükenir; özel kopyalar tutun ve topluluk modül güncellemelerini (XDA/Telegram/GitHub) takip edin.
  • Kapsam: Bu bypass sadece attestation girdilerini spoof’lar; backend’in Google tarafından yapılan imza doğrulaması hâlâ başarılı olacaktır çünkü JWT kendisi gerçektir.

Referanslar

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin