PSA: SELinux'un izin verici olarak ayarlandığı herhangi bir şeyi yüklerken dikkatli olun

click fraud protection

Belgelenmemiş bir Android özelliği, herhangi bir uygulamanın izin verilen bir SELinux ortamında kök erişimi elde etmesine olanak tanır. Daha fazlasını öğrenmek için okumaya devam edin!

Android modlama dünyasında insanlar root erişimini her şeyin temel taşı olarak görme eğilimindedir. Kullanıcıların cihazları üzerinde tam kontrol sahibi olmasına ve stok konfigürasyonunda her zaman mevcut olmayan özellikler eklemesine olanak tanır. Ancak "büyük güç, büyük sorumluluk getirir" dedikleri gibi, neye bulaştığınızı bilmiyorsanız Android'in güvenlik modelini atlamanız akıllıca değildir. Forumlarımızdaki deneyimli Android meraklıları, muhtemelen cihazınızda arka kapı bulunma potansiyelinin farkındasınızdır ve En son güvenliğe sahip en son Android sürümünün üstünde güvenilir, root özellikli bir mod çalıştırma olasılığınız daha yüksektir yamalar. Bununla birlikte, görünüşe göre onlar için işe yaradığı sürece hangi kök ayarlamaları yükledikleriyle gerçekten ilgilenmeyen birkaç kişi tanıyor olabilirsiniz. Bu nedenle, yalnızca SELinux izin verici olarak ayarlandığında çalışan ve kullanıcılarını güvenlik tehditlerine karşı son derece duyarlı bırakan bir kamyon dolusu mod bulabilirsiniz.

SELinux nedir?

SELinux veya Güvenliği Geliştirilmiş Linux, güvenlik politikalarına erişim ve yönetim için özel olarak tasarlanmış bir Linux çekirdek güvenlik modülüdür. İlk olarak Android 4.3 Jelly Bean'de tanıtıldı ve Android'den bu yana varsayılan olarak Zorlama moduna ayarlandı 4.4 KitKat, SELinux erişim kontrolü haklarının uygulanmasına yardımcı olur ve ayrıcalık artışını önlemeye çalışır saldırılar. Özetle SELinux, kötü niyetli olarak root erişimi elde etmeyi amaçlayan bir uygulama veya güvenlik açığı gibi cihazınız üzerinde yetkisiz kontrol için bir engel görevi görür. SELinux'u varsayılan olarak "Zorlama" olarak ayarlamak, normal kullanıcıların bu tür saldırılardan korunmasının temel yollarından biridir.

İzin Verilen SELinux neden önerilmez?

Tekrarlamak gerekirse, bir Android cihazda root erişimi elde etmenin tipik yolunun mutlaka SELinux durumunu değiştirmesi gerekmez. SELinux modunu "Zorlama"dan "İzin Vermeye" geçirmek, cihazdaki temel güvenlik özelliklerinden birinin kasıtlı olarak devre dışı bırakılmasına neden olur; bu nedenle kullanıcının özel bir özel çekirdek yükleyerek veya mevcut önyükleme görüntüsünün parametrelerini değiştirerek bunun gerçekleşmesine açıkça izin vermesi gerekir. Uygun bir SELinux politikası olmayan, kötü kodlanmış bir mod genellikle son kullanıcıları hoşgörülü SELinux'a geçmeye zorlar ve esasen saldırı yüzeyini genişletir. Bu tam olarak geliştiricinin vvb2060 ne zaman gösterdiler kavram ayrıcalık yükseltme yönteminin bir kanıtını yayınladı kontrolü ele geçirmenin tek şartının izin verilen SELinux olduğu yer.

Magica'ya girin

Bir kullanıcının, SELinux'un izin verici olarak ayarlandığı Android 10 (veya üzeri) çalıştıran kendi cihazında tam kök erişimi elde etmesi şaşırtıcı derecede kolaydır. şunu yapın: Tek yapmanız gereken kuruluma basmak, ve "Magica" otomatik olarak bir hizmette root erişimi kazanacak ve Magisk'i önyüklemeye yükleyecek görüntü. Bu, kapsamı yalnızca cihazınızda değişiklik yapmaktan çok daha geniş bir şeydir. XDA Kıdemli Tanınmış Geliştirici ve Magisk sorumlusuna göre Topjohnwu, kötü amaçlı yazılım da dahil olmak üzere herhangi bir rastgele uygulama, izniniz ve izniniz olmadan cihazınızı kalıcı olarak rootlayabilir PoC'yi kullanarak.

Magica'nın teknik düzeyde nelerden yararlandığını merak ediyorsanız, topjohnwu şunları açıkladı: bir Reddit gönderisi:

"SELinux önyükleme sırasında izin verdiğinde, zygote bunu bilecek ve seccomp sistem çağrısı filtrelerini devre dışı bırakacaktır. Bu, temel olarak 3. taraf işlemlerinde hangi sistem çağrılarına izin verildiğini kısıtlamaz.

Android 10+ sürümünde, 3. parti uygulamaların "İzole Hizmetler" (aynı zamanda neredeyse belgelenmemiş) için kendi Zygote'unu oluşturmasına izin verilen "Uygulama Zygote" adı verilen yeni bir "belgelenmemiş" özellik vardır. Hem "Uygulama Zygote" hem de "İzole Hizmetler", Chrome/Webview* için tasarlanmış özel özelliklerdir. App Zygote işlemleri özel izinlerle çalışır ve seccomp devre dışı bırakıldığında setuid 0'ı çağırıp ayrıcalığını yükseltebilir ve root erişimi kazanabilir.

Normal root çözümlerinin (örneğin Magisk) sağladığıyla karşılaştırıldığında hala bir şekilde kısıtlayıcıdır, ancak UID=0 olduğunda Android'deki tonlarca güvenlik önlemi tamamen ortadan kaldırılacaktır. Örneğin, önyükleme görüntülerine yama yapmak için kullanılması yeterlidir; bu, "gerçek" kök izinleri kazanmasına yardımcı olmak için değiştirilmiş Magisk gibi kötü amaçlı yazılımları enjekte etmek için kullanılabileceği anlamına gelir.

Güncelleme: UID=0'ın kendisi ne yapabilir? Android çerçevesinde, istekte bulunan sürecin UID'si 0 olduğunda hemen hemen tüm hizmetlerde kör bir yeşil ışık yanar. Bu, bu kök işleminin Android'e özgü API'leri (ör. ActivityManager) kullanarak tonlarca şeyi yönetebildiği anlamına gelir."

*Geliştiriciye göre aviraxp, bu iki özellik daha genel olarak "birden fazla yalıtılmış işlem arasında kaynakları ve belleği paylaşmak için" tasarlanmıştır.

Çözüm

İzin verilen bir SELinux ortamında kötü amaçlı yazılımların hedef aldığı kullanıcılara verilebilecek telafisi mümkün olmayan zararlar göz önüne alındığında, kesinlikle gerekmedikçe herkesin bunu uygulamaya devam etmesini şiddetle tavsiye ediyoruz. Kavram kanıtı istismarına sahip olduğumuz için şanslı olsak da, kaç tane kötü amaçlı yazılım yazarının bu saldırı yolunu zaten bildiğine dair hiçbir fikrimiz yok. Sonuçta bir kurban, eğer bunu yapmamışsa, cihazının ele geçirilen durumundan habersiz kalmaya devam edecektir. İstismarın aktif olarak kullanıldığına tanık olun; kalıcı köke sahip hileli bir uygulama için bunu başarmak hiç de zor değil erişim.