GRUB2 önyükleyicisindeki NTFS dosya sistemiyle çalışmayı sağlayan sürücüde, özel olarak tasarlanmış bir dosya sistemi görüntüsüne erişilirken kodunun önyükleyici düzeyinde yürütülmesine izin veren bir güvenlik açığı (CVE-2023-4692) tespit edildi. Güvenlik açığı, UEFI Güvenli Önyükleme onaylı önyükleme mekanizmasını atlamak için kullanılabilir.
Güvenlik açığı, kullanıcı tarafından denetlenen bilgileri ayrılan arabelleğin dışındaki bir bellek alanına yazmak için kullanılabilen $ATTRIBUTE_LIST NTFS özniteliğine (grub-core/fs/ntfs.c) ilişkin ayrıştırma kodundaki bir hatadan kaynaklanmaktadır. Özel olarak tasarlanmış bir NTFS görüntüsünü işlerken, taşma, GRUB belleğinin bir kısmının üzerine yazılmasına ve ayrıca belirli koşullar altında, kodunuzun önyükleyicide yürütülmesini düzenlemenize olanak tanıyan UEFI ürün yazılımı bellek alanına zarar vermesine neden olur veya ürün yazılımı seviyesi.
Ek olarak, GRUB2'nin NTFS sürücüsünde, özel olarak tasarlanmış bir NTFS görüntüsünde "$DATA" özelliği ayrıştırılırken rastgele bir bellek alanının içeriğinin okunmasına izin veren başka bir güvenlik açığı (CVE-2023-4693) daha tespit edildi. Diğer şeylerin yanı sıra güvenlik açığı, bellekte önbelleğe alınan hassas verileri almanıza veya EFI değişkenlerinin değerlerini belirlemenize olanak tanır.
Şu ana kadar sorunlar yalnızca geçici çözümlerle giderildi. Dağıtımlardaki güvenlik açığı düzeltmelerinin durumu şu sayfalardan değerlendirilebilir: Debian, UbuntuSUSE, RHEL, Fedora gibi dağıtımlarda GRUB2 sorunlarını gidermek, yalnızca paketi güncellemekten daha fazlasını gerektirir; ayrıca yeni dahili dijital imzalar oluşturmayı ve yükleyicileri, önyükleyicileri, çekirdek paketlerini, fwupd aygıt yazılımını ve ara katmanı güncellemeyi de gerektirir.
Çoğu LinuxUEFI Güvenli Önyükleme modunda doğrulanmış önyükleme için dağıtımlar, Microsoft tarafından dijital olarak imzalanmış küçük bir ara katman kullanır. Bu katman, GRUB2'yi kendi sertifikasıyla doğrular ve dağıtım geliştiricilerinin her çekirdek ve GRUB güncellemesi için Microsoft'u bilgilendirme ihtiyacını ortadan kaldırır. GRUB2'deki güvenlik açıkları, başarılı ara katman doğrulamasından sonra, ancak işletim sistemi önyüklenmeden önce rastgele kod yürütülmesine olanak tanır. Bu, saldırganların Güvenli Önyükleme etkinleştirildiğinde güven zincirine girmelerine ve sonraki önyükleme işlemi üzerinde tam kontrol elde etmelerine olanak tanır; örneğin, başka bir işletim sistemini önyükleyebilir, işletim sistemi bileşenlerini değiştirebilir veya Kilitlenme korumasını atlayabilirler.
Dijital imzayı iptal etmeden güvenlik açığını engellemek için, dağıtımlar SBAT (UEFI Secure Boot Advanced Targeting) mekanizmasını kullanabilir; bu mekanizma için destek, çoğu popüler dağıtımda GRUB2, shim ve fwupd için uygulanmıştır. LinuxSBAT, Microsoft ile iş birliği içinde geliştirilmiştir ve üretici, ürün, bileşen ve sürüm hakkında bilgiler de dahil olmak üzere UEFI bileşen yürütülebilir dosyalarına ek meta veriler eklemeyi içerir. Bu meta veriler dijital olarak imzalanır ve UEFI Güvenli Önyükleme için izin verilen veya reddedilen bileşenler listelerine ayrı olarak dahil edilebilir.
SBAT, Güvenli Önyükleme anahtarlarını iptal etmek zorunda kalmadan ayrı bileşen sürüm numaraları için dijital imzaların kullanımını engellemenize olanak tanır. Güvenlik açıklarının SBAT aracılığıyla engellenmesi, bir UEFI sertifika iptal listesinin (dbx) kullanılmasını gerektirmez, ancak imzalar oluşturmak ve dağıtımlar tarafından sağlanan GRUB2, shim ve diğer önyükleme yapıtlarını güncellemek için dahili anahtarın değiştirilmesi düzeyinde gerçekleştirilir. SBAT kullanıma sunulmadan önce, bir saldırgan, kullanılan işletim sisteminden bağımsız olarak, UEFI Güvenli Önyükleme'yi tehlikeye atmak için önyükleme önyüklemesini kullanabileceğinden, iptal sertifikaları listesinin (dbx, UEFI İptal Listesi) güncellenmesi güvenlik açığının tamamen engellenmesi için bir ön koşuldu.
Kaynak: opennet.ru
