Huawei Safety Detect: Cihazımızı güvenle kullanmamızı sağlayan API

Önder
Huawei Developers - Türkiye
4 min readSep 1, 2020

Herkese merhaba, bu yazımda sizlere Safety Detect’in ne olduğunu ve nasıl kullanıldığını anlatacağım.

Günümüzde birçok banka ve ticaret ile ilgili uygulamalar mevcut. Bu tarz uygulamalarda kullanıcının kendini güvende hissetmesi çok önemlidir. HMS Safety Detect kullanarak uygulamalarımızın ve telefonumuzun güvenliğini kolayca sağlayabiliriz.

Safety Detect nedir?

HMS’in bizlere sunduğu güçlü güvenlik yetenekleri sağlayan bir API’dir. SysIntegrity, AppsCheck, URLCheck, UserDetect ve WiFiDetect olmak üzere beş adet özelliği bulunmaktadır.

Şimdi bu özellikleri tek tek inceleyelim.

  1. SysIntegrity

Kulladığımız cihazın güvenli olup olmadığını kontrol eder. Örneğin, telefonun root erişimi olup olmadığı bu API ile kontrol edilebilir.

SysIntegrity, Trusted Execution Environment (TEE) içerisinde ve secure boot sırasında yürütülür. Sonuçları yüksek oranda güvenilirdir. Sonuçlar sertifika imzası talep eder. Sunucu, sonuçların imzalanması için X.509 digital certificate kullanır. Daha sonra JWS formatındaki imzalı sonuçları SysIntegrity API’ına gönderir. İmzalanmış sonuçlar değiştirilemez.

2. AppsCheck

Cihazdaki tüm uygulamaları kontrol eder, eğer kötü niyetli uygulamalar saptarsa, bunları liste halinde sunar.

→ %99 oranında kesinlik payı vardır.

→ Bilinmeyen tehditler, davranışlara göre tespit edilebilir.

3. URLCheck

Bu API ile belirli bir URL’in güvenilir olup olmadığı kontrol edilir. Tehditkar URL’lerin tespiti ile kullanıcılara güvenle internette gezinme olanağı sağlanır.

URL kontrolünü gerçek zamanlı olarak gerçekleştirir.

Kullanıcı bir URL’i ziyaret ettiğinde, bu API URL’in kötü niyetli olup olmadığını kontrol eder. Eğer kötü niyetli ise risk değerlendirmesi yapılır, kullanıcı uyarılır ve URL bloklanır.

4. UserDetect

Uygulamanın kullanıcısının sahte olup olmadığını kontrol eder. Kullanıcıyı tanımak ve doğrulamak için iki adet yol kullanır.

. Gerçek zamanlı risk analiz motoru ile kullanıcıyı tanıma: API ilgili verileri yetkilendirilmiş alanda toplar ve bunları bu motora yükler. Çıkan sonuca göre kullanıcının sahte olup olmadığı anlaşılır.

. Doğrulama kodları ile kullanıcıyı doğrulama: Eğer kullanıcı şüpheli veya riskli ise ikinci bir doğrulama için doğrulama kodu gönderilir.

5. WiFiDetect

Cihazın bağlandığı WiFi’ın güvenilir olup olmadığını kontrol eder. Bağlanılan WiFi’ın özellikleri ve bilgilerini kontrol ederek cihazı olabilecek saldırılardan korur.

Geliştirme Süreci

Android Studio projemizi oluşturduktan sonra build.gradle dosyalarını düzenliyoruz.

Safety Detect özelliğini AppGallery Connect’ten etkinleştiriyoruz.

agconnect-services.json dosyasını projemizin app dizinine ekliyoruz ve projemizi sync ediyoruz.

Safety Detect API’lerini kullanmadan önce HMS core’un gerekli versiyonu kullanıcının cihazında yüklü olması gerekir. Aksi durumda API’ler çağırıldığı an uygulama çökebilir. Bu durumun önüne geçilmesi için kullanıcıya HMS Core’un güncellenmesi gerektiği bildirilmelidir.

Aşağıdaki kod HMS Core’un gerekli versiyonunun yüklü olup olmadığını kontrol eder ve sonuca göre gerekli adımlar uygulanmalıdır.

SysIntegrity

API’ı çağırmak için izlenilmesi gereken adımlar şunlardır:

  1. Bir “nonce değeri” oluşturmak.
  2. Safety Detect SysIntegrity API’sini kullanmak.
  3. Dönen sonucu kontrol etmek.

Nonce değeri oluşturmak:

Bu değer, API çağırılırken gönderilen random oluşturduğumuz bir değerdir. 16–66 byte arasında bir değer içermelidir.

Safety Detect SysIntegrity API’sini kullanmak:

Bu API 2 parametre alır: nonce değeri ve appID. Bu parametrelerle sysIntegrity fonksiyonu çağırılır.

Dönen sonucu kontrol etmek:

getResult fonksiyonu ile sonucu istediğimizde bize JWS (Json Web Signature) formatında bir cevap döner. Bu sonucu parse edip “basicIntegrity” değerine bakılır. Bu değerin sonucuna göre gerekli işlemlerimizi gerçekleştiririz. Bu değerin false olması bize sistem bütünlüğünün sağlıklı olmadığını belirtir.

AppsCheck

Bu API bizlere cihazdaki riskli ve tehdit içeren uygulamaların listesini verir. Bu liste boş dönerse cihazımızda tehlikeli bir uygulama bulunmamaktadır. Eğer liste doluysa cihazda potansiyel olarak tehdit unsuru uygulamalar bulunmaktadır. Listedeki bu uygulamaları şu özelliklerine ulaşabiliriz:

→ APK ismi

→ APK SHA256

→ APK kategorisi

URLCheck

Ziyaret edilen URL’lerin tehlikeli olup olmadıklarını kontrol eder. Bunu yapmak için:

  1. URLCheck API başlatılır.
  2. URLCheck API’ı çağırılır.
  3. URLCheck oturumu kapatılır.

initUrlCheck fonksiyonu ile API başlatılır.

UrlCheckThreat sınıfında 2 adet tehdit türü bulunmaktadır: Malware ve Phishing

urlCheck fonksiyonu ile API çağırılır. Fonksiyonda URL tehdit türlerini belirtiriz.

getURLCheckResponse fonksiyonu bize bir liste verir. Eğer bu liste boş ise URL’ler tehlikeli değildir. Eğer liste doluysa getUrlCheckResult fonksiyonu ile tehdit türüne bakılabilir.

Son olarak shutdownUrlCheck fonksiyonu ile oturum kapatılır.

UserDetect

Bu API, çoklu kayıt, kimlik bilgisi doldurma saldırıları gibi işleri önlemek için kullanılır.

UserDetect API’sini kullanmak için:

  1. Öncelikle userDetection fonksiyonu ile istek gönderilir ve cevap olarak bize response token gönderilir.
  2. Bu response token’i cloud’a göndererek kullanıcı doğrulama sonucu elde edilir.

initUserDetect fonksiyonu ile initialize edilir.

userDetection fonksiyonu ile kullanıcı tespiti için istek gönderilir. appId bu fonksiyonun parametresidir.

Response token cloud’a gönderilir ve dönen cevap içerisindeki “success” değeri bize kullanıcının sahte olup olmadığını belirtir. Eğer sonuç true ise kullanıcı sahte değildir.

WiFiDetect

Bu API, ARP, man-in-the-middle, DNS hijacking gibi saldırıları tespit eder. Böyle bir durumda operasyonu kesebilir veya kullanıcıya devam edip etmeyeceğini sorar.

getWifiDetectStatus fonksiyonu ile API çağırılır. Dönen cevaptaki değerlerden bahsedecek olursak:

  • -1: WiFi durumu öğrenilemedi
  • 0: WiFi bağlı değil
  • 1: Bağlı olan WiFi güvenli
  • 2: Bağlı olan WiFi güvenli değil

Safety Detect’in bu özelliklerinden yararlanarak, kullanıcıları güvenlik açısından olası riskli durumlara karşı uyarabilir, cihazlarını güvenli bir şekilde kullanmalarını sağlayabiliriz.

Referanslar

--

--