Güvenlik araştırmacıları, Apple iOS cihazlarını hedef alan yeni bir kernel açığını keşfetti. “Trigon” adı verilen bu sofistike saldırı yöntemi, XNU çekirdeğinin sanal bellek alt sisteminde bulunan kritik bir güvenlik açığını kullanarak, saldırganlara herhangi bir kernel çökmesi (kernel panic) tetiklemeden keyfi okuma/yazma yetkileri sağlıyor.
CVE-2023-32434 ve Trigon Açığı
Trigon’un temelinde CVE-2023-32434 kodlu güvenlik açığı yatıyor. Bu açık, mach_make_memory_entry_64 fonksiyonunda meydana gelen bir tamsayı taşması (integer overflow) hatasından kaynaklanıyor.
İlk olarak Kaspersky tarafından ortaya çıkarılan “Operation Triangulation” casus yazılım kampanyasında aktif olarak kullanıldığı tespit edilen bu güvenlik açığı, saldırganların 18.000 petabaytlık sahte bir bellek girişi oluşturmasına olanak tanıyor. Bellek sınırlarını aşan bu işlem, kullanıcı tarafından kontrol edilen boyut ve ofset parametreleriyle yapılan denetimsiz bir toplama işlemi sonucu meydana geliyor.
Bu hata, XNU’nun kritik güvenlik kontrollerini atlatıyor ve çekirdek belleğin kullanıcı alanına (userspace) eşlenmesine imkan tanıyor.
Trigon, Alfie CG tarafından geliştirildi ve @staturnzz ile @TheRealClarity tarafından katkıda bulunuldu. Açığın kaynak kodu GitHub üzerinden erişime açık durumda.
Trigon’un Çalışma Mekanizması
1. Aşama: Yetkili Bellek Girişi Oluşturma
Saldırganlar, GPU işlemleri için ayrılmış PurpleGfxMem bölgesinde sahte bir ebeveyn bellek girişi (parent memory entry) oluşturarak saldırıya başlıyor.
Bu işlem için IOSurface nesnesi kullanılarak, IOSurfaceMemoryRegion özelliği PurpleGfxMem olarak ayarlanıyor. Bu yöntem sayesinde, XNU çekirdeğinin vm_page_insert_internal fonksiyonunda meydana gelen panik kontrolleri atlatılıyor.
Bu sayede saldırganlar, fiziksel belleği serbestçe eşleyebiliyor.
2. Aşama: Fiziksel Bellek Eşleme
Trigon, devasa bellek girişi sayesinde, saldırganın sürecine fiziksel adresleri haritalamak (map) için mach_vm_map fonksiyonunu kullanıyor.
Bunun için iboot-handoff bölgesindeki veriler okunarak kernel’in KTRR (Kernel Text Read-Only Region) sınırları belirleniyor. Özellikle A10(X) işlemcili cihazlarda, MMIO kayıtları incelenerek kernel’in Mach-O başlığı tespit ediliyor.
3. Aşama: Kernel Okuma/Yazma Yetkisi Kazanma
Trigon, PVH (Page Validation Hash) korumasını aşmak için IOSurface nesnelerini bellek içerisine rastgele püskürtüyor (spray).
- pv_head_table isimli kernel yapısını tarayarak püskürtülen nesnelerin hangi fiziksel bellek bölgelerine yerleştirildiğini belirliyor.
- task_t ve proc_t yapılarını değiştirerek root yetkisi ve sandbox devre dışı bırakma işlemleri gerçekleştiriliyor.
Trigon Hangi Cihazları ve iOS Sürümlerini Etkiliyor?
Trigon şu an A10(X) işlemcili cihazları hedef alıyor:
- iPhone 7
- iPad 6. Nesil
Desteklenen iOS sürümleri: iOS 13 – iOS 16.5.1
Ancak, A11 ve sonrası çiplerde bazı donanımsal güvenlik önlemleri nedeniyle çalışmıyor:
- PAC (Pointer Authentication Codes): Nesne bozulmalarını önlüyor.
- PPL (Page Protection Layer) ve CTRR (Configurable TRR): Kernel sayfalarının fiziksel olarak okunmasını engelliyor.
- iboot-handoff bölgesi yeni cihazlarda eşlenebilir (mappable) bellek dışında kaldığı için, temel adres hesaplamalarını zorlaştırıyor.
Apple’ın Güvenlik Açığını Kapatma Çabaları
Trigon, iOS 16.5.1 sürümünde kapatılmış olsa da,
- Jailbreak yapılmış cihazlar
- Kurumsal kullanımda güncellenmemiş cihazlar
için hala risk oluşturuyor.
Güvenlik araştırmacıları, KTRR ve CTRR gibi donanım tabanlı korumaların artık daha derin MMU politikalarıyla entegre edilmesi gerektiğini vurguluyor.
Kaspersky, Operation Triangulation kapsamında kullanılan arm64e uyumlu saldırı zincirinin detaylı analizini yayınlamayı planlıyor.
Bu tür gelişmiş saldırılar, Apple’ın iOS güvenliğine karşı yeni tehditlerin giderek daha sofistike hale geldiğini ve daha kapsamlı donanım korumalarının gerekli olduğunu gösteriyor.