SBAT-ın mahiyyətinin araşdırılması və Linuxun yüklənməsinə təsir edən Windows yeniləməsi ilə bağlı problemlər

Matthew Garrett, tanınmış Linux çekirdek geliştiricisi, özgür yazılım hareketine katkılarından dolayı FSF tarafından ödüllendirilmiş bir isimdir. SBAT (Secure Boot Advanced Targeting) mekanizmasının, dijital imzayı iptal etmeden önyükleyicideki zayıflıkları engellemek için oluşturulduğunu ve UEFI Secure Boot açıkken Windows ile birlikte kurulan bazı Linux dağıtımlarının önyükleme işlemini durduran son Windows güncelleme olayıyla nasıl bir rol oynadığını açıkladı. Kısacası, hem Microsoft, güncellemeyi yeterince test etmeden ve uygulanmaması gereken sistemlere uygulamasıyla hem de bazı Linux dağıtımlarındaki geliştiriciler, GRUB önyükleyicisini ve SBAT nesil numarasını güncellemeyerek sorumlu oldu, çünkü GRUB'da zayıflıklar keşfedildi.

Aşağıda Garrett'ın notunun çevirisi bulunmaktadır:

UEFI Secure Boot spesifikasyonu geliştirilirken, tüm katılımcılar, diyelim ki, biraz naifti. Secure Boot'un temel güvenlik modeli, güvenli ortamda çalışan tüm kodların çalıştırılmadan önce doğrulanması gerektiğidir — firmware önyükleyiciyi, önyükleyici çekirdeği, çekirdek herhangi bir yürütme zamanı ek kodu kontrol eder ve şimdi başka herhangi bir güvenlik politikasını zorlamak için güvenilir bir ortamımız var. İnsanların hata yapabileceği açıktır, ancak spesifikasyonda güvenilir olmayan bileşenlerin iptal edilmesi için bir yöntem bulunmaktaydı: güvenilir olmayan kodun özdeş hashes'ini bir değişkene ekleyin ve ardından bu hash ile herhangi bir şeyi yüklemeden reddedin, hatta bu güvenilir bir anahtar ile imzalanmış olsa bile.

Ne yazık ki, sorun ölçekle ilgili. Secure Boot ekosisteminde çalışan her Linux dağıtımı kendi önyükleyici ikili dosyalarını üretir ve her birinin kendi hash'i vardır. Böyle bir önyükleyicinin kaynak kodunda bir zayıflık tespit edilirse, birçok farklı ikili dosyanın iptal edilmesi gerekir. Ayrıca, tüm bu hash'leri içeren bir değişken için saklama alanı sınırlıdır. GRUB'un (başlangıçta önyükleme koruması uygulanmadığı zamanlarda yazılmış ve bir dizi ayrı img-şeması ve font ayrıştırıcısına sahip olan önyükleyici) başka bir saldırgana rastlamak için bir mekanizması olduğu zaman, her seferinde yeni bir hash seti eklemek için yeterli alan kalmayacağından, başka bir çözüm gerekiyordu.

Bu qərar SBAT oldu. SBAT-ın ümumi konsepsiyası olduqca sadədir. Yüklənmə zəncirindəki hər bir vacib komponent təhlükəsizlik nəslini elan edir, bu da imzalanmış ikili fayla daxil edilir. Zəiflik aşkar edildikdə və aradan qaldırıldıqda, bu nəsil artır. Daha sonra ən azı nəsili müəyyənləşdirən bir güncəlləmə buraxıla bilər - yüklənmə komponentləri zənirdəki növbəti elementi yoxlayacaq, onun adını və nəsil nömrəsini firmware-də saxlanılanlarla müqayisə edəcək və buna əsaslanaraq onu yerinə yetirmək qərarına gələcək. Bir çox ayrı hash-lərin geri çağırılması əvəzinə, yalnız bir güncəlləmə buraxa bilər ki, “Bu nömrədən aşağı təhlükəsizlik nəsli olan hər hansı GRUB versiyası etibarsız sayılır”.

Bəs bu, niyə belə əhəmiyyət kəsb etməyə başladı? SBAT Linux icması və Microsoft tərəfindən birlikdə hazırlanmışdır və Microsoft Windows üçün bir güncəlləmə buraxmağa qərar verdi ki, sistemlər bəlli bir səviyyədən aşağı təhlükəsizlik nəsli olan GRUB versiyalarına etibar etməsinlər. Bu, o səbəbdən edildi ki, bu GRUB versiyalarında zəifliklər mövcud idi ki, bu da cinayətkarlara Windows-un təhlükəsiz yüklənmə zəncirini pozmağa imkan verirdi və biz bunun reallaşdığı bəzi zərərli proqram nümunələrini gördük (Black Lotus Windows yükləyicisindəki zəiflikdən istifadə etdi, lakin GRUB-dakı zəiflik də eyni dərəcədə təsirli idi). Təmiz təhlükəsizlik baxımından baxsaq, bu tamamilə qanuni bir istəyidir.

İndi «Nəsə baş verib» mesajı və bu güncəlləmə nəticəsində yükləmə mümkün olmamaq məsələsinə gəldikdə. Bu mesajı shim, Microsoft-dan hansısa bir kod deyil, verib. Shim SBAT güncəlləmələrini nəzərə alır və sistemdəki digər yükləyicilərin qəbul etdiyi təhlükəsizlik prinsiplərini poza bilmək üçün, hərçənd ki, Microsoft SBAT güncəlləməsinə sahibdir, Linux yükləyicisi nəticədə köhnə GRUB versiyalarını işə salmaqdan imtina edir. Hər şey gözlənildiyi kimi işləyir.

İnsanların qarşılaşdığı problem, bir neçə Linux paylanmasının daha yeni təhlükəsizlik nəsil olan GRUB versiyalarını buraxmaması ilə bağlıdır, buna görə bu GRUB versiyaları təhlükəsiz hesab olunmur (qeyd edilməlidir ki, GRUB paylanmaların özləri tərəfindən imzalanır, Microsoft tərəfindən deyil, buna görə burada xaricdən gələn geridə qalma yoxdur). Microsoft-un planına uyğun olaraq, Windows Update yeniləməsinin yalnız Windows-da işləyən sistemlərə tətbiq olunması gözlənilirdi və ikiqat yükləmə quraşdırmaları, quraşdırılmış paylanma GRUB-u yeniləyib SBAT nəsilini yeniləyənə qədər hücumlardan asılı qalırdı. Təəssüf ki, indi açıq olduğu kimi, bu, planlaşdırıldığı kimi baş vermədi və ən azından bəzi ikiqat yükləmə sistemləri yeniləməni tətbiq etdi, bu zaman həmin paylanmanın Shim-i bu paylanmanın GRUB-un yüklənməsini rədd etdi.

Nəticə nədir? Microsoft (aşkar səbəblərlə) Windows-un zəif GRUB versiyası tərəfindən hücuma məruz qala bilməsini istəmirdi, bu da yalanla icra edilərək Windows-un kernelinə bootkit yerləşdirilməsini mümkün edəcəkdi. Microsoft bunu edərək, zəif GRUB versiyaları bu sistemlərdə yüklənməməlidir deyə SBAT dəyişənini yeniləyən Windows yeniləməsini buraxdı. Paylanma tərəfindən təqdim edilən birinci mərhələ Shim yükləyici bu dəyişəni oxudu, quraşdırılmış GRUB-dan SBAT bölməsini oxudu, onların münaqişə təşkil etdiyini anladı və "Nəsə düzgün getmədi" mesajı ilə grub-u yükləməyi rədd etdi. Bu yeniləmə ikiqat yükləmə sistemlərinə tətbiq olunmamalı idi, lakin buna baxmayaraq tətbiq olundu.

Ümumiyyətlə:

1) Microsoft yeniləməni tətbiq edərək, onun tətbiq olunmaması lazım olan sistemlərə tətbiq etdi.

2) Bəzi Linux paylanmaları GRUB yükləyicisində və SBAT təhlükəsizlik nəsilində yeniləmə etməyib, GRUB-da zəifliklər aşkar edildikdə.

Nəticədə, bəziləri öz sistemlərini yükləyə bilmir. Düşünürəm ki, burada çoxlu günahkarlar var. Microsoft daha çox testlər aparmalı idi ki, ikiqat yükləmə quraşdırmalarının dəqiq müəyyənləşdirilməsi mümkün olsun. Lakin, imzalanmış yükləyicilər təqdim edən paylanmalar da onların yeniləndiyindən və təhlükəsizlik nəsilini yenilədiklərindən əmin olmalıdırlar, çünki əks halda onlar digər əməliyyat sistemlərinin sındırılması üçün istifadə edilə bilən bir hücum vektoru təmin edirlər və bu, tamamilə bu məsələdə ictimai müqavilənin pozulmasıdır.

Təəssüf ki, burada qurban olanlar əsasən son istifadəçilərdir ki, onlar sistemin istədikləri əməliyyat sistemini birdən-birə yükləməkdə imtina etdiyini yaşayırlar. Belə bir şey heç vaxt baş verməməlidir. Mən düşünmürəm ki, son istifadəçilər arasında təhlükəsiz yükləmə sisteminin yenilənməsini istəmələri ilə bağlı müayinə yaxşı nəticələr verəcək, və hərçənd ki, təhlükəsiz yükləmə UEFI-nin əksər son istifadəçilərə fayda vermədiyini düşünürəm, amma bu da bir şeydir ki, belə hadisələrdən sonra kəşf etmək istəməzsiniz. Buna görə, bunun standart olaraq aktiv olması üzrə Microsoft-un seçimlərini dəstəkləyirəm, ancaq iki yükləmə olan sistemlərdə yeniləməkdən qaçmağı cəhd etmələri uğursuz bir cəhd oldu.

Hər halda, 2012-ci ildə Linux üçün bu mexanizmin həyata keçirilməsinə ciddi şəkildə cəlb olunmuşam və ilk Shim prototipini yazdım (indi daha geniş bir insanların dəstəklədiyi, illərdir toxunmadığım xeyli yaxşı bir yükləyicidir), buna görə birisini tənqid etmək istəsəniz, xahiş edirəm məni günahlandırın. Bu, baş verməməli olan bir şeydir, və əgər siz Microsoft və ya Linux dağıtımı deyilsinizsə, bu, sizin günahınız deyil. Bağışlayıram.

Mənbə: opennet.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster