'Operation Triangulation' saldırı zinciri
- Kötü amaçlı bir iMessage eki gönderilerek uygulama, kullanıcı fark etmeden bunu işler.
- Bu ek, belgelenmemiş ve Apple'a özgü ADJUST TrueType font komutlarındaki uzaktan kod çalıştırma açığı CVE-2023-41990'dan yararlanır.
- Return/jump-oriented programming ve NSExpression/NSPredicate sorgu diliyle yazılmış çok aşamalı bir yapı kullanılarak JavaScriptCore kütüphane ortamı yamalanır ve JavaScript ile yazılmış bir yetki yükseltme exploit'i çalıştırılır.
- JavaScript exploit'i tamamen okunamaz hale gelecek şekilde obfuscate edilmiştir ve boyutu en aza indirilmiştir. Yaklaşık 11.000 satırlık kodun büyük bölümü JavaScriptCore ve çekirdek belleğinin ayrıştırılması ve manipülasyonuna ayrılmıştır.
- JavaScriptCore'un hata ayıklama özelliği DollarVM($vm) kullanılarak betik içinden JavaScriptCore belleğini manipüle etme ve native API fonksiyonlarını çalıştırma yeteneği elde edilir.
- Hem eski hem de yeni iPhone'ları destekleyecek şekilde tasarlanmıştır ve en yeni modellerdeki açıkları kullanmak için Pointer Authentication Code (PAC) atlatmasını içerir.
- XNU'nun bellek eşleme sistem çağrılarındaki (mach_make_memory_entry ve vm_map) tamsayı taşması açığı CVE-2023-32434 kullanılarak kullanıcı seviyesinden cihazın tüm fiziksel belleğine okuma/yazma erişimi elde edilir.
- Hardware memory-mapped I/O (MMIO) register'ları kullanılarak Page Protection Layer (PPL) atlatılır. Bu, CVE-2023-38606 ile hafifletilmiştir.
- Tüm açıklar kullanıldıktan sonra JavaScript exploit'i cihaz üzerinde istenen işleri yapabilir; casus yazılım çalıştırmak yerine IMAgent sürecini başlatıp exploit izlerini cihazdan silen bir payload enjekte edebilir veya Safari sürecini görünmez modda çalıştırarak bir sonraki aşamayı içeren web sayfasına yönlendirebilir.
- Web sayfasında kurbanı doğrulayan bir betik bulunur ve kontrolü geçerse bir sonraki aşama olan Safari exploit'i teslim edilir.
- Safari exploit'i, shellcode çalıştırmak için CVE-2023-32435'i kullanır.
- Shellcode, Mach nesne dosyası biçimindeki başka bir çekirdek exploit'ini çalıştırır. Bu, CVE-2023-32434 ve CVE-2023-38606 ile aynı açıkları kullanır. Boyut ve işlev açısından çok büyüktür ancak JavaScript ile yazılmış çekirdek exploit'inden tamamen farklıdır. İlgili kısımlar iki exploit arasında paylaşılır, ancak kodun büyük bölümü çekirdek belleğinin ayrıştırılması ve manipülasyonuna ayrılmıştır. Çeşitli sızma sonrası yardımcı araçlar içerir, ancak bunların çoğu kullanılmaz.
- Exploit, root yetkisi kazanır ve casus yazılımı yükleyen başka aşamaları çalıştırır.
Gizem ve CVE-2023-38606 açığı
- Yeni iPhone modellerinde, çekirdek belleğinin hassas alanlarına yönelik ek donanım tabanlı güvenlik korumaları bulunur.
- Bu koruma, saldırganların çekirdek belleğini okuyup yazabilse bile cihazı tamamen kontrol etmesini engeller.
- Saldırganlar, Apple'ın SoC üzerinde tasarladığı başka bir donanım özelliğini kullanarak bu donanım tabanlı güvenlik korumasını atlatır.
- Saldırganlar; veriyi, hedef adresi ve veri hash'ini firmware tarafından kullanılmayan çip içi bilinmeyen donanım register'larına yazarak donanım tabanlı bellek korumasını atlatır.
- Bu bilinmeyen donanım özelliğinin muhtemelen Apple mühendisleri ya da fabrikada hata ayıklama veya test amacıyla kullanılmak üzere tasarlandığı ya da yanlışlıkla dahil edildiği tahmin edilmektedir.
Teknik ayrıntılar
- SoC üzerindeki çeşitli çevre birimleri, CPU'nun bu aygıtları çalıştırmak için kullanabileceği özel donanım register'ları sağlar.
- Bu donanım register'ları, CPU'nun erişebildiği belleğe eşlenmiştir ve "memory-mapped I/O (MMIO)" olarak bilinir.
- Apple ürünlerindeki (iPhone, Mac vb.) çevre birimlerine ait MMIO adres aralıkları DeviceTree adlı özel bir dosya formatında saklanır.
- Saldırıda kullanılan MMIO'ların çoğu, DeviceTree'de tanımlı hiçbir MMIO aralığına ait değildir.
- Saldırganların firmware tarafından kullanılmayan MMIO'ları nasıl bulduğu ve bu MMIO adreslerinin hangi çevre birimine ait olduğu belirsizdir.
- Bu MMIO register'larının GPU yardımcı işlemcisine ait olduğu doğrulanmıştır.
- Saldırganlar bu MMIO register'larını kullanarak Page Protection Layer (PPL)'yi atlatır ve sayfa tablosu girdilerini yamalamakta kullanır.
- Hash hesaplama yöntemi, saldırıda kullanılan donanım özelliğinin veriyi istenen konuma doğrudan bellek erişimi (DMA) işlemiyle yazmasını sağlar.
GN⁺ görüşü
- Bu araştırma, iPhone'ları hedef alan son derece sofistike bir saldırı zincirini ortaya koyuyor. Bu, güvenlik araştırmacıları için çok önemli bir bulgu ve Apple ürünlerinin güvenliğini güçlendirmeye katkı sağlayabilir.
- Saldırganların firmware tarafından kullanılmayan donanım özelliklerini nasıl keşfettiği hâlâ bir gizem. Bu durum, donanım güvenliği araştırmalarının önemini vurguluyor.
- Bu yazı, yazılım ve donanım güvenliğiyle ilgilenenler için oldukça ilgi çekici içerikler sunuyor. Son derece karmaşık saldırı yöntemleri ve bunların analiz süreci, güvenlik araştırmalarının derinliğini ve gerekliliğini gösteriyor.
1 yorum
Hacker News görüşleri
MMIO kötüye kullanımıyla ilgili şaşırtıcı nokta
Steve Weis'in Twitter özeti
Coresight hakkında açıklama
gdbveya başka araçlara erişebiliyordur.MMIO kayıtlarının keşfedilebilirliği üzerine tahmin
Çip hata ayıklama özelliğinde veri hash'i kullanımıyla ilgili soru işaretleri
Hash algoritmasının özelliklerine dair gözlem
sboxtablosundan tek bir değer alıyor.Saldırganların emeğine duyulan hayranlık
Saldırganların kullandığı özelliğe dair açıklama
Yeni keşfedilen zafiyetlerin önemi