GRUB2'deki UEFI Güvenli Önyüklemeyi atlamanıza izin veren güvenlik açıkları

GRUB2 önyükleyicide, UEFI Güvenli Önyükleme mekanizmasını atlamanıza ve doğrulanmamış kod çalıştırmanıza (örneğin, önyükleyici veya çekirdek düzeyinde çalışan kötü amaçlı yazılım uygulamanıza) olanak tanıyan 7 güvenlik açığı giderildi. Ayrıca dolgu katmanında UEFI Güvenli Önyüklemeyi atlamanıza da olanak tanıyan bir güvenlik açığı vardır. Bu güvenlik açığı grubu, daha önce önyükleyicide tanımlanan benzer sorunlara benzer şekilde Boothole 3 olarak kodlandı.

GRUB2 ve shim'deki sorunları gidermek için dağıtımlar, GRUB2, shim ve fwupd için desteklenen SBAT (UEFI Güvenli Önyükleme Gelişmiş Hedefleme) mekanizmasını kullanabilecektir. SBAT, Microsoft ile ortaklaşa geliştirilmiştir ve UEFI bileşenlerinin yürütülebilir dosyalarına üretici, ürün, bileşen ve sürüm hakkında bilgiler içeren ek meta veriler eklemeyi içerir. Belirtilen meta veriler dijital imzayla onaylanmıştır ve UEFI Güvenli Önyükleme için izin verilen veya yasaklanan bileşenler listesine ayrı olarak dahil edilebilir.

Çoğu Linux dağıtımı, UEFI Güvenli Önyükleme modunda doğrulanmış önyükleme için Microsoft tarafından dijital olarak imzalanmış küçük bir dolgu katmanı kullanır. Bu katman GRUB2'yi kendi sertifikasıyla doğrular; bu da dağıtım geliştiricilerinin her çekirdeğin ve GRUB güncellemesinin Microsoft tarafından onaylanmasına izin vermez. GRUB2'deki güvenlik açıkları, başarılı dolgu doğrulamasından sonraki aşamada kodunuzun yürütülmesine, ancak işletim sistemini yüklemeden önce, Güvenli Önyükleme modu etkinken güven zincirine girmenize ve aşağıdakiler de dahil olmak üzere sonraki önyükleme süreci üzerinde tam kontrol elde etmenize olanak tanır: başka bir işletim sistemi yüklemek, işletim sistemi bileşenleri sistemini değiştirmek ve Kilitleme korumasını atlamak.

Önyükleyicideki sorunları düzeltmek için dağıtımların yeni dahili dijital imzalar oluşturması ve yükleyicileri, önyükleyicileri, çekirdek paketlerini, fwupd ürün yazılımını ve dolgu katmanını güncellemesi gerekecektir. SBAT kullanıma sunulmadan önce, bir saldırgan, kullanılan işletim sistemi ne olursa olsun, GRUB2'nin güvenlik açığı bulunan eski bir sürümüne sahip önyüklenebilir medyayı kullanabileceğinden, sertifika iptal listesinin (dbx, UEFI İptal Listesi) güncellenmesi güvenlik açığının tamamen engellenmesi için bir ön koşuldu. UEFI Güvenli Önyükleme'den ödün vermek için dijital imzayla onaylanmıştır.

SBAT, bir imzayı iptal etmek yerine, Güvenli Önyükleme anahtarlarını iptal etmek zorunda kalmadan bireysel bileşen sürüm numaraları için 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. Şu anda en popüler Linux dağıtımlarına SBAT desteği zaten eklenmiştir.

Tanımlanan güvenlik açıkları:

  • CVE-2021-3696 ve CVE-2021-3695, özel olarak tasarlanmış PNG görüntüleri işlenirken teorik olarak saldırgan kodunu yürütmek ve UEFI Güvenli Önyüklemeyi atlamak için kullanılabilen yığın tabanlı arabellek taşmalarıdır. Çalışan bir istismar oluşturmak çok sayıda faktörün ve bellek düzeniyle ilgili bilgilerin kullanılabilirliğinin dikkate alınmasını gerektirdiğinden, sorunun istismar edilmesinin zor olduğu belirtilmektedir.
  • CVE-2021-3697 - JPEG görüntü işleme kodunda ara bellek yetersizliği. Sorundan yararlanmak, bellek düzeni hakkında bilgi gerektirir ve PNG sorunuyla (CVSS 7.5) hemen hemen aynı karmaşıklık düzeyindedir.
  • CVE-2022-28733 - grub_net_recv_ip4_packets() işlevindeki bir tamsayı taşması, rsm->total_len parametresinin özel hazırlanmış bir IP paketi gönderilerek etkilenmesine olanak tanıyor. Sorun, sunulan güvenlik açıkları arasında en tehlikeli olanı olarak işaretlenmiştir (CVSS 8.1). Başarılı bir şekilde yararlanılırsa güvenlik açığı, kasıtlı olarak daha küçük bir bellek boyutu tahsis ederek verilerin arabellek sınırının ötesine yazılmasına olanak tanır.
  • CVE-2022-28734 - Soyulmuş HTTP üstbilgileri işlenirken tek baytlık arabellek taşması. Bir sorun, özel hazırlanmış HTTP isteklerini ayrıştırırken GRUB2 meta verilerinin bozulmasına (arabelleğin bitiminden hemen sonra boş bir bayt yazılması) neden olabilir.
  • CVE-2022-28735 Shim_lock doğrulayıcısındaki bir sorun, çekirdek dışı dosya yüklemeye izin veriyor. Güvenlik açığı, imzasız çekirdek modüllerini veya doğrulanmamış kodu UEFI Güvenli Önyükleme modunda yüklemek için kullanılabilir.
  • CVE-2022-28736 GRUB2 tarafından desteklenmeyen işletim sistemlerini önyüklemek için kullanılan, zincir yükleyici komutunun yeniden çalıştırılması yoluyla grub_cmd_chainloader() işlevinde zaten serbest bırakılmış bir bellek erişimi. Saldırganın GRUB2'deki bellek tahsisini belirleyebilmesi durumunda istismar, saldırganın kodunun yürütülmesine neden olabilir
  • CVE-2022-28737 - Hazırlanmış EFI görüntüleri yüklenirken ve yürütülürken, hand_image() işlevinde dolgu katmanında arabellek taşması meydana geliyor.

Kaynak: opennet.ru

Yorum ekle