Apple Exclaves Hakkında
(randomaugustine.medium.com)Monolitik işletim sistemi çekirdeklerinin sorunları
- Modern işletim sistemleri genel olarak iki ana koruma alanına ayrılır:
- Ayrıcalıksız alan (kullanıcı modu): Programlar dosya erişimi, ağ iletişimi gibi güçlü işlemleri doğrudan gerçekleştiremez
- Ayrıcalıklı alan (çekirdek modu): Programlar sistem çağrıları yoluyla çekirdekten iş yapmasını ister; çekirdek kodu işlemi yürütür ve sonucu kullanıcı moduna döndürür
- Çoğu işletim sistemi monolitik çekirdek tasarımını kullanır:
- Çekirdek, sistemdeki tüm donanıma, belleğe ve kullanıcı verilerine sınırsız erişim yetkisine sahiptir
- Yazılım kusursuz olsa ve güvenlik ihlali girişimleri olmasa sorun olmazdı; ancak pratikte hatalar ve güvenlik açıkları vardır
- Monolitik çekirdeğin büyük boyutu güvenlik açığı oluşma olasılığını artırır ve tek bir açık tüm sistemin tehlikeye girmesine yol açabilir
- Mikroçekirdek tasarımı güvenliği artırmak için işlevlerin çoğunu çekirdekten çıkarıp ayrı ayrıcalıksız süreçlere taşır:
- Güvenliği artırabilir
- Performans düşüşü ve uygulama yazılımında karmaşıklık artışı gibi sorunlar doğurabilir
- Buna rağmen performans avantajları nedeniyle monolitik çekirdekler hâlâ yaygın biçimde kullanılmaktadır
- Apple'ın XNU çekirdeği:
- iOS, macOS, tvOS, visionOS ve watchOS'ta ortak kullanılan çekirdektir
- Mach tabanlı bir mikroçekirdek olsa da, sistem işlevlerinin çoğu aynı ayrıcalık kapsamı içinde çalıştığı için fiilen monolitik çekirdek gibi davranır
- Bu nedenle monolitik çekirdeklerle aynı tür güvenlik zafiyetleri ortaya çıkabilir
Yalıtım çabaları
- Yazılım ve donanım tabanlı yalıtım tekniklerinin uygulanması çeşitli şekillerde denendi:
- Microsoft Virtualisation-based Security (VBS) – Windows Credential Guard'da kullanılır
- Intel Software Guard Extension (SGX) ve VT-X2
- ARM TrustZone – Samsung Knox, Samsung Pay, Android Verified Boot, Android güvenli PIN girişi vb. yerlerde kullanılır
Apple da verileri çekirdekten ayırma yönündeki girişimlerini kademeli olarak genişletti
-
2013 — Apple Secure Enclave
- İlk olarak 2013'te iPhone 5s ile tanıtıldı
- Secure Enclave, bağımsız ve güçlendirilmiş bir CPU çekirdeğinde çalışır ve mikroçekirdek tabanlı SepOS üzerinde işler
- SepOS'un çekirdeği, Apple'ın özel L4 gömülü mikroçekirdeği cL4'ü kullanır
- Kriptografik anahtarlar ve biyometrik veriler (ör. Face ID) gibi hassas verileri saklar ve korur
- iOS çekirdeğinden bağımsız çalışır ve yalnızca güvenli etkileşimler üzerinden iOS'a hizmet sunar
- iOS çekirdeği ele geçirilse bile ek bir exploit gerçekleşmediği sürece Secure Enclave etkilenmez
- Secure Enclave ile Secure Exclave'in farklı kavramlar olduğuna dikkat edilmelidir
-
2017 — Sayfa Koruma Katmanı (Page Protection Layer, PPL)
- iPhone 8 ve iPhone X'in A11 işlemcisi ile sunulan bir güvenlik özelliği
- Donanım + yazılım tabanlı bir özellik olarak, yalnızca çekirdeğin belirli bölümlerine bellek sayfa tablolarını değiştirme yetkisi verir
- Çekirdeğin geri kalanında sayfa tablosu değiştirme yetkisi sınırlandırılır
- Saldırı yüzeyi küçülür, bu da atlatma girişimlerini daha nadir hâle getirir
- PPL ek bir koruma katmanı getirse de, çekirdeğin büyük bölümündeki yetkiler korunduğu için tam güvenlik güçlendirmesinde sınırlı kaldı
-
2021–2023 — Güvenli Sayfa Tablosu İzleyicisi (Secure Page Table Monitor, SPTM)
- iPhone 13'ün A15 işlemcisi ve iOS 17 ile gelen yeni bir özellik
- PPL'nin yerini alır, ek bellek işlevlerini korur ve bunları birden çok alt sisteme ayırır
- Kod imzası doğrulamasını ve yalnızca Apple tarafından imzalanmış kodun çalışmasını sağlayarak güvenliği artırır
- Bu dönemde XNU kaynak kodunda exclave ile ilgili dolaylı referanslar görünmeye başladı
- SPTM'nin yönettiği alt sistemlerin exclave olabileceği öne sürüldü
-
2024 — Exclave: XNU'nun güvenlik modelinde büyük yeniden yapılanma
- M4 ve A18 işlemcilerini destekleyen XNU kaynak kodunda exclave kavramı ortaya çıktı
- Önceki işlemcilerde exclave etkinleştirilmiyor
- Exclave'in, XNU'nun güvenlik modelinin kapsamlı biçimde yeniden tasarlanmasının sonucu olduğu netleşti
-
XNU Exclave'leri
Sorumluluk reddi: Exclave'lerin iç yapısı tamamen açık kaynak olmadığı için bazı kısımlar tahmin veya yorum olabilir
- Exclave'ler, XNU'nun mevcut monolitik çekirdek güvenlik modelini ciddi biçimde güçlendiren yeni bir özellikler kümesidir
- Exclave'ler XNU'dan yalıtılmış kaynaklardır ve çekirdek ele geçirilse bile korunur
- Exclave'lerin özellikleri:
- İşletim sistemi derleme aşamasında önceden tanımlanırlar
- İsim veya kimlikle tanımlanırlar
- Çeşitli türlerden oluşurlar
- Önyükleme sırasında başlatılırlar
- Bağımsız alanlar olarak düzenlenirler
- SPTM, exclave belleğini exclave'e özel yeni bir sayfa türüyle korur
- Exclave kaynak türleri
- Paylaşımlı bellek tamponu – hem çekirdek hem de exclave tarafından erişilebilir
- XNU içinde salt okunur veya okuma/yazma olarak ayarlanabilir
- Ses tamponları ve sensörler – kamera ve mikrofon erişim göstergelerinin güvenliğini güçlendirir
- Conclave – birden çok kaynağı kendi güvenlik alanı altında gruplar; bunu yöneten bir Conclave Manager bulunur
- Hizmetler – XNU iş parçacıkları çağırdığında exclave içinde kod çalıştırır
- Paylaşımlı bellek tamponu – hem çekirdek hem de exclave tarafından erişilebilir
-
Güvenli çekirdek — seL4 tabanlı mı?
- Exclave hizmetlerinin XNU'dan bağımsız çalışabilmesi için yeni bir çekirdek olan Secure Kernel (SK) tanıtıldı
- SK imaj dosyasında "cL4" sürüm dizesi görüldü
- SK'nin, Apple'ın mevcut cL4 (L4 tabanlı) çekirdeğinden ziyade seL4 tabanlı olma olasılığı daha yüksek
- XNU'nun SK ile iletişim kurarken kullandığı IPC yapısı seL4'ün yapısına benziyor
- SK içinde kullanılan dizelerde seL4'te geçen kavramların (ör. capabilities, frames, untyped memory vb.) birçoğu bulunuyor
- Apple'ın Nisan 2024'te seL4 Foundation'a katılması tesadüf olmayabilir
- C1 işlemcisinin (Apple'ın yeni baseband yongası) çekirdeği de L4 tabanlı görünüyor
-
Güvenli dünya — ARM TrustZone?
- SepOS ayrı bir işlemcide çalışırken SK yüksek hızlı uygulama işlemcisinde çalışır
- Bunun için ek işlemci ayrıcalık seviyeleri gerekir → aşağıdakilerden biriyle gerçekleştirilmiş olabilir:
- Sanallaştırma uzantısı desteği
- Apple'ın SPTM uzantıları
- En olası seçenek ARM TrustZone teknolojisinin kullanılmasıdır
- TrustZone yapısı
- Sistemi iki dünyaya ayırır:
- Secure World – güvenli kod çalıştırır
- Insecure World – normal kod çalıştırır (XNU ve iOS burada çalışır)
- XNU kaynak kodunda TrustZone'un Secure World ve Insecure World'ü arasında geçişe dair çok sayıda referans bulundu
- Apple, TrustZone'un önerdiği Trusted Application modeli yerine exclave hizmet modelini uyguluyor
- SK, yalıtılmış bir ortamda exclave hizmetleri ve kaynakları sunarak güvenliği artırır
- Secure World'den Insecure World'e kaçıp XNU'yu tehlikeye sokmak son derece zor görünüyor
- Sistemi iki dünyaya ayırır:
- RINGGATE
- Apple'ın SPTM kullanarak Secure World ↔ Insecure World geçişini yönetiyor olması mümkün
- Kod içinde bu geçiş "RINGGATE" olarak anılıyor
Sonuç
- Exclave'lerin getirdiği anlam
- İleri düzey tehdit aktörlerinin süregelen saldırılarına karşı Apple, işletim sisteminin güvenlik seviyesini artırmak için exclave'leri devreye aldı
- Hassas kaynakların yalıtılmasıyla şu etkiler bekleniyor:
- Saldırı yüzeyinin küçülmesi
- Tek bir çekirdek açığının etkisinin azalması
- Monolitik çekirdek savunması bitmeyen bir mücadeledir ve exclave'ler bunu çözmeye yönelik bir yaklaşımı temsil eder
- Bunun uzun vadede doğru yön mü yoksa geçici bir çözüm mü olduğu belirsiz
- Kişisel bir temenni → gelecekte CHERI ve ARM Morello tabanlı bir yeniden tasarım görmek 😊
- Ancak şu an için bu, tüketici cihaz üreticileri arasında en büyük savunma girişimi
- Bu yazı, hangi bileşenlerin somut olarak exclave'lere taşındığını net biçimde ele almıyor
- Derleme imajlarına bakıldığında şu unsurların exclave içinde çalıştığı görülüyor:
- Güvenli kamera/mikrofon göstergeleri
- Apple Neural Engine (ANE) işlevlerinin bir kısmı
- Bazı aygıt sürücüleri
- Secure Enclave ile iletişim bileşenleri
- Derleme imajlarına bakıldığında şu unsurların exclave içinde çalıştığı görülüyor:
- Gelecekte daha fazla bileşenin exclave'lere taşınması mümkün görünüyor
- Exclave'lerin güvenlik etkisi, bu taşıma çalışmalarının optimizasyon düzeyine bağlı olacak
- Exclave'lerin Apple Private Cloud Compute altyapısında kullanılması mümkün olabilir
- Bulut tabanlı yapay zekada yüksek düzeyde güvenlik ve gizlilik sağlayabilir
1 yorum
Hacker News görüşleri