Android'in yükleyici uygulamasındaki Fortnite Mobile, ilk sürümünde istismar edilebilir durumdaydı. Samsung Galaxy telefonlarına herhangi bir uygulamanın sessizce yüklenmesi suistimal edilebilir.
Fortnite Mobile'ın Android'de piyasaya sürülmesi pek de iyi olmadı, özellikle de desteklenen cihazların çoğu Gerçekten oyunu kabul edilebilir kare hızlarıyla oynamakta zorlanıyorum. Oyun şu şekilde başlatıldı: Samsung Galaxy'ye yalnızca 3 gün özel. Fortnite Yükleyici ilk olarak şu tarihte kullanıma sunuldu: Samsung Galaxy Uygulamaları Epic Games, Samsung dışındaki oyuncuların oyunun tamamını Epic'in web sitesinde bulunan Fortnite Yükleyicisinden indirip yüklemesine izin vermeden önce. Fortnite Yükleyicisinin kullanıma sunulmasından kısa bir süre sonra Epic Games, Yükleyiciye sessizce bir güncelleme gönderdi. Artık nedenini biliyoruz: Diskteki Adam Kötü amaçlı bir uygulamanın sessizce yükle istedikleri herhangi bir uygulama Samsung Galaxy akıllı telefonlarda. Bu kusurun nasıl çalıştığına dair bazı kafa karışıklıkları olduğundan, bunları açıklığa kavuşturmaya çalışacağız. Öncelikle Android'de uygulama kurulumunun temellerini açıklamamız gerekiyor.
Android Akıllı Telefonlarda Uygulama Kurulum Akışı
Birinci taraf kaynaklardan sessiz kurulumlar
Kullanıcıdan izin istemeden Android'e sessizce bir APK yüklemek için, sistem düzeyinde bir uygulamaya sahip olmanız gerekir. INSTALL_PACKAGES izin verildi. Bu izne sahip uygulamalara örnek olarak çoğu Android cihazdaki Google Play Store verilebilir. Samsung, Huawei ve diğer cihaz üreticilerinin cihazlarındaki birinci taraf uygulama mağazalarına da INSTALL_PACKAGES izni verilmiş olabilir. Google Play Store'dan herhangi bir uygulamayı yüklemek istiyorsanız indirme işlemini o gerçekleştirecek ve otomatik olarak yükleyecektir. "Yükle"ye bastıktan sonra başka bir müdahaleye gerek kalmadan uygulama sizin için. (Google Play Store bile otomatik olarak belirli çalışma zamanı izinlerini verir bunun için olanı gibi kaplamalarPlay Store dışından yüklenen uygulamaların kullanıcıdan bu izinleri vermesini istemesi gerekir.)
Cihazınızdaki bir uygulamanın INSTALL_PACKAGES iznine sahip olup olmadığını merak ediyorsanız ADB komutunu kullanarak bunu öğrenebilirsiniz.
adb shell
dumpsys packagepackage.name.here | grep "INSTALL_PACKAGES"
Örneğin Google Play Store'un paket adı "com.android.vending
". Bu izne sahip başka bir uygulama da paket adı ile Shell'dir com.android.shell
. Kullananlarınız için Andromeda eklentisi aracılığıyla köksüz Substratum Android Oreo'da, bilgisayarınızdan çalıştırılan Andromeda betiği kabuk işleminin çalışır durumda kalmasını sağlar, böylece Substratum bunu paketleri (tema katmanları) yüklemek ve ardından OverlayManager komutları Kaplamaları etkinleştirmek için.
Üçüncü taraf kaynaklardan gelen yandan yükleme uygulamaları
Birinci taraf uygulama mağazasının dışından bir uygulama indirip yüklemeye çalışırsanız öncelikle bilinmeyen yükleme kaynaklarını etkinleştirmeniz gerekir. Bu şunları sağlar: Paket Yöneticisi Hizmeti Android çerçevesinde (INSTALL_PACKAGES iznine sahip), uygulamaların üçüncü taraf kaynaklardan yüklenmesinin risklerini kabul ettiğinizi bilin. Android Oreo öncesi cihazlarda, Güvenlik ayarlarında bilinmeyen kaynaklardan kuruluma izin veren tek bir geçiş bulunur. Android Oreo ve sonraki sürümlerdeAPK'nın yüklenmesini isteyen bir uygulamanın şunu beyan etmesi gerekir: REQUEST_INSTALL_PACKAGES izni ve kullanıcının Paket Yönetici Hizmeti aracılığıyla uygulama yüklemeleri isteyebilmesi için bu uygulamayı beyaz listeye alması gerekir. REQUEST_INSTALL_PACKAGES bir "appop" izni olduğundan, bu onu Ayarlar'ın izin yöneticisinden veya cmd appops
kabuk komutu.
Bilinmeyen kaynaklardan yükleme genel olarak veya özel olarak istekte bulunan bir uygulama için etkinleştirildiğinde, kullanıcı bir uygulamayı yandan yükleyebilir. Ancak Paket Yöneticisi uygulamanın sessizce kurulmasına izin vermiyor. Bunun yerine, kullanıcıya uygulamayı yüklemek isteyip istemediğini sorar ve uygulamanın yükleme sırasında verilmesini istediği hassas izinleri listeler. Kullanıcı kabul ederse uygulama, istenen çalışma zamanı olmayan izinlerle yüklenir. OEM'ler Paket Yöneticisini de özelleştirebilir: Örneğin, Çin sürümündeki Paket Yöneticisi. Huawei'nin EMUI 5'i, güvenli olup olmadığına karar vermek ve hangi izinlerin olduğunu kontrol etmek için APK'yı tarama özelliğine sahiptir imtiyazlı önce kurulum. Bunu Çin'den ithal edilen EMUI 5'i çalıştıran Honor Note 8'de gözlemledim, ancak diğer Çin Huawei ve Honor cihazlarının da Paket Yöneticilerinde bu özelliğe sahip olduğundan eminim.
Her halükarda bu, bir uygulamayı onaylanmış, birinci taraf bir kaynaktan yüklemek ile üçüncü taraf bir kaynaktan yüklemek arasındaki farkı özetlemektedir. INSTALL_PACKAGES ile Play Store'dan veya eşdeğer uygulama mağazasından bir uygulama yüklemeye çalışırsanız izin verirseniz, siz başlattıktan sonra başka kullanıcı müdahalesine gerek kalmadan kurulumu sessizce tek başına halleder İndirmek. Ancak XDA Labs, APKMirror veya diğer üçüncü taraf kaynaklardan bir APK indirirseniz standart paket yükleyici, yükleme işlemini gerçekleştirecek ve kullanıcıdan bu paketi yüklemesini isteyecektir. Peki Fortnite Yükleyici nerede devreye giriyor ve bunların hepsi neden alakalı?
Fortnite'ın Kurulum Sürecindeki Bir Kusur
Bugün erken saatlerde Google bir güvenlik açığını açıkladı Fortnite Installer'ın ilk sürümüyle keşfettiler. Güvenlik açığı Exynos Samsung Galaxy S8+ (dream2lte) üzerinde gösterildi ancak aynı zamanda Samsung Galaxy Note 9 ve Samsung Galaxy Tab S4 dahil diğer tüm Samsung Experience cihazlarını da etkiledi. Güvenlik açığı şunları sağlar: önceden yüklenmiş kötü amaçlı uygulama Fortnite Yükleyicisinin Fortnite'ı yüklemeye çalışma şeklinden yararlanmak için ilk kez Samsung Galaxy cihazlarında. Samsung Galaxy Apps'te özel bir API kullanan Fortnite Yükleyici, standart paket yükleyici aracılığıyla kullanıcıdan Fortnite'ı yüklemesini isteme ihtiyacını ortadan kaldırır. Bunun nedeni Galaxy Apps'in kurulumu sessizce gerçekleştirmek için ihtiyaç duyduğu izne sahip olmasıdır. Sessizce yüklenen uygulama gerçek Fortnite ise, bu sessiz yükleme sürecinde bir sorun olmayacaktır. Ancak Fortnite Yükleyicisinin, Fortnite oyunu için indirilen APK dosyasını sakladığı yer nedeniyle bu dosya kolaylıkla istismar edilebiliyordu.
Sorun Takipçisi'ndeki rapora göre, Fortnite Yükleyicisi Fortnite Mobil APK'sını indirecek /sdcard/Android/data/com.epicgames.portal/files/downloads/
. /sdcard sembolik bir bağlantı olduğundan, bu Android'de "harici depolama" olarak kabul edilir. /data/media/CURRENT_USER ve /sdcard, uygulama verilerinin paylaşıldığı Android'in ilk günlerinde kullanılan addı. fiziksel SD kartlarda saklanır. Günümüzde uygulama verileri genellikle /data/data/ dizinindeki uygulamaya özel dizinlerde depolanıyor ve her uygulamanın yalnızca kendi /data/data dizinindeki dosyalara erişimi var. Bu nedenle, eğer Fortnite Yükleyicisi indirilen Fortnite APK'sını kendi /data/data/ dizininde sakladıysa, okuma izinleri olmayan herhangi bir uygulamanın (ör. root erişimi olmadan) bu dizinde neler olduğunu bilmek için.
Ancak Fortnite Yükleyicisinden bu yana indirilen APK'yı harici depolama birimine kaydettitarafından izlenebilir ve üzerine yazılabilir. harici depolama okuma izinlerine sahip herhangi bir uygulama. Normalde uygulamalar, kullanıcının MTP veya diğer uygulamalar aracılığıyla erişmesi gereken dosyaları depolarken /data/media, yani "sanal SD kart"a yazar. Bir uygulamanın /data/media'yı okuyabilmesi veya yazabilmesi için READ_EXTERNAL_STORAGE ve Sırasıyla WRITE_EXTERNAL_STORAGE izinleri (her ikisi de aynı izin grubu altındadır ve dolayısıyla birlikte verilir). Android 4.4 KitKat'tan önce çoğu uygulama kurulum sırasında bu izinleri istiyordu çünkü aksi takdirde bu izinler kullanılamayacaktı. paketlerinin belirlenen harici depolama dizinindeki dosyaları okuyabilir veya yazabilir /data/media/.../Android/. tanıtımıyla SD kartta FAT tarzı dizin izinlerini taklit etmek için FUSE Android 4.4 KitKat'ta uygulamaların, harici depolamadaki belirlenmiş dizinlerindeki dosyalara erişmek için artık herhangi bir izne ihtiyacı yok. Başka bir dizindeki dosyalara erişmek için yine de harici depolama izinlerine ihtiyaç duyulur; bu da kötü amaçlı bir uygulamanın Fortnite kurulum sürecini ele geçirmek için yapabileceği şeydir.
Aşağıdaki videoda gösterildiği gibi, READ_EXTERNAL_STORAGE iznine sahip kötü amaçlı bir uygulama, Fortnite Yükleyicisinin harici depolamadaki indirme dizinini izliyor. İndirme işleminin tamamlandığını ve parmak izinin doğrulandığını tespit ettiğinde, WRITE_EXTERNAL_STORAGE sayesinde kendi kötü amaçlı paketiyle birlikte Fortnite paketini indirdim izin. Ancak Samsung Galaxy Apps'in kurulumdan önce Fortnite APK'sını doğrulama şekli nedeniyle (...sadece paket adının "com.epicgames.fortnite" olup olmadığını kontrol eder), Galaxy'ye sahip olmak mümkündür Uygulamalar Kötü amaçlı paketi, kullanıcı müdahalesi veya bildirim olmadan arka planda sessizce yükleyin—kötü amaçlı paketin adı "com.epicgames.fortnite" olduğu sürece. Daha da kötüsü, bu kötü amaçlı paket SDK düzeyi 22 veya daha düşükünü (Android 5.1 Lollipop ve önceki sürümler) hedefliyorsa, çalışma zamanı izinleri yalnızca SDK düzeyi 23 ve üzerini hedefleyen uygulamalar için zorunlu olduğundan bildiriminde tanımlanan tüm izinler otomatik olarak verilecektir (Android 6.0 Marshmallow ve Daha sonra).
Peki Samsung olmayan cihazlarda ne olacak? Samsung Galaxy Apps, Samsung dışındaki cihazlarda yüklü olmadığından kötü amaçlı APK arka planda sessizce kurulmayacak. Fortnite Installer üçüncü taraf bir uygulamadır ve bu nedenle öncelikle kullanıcıdan etkinleştirmesini istemesi gerekir Bilinmeyen kaynaklardan kurulum yapın ve ardından sahte paketi yüklemek için paket yükleyicisine bir istek gönderin. Fortnite APK'sı. Bu durumda kullanıcının uygulamayı yüklemek isteyip istemediği sorulduğunda "Yükle"ye dokunması yeterli olacaktır. Samsung olmayan telefonların kötü amaçlı bir uygulamanın arka planda sessizce yüklenmesi tehlikesi olmasa da bu durum sorunludur. Adında "Fortnite" yazan ve kurulum için Fortnite uygulama simgesinin kendisine sunulduğu kötü amaçlı bir APK'nın ortalama bir kullanıcıya sunulması durumunda, hiç de akıllı olmayacaktır.
Yine de bu kusurdan Samsung Galaxy akıllı telefonlarda yararlanmak ile Samsung olmayan akıllı telefonlarda yararlanmak arasında net bir ayrım var. Bunlardan ilki, herhangi bir uygulamayı sessizce yüklemek için gizli bir sistem API'sinden de yararlanan Diskteki Adam saldırısıdır. arka planda, tüm izinlerle ve kullanıcıyı sahte bir Fortnite yüklediğini düşünmesi için kandırmaya gerek olmadan APK. İkincisi bir APK'ları veya diğer önemli verileri harici depolama dizinlerine kaydeden diğer uygulamaların da başına gelebilecek standart Diskteki Adam saldırısıson zamanlarda gösterildiği gibi Kontrol Noktası postalamak. Öyle ki, gizli Galaxy Apps API'si sayesinde, bu Diskteki Adam saldırısı Samsung Galaxy cihazlarında daha tehlikelidir.
Kusuru Düzeltmek
Epic Games'in takdirine göre, Google Sorun Takipçisi'ndeki rapora çok hızlı yanıt verdiler ve 2.1.0 sürümüne yönelik güncellemeyi ellerinden geldiğince hızlı bir şekilde yayınladılar. Düzeltme basitti; indirilen Fortnite APK'sını, /data/media içindeki harici depolama dizini yerine, Fortnite Yükleyicisinin /data/data içindeki dahili depolama dizinine kaydetmeniz yeterli. Epic Games'in mühendisi kusurun 90 gün sonra açıklanmasını talep etti, ancak Google bunu reddetti ve düzeltmenin yayınlanmasından 7 gün sonra sorunu kamuoyuna duyurdu. Epic Games'in CEO'su Tim Sweeney, Olumsuz İlk güvenlik raporundan açıklanmasına kadar geçen hızlı geri dönüş süresinden memnunuz. Şu açıklamayı yaptı Android Merkezi.
Epic, Google'ın, Fortnite'ın derinlemesine bir güvenlik denetimini gerçekleştirme çabasını gerçekten takdir etti. Android'de yayınlayın ve sonuçları Epic ile paylaşın, böylece onların oluşturduğu kusuru düzeltecek bir güncellemeyi hızlı bir şekilde yayınlayabiliriz. keşfetti.
Ancak pek çok kurulum henüz güncellenmemiş ve hâlâ savunmasız durumdayken, Google'ın kusurun teknik ayrıntılarını bu kadar hızlı bir şekilde kamuya açıklaması sorumsuzcaydı.
Benim ısrarım üzerine bir Epic güvenlik mühendisi, güncellemenin daha geniş çapta yüklenmesine zaman tanımak amacıyla Google'dan kamuya açıklamayı tipik 90 gün geciktirmesini talep etti. Google reddetti. Tamamını şu adresten okuyabilirsiniz: https://issuetracker.google.com/issues/112630336
Google'ın güvenlik analizi çalışmaları takdirle karşılanıyor ve Android platformuna fayda sağlıyor ancak Google kadar güçlü bir şirketin daha fazla pratik yapması gerekiyor Bundan daha sorumlu bir açıklama zamanlaması sağlamalı ve Epic'in Fortnite'ın ülke dışında dağıtımına karşı PR karşıtı çabaları sırasında kullanıcıları tehlikeye atmamalıdır. Google Oyun.
Mevcut Samsung Galaxy cihazlarının kaçının hala eski Fortnite Yükleyicisine sahip olduğunu söyleyemem. Belki de Epic Games, bu kullanıcılara Fortnite Mobile'dan bir mesaj göndererek kurulumlarını güncellemelerini söylemeli. Firebase'in şık ve yeni Uygulama İçi Mesajlaşma özelliği hile yapabilirdi. Bununla birlikte, muhtemelen çok da önemli bir şey değil çünkü eski yükleyiciye sahip bir kullanıcı zaten yasal olanı indirmişse Fortnite, o zaman herhangi bir MITD saldırısı işe yaramaz çünkü kötü amaçlı APK mevcut Fortnite'ın üzerine yüklenemez kurulum. Her halükarda, bu kusurun Fortnite'ın Android'de piyasaya sürülmesinden bu kadar erken bir zamanda keşfedilmesi, Epic Games'le ilgili hâlâ bu kadar çok tartışma varken Google Play'den ayrılma kararı— Epic Games'in kararının dikkatsiz olduğu iddiasına kesinlikle yardımcı oluyor. Google'ın bu konuyu bu kadar çabuk duyurmasının ardındaki niyetinin bu olup olmadığını hiçbir zaman bilemeyeceğiz.