macOS’te Seçenek ROM güvenliği
Not: Seçenek ROM’lar şu an Apple Silicon yongalı bir Mac’te desteklenmemektedir.
Apple T2 güvenlik yongasına sahip bir Mac’te Seçenek ROM güvenliği
Hem Thunderbolt hem de PCIe aygıtlarında fiziksel olarak kendilerine bağlı bir “Seçenek ROM (OROM)” olabilir. (Bu genellikle gerçek bir ROM değil, firmware’i saklayan yeniden yazılabilir bir yongadır.) UEFI tabanlı sistemlerde bu firmware genellikle UEFI firmware tarafından okunup çalıştırılan bir UEFI sürücüsüdür. Çalıştırılan kodun, hangi donanımdan alındıysa o donanımı ilklendirip yapılandırması gerekir, böylece donanım, firmware’in geri kalanı tarafından kullanılabilir hâle getirilebilir. Özel üçüncü parti donanımların başlama işleminin en erken aşamalarında yüklenip çalışabilmesi için (örneğin harici RAID dizilerinden başlama) bu yetenek gereklidir.
Ancak OROM’lar genellikle yeniden yazılabilir olduğu için bir saldırgan kurallara uygun bir çevre birim OROM’unun üzerine yazarsa bu saldırganın kodu başlatma işleminin erken bir aşamasında çalıştırılır ve çalıştırma ortamını değiştirip daha sonra yüklenen yazılımların bütünlüğünü ihlal eder. Aynı şekilde, saldırgan kendi kötü amaçlı aygıtını sisteme tanıtırsa kötü amaçlı kodlar da çalıştırabilir.
macOS 10.12.3’te, 2011’den sonra satılan Mac bilgisayarlarının davranışı, Mac başlatılırken özel bir tuş birleşimine basılmadığı sürece saptanmış olarak OROM’ları çalıştırmayacak şekilde değiştirildi. Bu tuş birleşimi, kötü amaçlı OROM’ların yanlışlıkla macOS başlatma dizisine yerleştirilmelerine karşı korumaktaydı. Firmware Parola İzlencesi’nin saptanmış davranışı da, kullanıcı bir firmware parolası ayarladıktan sonra tuş birleşimine basılsa bile OROM’lar çalıştırılamayacak şekilde değiştirilmiştir. Bu, fiziksel olarak orada bulunan bir saldırganın kasıtlı olarak kötü amaçlı bir OROM başlatmasına karşı korumaktaydı. Firmware parolası olduğu hâlde OROM da çalıştırması gereken kullanıcılar için macOS’teki firmwarepasswd
komut satırı aracı kullanılarak saptanmış olmayan bir seçenek ayarlanabilir.
OROM Sandbox güvenliği
macOS 10.15’te UEFI firmware, OROM’ları Sandbox ile koruma ve OROM ayrıcalıklarını kaldırma için bir mekanizma içerecek şekilde güncellenmiştir. UEFI firmware genellikle OROM’lar da dahil olmak üzere tüm kodları halka 0 adı verilen maksimum CPU ayrıcalık düzeyinde çalıştırır ve tüm kod ve veri için tek bir paylaşılan sanal bellek alanına sahiptir. Halka 0, macOS çekirdeğinin çalıştığı ayrıcalık düzeyidir. Uygulamaların çalıştığı daha düşük ayrıcalık düzeyi ise halka 3’tür. OROM sandbox, çekirdeğin yaptığı gibi sanal bellek ayrımlarını kullanıp OROM’ların halka 3’te çalışmasını sağlayarak OROM ayrıcalıklarını kaldırır.
Sandbox, hem OROM’ların çağırabileceği arabirimleri (çekirdeklerdeki sistem çağrısı filtreleme gibi) hem de OROM’un kaydolabileceği aygıt türünü (uygulama onayı gibi) önemli ölçüde sınırlar. Bu tasarımın avantajı, kötü amaçlı OROM’ların artık halka 0 bellekte hiçbir yere doğrudan yazamamasıdır. Buna karşılık bu OROM’lar, çok dar ve iyi tanımlanmış bir Sandbox arabirimiyle sınırlanır. Bu sınırlı arabirim, saldırı zeminini önemli ölçüde azaltır ve saldırganları önce Sandbox’tan kurtulup ayrıcalığı yükseltmeye zorlar.