Du 2010-aisiais dažniausiai viešinami pažeidžiamumai buvo labai glaudžiai susiję vienas su kitu. „Spectre“ ir „Meltdown“ yra ne programinės įrangos saugumo spragos, o pagrindinės procesorių konstrukcijos pažeidžiamumas, todėl problemą išspręsti sunkiau. Pačios problemos yra ypač rimtos, todėl atmintį galima atskleisti iš kitų programų ir operacinės sistemos.
Apžvalga
CPU naudoja neįtikėtinai pažangias konstrukcijas, kad pasiektų didžiausią našumą, įskaitant metodus, įskaitant spekuliacinį vykdymą ir šakų numatymą. Spekuliatyvus vykdymas yra ta vieta, kai procesorius pradeda vykdyti procesą dar nesužinojęs, ar to reikia, siekdamas sutaupyti laiko, kai nustato, kad to reikia. Atšakos numatymas yra spekuliatyvaus vykdymo poaibis, kuriuo bandoma numatyti proceso baigtį ir tada pradedama skaičiuoti kitą žingsnį pagal tą numatomą vertę, leidžiančią CPU vykdyti eilę instrukcijų netvarkingai.
Spectre pažeidžiamumas atsiranda dėl šių dviejų funkcijų įdiegimo. Tai leidžia programai pažeisti atminties izoliavimo metodus, integruotus daugelyje šiuolaikinių programinės įrangos, leidžiančių atskleisti atmintį, įskaitant paslaptis, pvz., slaptažodžius ir šifravimo raktus. Viena iš Spectre problemų yra ta, kad duomenis galima pasiekti iš programų, kurios neturi jokių saugumo spragų, nes reikia tik kenkėjiškos programos.
„Meltdown“ pažeidžiamumas pagrįstas kai kuriomis atminties technikomis, taip pat anksčiau minėta spekuliacine vykdymo sistema. Jis naudoja „lenktynių sąlygą“ tarp proceso vykdymo ir privilegijų patikrinimo ir leidžia kenkėjiškai programai pasiekti kitų programų ir operacinės sistemos atmintį.
Patarimas: „Lenktynių sąlyga“ yra problema, kai viena užduotis turėtų priklausyti nuo kitos, tačiau teisinga vykdymo tvarka nėra vykdoma. Dėl to pirmiausia gali būti paleistas „antrasis“ procesas ir panaudota neinicializuota atmintis, kurioje turėjo būti „pirmojo“ proceso rezultatas, ir nutekės ankstesnis tos atminties turinys. Šiuo konkrečiu atveju procesas neturėtų būti vykdomas tol, kol leidimų patikra nepatvirtins, kad tai leidžiama, tačiau leidimų patikra gali įvykti antrą kartą dėl našumo optimizavimo.
Efektai
2017 m. viduryje kelios komandos savarankiškai atrado ir „Meltdown“, ir „Spectre“ privačiai pranešė pataisas kūrusiems procesoriaus gamintojams. Dėl pataisų, skirtų našumo optimizavimui, jie sumažino procesorių našumą iki 30 % blogiausiu atveju, o 2–14 % našumo sumažėjimas labiau atspindi žmonių patirtį.
Pažeidžiamumas paveikė daugelį x86 procesorių, IBM POWER procesorių ir kai kuriuos ARM pagrindu veikiančius procesorius. Tirpimas paveikia aparatinę įrangą, paprastai esančią asmeniniuose kompiuteriuose ir debesies serveriuose. Spectre veikia asmeninius kompiuterius, debesų serverius ir mobiliuosius įrenginius. Visi „Intel“ procesoriai nuo 1995 m. iki 2018 m. vidurio buvo pažeidžiami dėl problemų (išskyrus „Itanium“ ir „Atom“ linijas iki 2013 m.). AMD procesoriams Meltdown įtakos neturėjo, tačiau jie buvo pažeidžiami Spectre.
Programinės įrangos mažinimo pataisos buvo sukurtos ir išleistos per operacinių sistemų tiekėjus, kurios išsprendžia daugumą problemų. Nuo 2018 m. vidurio „Intel“ atnaujino savo procesoriaus dizainą, kad įtrauktų aparatinės įrangos problemų mažinimo priemones.
Abi problemos gali būti išnaudotos naudojant kenkėjiškus tinklalapius su sukurtu JavaScript, todėl tikrai svarbu įsitikinti, kad saugos pataisos yra įdiegtos kiekvienoje sistemoje, net jei našumas bus didelis. Deja, problemų negalima išspręsti naudojant vieną pataisą, nes tai yra labai sudėtingos problemos, kurios yra giliai integruotos į aparatinę įrangą. Laikui bėgant saugos pataisos ir toliau bus išleidžiamos, nes bus atrasti naujesni variantai.