U-Boot Bootloader’daki Güvenlik Açıkları
Son günlerde, yaygın olarak kullanılan U-Boot bootloader’ında tespit edilen altı güvenlik açığı, cihaz önyükleme sürecinde kötü niyetli kod yürütülmesine olanak tanıyabilir. Bu durum, güvenlik önlemlerinin ihlal edilmesine ve kalıcı zararlı yazılımların yüklenmesine yol açabilir.
Saldırı Nasıl Çalışıyor?
U-Boot, dünya genelinde açık kaynak kodlu bootloader’lar arasında en çok tercih edilenlerden biridir ve birçok gömülü Linux cihazında, özellikle kurumsal sunucuların Baseboard Management Controller (BMC), ağ ekipmanları, endüstriyel sistemler ve IoT cihazları gibi uygulamalarda yer almaktadır. U-Boot, işletim sistemini yüklemekten sorumlu olduğu için, bootloader’daki güvenlik açıkları, saldırganların işletim sistemi ve güvenlik yazılımları başlatılmadan önce cihazları tehlikeye atmasına olanak tanır.
U-Boot’un “Verified Boot” adlı güvenlik özelliği, yalnızca güvenilir bir anahtar ile imzalanmış firmware ve işletim sistemi görüntülerinin başlatma sırasında yüklenmesini sağlamak için kriptografik imzalar kullanır. Ancak Binarly firması tarafından yayınlanan bir raporda, U-Boot’un FIT (Flattened Image Tree) imza doğrulama kodunda altı güvenlik açığı tespit edilmiştir.
Etkilenen Sistemler
Araştırmacılara göre, bu güvenlik açıkları arasında iki adet, firmware doğrulama sürecinde rastgele kod yürütme ile sonuçlanabilecek zayıflık bulunmaktadır. Diğer dört açık ise, cihazların çökmesine sebep olabilecek şekilde tasarlanmıştır. Dört güvenlik açığı şu şekildedir:
- BRLY-2026-037: Kötü niyetli bir firmware görüntüsü işlenirken U-Boot’un çökmesine neden olabilecek bir açık. Belirli koşullar altında, rastgele kod yürütme olasılığı da bulunmaktadır.
- BRLY-2026-038: Firmware imzası doğrulama sırasında rastgele kod yürütülmesine izin verebilecek bir bellek bozulma açığı.
- BRLY-2026-039: Firmware görüntüsünden öteyi okumaya zorlanarak cihazların çökmesine neden olabilecek bir dış aralık okuma açığı.
- BRLY-2026-040: Özel olarak hazırlanmış firmware görüntülerinin bootloader’ı çökertmesine olanak tanıyan bir null pointer dereference açığı.
- BRLY-2026-041: Dışarıda saklanan firmware verilerinin yetersiz doğrulaması, kötü niyetli firmware görüntüleri işlendiğinde U-Boot’un çökmesine neden olabilir.
- BRLY-2026-042: Sınırsız bir geriye döngü hatası, stack belleğinin tükenmesine neden olabilir ve bootloader’ı çökertir.
Binarly araştırmaları, bu zayıflıkların çoğunun U-Boot 2013.07 sürümünden itibaren var olduğunu ve bu nedenle 50’den fazla projeyi etkileyebileceğini göstermektedir.
Çözüm ve Korunma
Eğer bu zayıflıklar başarıyla kullanılabilirse, saldırganlar boot işleminin en erken aşamalarında kod yürütme imkanına sahip olabileceklerdir. Bu durum, işletim sistemi yüklenmeden önce gerçekleştiği için saldırganlar, firmware güvenlik önlemlerini devre dışı bırakabilir, boot sürecini değiştirebilir ve kalıcı firmware zararlı yazılımlar yükleyebilir. Binarly, bu tür kötü niyetli yazılımların tespiti zor olduğunu, çünkü işletim sistemi başlamadan önce çalıştıklarını vurgulamaktadır.
Zafiyetlerin istismar edilmesi fiziksel erişim gerektirmeyebilir; örneğin, uzaktan firmware güncellemeleri destekleyen sistemlerde, saldırgan yönetim arayüzünü ele geçirirse, özel bir firmware görüntüsü yükleyerek açıkları istismar edebilir.
Sonuç
Binarly, bu güvenlik açıklarını U-Boot yöneticilerine bildirmiş ve altı sorun için yamanın önerildiğini belirtmiştir. Bu yamalar projeye dahil edilse de, U-Boot’un donanım üreticileri tarafından entegre edilmesi gerektiği için, güncellemelerin dağıtılması zaman alabilir. Eski veya desteklenmeyen cihazlar için her zaman bir güncelleme sağlanamayabilir.
Bu nedenle, cihazlarınızı korumak için gerekli adımları atmalısınız:
- Firmware güncellemelerini kontrol edin ve mümkünse yükleyin.
- Portları kapatın ve gereksiz hizmetleri devre dışı bırakın.
- BMC ve diğer kritik sistemlerin güncellemelerini takip edin.
Düzenli olarak güvenlik kontrolleri yaparak oluşabilecek tehditlere karşı önleyici tedbirler almanız önemlidir.


