SBAT mĂ”iste ja Windowsi vĂ€rskendamisega seotud probleemide analĂŒĂŒs, mis mĂ”jutas Linuxi kĂ€ivitamist

Matthew Garrett, tuntud Linuxi tuuma arendaja, kes on saanud avatud lĂ€htekoodiga tarkvara fondilt preemia oma panuse eest vabasi tarkvara arengusse, rÀÀkis SBAT (Secure Boot Advanced Targeting) mehhanismi olemusest, mis on loodud haavatavuste blokeerimiseks alglaadijates ilma digitaalse allkirja tĂŒhistamiseta, samuti selle rollist hiljutises Windowsi vĂ€rskenduse intsidentsis, mis tĂ”i kaasa teatud Linuxi distributsioonide kĂ€ivitamise peatamise, kui need olid paigaldatud koos Windowsiga UEFI Secure Booti aktiveeritud sĂŒsteemidesse. LĂŒhidalt öeldes on sĂŒĂŒdi nii Microsoft, kes ei testinud vĂ€rskendust tĂ€ielikult ja rakendas seda sĂŒsteemidele, millele see ei pidanud sobima, kui ka mĂ”ningate Linuxi distributsioonide arendajad, kes ei uuendanud GRUBi alglaadijat ja SBAT-i pĂ”lvkonna numbrit, kui GRUBis avastati haavatavused.

Allpool on Garrett'i mÀrkme tÔlge:

Kui töötati vĂ€lja UEFI Secure Boot spetsifikatsiooni, olid kĂ”ik osalised, ĂŒtleme, natuke naiivsed. Secure Booti peamine turvamudel on, et kogu kood, mis kĂ€ivitatakse privileeetsetes keskkondades tuuma tasemel, peab olema enne tĂ€itmist kontrollitud - pĂŒsivara kontrollib alglaadijat, alglaadija kontrollib tuuma, tuum kontrollib igasugust tĂ€iendavat koodi, mis laaditakse tĂ€itmise ajal, ja nĂŒĂŒd on meil usaldusvÀÀrne keskkond, kus saame kehtestada iga teise soovitud turvapoliitika. Ilmselgelt vĂ”ivad inimesed eksida, kuid spetsifikatsioonis oli ette nĂ€htud viis allkirjastatud komponente, mis on osutunud usaldusvÀÀrseteks, tĂŒhistamiseks: lihtsalt lisage vale koodi hash muutujasse ja siis keelduda laadimast midagi, millel on see hash, isegi kui see on allkirjastatud usaldusvÀÀrse vĂ”tmega.

Kahjuks selgus, et probleem on ulatuses. Iga Linuxi distributsioon, mis töötab Secure Boot ökosĂŒsteemis, genereerib oma enda kĂ€ivitusfailid, ja igal neist on oma hash. Kui sellise kĂ€ivitusfaili lĂ€htekoodist avastatakse haavatavus, tuleb tagasi kutsuda suur hulk erinevaid kĂ€ivitusfaile. Ja mĂ€lumaht muutujale, mis sisaldab kĂ”iki neid hase, on piiratud. Lihtsalt ei piisa ruumist, et iga kord, kui selgub, et GRUB-il (kĂ€ivituslaadur, mis kirjutati algselt ajal, mil turvaloomine ei olnud praktikas, ja millel on mitu eraldi pildifailide parserit, samuti fondide parser) on veel ĂŒks mehhanism rĂŒndaja jaoks, et sundida seda kĂ€ivitama suvalist koodi, on vajalik teine lahendus.

Selle lahenduseks sai SBAT. SBATi ĂŒldine kontseptsioon on ĂŒsna lihtne. Iga oluline komponent kĂ€ivitusprotsessis kuulutab vĂ€lja turvageneratsiooni, mis lisatakse allkirjastatud binaarfailile. Kui haavatavus avastatakse ja kĂ”rvaldatakse, suurendatakse seda generatsiooni. Siis saab vĂ€lja anda vĂ€rskenduse, mis mÀÀrab miinimumgeneratsiooni – kĂ€ivituskomponendid vaatavad jĂ€rgmist elementi ahelas, vĂ”rdlevad selle nime ja generatsiooni numbrit sellega, mis on salvestatud firmware muutuja juurde, ja otsustavad, kas seda kĂ€ivitada vĂ”i mitte, tuginedes sellele. Selle asemel, et tagasi kutsuda suurt hulka eraldi hase, saab vĂ€lja anda ĂŒhe vĂ€rskenduse, mis lihtsalt ĂŒtleb: "Iga versioon GRUB-ist, mille turvageneratsioon on alla selle numbri, loetakse usaldamatuks."

Kusjuures, miks see Ă€kki aktuaalseks sai? SBAT töötati vĂ€lja koos Linuxi kogukonna ja Microsoftiga, ning Microsoft otsustas vĂ€lja anda Windowsi vĂ€rskenduse, mis kĂ€sitles sĂŒsteemidele GRUB-i versioone, mille turvageneratsioon on allpool mÀÀratud taset, mitte usaldama. See tehti sellepĂ€rast, et need GRUB-i versioonid sisaldasid reaalset turvaaukude, mis lubasid kurjategijatel rikkuvalt Windowsi turvaloomise protsessi, ja me nĂ€gime tĂ”elisi nĂ€iteid pahavarast, mis soovis seda teha (Black Lotus kasutas Windowsi kĂ€ivituslaadurit, kuid haavatavus GRUB-is oli sama tĂ”hus). Kui vaadata seda puhtalt turvalisuse seisukohalt, on see tĂ€iesti pĂ”hjendatud soov.

Mis sellest tegelikult rÀÀgib see sĂ”num "Midagi lĂ€ks tĂ”eliselt valesti" ja selle pĂ€rast, et see uuendus ei laadinud alla. Selle kuvab shim, mitte mĂ”ni Microsofti kood. Shim arvestab SBAT uuendusi ja et mitte rikkuda turvaprintsiipe, mis kehtivad teiste sĂŒsteemide laadijate puhul, ja kuigi Microsoft on vĂ€lja andnud SBAT uuenduse, lĂŒkkab Linuxi laadija seetĂ”ttu tagasi vanemate GRUB versioonide kĂ€ivitamise. KĂ”ik toimib nagu peab.

Probleem, millega inimesed silmitsi seisavad, on see, et mitmed Linuxi distributsioonid ei ole vĂ€lja andnud GRUB versiooni, kus on uusim turvageneratsioon, ning seetĂ”ttu peetakse neid GRUB versioone ebaturvalisteks (tuleb mĂ€rkida, et GRUB allkirjastavad endi distributsioonid, mitte Microsoft, seega ei ole siin vĂ€ljastpoolt tulnud viivitust). Microsofti plaanitult pidi Windows Update rakendama SBAT uuendust ainult sĂŒsteemidele, mis töötavad ainult Windowsiga, ja kĂ”ik topeltbooteerimisseaded jÀÀksid rĂŒnnakute suhtes haavatavaks, kuni installitud distributsioon ei uuenda GRUB-i ja ei uuenda SBAT generaatorit. Kahjuks, nagu on nĂŒĂŒd selge, ei töötanud see nii nagu oli plaanitud, ja vĂ€hemalt mĂ”ned topeltbooteerimisseadmed rakendasid uuenduse, kuid selle distributsiooni Shim keeldus selle distributsiooni GRUB-i laadimast.

Mis on lĂ”ppkokkuvĂ”te? Microsoft (ilmselgetel pĂ”hjustel) ei soovinud, et Windowsi saaks rĂŒnnata haavatava GRUB versiooni abil, mida saaks petta, et see tĂ€idaks kĂ€su suvalise koodi kĂ€ivitamiseks, ning seejĂ€rel seadistada bootkit Windowsi tuuma algusesse laadimise ajal. Microsoft saavutas selle, avaldades Windowsi uuenduse, mis uuendas SBAT muutujat, mĂ€rkides, et haavatavad GRUB versioonid ei tohiks nende sĂŒsteemides kĂ€ivituda. Distributsiooni poolt pakutav Shim laadija esimeses etapis luges selle muutuja, luges SBAT jaotise paigaldatud GRUB-i kopeerimisest, mĂ”istis, et need on konfliktis ja keeldus GRUB-i laadimast, kuvades sĂ”numi "Midagi lĂ€ks tĂ”eliselt valesti". See uuendus ei pidanud kehtima topeltbooteerimisseadmete jaoks, kuid siiski rakendati seda.

KokkuvÔttes:

1) Microsoft rakendas uuendust sĂŒsteemidele, millele see ei pidanud rakenduma

2) Teatud Linuxi distributsioonid ei uuendanud GRUB laadijat ja SBAT turvageneratsiooni, kui GRUB-is tuvastati haavatavused.

MĂ”ned kasutajad ei saa oma sĂŒsteeme kĂ€ivitada. Usun, et siin on palju sĂŒĂŒdlasi. Microsoft peaks tegema rohkem teste, et veenduda, et kahekordse kĂ€ivitamise seadistused on Ă”igesti mÀÀratletud. Samuti peaksid jaotised, mis toimetavad sertifitseeritud boot'lid, veenduma, et nad uuendavad neid ja teevad turvageneratsiooni, et see vastaks nĂ”uetele. Vastasel juhul pakuvad nad rĂŒndevektori, mida saab kasutada teiste operatsioonisĂŒsteemide hĂ€kkimiseks, ja see on teatud mĂ”ttes ĂŒhiskondliku kokkuleppe rikkumine kogu selle asja ĂŒmber.

Kahjuks on peamiselt lĂ”ppkasutajad need, kes kannatavad, kui sĂŒsteem keeldub ootamatult laadimast OS-i, mida nad soovivad kĂ€ivitada. Sedasi ei peaks kunagi juhtuma. Ma ei arva, et lĂ”ppkasutajatelt kĂŒsima, kas nad soovivad sĂŒsteemi turvakĂ€ivitamise uuendusi, tooks head tulemust. Kuigi ma kalduksin arvama, et UEFI turvakĂ€ivitamine ei too enamusele lĂ”ppkasutajatest kasu, on see siiski asi, mida te ei taha avastada selliste juhtumite jĂ€rel. SeetĂ”ttu kaastunde pĂ€rast, et see on vaikimisi aktiveeritud, toetangi selle vaikimisi lubamist ja jagan Microsofti valikut, vĂ€lja arvatud ebaĂ”nnestunud katse vĂ€ltida uuendusi kahekordse kĂ€ivitamise sĂŒsteemidel.

Igal juhul olin tugevalt seotud selle mehhanismi rakendamisega Linuxis 2012. aastal ning kirjutasin esimese prototĂŒĂŒbi Shim (mis on tĂ€napĂ€eval palju parem kĂ€ivitaja, mida toetab laiem inimgrupp ja mida ma pole juba mitu aastat puudutanud). Nii et kui soovite kedagi sĂŒĂŒdistada, siis palun Ă€rge kartke mind sĂŒĂŒdistada. See ei oleks pidanud juhtuma, ja kui te ei ole Microsoft vĂ”i Linuxi jaotus, siis see ei ole teie sĂŒĂŒ. Vabandan.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster