Ç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. Bunun en önemlisi, riskli ve sahtekarlık amaçlı olabilecek etkileşimleri tespit ederek etkileşimlerin gerçekliğinin kontrol edilmesine yardımcı olan Play Integrity API'dir. 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 bilgi de sunuyor. Android platformu, sahtekarlıkla mücadele stratejinizi daha da sağlamlaştırmak amacıyla uygulamanızla ilgili olabilecek belirli senaryolara yönelik API'ler sunar.

Play Integrity API

Play Integrity API özellikleri

Play Integrity API, uygulamalarının çalıştığı cihazın güvenlik durumu hakkında bilgi edinmenizi sağlar. Böylece hassas bilgilere doğru kullanıcının eriştiğinden emin olabilirsiniz.

Etkileşimlerin ve sunucu isteklerinin güvenilir bir ortamda gerçek 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 destekli 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ın erişim riskinin düşük olması: Ekranı yakalayabilecek veya cihazı ve uygulamanıza yapılan girişleri kontrol edebilecek başka uygulamaların çalışıp çalışmadığını belirleyin.

Bu yöntemle sahtekarlığın azaltılmasına nasıl yardımcı olur?

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

Play Integrity API karar akışı

Uygulamaya Erişim Riski

Uygulamanız çalışırken ya da erişilebilirlik izinlerini kullanarak uygulamanıza erişirken bir cihazdaki diğer uygulamaların ekranı görüntüleyip yakalayamayacağını veya uygulamanıza erişip erişemeyeceğini değerlendirmenize yardımcı olmak için Uygulama Erişim Riski sinyali kullanıma sunuldu. Doğrulanmış erişilebilirlik uygulamaları otomatik olarak bu kararlardan hariç tutulur. Uygulama erişim riski, istekte bulunan uygulama yüklü uygulamaların kimliğini elde edemediği ve karar kullanıcı veya cihaz tanımlayıcılarına bağlı olmadığı için geliştiricilerin kullanıcı gizliliğini korurken uygulamalarını korumalarına yardımcı olur.

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 derin analizler sunmak üzere gereken sinyalleri elde edebiliyoruz.
—Nubank, erken erişim iş ortağı

Uygulamaya Erişim Riski farklı risk seviyelerine sahiptir:

  • Yakalama yanıtı, ekranı kaydedebilen diğer uygulamaların çalıştığı anlamına gelir.
  • Kontrol eden bir yanıt, cihazı kontrol edebilen diğer uygulamaların çalıştığı anlamına gelir. Dolayısıyla bu uygulamalar hem ekranı yakalayabilir hem de uygulamanızdaki girişleri kontrol edebilir.

Uygulamaya erişim riski şu anda herkese açık beta sürümündedir ve önümüzdeki aylarda genel kullanıma sunulacaktır.

Uygulamaya Erişim Riski yaptırımı

Erişimi tamamen reddetmek yerine Play Integrity API ile koruma sağlamak için uygulamanızda veya oyununuzda 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ği zorlayın. Örneğin, uygulama erişim riski, ekranı yakalayabilecek bir uygulamanın çalıştığını belirtirse kullanıcının korumak istediğiniz işlevlere devam etmesine izin vermeden önce kullanıcıdan ekranı kaydedebilen uygulamaları devre dışı bırakmasını veya kaldırmasını isteyin.

Aşağıdaki tabloda bazı örnek kararlar verilmiştir:

Uygulama erişim riski kararıyla ilgili örnek yanıt Yorumlama
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 vardır. Yakalama, kontrol etme veya yer paylaşımı kararlarıyla sonuçlanacak herhangi 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üklenmiş uygulamalar vardır. Çalışmakta olan ve ekranı görüntülemek ya da diğer giriş ve çıkışları yakalamak için kullanılabilecek izinleri etkinleştirilmiş başka uygulamalar vardır.
appsDetected:
["KNOWN_INSTALLED",
"KNOWN_CAPTURING",
"UNKNOWN_INSTALLED",
"UNKNOWN_CONTROLLING"]
Ekranı görüntülemek ya da diğer giriş ve çıkışları yakalamak için kullanılabilecek izinleri etkinleştirilmiş Play uygulaması veya sistem çalışıyor. Cihazı kontrol etmek ve uygulamanıza yapılan girişleri doğrudan kontrol etmek için kullanılabilecek, izinleri etkinleştirilmiş, çalışan başka uygulamalar da vardır.
appAccessRiskVerdict: {} Koşullardan biri karşılanmadığı için uygulamaya erişim riski değerlendirilmez. Örneğin, cihaz yeterince güvenilir değildi.

Play Protect Sinyali

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

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

Kötü amaçlı yazılım, uygulamanız veya kullanıcılarınızın verileri açısından özellikle endişeliyse bu kararı kontrol edip kullanıcılarınızdan devam etmeden önce Play Protect'i etkinleştirmelerini veya zararlı uygulamaları kaldırmalarını isteyebilirsiniz.

Play Protect iletişim kutusunu aç

playProtectVerdict, şu 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 açık ve herhangi bir sorun tespit etmediğinden kullanıcının işlem yapması gerekmez.

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 açık ve herhangi bir sorun tespit etmediğinden kullanıcının işlem yapması gerekmez.

POSSIBLE_RISK

Play Protect devre dışı.

Play Protect açık ve herhangi bir sorun tespit etmediğinden kullanıcının işlem yapması gerekmez.

MEDIUM_RISK

Play Protect etkinleştirildi ve cihazda potansiyel zararlı uygulamalar yüklü olduğu tespit edildi.

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. Bu gereksinimleri karşılayamazsa kullanıcıyı sunucu işleminde engelleyebilirsiniz.

HIGH_RISK

Play Protect etkinleştirildi ve cihazda tehlikeli uygulamaların yüklü olduğunu tespit etti.

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. Bu gereksinimleri karşılayamazsa kullanıcıyı sunucu işleminde engelleyebilirsiniz.

UNEVALUATED

Play Protect kararı değerlendirilmedi.

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

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

Son cihaz etkinliği

Ayrıca, uygulamanızın son bir saat içinde belirli bir cihazda kaç kez bütünlük jetonu istediğini gösteren son cihaz etkinliğine kaydolabilirsiniz. Uygulamanızı, aktif 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 kaç kez bir bütünlük jetonu istemesini beklediğinize bağlı olarak son cihaz etkinliği düzeylerine ne kadar güveneceğinize karar verebilirsiniz.

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

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

Öncelikle, 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 istek yaptığında uygulamanızın nasıl yanıt vereceğ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 karşılaştırması

Play Integrity'yi uygularken iki istek türünü dikkate almanız önemlidir. En hızlı yanıtı sağlamak için çoğu durumda standart istekleri kullanmanız gerekir. Cihaz onay kaydına göre yeni oluşturulmuş bir istek gerektiğinde klasik istekler kullanılmalıdır.

Klasik istek

Standart istek

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

Örneğin, son derece değerli veya hassas bir işlemin gerçek olup olmadığını kontrol etmek için zaman zaman yapılan tek seferlik bir işlem olarak.

Nadiren kullanın.

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

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

  • Bütünlük jetonu sağlayıcıyı hazırlama (tek seferlik)
  • Bütünlük jetonu isteme (isteğe bağlı)

İsteğe bağlı kullanım.

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

Uygulama

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

Play Integrity API, uygulama başına günde 10 bine kadar 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ızda artışa uygun olmak 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 kullanılabilir olması gerekir.

Play Integrity API ile ilgili dikkat edilmesi gereken noktalar

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

Otomatik Bütünlük Koruması, yetkisiz değiştirme ve yeniden dağıtım şeklinde gerçekleştirilen bütünlüğün kötüye kullanımına karşı uygulamanızı koruyan, kurcalama karşıtı 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 yöntemle sahtekarlığın azaltılmasına nasıl yardımcı olur?

Otomatik Bütünlük Koruması'nı etkinleştirdiğinizde Google Play, uygulamanızın koduna kontroller ekler. Ayrıca, gelişmiş kod karartma ve tersine mühendisliği önleme teknikleriyle 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 Google Play'de uygulamanızı indirmeleri istenir
  • Değişiklik denetimi başarısız olursa uygulama çalışmaz

Bu, kullanıcıları uygulamanızın değiştirilmiş sürümlerinden korumaya yardımcı olur.

Uygulama

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

Korumayı sürüm oluştururken veya Uygulama bütünlüğü sayfasından (Sürüm > Uygulama bütünlüğü) etkinleştirebilirsiniz. Otomatik Bütünlük Koruması için uygulamanızın Play Uygulama İmzalama özelliğini kullanması gerekir.

Korunan uygulamanızı üretim sürümüne tanıtmadan önce test ettiğinizden emin olun.

Göz önünde bulundurulması gereken noktalar

  • Korumasız uygulama sürümlerini yayınlamayın
  • Kurcalama koruması çözümlerini bir arada kullanırken dikkatli olma
  • Korunan uygulamanızı üretim sürümüne yayınlamadan önce test etme
  • Kilitlenmelerdeki artış için istatistikleri normal şekilde izleyin
  • Uygulamanızın kırılmış sürümlerini Google Play'e bildirebilirsiniz