Kas iš tikro nutiko su „Intel“ procesoriais? Specialistas paaiškino, kas tai per skandalinga klaida, kaip ji veikia ir kodėl tik dabar kilo toks ažiotažas? (3)
Pastaruoju metu turbūt jau ne kartą matėte antraštes, skelbiančias, kad „Intel“ procesoriuose aptikta saugumo skylė, kuri sukrėtė visą kompiuterijos pasaulį. Sukrėtė dėl įvairių priežasčių – o viena iš jų, kuri palies visus vartotojus, yra ta, kad norint uždengti šią skylę, esamus procesorius naudojančių kompiuterių našumas kris nuo 5 iki 30%.
Visi šio ciklo įrašai |
|
Prisijunk prie technologijos.lt komandos!
Laisvas grafikas, uždarbis, daug įdomių veiklų. Patirtis nebūtina, reikia tik entuziazmo.
Sudomino? Užpildyk šią anketą!
Kaip ir kodėl tai nutiko, kas tai per klaida ir ką visa tai reiškia, sutiko paaiškinti informacinių technologijų ekspertas, ilgametis sistemų administratorius Ričardas Sabaliauskas.
Kas iš tiesų nutiko su „Intel“ procesoriais? Kokia tai yra klaida ir kodėl ji atsirado?
Pradėkime nuo to, kad tai nutiko ne tik su „Intel“ procesoriais. Visas dabartinis šurmulys kilo dėl dviejų pažeidžiamumų (angl. exploit): „Meltdown“ ir „Spectre“. Bent kol kas pirmasis yra patvirtintas tik „Intel“ ir kai kuriuose ARM architektūros procesoriuose, tačiau antrasis yra aktualus beveik visoms platformoms.
Abu pažeidžiamumai paremti idėja, kad informaciją iš modernių procesorių mes galime gauti ne tik tiesiogiai ją perskaitydami, bet ir stebėdami šalutinius reiškinius. Šiuolaikiniai kompiuteriai informaciją saugo daugelyje laikmenų – standžiajame diske, operatyviojoje atmintyje ir procesoriuje esančioje vidinėje atmintyje (angl. cache). Atitinkamai duomenys yra pasiekiami skirtingu greičiu.
Šių pažeidžiamumų veikimo principas yra toks, kad programa, norinti gauti duomenis, kurių skaityti ji neturi teisės, taip sumanipuliuoja atminties išdėstymu ir pasinaudoja procesorių optimizavimu, kad pamatuodama kreipimosi laiką, gali atkurti jai nepriklausančių duomenų reikšmę.
Nors veikimo principas yra panašus, šie pažeidžiamumai turi esminių skirtumų. „Spectre“ yra visa šeima pažeidžiamumų, kai bandoma manipuliuoti kitu procesu – „auka“, kurio duomenis norima atskleisti. Vienas pirmųjų pavyzdžių – internetinis tinklalapis, galintis perimti naršyklėje esančius duomenis.
Tuo metu „Meltdown“ išnaudoja tai, kad visos šiuolaikinės operacinės sistemos tiek branduolio atminties, tiek programos atminties nuorodas laiko vienoje lentelėje, tačiau procesoriuje esantis teisių valdymo mechanizmas neleidžia programai prieiti prie jai nepriklausančių duomenų.
Naudojantis aukščiau aptartais metodais, gauname tokią situaciją, kad nors duomenų perskaityti ir negalime, tačiau galime nustatyti jų reikšmę iš šalutinių efektų. Rezultatas – galima perimti praktiškai bet kokius duomenis – įskaitant įvedamus slaptažodžius, elektroninių sertifikatų privačius raktus ir t.t. Šio pažeidžiamumo pavadinimas ir kilo nuo to, kad jis praktiškai išlydo visas saugumo priemones.
Kada klaida atsirado – ir kodėl visas triukšmas kilo tik dabar?
Panašu, kad minėtas „Meltdown| pažeidžiamumas yra aktualus didžiajai daugumai „Intel“ procesorių nuo 1995 metų. Nors teoretiškai tokių pažeidžiamumų galimybė buvo nagrinėta, tačiau iki praėjusių metų nebuvo pademonstruotas realus jos pritaikymas. Parodžius, kad duomenų atskleidimo galimybės yra ne tik teoretinės, bet ir praktinės, įvyko įprastas procesas, kai naujai atrastas pažeidžiamumas pradžioje atskleidžiamas procesorių ir operacinių sistemų gamintojams, sukuriami reikiami pakeitimai programinėje įrangoje – ir tik tuomet paviešinamos pažeidžiamumo detalės.
Daugelis įsivaizduoja, kad saugumo skylės yra programinės kilmės. Kaip saugumo spragą gali sukurti fizinis kompiuterio procesorius?
Toks įsivaizdavimas yra klaidingas, kadangi šiuolaikiniai procesoriai yra pakankamai sudėtingi įrenginiai, turintys savo mikrokodą bei aibę įdiegtų optimizavimo technologijų. Iš kitos pusės, šios saugumo spragos net negalėtumėm laikyti klaida, mums įprasta prasme. Draudžiamų atminties segmentų perskaityti negalima – taip, kaip ir buvo suplanavę procesorius kūrę architektai. Tačiau jų reikšmę galima atskleisti iš jau minėtų antrinių požymių, ką numatyti kuriant procesorius buvo beveik neįmanoma.
Kodėl, ištaisius šią klaidą, mažės procesorių našumas?
Problema yra minėtoje atminties nuorodų (adresų) lentelėje. Dėl šito pažeidžiamumo kiekvienos programos ir operacinės sistemos branduolio atminties adresai turės būti saugomi visiškai atskirose lentelėse, tarp kurių persijungimas užtrunka tam tikrą laiką, taip pat gali išvalyti spartinančią atmintį.
Kai bet kuri programa (procesas) nori perskaityti duomenis iš disko, išsiųsti ar priimti duomenų paketą tinklu ar atlikti bet kurią kitą su kompiuterio bendrais resursais susijusią operaciją, ji suformuoja užklausą operacinės sistemos branduoliui, kuris toliau perima operacijos vykdymą. Įdiegus pataisymus, kiekviena tokia operacija užtruks ilgiau: preliminariais vertinimais, atskiriems uždaviniams procesoriaus našumas gali kristi nuo 5 iki 30 procentų.
Kokią įtaką IT pasauliui padarė ši klaida – ir kaip, jūsų nuomone, viskas vystysis toliau?
Pirmiausia, tai yra finansiniai nuostoliai – dėl to, kad reikės kompensuoti sumažėjusį sistemų našumą. Tikrai įdomu, kaip tai paveiks didžiųjų procesorių gamintojų – „Intel“ ir „AMD“ pozicijas rinkoje.
Bent kol kas AMD deklaruoja, kad jų procesoriai bent jau „Meltdown“ atakai nėra pažeidžiami, ir jų pozicijos stiprėja – tačiau operacinių sistemų gamintojai gali apsidrausdami rekomenduoti analogiškas saugumo priemones taikyti visoms sistemoms.
Kitas aspektas – tai demonstracija, kad saugumo spraga gali būti visiškai netikėtoje vietoje, neatrasta daugiau nei dvidešimt metų – nors taip gali būti pažeidžiama daugiau kaip 90% įrangos, naudojamos duomenų centruose. Šie skaičiai verčia dar labiau susimąstyti apie tai, kiek patikimos įprastos saugumo praktikos – ir kokie reikalavimai turi būti keliami svarbioms sistemoms.
Ar gali būti kokių nors garantijų, kad toks scenarijus nebepasikartos ateityje?
Priklauso nuo to, ką vadinsime „tokiu“ scenarijumi. Jeigu kalbėti apie konkrečius pažeidžiamumus – į juos, kuriant naujų sistemų architektūrą, žinoma, bus atsižvelgiama. Tačiau nemanau, kad galėtume tikėtis, jog daugiau niekada nebebus atrasta naujų būdų, kaip apeiti įprastas saugumo technologijas. Bet kokios sistemos saugumo užtikrinimas yra sudėtingas, kadangi reikia numatyti ir užkirsti kelią visoms galimoms atakoms, kai sistemą pažeisti pakanka rasti vieną nenumatytą spragą.
O ką dabar daryti vartotojui? Įmonėms?
Diegti operacinių sistemų pataisymus. Dalis programų, aplikacijų sulėtės, tad jeigu po šių pataisymų našumas nebetenkins – plėsti resursus.
Tikėtina, kad operacinių sistemų gamintojai dabar pakeitimus, apsaugančius nuo šių spragų, diegs automatiškai – nepriklausomai, koks procesorius yra kompiuteryje. Pasidarys aktualios technologijos – tokios, kaip PCIDs, kuri nuo 2010-ųjų „Intel“ procesoriuose naudojama tam, kad sumažintų adresų lentelių pakeitimo kaštus.