OnePlus 8 Pro için Kirisakura özel çekirdeği, daha iyi güvenlik için Kontrol Akışı Bütünlüğünü (CFI) etkinleştirir

Kontrol Akışı Bütünlüğü ile ilgili teknik ayrıntılar

"Çekirdekte çok sayıda işlev işaretçisinin bulunması, bu saldırı modelinin popülerliğine yardımcı oluyor. Saldırganlar kendi yürütülebilir kodlarını enjekte edemeseler bile, mevcut çekirdek kodunun isteğe bağlı bölümleri, istismarlarını tamamlamak için yürütülebilir.

LLVM'nin CFI'si, geçerli çağrı hedeflerini kısıtlayarak ve bir CFI ihlali tespit edildiğinde çekirdek paniğini zorlayarak bu saldırıları hafifletmeye çalışır. Hedef adresin doğru imzaya sahip geçerli bir işleve işaret ettiğini doğrulamak için her dolaylı dallanmadan önce bir kontrol eklenir. Bu, dolaylı bir dalın rastgele bir kod konumuna atlamasını engeller ve hatta çağrılabilecek işlevleri bile sınırlar. Bir hata erişime izin veriyorsa, saldırgan yine de işlev işaretçisini değiştirebilecektir. Ancak LLVM'nin CFI'si dolaylı çağrıların %55'ini en fazla 5 olası hedefle ve %80'ini en fazla 20 hedefle sınırlandırıyor. Her dolaylı dal için tüm geçerli çağrı hedeflerini belirlemek amacıyla derleyicinin çekirdek kodunun tamamını bir kerede görmesi gerekir.

LTO kullanımı (Bağlantı Süresi Optimizasyonu) bunu mümkün kılar. LLVM'nin CFI'sı, derleyicinin tüm C için LLVM'ye özgü bit kodu ürettiği LTO kullanımını gerektirir. derleme birimleri ve LTO uyumlu bir bağlayıcı, bit kodunu birleştirmek ve onu derlemek için LLVM arka ucunu kullanır. yerel kod.

CFI kullanımına izin veren LTO, tüm program analizi ve modüller arası optimizasyon yoluyla daha iyi çalışma zamanı performansı elde eder.

İnceLTO neredeyse LTO'nun performans artışına yetişti. ThinLTO modunda, normal LTO'da olduğu gibi, çıngırak derleme aşamasından sonra LLVM bit kodunu yayar. ThinLTO bit kodu, modülün kompakt bir özetiyle zenginleştirilmiştir. Bağlantı adımı sırasında yalnızca özetler okunur ve daha sonra modüller arası işlevlerin içe aktarılması için işlev konumlarının bir dizinini içeren birleşik bir özet dizinde birleştirilir. Daha sonra birleştirilmiş özet indeks üzerinde hızlı ve etkili bir şekilde tüm program analizi gerçekleştirilir. ThinLTO, çok iş parçacıklı bir bağlantı işlemine izin verir ve bu da derleme süresinin azalmasına neden olur.

CFI, belirli hata sınıflarına çarpıldığında programın yürütülmesini kesintiye uğrattığı için, izin veren modda kullanıldığında daha önce belirtildiği gibi bir hata bulma aracı olarak da sınıflandırılır. İzin verilen CFI, çekirdek paniğine neden olmadan çekirdek günlüğünde CFI ihlallerini gösterecektir. Çekirdek 4.9 (Pixel 3 nesil cihazlar) ve 4.14 (Pixel 4 nesil cihazlar) çekirdekleri çeşitli işlev türlerine sahipti CFI ihlallerine yol açan uyumsuzluklar, Google tarafından çekirdek/ortak sürümde bulunan yama setlerinde giderildi. depolar.

Ancak Android ekosisteminin doğası gereği bu uyumsuzlukların SoC üreticisinin (bu durumda Qualcomm) veya OEM'e (OnePlus) özel kodunda da bulunması muhtemeldir. OnePlus 8 Pro için Kirisakura çekirdeğinde 4.19 çekirdeğinden farklı Qualcomm kodundaki çeşitli CFI ihlalleri düzeltildi (örnek: 1, 2, 3).

Çekirdeği izin verilen CFI'da çalıştırmak, OnePlus sürücüleri ile ilgili kodda da CFI ihlallerini ortaya çıkardı (ilgili taahhütler bulunabilir) Burada Ve Burada). OnePlus 8 Pro'nun Kirisakura çekirdeği, CFI zorlanarak çalışır ve kullanıcılarını bu tür kod yeniden kullanım saldırılarına karşı korur."

devamını oku

Kendin Yap meraklısı (yani eski PC parçalarını kurtaran). Eclair günlerinden bu yana tutkulu bir Android kullanıcısı olan Skanda, tek kartlı bilgi işlem dünyasındaki son gelişme trendlerini de takip etmeyi seviyor.