Magisk artık uygulamalardan bootloader kilidinin açılmasını gizleyemeyebilir

click fraud protection

Magisk'in geliştiricisi, Google'ın bir cihazın önyükleyici kilidinin açık olup olmadığını belirlemek için donanım kontrollerini kullanmaya başlamış olabileceğini keşfetti.

XDA Tanınmış Geliştirici Topjohnwu'nin "Magisk" projesi, Android topluluğunda esasen "root" ile eşanlamlı hale geldi. Bu kadar popüler olmasının ana nedenlerinden biri, kullanıcının cihazında değişiklik yaptığı gerçeğini gizleyebilmesidir. Ancak Google, Magisk'in önyükleyici kilit açma durumunu uygulamalardan gizleme yeteneğini kısıtlıyor olabilir.

Telefonunuzu rootlamak için genellikle değiştirilmiş önyükleme görüntülerini flaşlamanıza izin veren önyükleyicinin kilidini açmanız gerekir. Magisk, önyükleme görüntüsünü önyükleyici durumunu ve/veya Doğrulanmış Önyükleme durumu kontrollerini taklit edecek şekilde değiştirdiği için bu gereklidir. Google Play Hizmetleri'nin bir parçası olan Google SafetyNet Tasdik API'si, bir uygulamanın kurcalanmış bir cihazda çalışıp çalışmadığını bildirmek için kullanılır; SafetyNet API, önyükleyicinin kilidinin açıldığını tespit ederse, "Temel Bütünlük" kontrolü için bir hata durumu döndürecektir. Bu kontrolü geçemeyen cihazlar, cihazın bütünlüğünü belirlemek için SafetyNet API'sini kullanan uygulamalardan kilitlenebilir; bu tür uygulamalar genellikle bankacılık uygulamalarını, ödeme uygulamalarını (Google Pay gibi) ve birçok çevrimiçi oyunu (Pokémon Go gibi) içerir. Bununla birlikte, SafetyNet API şimdiye kadar yalnızca cihaza müdahale edilip edilmediğini belirlemek için yazılım kontrolleri kullandığından, Magisk basitçe sahtecilik yapabilir. Google Play Hizmetleri ve diğer kullanıcı alanlarından daha düşük bir düzeyde ve daha yüksek ayrıcalıklara sahip olduğundan, önyükleyici ve/veya Doğrulanmış Önyükleme durumu uygulamalar. Topjohnwu'nun açıkladığı gibi, MagiskHide "tespit süreci için yalıtılmış bir 'güvenli ortam' [oluşturur] ve Google'ın API'sinden geçerek bir

yasal SafetyNet sonucu cihazın gerçek durumunu yansıtmıyor."

Ancak son zamanlarda kullanıcılar, önyükleyici kilidi açılmış cihazlarının, önyükleme görüntüsünü yamalamak için Magisk'i kullanmalarına rağmen SafetyNet'in Temel Bütünlük kontrolünde başarısız olduğunu fark ettiler. Topjohnwu'ya göre bunun nedeni, Google'ın, önyükleme görüntüsüne müdahale edilmediğini doğrulamak için donanım düzeyinde anahtar doğrulama uygulaymış olabilmesidir. Özellikle bu, Google Play Hizmetlerinin SafetyNet sunucularına değiştirilmemiş bir anahtar deposu sertifikası [gönderdiği], meşruiyetini doğruladığı ve kontrol ettiği anlamına gelir. Cihazınızın önyüklemenin etkin olup olmadığını (önyükleyici durumu) doğrulayıp doğrulamadığını bilmek için sertifika uzantısı verileri." Bu, artık kullanılamayacağı anlamına gelir. Önyükleyicinin kilidinin açık olduğu gerçeğini gizlemek mümkün; bu da Google Pay ve Pokémon Go gibi uygulamaların çalışmamasına neden olacak normalde.

Topjohnwu'nun belirttiği gibi, SafetyNet'in önyükleyici kilit açma durumunu kontrol etme şeklindeki bu değişiklik, Google Play Hizmetlerinde bulunan SafetyNet API'sine yönelik sunucu tarafında yapılan bir güncelleme aracılığıyla gerçekleştirilir. Ancak her kullanıcı bu güncellenmiş SafetyNet kontrollerinde başarısız olamadığından, yeni donanım düzeyindeki anahtar doğrulaması henüz geniş çapta uygulanmayabilir.

Topjohnwu'nun defalarca teknik engelleri aştığını gördük. Google, SafetyNet'te sık sık topjohnwu'nun Magisk'te keşfedip atladığı yeni kontroller sunar. Android'in her yeni sürümü, bölüm yapısında veya önyükleme görüntüsünde değişiklikler getirir; topjohnwu'nun değişiklikleri incelemesini ve ardından yeni bir yama yöntemi uygulamasını gerektirir. Ancak topjohnwu bile bu sefer bir geçiş yolu bulmakta zorlanabilir.

Bunun nedeni, bu seferki geçici çözümün, özel anahtarı almak için cihazların Güvenilir Yürütme Ortamı (TEE) donanım yazılımını hacklemeyi gerektirmesidir. Ancak, inanılmaz derecede güvenli olacak şekilde tasarlanmış ürün yazılımındaki bir güvenlik açığının bulunmasını gerektirdiğinden bunu yapmak inanılmaz derecede zordur. Aslında pek çok şirket, böyle bir güvenlik açığının bulunması durumunda yüzbinlerce dolarlık ödeme teklif ediyor. Örneğin Google, Pixel'in Güvenilir Yürütme Ortamındaki uzaktan kod yürütme güvenlik açıkları için 250.000 ABD doları ödüyor ve 1.000.000$'a kadar güvenlik açıkları için Titan M güvenlik çipi. Özel anahtar bir şekilde sızdırılsa bile pek bir işe yaraması pek olası değildir çünkü Google anahtarı uzaktan iptal edebilir bu nedenle cihazların bütünlüğünü doğrulamak için kullanılamaz.

Donanım düzeyinde anahtar doğrulaması SafetyNet için geniş çapta zorunlu hale getirildikten sonra, Android 8.0 Oreo veya üstünü çalıştıran kilidi açılmış önyükleyicilere sahip çoğu cihaz, SafetyNet'in Temel Bütünlük kontrolünü geçemez. Bunun nedeni, Android 8.0 Oreo veya üzeri sürümle başlatılan tüm cihazların TEE'de uygulanmış bir donanım anahtar deposuna sahip olmasının gerekmesidir. Günümüzde bazı cihazlarda, TEE'yi ana işlemciden uzaklaştırarak kullanımı daha da zorlaştıran özel donanım güvenlik modülleri (HSM'ler) bile bulunmaktadır; Pixel 4'teki Titan M ve Samsung'un yeni güvenlik çipi Galaxy S20'de bunun örnekleri var.

Topjohnwu ayrıca açıklıyor diğer potansiyel geçici çözümlerin ya imkansız ya da oldukça zorlayıcı olduğu. Google Play Hizmetlerinde SafetyNet Tasdik API'sini değiştirmek için Xposed Çerçevesini kullanmak muhtemelen işe yaramayacaktır çünkü "uygun SafetyNet kontrolleri, sonuçları [the] üzerinde değil uzak bir sunucuda doğrulayacaktır. kod enjeksiyon çerçeveleri tarafından manipüle edilebilecek bir cihaz." Ayrıca, Google Play Hizmetleri oldukça karmaşıktır, bu da böyle bir Xposed Modülünün oluşturulmasını ilk başta inanılmaz derecede zorlaştırır. yer. SafetyNet yanıtları "Google sunucularından geldiğinden ve Google'ın özel anahtarıyla imzalandığından", SafetyNet test sonucunun sahteleştirilmesi de mümkün olmayacaktır.

Google, birkaç yıldır donanım destekli anahtar doğrulamayı kullanarak SafetyNet kontrollerini güçlendirme olanağına sahip. 3 yıl boyunca bunu yapmaktan kaçınmaları, kullanıcıların bankacılık uygulamalarını kullanma yeteneğinden ödün vermeden root ve Magisk Modüllerinin keyfini çıkarmasına olanak tanıdı. Ancak öyle görünüyor ki Magisk'in önyükleyici kilit açma durumunu etkili bir şekilde gizleme yeteneği yakında sona erecek gibi görünüyor. Yıllardır beklediğimiz bir değişiklik ama sonunda yürürlüğe girdiğini görmek bizi üzüyor. Google'ın, durum kontrolünün donanım tabanlı olarak kullanılıp kullanılmadığını döndürmek için SafetyNet Onaylama API'sini güncellemesini umuyoruz. Bu, uygulama geliştiricilerinin, kilidi açan tüm kullanıcıları engellemek isteyip istemediklerine karar vermelerine olanak tanıyacaktır. önyükleyici.


Daniel Micay'a (@) teşekkürlerDanielMicay) bu konuyla ilgili katkılarından dolayı!