Apple Exclaves Hakkında
(medium.com/@randomaugustine)- Apple’ın Exclaves özelliği, XNU çekirdeği ele geçirilse bile bazı hassas kaynakları ayrı bir bölgede tutmayı amaçlayan bir izolasyon mekanizmasıdır; M4 ve A18 için XNU kaynak kodunun yayımlanmasıyla yapısının bir kısmı ortaya çıktı
- XNU, Mach tabanlı olsa da gerçek sistem işlevleri aynı ayrıcalık kapsamına yığıldığı için monolitik çekirdek gibi davranır; Exclaves ise Secure Enclave, PPL ve SPTM ile devam eden savunmayı derinleştirme çizgisinin üzerinde yer alır
- Exclaves, önyükleme sırasında tanımlanan alanlar ve kaynaklardan oluşur; paylaşımlı bellek tamponları, ses tamponları, sensörler, Conclave, servisler vb. XNU’dan, SPTM’in yeni sayfa tipleriyle korunur
- Secure Kernel(SK), XNU ile aynı uygulama işlemcisinde çalışır; kaynak kodundaki ipuçları seL4 ailesi ve ARM TrustZone secure world kullanımına işaret etse de iç uygulamanın önemli bir kısmı açık değildir
- Gerçek güvenlik etkisi, hangi bileşenlerin Exclaves’e taşındığına bağlıdır; mevcut derleme imajları kamera/mikrofon güvenlik göstergeleri, Apple Neural Engine’in bazı bölümleri, bazı sürücüler ve Secure Enclave iletişim bileşenlerinin kullanıldığını gösterir
Monolitik çekirdekler ve Apple’ın izolasyonu güçlendirme çizgisi
- Modern işletim sistemleri genellikle kullanıcı modu ve çekirdek modu adlı iki koruma alanıyla çalışır
- Uygulamalar dosya erişimi veya ağ iletişimi gibi yüksek yetkili işleri doğrudan yapamaz; sistem çağrıları üzerinden çekirdekten ister
- Çekirdek erişim yetkisini kontrol ettikten sonra, açık bir dosyayı temsil eden handle gibi sonuçları kullanıcı moduna döndürür
- Çoğu işletim sistemi monolitik çekirdek mimarisi kullanır; çekirdek donanıma, belleğe ve kullanıcı verilerinin tamamına sınırsız erişim yetkisine sahiptir
- Çekirdek büyüdükçe güvenlik açığı oluşma olasılığı da artar
- Çekirdek açıklarının istismarı tüm sistemin ele geçirilmesine yol açabilir
- Mikroçekirdekler, çekirdek içindeki işlevleri azaltıp çoğu işi ayrıcalıksız ayrı süreçlere taşıyarak güvenlik izolasyonunu iyileştirebilir
- Performans sorunları ve uygulama yazılımı karmaşıklığının artması dezavantaj olarak kalır
- iOS, macOS, tvOS, visionOS ve watchOS’un paylaştığı XNU, Mach mikroçekirdeği tabanlıdır; ancak uygulamada birçok sistem işlevi aynı ayrıcalık kapsamındadır ve fiilen monolitik çekirdek gibi davranır
Exclaves öncesinde Apple’ın güvenlik izolasyonu
- 2013’te iPhone 5s ile Secure Enclave tanıtıldı
- SepOS adlı mikroçekirdek tabanlı bir işletim sistemi, özel olarak güçlendirilmiş bir CPU çekirdeğinde çalışır
- SepOS’un çekirdeği, Apple’ın L4-embedded özel sürümü olan cL4’tür
- Şifreleme anahtarları ve Face ID gibi biyometrik bilgileri korumak için kullanılır
- iOS çekirdeği ele geçirilse bile, Secure Enclave’in kendisini hedefleyen ek bir exploit yoksa genellikle etkilenmez
- Secure Enclave ile Secure Exclaves farklı hedeflerdir
- 2017’de A11 tabanlı iPhone 8 ve iPhone X’te Page Protection Layer(PPL) tanıtıldı
- Bellek sayfa tablolarını değiştirme yetkisini çekirdeğin yalnızca bir kısmına verir, çekirdeğin geri kalanının bunları doğrudan değiştirmesini engeller
- Saldırı yüzeyi küçük olduğu için atlatılması nadirdi; ancak çekirdeğin geri kalanı veri ihlali için gereken birçok yetkiyi hâlâ koruyordu
- 2021–2023 döneminde A15 ve iOS 17 ile Secure Page Table Monitor(SPTM), PPL’in yerini aldı ve onu geliştirdi
- Ek bellek işlevlerini korur ve küçük çekirdek bileşeni düzeyinde izolasyon sağlar
- Apple imzası olup olmadığını doğrulayan kod imzası denetimi de ayrıştırıldı
- Bu dönemde XNU kaynak kodunda exclaves’e dolaylı referanslar görünmeye başladı; o sırada bunun SPTM tarafından yönetilen bir alt sistem olduğu tahmin edildi
2024’te XNU Exclaves’in ortaya çıkışı
- M4 ve A18 tabanlı sistemleri destekleyen XNU kaynak kodunun yayımlanmasıyla Exclaves yapısının bir kısmı ortaya çıktı
- iPhone 16 gibi sistemler hedeflenir
- Önceki işlemcilerde Exclaves etkin değildir
- Exclaves, XNU’dan ayrılmış kaynakları ifade eder ve çekirdek ele geçirilse bile korunacak bir bölge olarak tasarlanmıştır
- Kaynaklar OS derlemesi sırasında önceden tanımlanır
- Ad veya ID ile tanımlanır
- Tipleri vardır ve önyükleme sırasında başlatılır
- Kendine özgü alanlar halinde düzenlenir
- SPTM, Exclave’e özel sayfa tipiyle Exclave belleğini XNU’dan korur
- Tespit edilen kaynak tipleri, XNU ile Exclave arasındaki sınırın nerede oluştuğunu gösterir
- XNU ve Exclave’in birlikte erişebildiği paylaşımlı bellek tamponu
- XNU açısından salt okunur veya okuma-yazma yapılabilir olarak ayarlanabilir
- Kamera/mikrofon erişim göstergeleri gibi özelliklerin güvenliği için kullanılan ses tamponları ve sensörler
- Birden çok kaynağı kendi güvenlik alanında gruplayan Conclave ve Conclave Manager
- XNU thread’i çağırdığında Exclave alanında kod çalıştırabilen servisler
- XNU ve Exclave’in birlikte erişebildiği paylaşımlı bellek tamponu
Secure Kernel ve secure world
- Apple, Exclave servislerinin XNU’dan izole biçimde çalışması için Secure Kernel(SK)’i tanıttı
- SK imaj dosyasında “cL4” sürüm dizgesi bulunur
- IPC yapısı, özgün SepOS cL4’ün L4-embedded’ından çok seL4’ye daha yakın görünür
- SK dizgelerinde capability, frame, untyped memory, minting gibi seL4 ailesi terimler sıkça geçer
- Apple, Nisan 2024’te seL4 Foundation’a katıldığını duyurdu
- SepOS özel bir işlemcide çalışırken, SK XNU/iOS ile aynı yüksek hızlı uygulama işlemcisinde çalışır
- Bu yapı ek işlemci ayrıcalık seviyeleri gerektirir; olası temel olarak sanallaştırma uzantıları, Apple’ın SPTM ek işlevleri ve ARM TrustZone gündeme gelir
- XNU kaynak kodunda TrustZone’un secure world geçişine ilişkin referanslar vardır
- XNU ve iOS’un insecure world’de, SK’nin ise secure world’de çalıştığı bir yapı olarak yorumlanır
- SK, Exclave’lere, kaynaklara ve servislere kısıtlı bir çalışma ortamı sağlar
- ARM’nin önerdiği Trusted Applications tasarım deseninden farklıdır
- Exclave servislerinin ve Secure Kernel’in saldırı yüzeyi sınırlı olduğundan, secure world’den kaçıp XNU’yu ele geçirmek muhtemelen insecure world’den XNU’ya doğrudan saldırmaktan çok daha zordur
- XNU kaynak kodunda secure world geçişi RINGGATE olarak adlandırılır
- SPTM’in geçişi yönetebileceği kısmı tahmin düzeyinde kalır; ilgili alan açık kaynak değildir ve ikili analiz gerektirir
Alanlar, kaynaklar, Conclave
- XNU, önyükleme sırasında bulduğu Exclave kaynak bilgilerini tutmak için iki aşamalı bir çekirdek tablo yapısını başlatır
root_table, alanları adlarıyla tanımlar- Her alan, o alanın kaynaklarını tutan ikinci aşama tabloya referans verir
- Tespit edilen alan yapısı şöyledir
com.apple.kernel- Conclave launcher, debug servisleri, güvenlik göstergeleri için ExclaveIndicatorController, log servisi, ExclaveKit önyüklemesinde kullanılan FrameMint vb. içerir
- Exclave servislerinin upcall üzerinden XNU alanında dosya I/O yaparken kullandığı paylaşımlı bellek tamponu
com.apple.storage.backendde bulunur - Her Conclave için bir tane bulunan Conclave Manager kaynağını içerir
com.apple.darwin- Açık kaynak bileşenlerde kullanım örneği yoktur
com.apple.conclave.name- Her Conclave için bir alan vardır
- Servisler, ses tamponları, paylaşımlı bellek tamponları vb. içerebilir
com.apple.driver.*name*- Aygıt sürücüsü başına alan olarak yorumlara dayanarak varlığından söz edilir; ancak açık kaynak kodda fiilen doğrulanmamıştır
- Conclave, birden çok kaynağı içerebilen bir kaynak tipi olmasının yanı sıra, servislerin ve kaynakların birbirine paylaşımlı erişime sahip olmasını sağlayan bir güvenlik birimidir
- Bir Mach task’ın çağırabileceği Conclave’ler sınırlıdır
- Her Conclave’in çekirdek alanında konumlanan bir Conclave Manager’ı vardır
- Conclave; attach, launch, stop, detach gibi bir yaşam döngüsüne sahiptir
- launching, stopping gibi geçiş durumları da vardır
Conclave oluşturma, bağlanma ve çalıştırma
- XNU’nun
posix_spawn()fonksiyonu,task_add_conclave()çağırarak task ile Conclave Manager kaynağını bağlayabilir- İlişki 1:1’dir
- Bir task yalnızca bir Conclave Manager’a bağlanır; tersi de aynıdır
- Conclave spawn edebilen taraf launchd veya
com.apple.private.exclaves.conclave-spawnentitlement’ına sahip bir task’tırcom.apple.private.exclaves.conclave-hostentitlement’ı, yeni bir task spawn etmekten çok kişinin kendisini attach etme yetkisine daha yakın yorumlanır
- Çekirdek, hedef Conclave’e bağlı Conclave Manager kaynağını
com.apple.kernelalanında arar- Ardından Conclave kaynak yapısına, Conclave Manager endpoint’ine giden Tightbeam endpoint’i kaydedilir
- Tightbeam, Exclave bileşenleri arası iletişim için bir RPC framework’ü gibi görünür
- Conclave’in çalıştırılması, bağlı Conclave Manager task’ında yapılmalıdır
- Exclaves tamamen
EXCLAVES_BS_BOOTED_EXCLAVEKITdurumuna önyüklenene kadar launch denemesi bekler - Yeni Mach trap,
_exclaves_ctl_trap()fonksiyonuna girer;EXCLAVES_CTL_OP_LAUNCH_CONCLAVE, Conclave çalıştırmak için kullanılır - Production ortamında launch edilen Conclave host’u tainted duruma gelebilir ve sonrasında
exit()çekirdek panic’ine yol açabilir
- Exclaves tamamen
Exclaves için yeni Mach trap
_exclaves_ctl_trap(), Exclave işlevlerini işleyen yeni bir Mach trap’tir- operation parametresine göre çeşitli eylemler gerçekleştirir
- Genellikle çağrılan operation için gerekli entitlement’ı doğrular
EXCLAVES_CTL_OP_BOOT, sistem önyüklemesi sırasında iki kez çağrılır- Exclaves boot stage 2 başlangıcı
- ExclaveKit önyüklemesi
- Çağıran launchd olmalı veya
com.apple.private.exclaves.bootentitlement’ına sahip olmalıdır
- Kalan ana operation’lar için en azından mevcut task’ın
com.apple.private.exclaves.kernel-domainentitlement’ına sahip olması veya ilgili Conclave Manager task’ı olması gerekirEXCLAVES_CTL_OP_LOOKUP_SERVICES: mevcut task’ın Exclave alanında servisleri arar; başarısız olursa yetkiye göre Darwin alanı ve kernel alanını kontrol ederEXCLAVES_CTL_OP_ENDPOINT_CALL: mevcut task alanındaki Exclave service endpoint’ini çağırır; mevcut thread secure world’e geçer ve belirli kodu çalıştırır- named buffer oluşturma ve copyin/copyout
- audio buffer oluşturma ve copyout
- sensor oluşturma, start, stop, status
- notification resource lookup
Downcall ve Upcall
- Downcall, secure world’deki Exclave service endpoint’inin çağrılmasıdır; secure world kodunun çalışmaya başladığı noktadır
- Downcall, mevcut thread’i secure world’e geçirir ve secure kodun entry point’inde çalıştırmayı başlatır
- İşi başka bir thread’e devretme yöntemi değildir
- Çağıran task kernel domain entitlement’ına sahip olmalı veya ilgili service Conclave’ine bağlı Conclave Manager task’ı olmalıdır
- Bir Conclave’in çağrılabilir en fazla 128 servisi vardır
- XNU,
sk_enter()üzerinden thread’i Secure Kernel’e zamanlıyor gibi görünür- SK’nin bağımsız thread’lere sahip olmaması ve XNU’nun secure world’deki tüm thread zamanlamasını ele alması mümkündür
- secure world’de çalışan bir thread, yield, wait, suspend, interrupt gibi genel scheduler işlemleri yapabilir
- Bu durumda thread secure world’den ayrılıp XNU çekirdek context’ine döner ve ardından Exclave zamanlama kodu tarafından yeniden secure world’e zamanlanır
- Downcall’un IPC yapısı, secure world’e girmeden önce request/response tamponları olarak ayarlanır
- Nihai IPC request yapısı hazırlanırken ve
sk_enter()çağrılırken kesmeler ve preemption devre dışı bırakılır - Bunun nedeni bu yapının CPU çekirdeği başına yalnızca bir tane olmasıdır
- Downcall response; kesilme, upcall, yield ve yeniden zamanlama nedeniyle başka bir CPU’nun çekirdek başına response buffer’ına dönebilir
- Nihai IPC request yapısı hazırlanırken ve
- Upcall, secure world’de çalışan bir thread’in XNU’nun yardımına ihtiyaç duyduğunda Tightbeam üzerinden Exclaves upcall handler’ını çağırmasıdır
- İzin verilen belirli XNU fonksiyonlarıyla sınırlıdır
- Upcall yapan thread kullanıcı moduna dönemez
- Secure world’e tekrar downcall yapıp yeniden giriş yapmak da izinli değildir
- Thread, upcall gerçekleştirdiği noktadaki secure world context’ine dönmelidir
- Kaynak kodda tespit edilen upcall kategorileri bellek, dosya depolama, DriverKit, DriverKit Apple Neural Engine ve Conclave kontrolüdür
XNUProxy ve önyükleme aşamaları
- XNUProxy için çok sayıda referans vardır; ancak tam konumu ve rolü kesinleşmemiştir
- Bağımsız bir Exclave alanı olabilir
com.apple.kernelalanında belirli downcall’ları işleyen bir servis veya servis grubu olabilir- Secure world’e downcall yapan bir SPTM alt sistemi de olabilir
Exclaves_L4.hyorumları, XNU Proxy’nin çeşitli Exclave’leri reachable hâle getirdiğini yazar- user app template
- audio driver
- ExclaveDriverKit
- Always On Processor ve Display Coprocessor için SecureRTBuddy
- Conclave control, Conclave debug vb.
- Exclaves önyüklemesi, insecure world ile secure world arasında koordinasyon gerektirir; sorun çıkarsa genellikle
panic()ile sonuçlanır - Önyükleme üç aşamaya ayrılır
- Stage 1 açık kaynakta görünmez; SK’yi belleğe yükleyip kod imzasını doğruladıktan sonra çalıştırılabilir hâle getiren secure boot süreci olması muhtemeldir
- Stage 2; upcall server başlatma, secure kernel önyükleme bilgilerini toplama, Exclave scheduler başlatma, XrtHostedXNU kext başlatma, multicore başlatma, XNU Proxy başlatma, static Exclave resource keşfi, Conclave Manager endpoint oluşturma vb. gerçekleştirir
- Stage 3,
com.apple.service.FrameMintservisini bulur veframemint_framemint__init(),framemint_framemint_populate()ile ilgili çağrıları yaptıktan sonraEXCLAVES_BS_BOOTED_EXCLAVEKITdurumuna geçer
SPTM bellek tipleri ve kalan sınırlamalar
- SPTM, alt sistem bazlı erişim denetimi için bellek sayfalarına tip atar
- Mevcut tipler arasında
XNU_USER_EXEC,XNU_USER_DEBUG,XNU_USER_JIT,XNU_ROZONE,XNU_KERNEL_RESTRICTED, TXM/DART ile ilgili tipler vb. bulunur
- Mevcut tipler arasında
- Exclaves yeni SK ile ilgili tipler ekler
SK_DEFAULT: Yalnızca SK’ye ait, XNU erişemezSK_IO: Yalnızca SK’ye ait, XNU erişemezSK_SHARED_RO: SK ve XNU arasında paylaşımlı, ancak XNU için salt okunurSK_SHARED_RW: SK ve XNU arasında paylaşımlı, XNU için okuma-yazma yapılabilir
- Exclaves, Apple işletim sistemlerine defence in depth eklemek için büyük bir yatırım olarak görülebilir
- Hassas kaynakları izole ederek potansiyel saldırı yüzeyini azaltır
- Tek bir çekirdek ele geçirmesinin etkisini düşürme yönündedir
- Hangi bileşenlerin çekirdekten Exclaves’e taşındığı doğrudan analiz edilmemiştir
- Derleme imajları, güvenli kamera/mikrofon göstergeleri, Apple Neural Engine’in bazı işlevleri, bazı aygıt sürücüleri ve Secure Enclave ile iletişim kuran bileşenlerin kullanımına işaret eder
- Gelecekte daha fazla bileşen Exclaves’e taşınabilir
- Exclaves dışındaki XNU alanı hâlâ saldırı hedefidir
- Analiz Apple Open Source XNU build 11215’e dayanır
- ExclaveKit, ExclaveDriverKit, XNUProxy’nin tam konumu, XNU’nun secure world’e geçiş yöntemi, Secure Kernel ve secure world userspace ek analiz gerektiren alanlar olarak kalmaktadır
1 yorum
Hacker News yorumları
Apple’ın son dönem telefon ve dizüstü SoC’lerinde iç içe sanallaştırma için donanım desteği yer alıyor; buna kamera LED’i için exclave kullanan M4 iPad Pro da dahil.
Apple Platform Security kılavuzunun bir sonraki revizyonunda SK exclave’i ve Wi‑Fi radar algılama için baseband hafifletmelerini ele almasını umuyorum: https://help.apple.com/pdf/security/en_US/apple-platform-sec...
Apple’ın SPTM ek özellikleri hakkında bir SPTM tersine mühendislik yazısı da var: https://www.df-f.com/blog/sptm3
XNU, mikro çekirdekten esinlenen bir yapıya doğru yeniden düzenleniyor; kod tabanını küçültürken güvenlik açısından hassas işleri dışarı taşımayı hedefleyen bir yönelim bu. Bellek alanı izolasyonuna Secure Page Table Monitor (SPTM) yardımcı oluyor; kod imzalama, yetki doğrulama, Developer Mode ve Restricted Execution Mode gibi işleri ise Trusted eXecution Monitor (TXM) üstleniyor.
TrustZone ile ilgili CVE sayısı 150’nin üzerinde: https://www.cve.org/CVERecord/SearchResults?query=trustzone
Google da birkaç yıl önce Pixel’de donanımsal iç içe sanallaştırma kullanan pKVM’yi uygulamıştı; pKVM L0’a kıyasla TrustZone yetkilerini işbirlikçi biçimde düşüren kodu da Linux mainline’a aldırdı. Ancak Debian “Linux Terminal” VM dışında pKVM/AVF’den yararlanan savunma özellikleri duyurmadı.
Başta TrustZone kullanımını varsaymıştı, ancak exclave mevcut SPTM ve GXF (Guarded Execution) yetki seviyesini de kullanıyor olabilir gibi görünüyor. Öyleyse RAM gereksinimi ve geliştirme eforu dışında iPhone 13 ve sonrasında desteklenmemesi için temel bir neden olmayabilir. Elbette Apple için de bunun devasa bir iş olduğu kesin.
Steve’in içtenlikle “dizüstü bilgisayar kişinin günlüğüdür” diye düşündüğüne ve Apple’ın bunu koruma sorumluluğu olduğuna inandığına benziyor.
Tim de Steve’le aynı inanca sahip olmasaydı CEO olamazdı diye düşünüyorum. Kulağa tuhaf geliyor ama Steve’i gerçekten özlüyorum.
https://www.youtube.com/watch?v=Ij-jlF98SzA
Cihazın sahibi değiştikten sonra bile Apple’ın aygıt ve yazılım pazarını kontrol etme biçimini de sevmiyorum. Böyle ekosistemlerden titizlikle uzak duruyorum; neden birçok sözde “hacker”ın kaputu kaynakla kapatılmış sistemlere bu kadar heveslendiğini anlamıyorum.
Jobs’ın söylediği şeylerden hâlâ içime işleyen çok söz var. Apple yakın zamanda “classic Mac” ekran koruyucusunu çıkardı; bu da özgün Mac GUI’sinin ne kadar özenle tasarlandığını gösteriyor. Kimse uygulama hatalarının işletim sistemini çökerttiği günleri özlemiyordur; ama Apple’ın bugün de o zamanki kadar detaylara takıntılı olmasını isterdim.
Biraz açık konuşmak gerekirse, burada mistik ya da dini bir unsur var gibi. Sanki mucizeler, kehanetler, güzel ürünler ve ritüeller; pürüzsüz, bereketli ve sonsuz bir gelecek sunacak tanrı gibi şefkatli bir erkeğe duyulan derin bir özlem var. Bir tür ruhsal “boşluğun” dolması gibi.
Jobs’tan ya da LLM’lerden hoşlanan insanları küçümsemek niyetinde değilim; sadece gözlemimi paylaşıyorum.
İlgili başlık: “Apple rearranged its XNU kernel with exclaves” https://news.ycombinator.com/item?id=43314171
Ayrıca macOS ara sürümlerine bir sonraki majör sürümü hazırlayan özelliklerin girmesi nadir değil; Sonoma 14.4 ile iOS 17.4, iPadOS 17.4 ve watchOS 10.4’e eklenen en temel ve önemli özelliğin exclave olabileceği söyleniyor.
https://eclecticlight.co/2024/08/20/sonomas-unfinished-busin...
Fiziksel kamera LED’ini kontrol etmek için güvenli bir exclave kullanmak oldukça şaşırtıcı; basit bir iş için gereğinden fazla karmaşık bir tasarım yapılmış gibi görünüyor.
Kamera modülüne çok küçük, amaca özel bir donanım mantığı koymak yeterli olurdu gibi. Dijital giriş/çıkışı ya da kamera gücünü gate etmek ve kamera mantığını hızla açıp kapatarak yapılan saldırıları engellemek için LED’in her seferinde en az birkaç saniye yanmasını sağlayan bir pulse stretcher koymak yeterli.
Mikrofon için de benzer bir devre ve ayrı renkte fiziksel bir LED olması iyi olurdu. Ekranda yazılımla gösterilen nokta tek başına yeterli değil.
LED sürücüsünün de ekran parlaklığı ya da ortam ışığı sensörü bilgisini bilmesi gerekir. Doğrudan güneş ışığı altında görülebilecek kadar parlak olmalı; ama bu parlaklık karanlık ortamlarda rahatsız edici olabilir ve kameranın normal kullanımını da engelleyebilir.
SK’nın güvenli olduğuna inanıyorsan, onu kullanmak daha basit olup daha iyi sonuç verebilir. SK’nın güvenli olmadığını düşünüyorsan zaten tüm varsayımlar çöker.
Apple genelde meşru bir sebep olmadan işleri bilerek karmaşıklaştırmaz.
https://news.ycombinator.com/item?id=42260379
Bu yazarı merak ediyorum. Çok incelikli ve iyi yazılmış bir metin; exclave’leri takip eden biri açısından da iyi toparlanmış.
Bunun Linux’taki Virtualization Based Security ile nasıl karşılaştırıldığını merak ediyorum.
Videosu olan sayfaya göre bu güvenlik özelliği kerneli güçlendirebilir ve kernel ele geçirilse bile kritik kernel kaynaklarının değiştirilmemesini garanti edebilir. VBS, donanım sanallaştırması ve Hyper‑V adlı hypervisor’ı kullanarak daha yüksek bir güven seviyesi olan Virtual Trust Level 1’de (VTL1) çalışan yalıtılmış bir sanal ortam oluşturur; VTL1’in de Guest kernel’den ayrı, kendi kerneli olan Secure Kernel vardır.
https://lssna24.sched.com/event/1aIeD/linux-virtualization-b...
Exclave önemli, ama ara bir aşama gibi görünüyor. Apple, XNU’yu daha az riskli hale getiriyor; ancak mikrokernel mimarisini tamamen benimsemektense hâlâ savunmacı hareket ediyor.
Bahse girmem gerekse, exclave’in daha büyük bir değişime giden köprü olduğunu söylerdim. Bu, Fuchsia gibi daha modüler bir işletim sistemi de olabilir; bellek güvenliğini donanım düzeyinde zorunlu kılan CHERI tarzı bir güvenlik modeli de olabilir.
Apple, tüketici işletim sistemi güvenliğinde önde; ama exclave, sistem tasarımını tamamen baştan düşünmenin sonucundan ziyade yamalı bohça tarzı bir iyileştirmeye daha yakın. Yine de son 10 yılda ana akım işletim sistemi tasarımındaki en büyük güvenlik değişimi olma ihtimali yüksek ve toplam etkisinin ortaya çıkması birkaç yıl sürecek.
Mach oluşturulduğunda güvenlik bugünkü kadar büyük bir ilgi alanı değildi. Günümüz makineleri o kadar güçlü ki, mikrokernel süreçler arası iletişiminin yarattığı ek yük artık ihmal edilebilir düzeye gelmiş olabilir.
Bu seviyedeki içeriğe aşina değilim, ama bakınca enclave’in kendisine saldırıp kernel’den daha yüksek yetkilere yükselmek mümkünmüş gibi görünüyor. Bu donanım parçasının bir yardımcı işlemci gibi bir şey olup olmadığını merak ediyorum.
Dolayısıyla bunu istismar ederseniz kernel’de olmayan erişim yetkileri elde etmeniz doğru. Ama zaten amaç da bu. Hedef, kernel ele geçirilse bile o hassas alana erişilememesini sağlamak.
Apple belgelerinde SPTM’nin kullanılmadığı yazıyor; bunun macOS güvenliğini nasıl etkileyeceğini merak ediyorum: https://support.apple.com/guide/security/operating-system-in...
Şimdilik kamera göstergesini gösteren mevcut exclave gibi şeyler, MacBook’larda özel donanım olduğundan macOS’a pek uygulanacak gibi görünmüyor. Ama ileride macOS için de geçerli exclave’ler çıkabilir.
Yani bu, macOS’un SPTM kullanmadığı anlamına gelmez. macOS’un SPTM’yi imzasız kod çalıştırmayı engellemek için kullanmadığı anlamına gelir. Çünkü macOS’ta kullanıcıların birkaç adımı geçtikten sonra imzasız kod da çalıştırabilmesi gerekir.
Uygulama geliştiricilerinin Exclave kullanıp kullanamayacağını merak ediyorum. Apple’ın şirket içinde şaşırtıcı yeni özellikler geliştirip bunları geliştiricilere tamamen kapalı tutması rahatsız edici. Bunun sonucunda banka uygulamaları, cüzdanlar, güvenli mesajlaşma uygulamaları gibi şeyler güvenliği daha zayıf olan kullanıcı alanında çalışmaya devam etmek zorunda kalıyor
Basit bir örnek olarak, güncel macOS, uygulamalar açıkça seçmese bile tüm uygulamaları sandbox içinde çalıştırıyor. Bu sandbox, uygulamaların birbirlerinin dosyalarını değiştirmesini engelliyor; eskiden bu, güvenlik sisteminin büyük bir zayıf noktasıydı. Çünkü paket imzası yalnızca ilk çalıştırmada kontrol ediliyor, her çalıştırmada kontrol edilmiyordu
Şu anda çekirdek-çekirdek yapısında da olduğundan, üçüncü taraf desteği olursa bunun güvenlik aygıtı sürücüleri gibi şeyleri uygulamakla sınırlı kalması muhtemel. Ancak Apple, üçüncü taraf sürücüleri hipervizöre değil kullanıcı alanına itmeye çalışıyor. Bu geçişin exclave geliştirmesiyle paralel ilerlediği düşünülürse, üçüncü taraf sürücü geliştiricilerinin exclave kullanmasını sağlayacak bir yöne dönecek gibi görünmüyor.
Apple’ın bu tür çekirdek tarafından zorunlu kılınan platform özelliklerini dışarıya açmadan önce içeride çok daha fazla olgunlaştırması yaygın bir durum. arm64e’deki pointer authentication da buna benzer bir örnek