Çevrenin güvenliğini sağlayın

Google, uygulamanızın güvenli ve güvenilir bir ortamda çalışıp çalışmadığını tespit etmenize yardımcı olacak bir dizi API ve hizmet sunar. Bu sistemin merkezinde, potansiyel olarak riskli ve sahtekarlık içeren etkileşimleri tespit ederek etkileşimlerin gerçek olup olmadığını kontrol etmeye yardımcı olan Play Integrity API yer alır. Play Integrity API, uygulama ve cihaz bütünlüğünün yanı sıra artık erişim ve erişilebilirlik riskleri, Google Play Protect ve son cihaz etkinliği hakkında da bilgi sunuyor. Android platformu, sahtekarlıkla mücadele stratejinizi daha da güçlendirmek için uygulamanızla alakalı olabilecek belirli senaryolara yönelik API'ler sunar.

Play Integrity API

Play Integrity API özellikleri

Play Integrity API, uygulamanızın üzerinde çalıştığı cihazın güvenlik durumu hakkında bilgi edinmenizi sağlar. Bu sayede, hassas bilgilere doğru kullanıcının eriştiğinden emin olabilirsiniz.

Etkileşimlerin ve sunucu isteklerinin güvenilir bir ortamda orijinal uygulama ikili programınızdan gelip gelmediğini kontrol etmenize yardımcı olur:

  • Orijinal uygulama ikili programı: Google Play tarafından tanınan değiştirilmemiş ikili programınızla etkileşim kurup kurmadığınızı belirleyin.
  • Orijinal Play yüklemesi: Mevcut kullanıcı hesabının lisanslı olup olmadığı, yani kullanıcının uygulamanızı veya oyununuzu Google Play'den yükleyerek ya da ödeme yaparak edinip edinmediğini belirleyin.
  • Orijinal Android cihaz: Uygulamanızın çalıştığı cihazın, Google Play Hizmetleri tarafından desteklenen orijinal bir Android cihaz olup olmadığını belirleyin.
  • Bilinen kötü amaçlı yazılımlardan arındırılmış: Google Play Protect'in açık olup olmadığını ve cihazda riskli ya da tehlikeli uygulamalar bulup bulmadığını belirleyin.
  • Diğer uygulamalar tarafından erişim riski düşük: Ekranı kaydedebilecek veya cihazı ve uygulamanıza yapılan girişleri kontrol edebilecek başka uygulamaların çalışıp çalışmadığını belirleyin.

Bu, dolandırıcılığı azaltmaya nasıl yardımcı olur?

Kullanıcı uygulamanızda önemli bir işlem gerçekleştirdiğinde Play Integrity API'yi çağırabilirsiniz. Aksi takdirde, uygulamanızın arka uç sunucusu saldırılara ve sahtekarlığa karşı korunmak için ne yapılması gerektiğine karar verebilir. Örneğin, ek kullanıcı doğrulaması isteyebilir veya hassas işlevlere erişimi engelleyebilirsiniz.

Play Integrity API karar akışı

Uygulamaya Erişim Riski

Uygulama erişim riski sinyali, uygulamanız çalışırken veya erişilebilirlik izinlerini kullanarak uygulamanıza erişirken cihazdaki diğer uygulamaların ekranı görüntüleyip kaydedebileceğini değerlendirmenize yardımcı olmak için kullanıma sunuldu. Doğrulanmış erişilebilirlik uygulamaları bu kararların dışında tutulur. Uygulama erişimi riski, geliştiricilerin uygulamalarını korumasına yardımcı olurken kullanıcı gizliliğini de korur. Bunun nedeni, istekte bulunan uygulamanın yüklü uygulamaların kimliğini almaması ve kararın kullanıcı veya cihaz tanımlayıcılarıyla bağlantılı olmamasıdır.

Kullanıcının belirli uygulamaları kapatmasını gerektiren telefonun ekran görüntüsü.

Bu ortak çalışma sayesinde, müşterilerimizi daha etkili bir şekilde korumak için daha ayrıntılı analizler sunmamızı sağlayacak sinyalleri alabiliyoruz.
—Nubank, erken erişim iş ortağı

Uygulamaya erişim riski farklı risk seviyelerine sahiptir:

  • Kaydeden yanıtı, ekranı kaydedebilecek başka uygulamaların çalıştığı anlamına gelir.
  • Kontrol yanıtı, cihazı kontrol edebilen başka uygulamaların çalıştığı anlamına gelir. Bu nedenle, hem ekranı kaydedebilir hem de uygulamanıza yapılan girişleri kontrol edebilirler.

Uygulamaya erişim riski zorunlu kılma

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.

Bu tabloda bazı örnek kararlar yer almaktadır:

Örnek uygulama erişim riski kararı yanıtı Yorum
appsDetected:
["KNOWN_INSTALLED"]
Yalnızca Google Play tarafından tanınan veya cihaz üreticisi tarafından sistem bölümüne önceden yüklenmiş uygulamalar yüklüdür. Ekranın kaydedilmesine, kontrol edilmesine veya yer paylaşımlı kararlara neden olacak hiçbir uygulama çalışmıyor.
appsDetected:
["KNOWN_INSTALLED",
"UNKNOWN_INSTALLED",
"UNKNOWN_CAPTURING"]
Google Play tarafından yüklenen veya cihaz üreticisi tarafından sistem bölümüne önceden yüklenen uygulamalar vardır. Ekranı görüntülemek veya diğer giriş ve çıkışları yakalamak için kullanılabilecek başka uygulamalar çalışıyor ve izinleri etkinleştirilmiş.
appsDetected:
["KNOWN_INSTALLED",
"KNOWN_CAPTURING",
"UNKNOWN_INSTALLED",
"UNKNOWN_CONTROLLING"]
Ekranı görüntülemek veya diğer giriş ve çıkışları yakalamak için kullanılabilecek izinlerin etkinleştirildiği Play veya sistem çalışıyor. Ayrıca, cihazı kontrol etmek ve uygulamanıza doğrudan girişleri kontrol etmek için kullanılabilecek izinlerin etkinleştirildiği başka uygulamalar da çalışıyor.
appAccessRiskVerdict: {} Gerekli bir koşul karşılanmadığı için uygulama erişimi riski değerlendirilmemiştir. Örneğin, cihaz yeterince güvenilir olmayabilir.

Play Protect sinyali

Google Play Protect sinyali, uygulamanıza Google Play Protect'in açık olup olmadığını ve cihazda bilinen zararlı uygulamalar bulup bulmadığını bildirir.

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

Uygulamanız veya kullanıcılarınızın verileri için kötü amaçlı yazılımlar özel bir endişe kaynağıysa bu kararı kontrol edebilir ve kullanıcılarınızdan devam etmeden önce Play Protect'i etkinleştirmelerini veya zararlı uygulamaları kaldırmalarını isteyebilirsiniz.

Play Protect'i açma iletişim kutusu

playProtectVerdict aşağıdaki değerlerden birine sahip olabilir:

Sonuç Açıklama Önerilen işlem

NO_ISSUES

Play Protect etkindir ve cihazda uygulama ile ilgili herhangi bir sorun tespit edilmemiştir.

Play Protect etkin ve herhangi bir sorun tespit etmedi. Bu nedenle kullanıcının herhangi bir işlem yapması gerekmiyor.

NO_DATA

Play Protect etkindir ancak henüz tarama yapılmamıştır. Cihaz ya da Play Store uygulaması kısa süre önce sıfırlanmış olabilir.

Play Protect etkin ve herhangi bir sorun tespit etmedi. Bu nedenle kullanıcının herhangi bir işlem yapması gerekmiyor.

POSSIBLE_RISK

Play Protect devre dışı bırakılmışsa

Play Protect etkin ve herhangi bir sorun tespit etmedi. Bu nedenle kullanıcının herhangi bir işlem yapması gerekmiyor.

MEDIUM_RISK

Play Protect etkindir ve cihazda potansiyel zararlı uygulamaların yüklü olduğunu tespit etmiştir.

Risk toleransınıza bağlı olarak, kullanıcıdan Play Protect'i başlatmasını ve Play Protect uyarılarıyla ilgili işlem yapmasını isteyebilirsiniz. Kullanıcı bu şartları karşılayamıyorsa sunucu işleminden engellenebilir.

HIGH_RISK

Play Protect etkindir ve cihazda tehlikeli uygulamaların yüklü olduğunu tespit etmiştir.

Risk toleransınıza bağlı olarak, kullanıcıdan Play Protect'i başlatmasını ve Play Protect uyarılarıyla ilgili işlem yapmasını isteyebilirsiniz. Kullanıcı bu şartları karşılayamıyorsa sunucu işlemine erişimini engelleyebilirsiniz.

UNEVALUATED

Play Protect kararı değerlendirilmemiştir.

Bu durum aşağıdakiler dahil olmak üzere çeşitli nedenlerden kaynaklanabilir:

  • Cihaz yeterince güvenilir değildir.
  • Yalnızca oyunlar: Kullanıcı hesabı LICENSED değildir.

Son cihaz etkinliği

Ayrıca, son cihaz etkinliğini de etkinleştirebilirsiniz. Bu özellik, uygulamanızın son bir saat içinde belirli bir cihazda kaç kez bütünlük jetonu istediğini belirtir. Uygulamanızı etkin bir saldırının göstergesi olabilecek beklenmedik hiperaktif cihazlara karşı korumak için son cihaz etkinliğini kullanabilirsiniz. Uygulamanızın, tipik bir cihaza yüklendiğinde her saat kaç kez bütünlük jetonu isteyeceğini tahmin ettiğinize bağlı olarak her bir son cihaz etkinliği düzeyine ne kadar güveneceğinize karar verebilirsiniz.

recentDeviceActivity almayı etkinleştirirseniz deviceIntegrity alanında iki değer bulunur:

deviceIntegrity: {
  deviceRecognitionVerdict: ["MEETS_DEVICE_INTEGRITY"]
  recentDeviceActivity: {
    // "LEVEL_2" is one of several possible values.
    deviceActivityLevel: "LEVEL_2"
  }
}

Öncelikle, uygulamanızın tüm cihazlarınızdaki tipik cihaz etkinliği düzeylerini görmek için verileri kontrol etmeniz gerekir. Ardından, bir cihaz çok fazla istekte bulunduğunda uygulamanızın nasıl yanıt vermesi gerektiğine karar verebilirsiniz. Etkinlik biraz yüksekse kullanıcıdan daha sonra tekrar denemesini isteyebilirsiniz. Etkinlik çok yüksekse daha güçlü bir yaptırım işlemi uygulamak isteyebilirsiniz.

Standart ve klasik istekler

Play Integrity'yi uygularken iki tür isteği göz önünde bulundurmanız önemlidir. En hızlı yanıtı almak için çoğu durumda standart istekleri kullanmanız gerekir. Cihaz tasdik kaydına karşı yeni oluşturulmuş bir istek gerektiğinde ise klasik istekler kullanılmalıdır.

Klasik istek

Standart istek

İstekler daha uzun sürer ve daha seyrek yapılmalıdır.

Örneğin, yüksek değere sahip veya hassas bir işlemin gerçek olup olmadığını kontrol etmek için tek seferlik olarak kullanılabilir.

Seyrek kullanın.

İstekler düşük gecikmelidir ve isteğe bağlı olarak kullanılabilir.

Standart istek iki bölümden oluşur:

  • Bütünlük jetonu sağlayıcıyı hazırlama (bir defaya mahsus)
  • Bütünlük jetonu isteme (talep üzerine)

İsteğe bağlı kullanma

Standart ve klasik istekler hakkında daha fazla bilgi için Play Integrity dokümanlarını inceleyin.

Uygulama

Play Integrity API'yi kullanmaya başlamak için:

Play Integrity API, varsayılan olarak uygulama başına günde 10.000 isteğe izin verir. Günlük maksimum istek sayınızı artırmak istediğinizi belirtmek için bu talimatları uygulayın. Günlük maksimum istek sayınızın artırılması için uygulamanızın Play Integrity API'yi doğru şekilde uygulaması ve diğer dağıtım kanallarının yanı sıra Google Play'de de kullanıma sunulması gerekir.

Play Integrity API ile ilgili dikkat edilmesi gereken noktalar

Otomatik Bütünlük Koruması (API >= 23)

Otomatik bütünlük koruması, uygulamanızı yetkisiz değiştirme ve yeniden dağıtım şeklinde gerçekleştirilen bütünlüğün kötüye kullanımına karşı koruyan bir kurcalama önleyici kod koruma hizmetidir. Veri bağlantısı olmadan çalışır. Test öncesinde geliştiricinin herhangi bir işlem yapması ve arka uç sunucu entegrasyonu gerekmez.

Bu, dolandırıcılığı azaltmaya nasıl yardımcı olur?

Otomatik bütünlük korumasını etkinleştirdiğinizde Google Play, uygulamanızın koduna kontroller ekler ve gelişmiş kod karartma ile tersine mühendisliği önleme teknikleri kullanarak bu kontrollerin kaldırılmasını zorlaştırır. Çalışma zamanında koruma, uygulamanızın değiştirilip değiştirilmediğini veya yeniden dağıtılıp dağıtılmadığını kontrol eder:

  • Yükleyici denetimi başarısız olursa kullanıcılardan uygulamanızı Google Play'den indirmeleri istenir.
  • Değişiklik denetimi başarısız olursa uygulama çalışmaz.

Bu sayede, kullanıcıları uygulamanızın değiştirilmiş sürümlerinden koruyabilirsiniz.

Uygulama

Otomatik Bütünlük Koruması şu anda yalnızca belirli Play iş ortakları tarafından kullanılabilir. Bu özellik Google Play Console'unuzda kullanılamıyorsa ve erişim elde etmek istiyorsanız Google Play geliştirici destek ekibiyle iletişime geçin.

Sürüm oluştururken veya Google Play ile Koruma sayfasında korumayı etkinleştirebilirsiniz. Otomatik Bütünlük Koruması'nı kullanabilmeniz için uygulamanızın Play Uygulama İmzalama'yı kullanması gerekir.

Sürümü üretime yükseltmeden önce korumalı uygulamanızı test ettiğinizden emin olun.

Göz önünde bulundurulması gereken noktalar

  • Korumasız uygulama sürümlerini yayınlamama
  • Kurcalama koruması çözümlerini bir arada kullanırken dikkatli olma
  • Korunan uygulamanızı üretim sürümünde yayınlamadan önce test etme
  • Kilitlenme sayısındaki artışları normal şekilde izleme
  • Uygulamanızın kırılmış sürümlerini Google Play'e bildirebilirsiniz.