Shim Linux önyükleyicisindeki kritik bir güvenlik açığı, saldırganların mevcut güvenlik mekanizmalarını atlayarak kod yürütmesine ve çekirdek yüklenmeden önce hedef sistemin kontrolünü ele geçirmesine olanak tanıyor.
Shim, Birleşik Genişletilebilir Ürün Yazılımı Arayüzü (UEFI) kullanan bilgisayarlarda Güvenli Önyükleme işlemini kolaylaştırmak için tasarlanmış, Red Hat tarafından bakımı yapılan küçük, açık kaynaklı bir önyükleyicidir.
Araç, çoğu UEFI anakartında varsayılan olarak kabul edilen ve genellikle GRUB2 önyükleyicisini yükleyen önyükleme işleminin bir sonraki aşamasını doğrulamak için kullanılan bir Microsoft anahtarıyla imzalanır.
Shim, Linux dağıtımları gibi açık kaynaklı projelerin, donanım üzerinde kontrolü sürdürürken, önyükleme sırasında yetkisiz veya kötü amaçlı kod yürütülmesini önleme gibi Güvenli Önyüklemenin avantajlarından faydalanmasına olanak sağlamak amacıyla zorunluluktan oluşturulmuştur.
CVE-2023-40547 olarak takip edilen yeni Shim kusuru, Microsoft’un güvenlik araştırmacısı Bill Demirkapi tarafından keşfedildi ve ilk kez 24 Ocak 2024’te açıklandı.
Hata, bir ağ görüntüsünü HTTP üzerinden başlatmak için kullanılan Shim’in httpboot.c kaynağında bulunuyor.
httpboot.c’deki hatayı düzeltme taahhüdünde “Dosyaları HTTP veya ilgili protokoller aracılığıyla alırken, shim alınan verileri depolamak için bir arabellek ayırmaya çalışır” ifadesi yer alıyor.
“Maalesef bu, boyutun alınan veriden daha küçük bir boyut belirtmek üzere değiştirilebilen bir HTTP başlığından alınması anlamına geliyor.”
“Bu durumda, kod yanlışlıkla ayırma için başlığı kullanır, ancak onu rx arabelleğinden kopyalamak için protokol meta verilerini kullanır ve bu da sınırların dışında bir yazma ile sonuçlanır.”
Kusurla ilgili daha fazla ayrıntı 2 Şubat 2024’te Eclypsium’un bu güvenlik sorununa dikkat çekmek için dün bir rapor yayınlamasıyla ortaya çıktı.
Güvenlik açığı, Shim’in HTTP yanıtlarını ayrıştırmasında yatıyor ve bu, bir saldırganın sınırların dışında yazmaya neden olacak şekilde özel hazırlanmış HTTP istekleri oluşturmasına olanak tanıyor.
Bu, bir saldırganın, işletim sistemi yüklenmeden önce ayrıcalıklı kod çalıştırarak, çekirdek ve işletim sistemi tarafından uygulanan güvenlik mekanizmalarını etkili bir şekilde atlayarak sistemin güvenliğini aşmasına olanak tanıyabilir.
Eclypsium, yerel, komşu ağ ve uzak saldırı noktaları da dahil olmak üzere birden fazla potansiyel istismar yolunun CVE-2023-40547’den yararlanabileceğini söylüyor. Firmanın raporunda aşağıdaki üç yöntem vurgulanıyor:
Uzaktaki bir saldırgan, potansiyel olarak kurban ile sunucu arasındaki herhangi bir ağ konumundan, HTTP önyüklemesi için HTTP trafiğine müdahale ederek ortadaki adam (MiTM) saldırısı gerçekleştirebilir.
Yeterli ayrıcalıklara sahip yerel bir saldırgan, canlı bir Linux USB kullanarak EFI Değişkenlerini veya EFI bölümünü değiştirerek önyükleme sırasını değiştirebilir ve tehlikeye atılmış bir dolgu yükleyerek Güvenli Önyüklemeyi devre dışı bırakmadan ayrıcalıklı kodu çalıştırabilir.
Aynı ağdaki bir saldırgan, güvenliği ihlal edilmiş bir önyükleyici dolgusu yüklemek için PXE’yi kullanabilir ve bu güvenlik açığından yararlanabilir.
Etki ve düzeltmeler
RedHat, 5 Aralık 2023’te CVE-2023-40547’yi düzeltmek için bir kod taahhüdü yayınladı, ancak Güvenli Önyüklemeyi destekleyen ve Shim kullanan Linux dağıtımlarının kendi yamalarını yayınlaması gerekiyor.
Red Hat, Debian, Ubuntu ve SUSE gibi Shim’i kullanan Linux dağıtımları, kusurla ilgili bilgiler içeren öneriler yayınladı.
Linux kullanıcılarının, CVE-2023-40547 ve diğer beş önemli güvenlik açığına yönelik bir düzeltme içeren Shim’in en son sürümü olan v15.8’e güncelleme yapmaları önerilir.
Eclypsium, Linux kullanıcılarının ayrıca UEFI Güvenli Önyükleme DBX’ini (iptal listesi) savunmasız Shim yazılımının karmalarını içerecek şekilde güncellemesi ve yamalı sürümü geçerli bir Microsoft anahtarıyla imzalaması gerektiğini açıklıyor.
Bunu yapmak için önce Shim 15.8’e yükseltin ve ardından ‘fwupdmgr update’ komutunu kullanarak DBX güncellemesini uygulayın (fwupd gerekir).
Bazı Linux dağıtımları bu güncellemeyi gerçekleştirmek için bir GUI aracı sunar; bu nedenle terminale girmeden önce paket yöneticinizi kontrol ettiğinizden emin olun.
Toplu olarak istismar edilmesi pek mümkün olmasa da, CVE-2023-40547 göz ardı edilmesi gereken bir hata değildir; çünkü işletim sistemi önyüklemesinden önce kod çalıştırmak, sistem güvenliğinin aşılmasının en güçlü ve en gizli biçimlerinden biridir.