Play Integrity API, kullanıcı işlemlerinin ve sunucu isteklerinin Google Play tarafından yüklenen ve orijinal bir Android cihazda çalışan orijinal uygulamanızdan gelip gelmediğini kontrol etmenizi sağlar. Arka uç sunucunuz, riskli etkileşimleri (ör. kurcalanmış uygulama sürümlerinden, güvenilir olmayan cihazlardan veya emüle edilmiş ortamlardan gelenler) tespit ederek kötüye kullanımı ve yetkisiz erişimi önlemek, sahtekarlıkla mücadele etmek, hileye karşı koymak ve kullanıcıları saldırılardan korumak için uygun işlemlerle yanıt verebilir.
API, aşağıdakiler de dahil olmak üzere olası tehditleri tespit etmenize yardımcı olan kararlar döndürür:
- Yetkisiz erişim:
accountDetails
kararı, kullanıcının Google Play'de uygulamanızı veya oyununuzu yükleyip yüklemediğini ya da bunlar için ödeme yapıp yapmadığını belirlemenize yardımcı olur. - Kodda değişiklik:
appIntegrity
kararı, Google Play tarafından tanınan değiştirilmemiş ikili programınızla etkileşim kurup kurmadığınızı belirlemenize yardımcı olur. - Riskli cihazlar ve emüle edilmiş ortamlar:
deviceIntegrity
kararı, uygulamanızın Play Protect sertifikalı orijinal bir Android cihazda mı yoksa PC için Google Play Games'in orijinal bir örneğinde mi çalıştığını belirlemenize yardımcı olur.
Google Play geliştiricileri, aşağıdakiler de dahil olmak üzere daha geniş bir potansiyel tehdit aralığını tespit etmek için ek değerlendirmeler almayı da tercih edebilir:
- Yama uygulanmamış cihazlar:
deviceIntegrity
kararındakiMEETS_STRONG_INTEGRITY
yanıtı, bir cihazın son güvenlik güncellemelerini uygulayıp uygulamadığını belirlemenize yardımcı olur (Android 13 ve sonraki sürümleri çalıştıran cihazlar için). - Diğer uygulamaların riskli erişimi:
appAccessRiskVerdict
, ekranı kaydetmek, yer paylaşımı görüntülemek veya cihazı kontrol etmek (örneğin, erişilebilirlik iznini kötüye kullanarak) için kullanılabilecek uygulamaların çalışıp çalışmadığını belirlemenize yardımcı olur. - Bilinen kötü amaçlı yazılımlar:
playProtectVerdict
, Google Play Protect'in açık olup olmadığını ve cihazda riskli ya da tehlikeli uygulamalar bulup bulmadığını belirlemenize yardımcı olur. - Aşırı etkinlik:
recentDeviceActivity
seviyesi, bir cihazın son zamanlarda anormal derecede fazla istek gönderip göndermediğini belirlemenize yardımcı olur. Bu durum, otomatik trafiğe işaret edebilir ve saldırı belirtisi olabilir. - Tekrarlanan kötüye kullanım ve yeniden kullanılan cihazlar:
deviceRecall
(beta), uygulamanız yeniden yüklense veya cihaz sıfırlansa bile daha önce işaretlediğiniz bir cihazla etkileşimde olup olmadığınızı belirlemenize yardımcı olur.
API; telefonlar, tabletler, katlanabilir cihazlar, Android Auto, Android TV, Android XR, ChromeOS, Wear OS ve PC için Google Play Games dahil olmak üzere tüm Android form faktörlerinde kullanılabilir.
Güvenlikle ilgili olarak göz önünde bulundurulması gerekenler
Uygulamanızın Play Integrity API'den en iyi şekilde yararlanabilmesi için şu önerilen uygulamalara uyun:
Kötüye kullanıma karşı bir stratejiniz olmalıdır.
Play Integrity API; kötüye kullanıma karşı tek mekanizma olarak değil, genel stratejinizin bir parçası olarak diğer sinyallerle birlikte kullanıldığında en iyi performansı gösterir. Bu API'yi uygulamanız için diğer uygun güvenlikle ilgili en iyi uygulamalarla birlikte kullanın. Uygulamanız varsayılan olarak tüm yüklemelerde günde toplam 10.000'e kadar istek iletebilir. Günlük maksimum sayınızı artırma isteğinde bulunabilirsiniz.
Harekete geçmeden önce telemetri verilerini toplayın ve kitlenizi anlayın
Uygulamanızın davranışını Play Integrity API kararlarına göre değiştirmeden önce, API'yi zorunlu kılmadan uygulayarak mevcut kitlenizle ilgili mevcut durumu anlayabilirsiniz. Mevcut yükleme tabanınızın hangi kararları döndürdüğünü öğrendikten sonra planladığınız yaptırımların etkisini tahmin edebilir ve kötüye kullanımla mücadele stratejinizi buna göre ayarlayabilirsiniz.
Entegrasyon kararlarını nasıl isteyeceğinize karar verin
Play Integrity API, bütünlük kararlarını istemek ve almak için iki seçenek sunar. Standart istekler, klasik istekler veya her iki istek türünün bir kombinasyonunu göndermiş olmanıza bakılmaksızın bütünlük değerlendirmesi yanıtı aynı biçimde döndürülür.
Standart API istekleri tüm uygulamalar veya oyunlar için uygundur ve herhangi bir kullanıcı işleminin ya da sunucu isteğinin gerçekliğini kontrol etmek için isteğe bağlı olarak yapılabilir. Standart istekler en düşük gecikme süresine (ortalama birkaç yüz milisaniye) ve kullanılabilir bir karar alma konusunda yüksek güvenilirliğe sahiptir. Standart istekler, belirli saldırı türlerine karşı koruma sağlama yetkisini Google Play'e verirken cihaz üzerinde akıllı önbelleğe almayı kullanır.
Entegrasyon kararı istemek için kullanılan orijinal yöntem olan Classic API istekleri de kullanılmaya devam edecektir. Klasik isteklerde gecikme süresi daha uzundur (ortalama birkaç saniye) ve belirli saldırı türlerinin riskini azaltmak sizin sorumluluğunuzdadır. Klasik istekler, yeni bir değerlendirme başlattıkları için kullanıcının verilerinden ve pilinden standart isteklere kıyasla daha fazla yararlanır. Bu nedenle, son derece hassas veya değerli bir işlemin gerçek olup olmadığını kontrol etmek için tek seferlik olarak nadiren yapılmalıdır. Klasik bir istekte bulunmayı ve daha sonra kullanmak üzere önbelleğe almayı düşünüyorsanız saldırı riskini azaltmak için bunun yerine standart bir istekte bulunmanız gerekir.
Bu iki istek türü arasındaki temel farklar aşağıdaki tabloda açıklanmıştır:
Standart API isteği | Klasik API isteği | |
---|---|---|
Gereken minimum Android SDK sürümü | Android 5.0 (API düzeyi 21) veya sonraki sürümler | Android 4.4 (API düzeyi 19) veya sonraki sürümler |
API ısınma şartı | ✔️ (birkaç saniye) | ❌ |
İsteğin normal gecikme süresi | Birkaç yüz milisaniye | Birkaç saniye |
Olası istek sıklığı | Sık (herhangi bir işlem veya istek için talep üzerine kontrol) | Nadir (en yüksek değere sahip işlemler veya en hassas istekler için tek seferlik kontrol) |
Tekrar oynama ve benzer saldırılara karşı çözüm | Google Play'den otomatik çözüm | nonce alanını sunucu tarafı mantığıyla kullanın |
Klasik isteklerle ilgili dikkat edilmesi gereken noktalar bölümünde daha fazla farklılığın yer aldığı bir tablo görebilirsiniz.
Uygun bir anda bütünlük değerlendirmesi isteğinde bulunma
Dolandırıcıların uygulamanız tarafından gerçekleştirilen bütünlük kontrolünü atlamasını önlemek için, uygulamanızın erişime karşı savunmak istediğiniz işlem veya sunucu isteği zamanına mümkün olduğunca yakın bir zamanda uygulama erişimi riski kararı istemelisiniz.
API isteklerinizin kopyalanmasını zorlaştırın
Standart API isteklerinde, kurcalamaya ve benzer saldırılara karşı koruma sağlamak için kullanılan requestHash
adlı bir alan bulunur. Bu alana, uygulamanızın isteğindeki tüm alakalı değerlerin özetini eklemelisiniz. Uygulamanızın standart isteklerini korumak için içerik bağlamayı kullanma ile ilgili yönergeleri uygulayın.
Klasik API isteklerinde, tekrar oynama ve kurcalama saldırıları gibi belirli saldırı türlerine karşı koruma sağlamak için kullanılan nonce
(bir kez sayı anlamına gelir) adlı bir alan bulunur. Uygulamanızın klasik isteklerini korumak için nonce'ları nasıl oluşturacağınızla ilgili yönergeleri uygulayın.
Bütünlük kararlarını önbelleğe almaktan kaçının
Bütünlük kararlarının önbelleğe alınması, kötü niyetli bir aktörün başka bir ortamda kötüye kullanım amaçlı olarak iyi bir cihazdan alınan kararı yeniden kullandığı bir saldırı olan proxy oluşturma riskini artırır. Yanıtları önbelleğe almak yerine, isteğe bağlı olarak karar almak için standart bir API isteği gönderebilirsiniz.
Kademeli bir yaptırım stratejisine sahip olma
Play Integrity API'nin bütünlük değerlendirmesi kapsamında verilebilecek birbirinden farklı yanıtlar, kötüye kullanıma karşı çok katmanlı bir strateji geliştirmenize olanak tanır. Bunu, uygulamanızın arka uç sunucusunu olası her yanıta veya yanıt grubuna göre farklı şekilde davranacak şekilde yapılandırarak yapabilirsiniz.
Play Console'dan API yanıtınızda ek cihaz etiketleri almayı etkinleştirerek yaptırım stratejinizi cihaz güvenilirliğine göre katmanlandırmanız da mümkündür. Her cihaz, karşıladığı ölçütlere sahip tüm etiketleri döndürür. Örneğin, tüm cihaz etiketlerini almayı etkinleştirdikten sonra MEETS_STRONG_INTEGRITY
, MEETS_DEVICE_INTEGRITY
ve MEETS_BASIC_INTEGRITY
etiketlerini döndüren bir cihaza yalnızca MEETS_BASIC_INTEGRITY
etiketini döndüren bir cihazdan daha fazla güvenebilirsiniz. Her senaryoda sunucudan farklı yanıt verebilirsiniz.
Sunucunuzdan uygulamanıza bir dizi yanıt gönderme
Bir dizi karar sonucunu kopyalamak, her yanıt için sunucudan uygulamaya ikili bir İzin Ver/Reddet yanıtı göndermekten daha zordur. Örneğin, İzin ver, Sınırlamalarla izin ver, CAPTCHA tamamlandıktan sonra sınırlamalarla izin ver ve Reddet gibi bir dizi ilgili yanıt kullanabilirsiniz.
Kullanıcı gizliliğini korurken cihaz hatırlama özelliğini kullanarak tekrarlanan kötüye kullanımı tespit etme
Cihaz hatırlama, uygulamalara belirli bir cihazla ilişkili bazı özel verileri, kullanıcı gizliliğini koruyacak şekilde saklama ve geri çağırma olanağı tanır. Veriler, Google sunucularında saklandığı için uygulamanız yeniden yüklendikten veya cihaz sıfırlandıktan sonra bile uygulamanız, cihaz bazında verileri güvenli bir şekilde geri çağrılabilir. Bu sayede, geçmişte kötüye kullanım için kullanıldığını tespit ettiğiniz bir cihazı yeniden tanımlayarak harekete geçebilir ve cihazın tekrar kötüye kullanım için kullanılmasını engelleyebilirsiniz. Cihaz geri çağırma verilerini oluşturan üç değere kendi anlamınızı verebilirsiniz:
- Bunları en fazla üç ayrı işaret veya Boole değeri olarak kullanabilirsiniz. Örneğin, değerler bir cihazın hesap oluşturup oluşturmadığını, ücretsiz deneme süresini kullanıp kullanmadığını veya yüksek düzeyde kötüye kullanımda bulunup bulunmadığını gösterebilir.
- Alternatif olarak, değerlerin tüm durumlarını en fazla sekiz özel etikette birleştirebilirsiniz. Örneğin, üç değerin tümü değiştirilmediğinde varsayılan durum için bir etiket ve özel anlamlar içeren yedi etiket. Bu sayede, tanımladığınız davranışlara veya işlemlere göre tüm cihazları en fazla sekiz gruba ayırabilirsiniz. Bu senaryoda, üç
writeDates
arasında en son güncellenen, etiketi en son ne zaman güncellediğinizi gösterir.
Cihaz geri çağırma verileriyle çalışırken ön koşulları ve diğer hususları da göz önünde bulundurun.
Son cihaz etkinliğini kullanarak büyük ölçekli kötüye kullanımı tespit etme
Çok sayıda bütünlük jetonu isteyen cihazları bulmak için Play Integrity API'deki son cihaz etkinliği özelliğini kullanın. Yüksek hacimli etkinlik kötüye kullanımında bulunanlar genellikle gerçek cihazlardan geçerli onay sonuçları oluşturur ve bunları, root edilmiş cihazlara ve emülatörlere yönelik saldırıları otomatikleştirmek için botlara sağlar. Son cihaz etkinliği düzeyini kullanarak uygulamanızın son bir saat içinde söz konusu cihazda kaç onay oluşturduğunu kontrol edebilirsiniz.
İşleme alınabilir hata mesajlarını gösterme
Mümkün olduğunda, kullanıcıya faydalı hata mesajları göstererek sorunu düzeltmek için neler yapabileceklerini açıklayın. Örneğin, yeniden denemelerini, internet bağlantılarını etkinleştirmelerini veya Play Store uygulamasının güncel olup olmadığını kontrol etmelerini isteyin.
Beklenmedik sorunlar veya kesintiler için bir planınız olmalı.
Play durum kontrol panelinde Play Integrity API'nin hizmet durumuyla ilgili bilgilerin yanı sıra aksaklıklar ve kesintiler hakkında bilgiler gösterilir. Büyük ölçekli bir Play Integrity API kesintisi gibi olası olmayan bir durumda arka uç sunucunuzun nasıl çalışmasını istediğinizi önceden planlamanız gerekir. Arka uç sunucunuzun, cihazlara özel Android Platform Key Attestation anahtarlarının iptal edildiği durumlarda da çalışmaya hazır olması gerektiğini unutmayın.
Uçtan uca kurumsal sahtekarlık çözümlerini değerlendirin
Eksiksiz bir sahtekarlık ve bot yönetimi çözümü arayan Enterprise müşterileri, geliştiricilere sahtekarlık riski puanları sağlayan Android için SDK'lar içeren mobil cihazlar için reCAPTCHA Enterprise'ı satın alabilir. reCAPTCHA Enterprise, Play Integrity API sinyallerini otomatik olarak içerir ve bunları müşteriler için reCAPTCHA ağı ve uygulama sinyalleriyle birleştirerek kullanıma hazır, sorunsuz ve görünmez bir sahtekarlık yönetimi çözümü sunar. Ayrıca Play Integrity API'nin kullanılamadığı Android uygulamaları için de koruma sağlayabilir.
Yüksek değerli veya hassas özelliklere erişirken riskli trafiğe meydan okuma
Erişimi tamamen engellemek yerine Play Integrity API ile korumak için uygulamanızda veya oyununuzda yüksek değerli ya da hassas işlemleri belirleyin. Mümkün olduğunda, yüksek değerli işlemlerin devam etmesine izin vermeden önce riskli trafiğe meydan okuyun. Örneğin, uygulama erişim riski, ekranı kaydedebilecek bir uygulamanın çalıştığını gösterdiğinde, kullanıcının korumak istediğiniz işlevselliğe devam etmesine izin vermeden önce ekranı kaydedebilecek uygulamaları devre dışı bırakmasını veya kaldırmasını isteyin.
Hizmet şartları ve veri güvenliği
Play Integrity API'ye erişerek veya bu API'yi kullanarak Play Integrity API Hizmet Şartları'nı kabul etmiş olursunuz. Lütfen API'ye erişmeden önce geçerli tüm şartları ve politikaları okuyup anlayın.
Google Play'de, geliştiricilerin uygulamalarının veri toplama, paylaşma ve güvenlik yöntemlerini açıklayarak kullanıcılarınızı bilgilendirebileceği bir Veri Güvenliği bölümü bulunur. Veri formunuzu doldurmanıza yardımcı olması için Play Integrity API'nin verileri nasıl işlediği ile ilgili bu bilgilere göz atın.