Huawei Safety Detect: Cihazımızı güvenle kullanmamızı sağlayan API
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.
- 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:
- Bir “nonce değeri” oluşturmak.
- Safety Detect SysIntegrity API’sini kullanmak.
- 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:
- URLCheck API başlatılır.
- URLCheck API’ı çağırılır.
- 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:
- Öncelikle userDetection fonksiyonu ile istek gönderilir ve cevap olarak bize response token gönderilir.
- 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.