Microsoft'un Windows ve daha sonra Linux cihazlarını üretici yazılım (firmware) enfeksiyonlarından korumak için geliştirdiği sektör standardı olan Güvenli Önyükleme (Secure Boot) mekanizmasının, varlığının 14 yılından 13'ünde aşırı derecede kolayca atlatılabildiği ortaya çıktı. Güvenlik firması ESET'in araştırmacıları tarafından keşfedilen bu durum, en az bir tanesi 2013 yılına ait olmak üzere hatalı olduğu bilinen ancak yazılım devi tarafından hala imzalanmaya devam eden 11 adet üretici yazılım görüntüsünü tespit ettikten sonra gün yüzüne çıktı.
Bu görüntüler, Güvenli Önyükleme'yi Linux cihazları ve yardımcı yazılımlar için genişletmek amacıyla geliştirilen "şimler" (shims) olarak biliniyor. Novice hacker'ların bile uygulayabileceği kadar basit bir teknikle, bu eski ve unutulmuş şimler, cihazların anakartına entegre edilmiş olan UEFI (Unified Extensible Firmware Interface) korumasını tamamen etkisiz hale getirmek için kullanılabiliyor. Bu büyük güvenlik açığının temel nedeni, şimlerin imzalanmasını denetleyen Microsoft'un, güvenlik açıkları keşfedildikten sonra halka açık olan bu görüntülerin dijital imzalarını iptal etmemesi.
Tehdit Hem Windows Hem de Linux Kullanıcılarını Etkiliyor
Her iki işletim sistemini de çalıştıran cihazlara yüklenebilen şimler sayesinde, tehdit hem Windows hem de Linux kullanıcıları için geçerli. Bir saldırgan, bu şimler aracılığıyla, önyükleme sürecinin erken aşamalarında yüklenen ve işletim sisteminin yeniden kurulmasından veya sabit diskin değiştirilmesinden sonra bile kalıcılığını sürdüren zararlı üretici yazılımlar kurabilir.
ESET araştırmacısı Martin Smolár, "Bu eski şimleri tehlikeli kılan şey, yeni bir güvenlik açığı değil," diyerek durumu açıklıyor. "UEFI Güvenli Önyükleme'yi atlatmak için yeni bir zafiyete gerek yok. Bir saldırganın karmaşık istismar tekniklerine ihtiyacı yok; sadece eski, hala güvenilir olan ancak iptal edilmemiş bir şim ikilisi ve UEFI şimlerinin nasıl çalıştığına dair temel bir anlayış yeterli. Bu, UEFI Güvenli Önyükleme gibi temel bir güvenlik özelliğini atlatmak için yeterli."
Güvenli Önyükleme, 2012 yılında önyükleyici (bootkit) adı verilen bu tür zararlı üretici yazılımların tehdidini azaltmak amacıyla tanıtılmıştı. Güvenli Önyükleme olmadan, bir cihaza kısa süreli fiziksel erişimi olan saldırganlar - hatta cihaz kapalıyken bile - 2018'de Rus devlet hacker'ları tarafından kullanılan LoJax, 2020'de bulunan MosaicRegressor, 2022'de CosmicStrand ve 2023'te BlackLotus gibi önyükleyicilere benzer zararlı yazılımlar yükleyebilirler. Bunların yanı sıra ESpecter, FinSpy ve MoonBounce gibi isimlerle takip edilen başka önyükleyiciler de bulunmaktadır.
Çoğu önyükleyici zararlı yazılımı, saldırganların hedef alınan cihazlara fiziksel erişimini gerektirir. Güvenli Önyükleme'nin açıkça koruması gereken tehdit modellerinden biri de budur.
CERT tarafından derlenen 11 şimlik bir liste, Redhat, OpenSuse ve Oracle gibi Linux dağıtıcıları tarafından kullanılanların yanı sıra PC-Doctor Finland'ın Matriculation Examination Board gibi üçüncü taraf yazılımların bir parçası olan şimleri de gösteriyor. Bunların birçoğu, SBAT ve MOK reddetme listeleri gibi bazı korumaların varlığından önce oluşturulmuş. Diğerleri ise kodlarındaki veya yetkilendirdikleri ikinci aşama ikililerindeki birikmiş hataları içeriyor.
Windows makinelerindeki güvenin tek dayanağı, Microsoft'un dijital olarak imzalanmış UEFI önyükleyicisidir. Önyükleme işlemi sırasında bir bileşenin yüklenmesi için, önyükleme sırasında yürütülen diğer tüm kodların açıkça imzalanmış bir sertifikası olması gerekir.
Şimler ise farklı çalışır. Bunlar ikincil bir güven kaynağıdır ve Microsoft tarafından diğer UEFI sertifikalarından biri kullanılarak imzalanır. Buradan, anakart veya yazılım üreticisinin şim içine gömülü olan sertifikası, daha sonra yüklenecek tüm yazılımları yetkilendirir.
Şimlerde güvenlik açıkları bulunduğunda, Microsoft bunları iptal eder. Bahsi geçen 11 şim durumunda, şirket bazen on yıldan uzun bir süre boyunca bunu yapmadı. ESET, bu durumu CERT ve Microsoft'un dikkatine sunduktan sonra şirket nihayet Haziran ayındaki düzenli aylık yama sürümünde bunları iptal etti.
Karmaşıklık Uygulamanın Düşmanıdır
Microsoft, bu hatanın nasıl veya neden meydana geldiğini henüz açıklamadı. Olası bir neden, Güvenli Önyükleme'nin işleyişinin oldukça karmaşık olmasıdır. Hem Windows Önyükleme Yöneticisi hem de UEFI şimleri iki veritabanı yükler. `db` veritabanı, izin verilen tüm imzalama sertifikalarını ve Authenticode özetlerini listeler. `dbx` ise artık güvenilmeyen sertifikaları ve özetleri içerir. Bir bileşenin yüklenebilmesi için `db` aracılığıyla yetkilendirilmesi ve `dbx`'te iptal edilmemiş olması gerekir.
Önyükleme sırasında yürütülen çok sayıda Linux bileşeni göz önüne alındığında, bunların her birini bu veritabanlarına dahil etmek mümkün değildir, zira `dbx` yalnızca 32kb alana sahiptir. Bu nedenle Microsoft, SBAT (Secure Boot Advanced Targeting) ve Secure Boot Security Version Number (SVN) gibi başka iptal yöntemlerine başvurmuştur.
Smolár, "Kısacası, `dbx` ikilileri iptal ederken, SBAT ve Microsoft'un Güvenli Önyükleme SVN'si sürümleri iptal eder. Bir UEFI uygulaması bu sürüm tabanlı iptal mekanizmalarından birini destekleyen bir güvenlik açığına sahip olduğunda, gerçekten engellenmesi gereken şey, kırık olanı ve dahil olan tüm sürümlerdir - ve bu, uzun bir özet listesinden çok daha kolay bir sürüm numarasıyla yakalanabilir." açıklamasında bulunuyor.
UEFI yükleyicisindeki her bileşen, ikiliyi de doğrulayan aynı sertifika tarafından imzalanan meta verilere sahiptir. Bu meta veri, bileşenin adını belirtir ve her yeni güvenlik düzeltmesi gönderildiğinde artırılan bir nesil numarası atar.
UEFI'de yalnızca önyüklemeye özgü bir değişken, her bileşen için izin verilen minimum nesil numarasını saklar. Değişken numarası, üretici yazılımından ziyade şim tarafından zorlanır.
Şim ayrıca, zorlamanın yalnızca harici değişkene bağlı olmamasını sağlamak için ilkeyi gömer. Bu, SbatLevel olarak bilinen bir mekanizma aracılığıyla yeni ilkenin dahil edilmesine olanak tanır.
Araştırmacı, "Her önyüklemede, şim önce kendi SBAT meta verilerini ilkeye karşı doğrular - bu sayede güncel olmayan bir şim kendini reddetmek için kullanılabilir - ve ardından ilkenin gerektirdiği minimumun altındaki nesil numarasına sahip herhangi bir şeyi reddederek, yüklediği her ikiliye aynı testi uygular." diye yazıyor.
Sürecin karmaşıklığı burada bitmiyor. Sonuç olarak, şimler hem üretici tarafından yönetilen hem de yerleşik bir şim sertifikası içerir; bu sertifika, daha sonra yüklenecek tüm önyükleyicileri ve yardımcı programları yetkilendirir. Daha kapsamlı bir açıklama isteyen okuyucular, Salı günkü yazının bu bölümüne başvurabilirler.
Süreci daha da karmaşıklaştıran bir diğer durum ise, şimleri imzalayan Microsoft sertifikasının geçen ayın sonlarında sona ermesi bile, ESET'in tespit ettiği şimleri iptal etmek için yeterli olmuyor.
Arızalı Şimlerin Kötü Niyetli Bir Galerisi
ESET tarafından tespit edilen şimler, çeşitli saldırılara karşı savunmasız olduğu bilinen ikincil bileşenleri yetkilendiriyor. Örneğin, Oracle şimi, CVE-2015-5381'e karşı savunmasız bir ikiliyi imzalıyor. Smolár, bu güvenlik açığını istismar etmek için gereken becerinin düşük olduğunu belirtiyor. Diğer savunmasız şimler ise, etkilenen şimin yayınlanmasından sonra yürürlüğe giren MOK reddetme listesi zorlaması ve SBAT zorlaması gibi korumaları desteklemiyor. Hatta tespit edilen bazı şimlerin kendi kodlarında güvenlik açıkları bulunuyor.
Kısa olmak adına, Salı günkü raporda yer alan birçok ek ayrıntı bu makaleden çıkarılmıştır.
Rahatsız Edici Bir Olasılık
Belirtildiği gibi, bu savunmasız şimler hem Windows hem de Linux makinelerine karşı kullanılabilir, ancak varsayılan halleriyle Windows 11 Secured-core PC'leri muhtemelen etkilemez. Microsoft'un Haziran ayı yama paketini yükleyen herhangi bir Windows kullanıcısı artık savunmasız değil. Linux kullanıcıları ise Linux Vendor Firmware Service'i kontrol etmeli veya dağıtıcılarına danışmalıdır. İptal durumları uefi-dbx-audit betiği kullanılarak kontrol edilebilir.
Saldırganların on yıldan uzun bir süredir, esasen numaralarla yapılan hack betikleri aracılığıyla Güvenli Önyükleme'yi atlatma imkanına sahip olması, Microsoft'un donanım üreticileriyle ortaklaşa önerdiği mekanizma için pek de olumlu bir gelişme değil. Daha önce de belirtildiği gibi, bu felaketin önemli bir katkıcısı, sürecin karmaşıklığıdır.
Firmware güvenlik uzmanı, runZero CEO'su ve kurucusu HD Moore, "Bu, tüm güvenli önyükleme modeline sağlam bir red" diyerek, Güvenli Önyükleme'nin uzun süredir eleştirmeni olduğunu belirtiyor. Moore'un şikayetleri arasında, Microsoft'un tüm UEFI platformu için fiili güven kökü olması, korumanın yeterince ölçeklenememesi ve en üst düzey sertifikalar sona erdikten sonra bile bileşenlerin önyükleme yapabilmesi yer alıyor.
Moore, "Sonuç, herkesin (Microsoft hariç) bildiği, Güvenli Önyükleme'yi atlayan çok sayıda imzalı şey ve bunların bazıları diğer şeyleri önyüklemek için kullanılabilir - ve her ikisinin de normal güvenlik hataları ve diğer hataları var, bu da hemen hemen her şeyi önyüklemek için kullanılabilecekleri anlamına geliyor. Tüm ekosistem bir ölçüde bozuk ve yeniden başlatılması gerekiyor." diye ekliyor.