Neseniai nutekėjus „Auksiniam raktui“ iš „Microsoft“, kartu su derinimo režimu, „Windows“ įrenginiuose buvo išjungtas saugus įkrovimas. Skaityk!
„Windows“ OS nebėra numatytasis ir geriausias pasirinkimas mobiliųjų telefonų scenoje. „Android“ atvirojo kodo prigimtis surado daug gerbėjų OĮG, todėl šiais laikais vis mažiau telefonų naudoja „Windows“.
Bet jei esate tarp tų, kurie vis dar naudoja „Windows“ įrenginį kasdieniame gyvenime, jums yra šiek tiek naujienų. Gerai ar blogai, tai priklausys nuo jūsų pozicijos ir šios naujienos naudojimo atvejų interpretacijos.
Kaip pranešė Ars Technica ir Registras su žinia, kilusia iš a svetainę, kuri greičiausiai sukels galvos skausmą (nejuokauju), keli kūrėjai (@never_released ir @TheWack0lian) išsiaiškino, kad užpakalinės durys, kurias „Microsoft“ įdiegė derinimo tikslais, atvėrė galimybę išjungti saugų įkrovą „Windows“ įrenginiuose.
Saugus įkrovimas ir kas tai yra?
Kai pirmą kartą paleidžiate „Windows“ įrenginį, įkrovos procedūra vyksta tokia bendra tvarka: UEFI (Vieninga išplečiama programinės įrangos sąsaja, kuri pakeičia BIOS) -> Įkrovos tvarkyklė -> Įkrovos įkroviklis -> Windows. UEFI yra vieta, kur yra saugios įkrovos funkcija. Kaip rodo pavadinimas
Saugus įkrovimas, ja siekiama pagerinti saugumą reikalaujant skaitmeninių parašų tolesniuose žingsniuose. Iš esmės, jei įkrovos įkroviklis nepasirašytas raktais, su kuriais tikisi UEFI, įrenginio paleidimo procedūra nebus baigta.Saugus įkrovimas yra neprivaloma funkcija, tačiau „Microsoft“ padarė įgalinimą gauti „Windows“ sertifikatą nuo „Windows 8“ ir naujesnės versijos. Priežastis buvo ta, kad dėl saugaus įkrovimo kenkėjiškų programų autoriams bus sunku įterpti kodą į įkrovos procedūrą. Tačiau „Secure Boot“ šalutinis poveikis buvo tai, kad dėl to „Windows“ įrenginiuose buvo šiek tiek sudėtingesnis dvigubas įkrovimas, nes arba antroji OS ir visos jos būtinos sąlygos taip pat turi būti pasirašytos skaitmeniniu būdu, arba turi būti saugios įkrovos neįgalus. Yra daug kitų problemų, o patyrę dvigubos įkrovos naudotojai apie jas žinotų daugiau, nei galėčiau paaiškinti pastraipoje.
Dabar yra kai kurių įrenginių, kuriuose vartotojas negali išjungti saugaus įkrovimo, net jei to norėtų. Tai yra sritis, kurioje mūsų objektas smarkiai susiaurėja iš visų „Windows“ įrenginių (įskaitant staliniai kompiuteriai) į konkrečius „Windows“ įrenginius, tokius kaip „Windows Phone“ įrenginiai, „Windows RT“ įrenginiai, kai kurie „Surface“ įrenginiai ir net HoloLens. Šie galutinio vartotojo įrenginiai turi Saugus įkrovimas užrakintas, reiškia, kad an galutinis vartotojas negali keisti ar išjungti aspektų, susijusių su saugiu įkrovimu, be to, jie negali liesti OS taip, kaip galutiniam vartotojui neleido Microsoft.
Tačiau norint tęsti oficialią plėtrą, „Secure Boot“ reikia šiek tiek atlaisvinti. Įrenginiuose, kuriuose užrakintas saugus įkrovimas, yra saugaus įkrovimo politikos, kurios gali padėti atlikti autorizuotą kūrimą neišjungiant saugaus įkrovimo. Kaip mini tyrinėjantys vartotojai, šį saugaus įkrovos politikos failą įkrovos tvarkyklė įkelia anksti Windows įkrovos proceso metu. Politikos failuose taip pat gali būti registro taisyklių, kurios savo ruožtu gali apimti pačios politikos konfigūracijas, be kitų dalykų. Vėlgi, politikos failas turi būti pasirašytas ir yra kitų nuostatų, užtikrinančių, kad šiuos pakeitimus galėtų atlikti tik „Microsoft“.
Pasirašymo elementas taip pat priklauso nuo vadinamojo įrenginio ID, kuris naudojamas taikant. Leisiu tinklaraščio įrašui paaiškinti, nes yra keletas dalių, kurios man nėra tokios aiškios:
Be to, yra toks dalykas, vadinamas DeviceID. Tai pirmieji 64 sūdytos SHA-256 maišos bitai iš kai kurių UEFI PRNG išėjimų. Jis naudojamas taikant strategijas sistemoje „Windows Phone“ ir „Windows RT“ (mobilestartup ją nustato „Phone“ ir „SecureBootDebug.efi“, kai ji pirmą kartą paleidžiama RT). Telefone politika turi būti konkrečioje EFIESP skaidinio vietoje su failo pavadinimu, įskaitant DeviceID šešioliktainę formą. (Su „Redstone“ tai pakeista į „UnlockID“, kurį nustato „bootmgr“ ir yra tik neapdorota UEFI PRNG išvestis).
Iš esmės „bootmgr“ patikrina politiką, kai ji įkeliama. Jei joje yra įrenginio ID, kuris nesutampa su įrenginio, kuriame veikia „bootmgr“, įrenginio ID, politikos nepavyks įkelti. Bet kokia politika, leidžianti įgalinti testavimo pasirašymą (MS vadina šias Retail Device Unlock / RDU strategijas ir jų įdiegimas atrakina įrenginį), turėtų būti užrakintas naudojant įrenginio ID (UnlockID Redstone ir aukščiau). Iš tiesų, turiu kelias tokias strategijas (pasirašytas „Windows Phone“ gamybos sertifikatu), kur vieninteliai skirtumai yra įtrauktas įrenginio ID ir parašas. Jei neįdiegta tinkama strategija, „bootmgr“ vėl naudoja numatytąją strategiją, esančią jos šaltiniuose. Ši politika blokuoja bandymo pasirašymą ir pan., naudojant BCD taisykles.
Tai ta dalis, kur viskas tampa įdomi. Kurdama „Windows 10 v1607“, „Microsoft“ sukūrė naujo tipo saugaus įkrovos strategiją (dėl trumpumo nuo šiol vadinama SBP), skirtą vidiniams bandymams ir derinimo tikslams. Politika yra „papildoma“ be DeviceID, todėl jos nustatymai sujungiami su esama įkrovos strategija. Įkrovos tvarkyklė įkelia senesnių tipų SBP, tada patikrina jo pasirašymą ir autentiškumą, o tada įkelia šias papildomas įkrovos strategijas. Problema ta, kad nėra papildomos pačios papildomos politikos tikrinimo. Be to, įkrovos tvarkyklės, senesnės nei „Windows 10 v1511“, nežino apie tai, kad šios strategijos yra papildomos, todėl reaguoti taip, tarsi jie būtų įkelę visiškai galiojančią ir pasirašytą politiką. Vėlgi, toks elgesys buvo tikėtinas dėl vidinio kūrimo, todėl kūrėjams nereikėjo pasirašyti kiekvienos OS versijos ir nedidelių pakeitimų, kuriuos jie turėjo atlikti įrenginyje.
Šis SBP vadinamas „auksiniu raktu“, nes jis iš esmės panaikina parašo tikrinimo tikslą. Šis SBP buvo netyčia išsiųstas į mažmeninės prekybos įrenginius, nors ir išjungtas. Kūrėjai rado šį SBP ir paskelbė apie savo išvadas. Dabar SBP gali būti rasta sklandanti internete, šis konkretus ZIP failas naudojamas SBP įdiegti Windows RT įrenginiuose.
Ką tai reiškia?
Jei įkėlėte papildomą SBP, galite įjungti „Windows“ bandomąjį pasirašymą, kad galėtumėte įkelti nepasirašytas tvarkykles. Be to, kadangi šios strategijos pradedamos naudoti prieš įkrovos tvarkyklės etapą, galite pakenkti viso užsakymo saugumui ir paleisti neteisėtą (skaityti savarankiškai pasirašytą) kodą. Tai atveria daug galimybių vartotojams, ketinantiems keisti „Windows“ dalis be leidimo, ir kenkėjiškų programų kūrėjams.
Šio radinio autoriai daugiausia dėmesio skiria viso fiasko ironijai. „Microsoft“ užrakino saugaus įkrovimo funkciją tam tikruose įrenginiuose, kad neleistini pakeitimai būtų toli, bet vėliau įdiegė užpakalines duris, kad galėtų tęsti kūrimą ir derinimą. Tačiau šios užpakalinės durys atveria kelią saugiam įkrovimui išjungti visuose įrenginiuose, kuriuose veikia „Windows“, todėl visas išbandymas tampa beprasmis.
Norintys vartotojai dabar gali ne tik įdiegti „Linux“ paskirstymus (ir galbūt „Android“) tik „Windows“ planšetiniuose kompiuteriuose ir Telefonuose, nenorintys vartotojai taip pat gali turėti kenkėjiškų įkrovos rinkinių, jei jie pažeidžia fizinę prieigą prie prietaisas. Nors pirmasis yra kažkas, ką galime iššokti į orą, antrasis tikrai nesukelia didelio pasitikėjimo. Tai vyksta abiem kryptimis ir parodo, kodėl saugumas yra dviašmenis kardas. Be to, SBP yra universalus, todėl jį galima naudoti bet kuriame įrenginyje, nepriklausomai nuo architektūros. Tai nėra ypač naudinga staliniams kompiuteriams, kuriuose saugią įkrovą galima lengvai išjungti, tačiau tai yra didžiulė galimybė įrenginiams, kuriuose negalite trikdyti saugaus įkrovimo.
Taigi, koks sprendimas?
„Microsoft“ išleido kai kuriuos pataisymus, tačiau kūrėjai tvirtina, kad problema nėra visiškai išspręsta. Galite patikrinti šiuos pleistrus (MS16-094 ir MS16-100) ir tada perskaitykite tinklaraščio straipsnis kodėl jie neišsprendžia problemos. Jei jie teisingi, ši problema nepastebėta pataisymo ar pataisos, tačiau tai netrukdys „Microsoft“ bandyti sukurti daugiau kliūčių kelyje.
Kas toliau?
Yra daugybė galimybių, o kai kurios iš jų atsiranda mūsų „Windows“ forumuose. Galite peržiūrėti mūsų forumus „Windows Phone 8“ kūrimas ir įsilaužimas ir mūsų forumai „Windows 8“, „Windows RT“ ir „Surface Development and Hacking“.. Taip pat galite rasti kai kurių įrenginių instrukcijų gijos, kur kiti vartotojai aptaria tą patį.
Šios derinimo užpakalinės durys ir SBP nutekėjimas yra svarbūs ne tik trečiajai šaliai užrakintų „Windows“ įrenginių kūrimas, jie taip pat rodo niūrų priminimą apie tai, kas gali nutikti, jei tyčia paliktos užpakalinės durys. Pastaruoju metu dėmesys saugumui buvo nukreiptas į tyrimų agentūras, reikalaujančias, kad tokios užpakalinės durys būtų naudojamos siekiant padėti teisiniams tyrimo tikslams. Tačiau anksčiau ar vėliau šie metodai valios patekti į netinkamas rankas. Tai, ką ketinama naudoti kaip įrankį kovojant su nusikalstamumu ir padedant vykdyti teisingumą, vieną dieną taptų paties nusikaltimo įrankiu.
Ką manote apie „Debug SBP“ nutekėjimą? Ar manote, kad tokie „Auksiniai raktai“ turėtų egzistuoti? Praneškite mums toliau pateiktuose komentaruose!