Spectre in Meltdown, najbolj ogrožujoča napada do zdaj?

Spectre in Meltdown sta kriminalna veleuma, ki se pripravljata na osvojitev sveta. Čeprav temu ni tako, resnica ni daleč. Tako sta namreč opisani dve pomanjkljivosti v procesorjih Intel in AMD, ki omogočata popoln dostop do vaših podatkov, brez da bi vi ali vaš antivirusni program sploh kaj ukrenila, preden je že prepozno.

Večina računalniških virusov in črvov napade sistem preko programa, ki je imel oslabljeno varnost in omogočil, da se je lahko nezaželena koda vključila v sistem ali pa je program sam deloval kot virus in se izkazoval za nekaj drugega. Prav tako je lahko bila varnostna luknja v operacijskem sistemu, kjer se nato virus ali črv vključi v sistemske datoteke in začne povzročati škodo. Pomanjkljivost takih virusov in črvov je, da ne morejo delovati na programih oz. sistemih, za katere niso bili napisani. Torej, če uporabnik A uporablja operacijski sistem Windows, ki je okužen z virusom X in pošlje ta virus uporabniku B, ki uporablja operacijski sistem Mac in če je virus specifičen za sistem na katerem se izvaja, ta ne bo mogel okužiti uporabnika B.

Spectre in Meltdown pa vplivata na skoraj vse konfiguracije sistema, ne glede na programe, ki jih uporabljamo ali pa operacijske sisteme. Meltdown vpliva na skoraj celotno zbirko procesorjev Intel, ki so bili narejeni od leta 1995, medtem ko Spectre vpliva na večino teh in dodatno na procesorje družine AMD. Po vrhu vsega pa Spectre vpliva še na procesorje Snapdragon, ki jih najdemo v mobilnih in tabličnih napravah.

Zato se vprašamo, kako je do teh napak v procesorjih sploh prišlo in kako so se tako hitro razvile? Razlog tiči v tehnologij, ki jo imenujemo Speculative Execution (slov. spekulativna eksekucija). Brez nje bi bili procesorji močno pohabljeni in veliko počasnejši, kot smo jih vajeni. Ko procesor izvaja program, ki je skupek pravil in potekov, lahko ugiba, kateri proces bo naslednji, ki se bo moral izvesti. Ta princip omogoča procesorju, da lahko »prebere« naslednjo »stran« in se tako pripravi. S tem zmanjša čas, ki je potreben za prenos podatkov in posledično skrajšanje operacij, kar se kaže pri krajšem izvajanju  operacij in hitrejšem delovanju procesorja. Ti bodoči podatki se shranijo v veliko hitrejši pomnilniški prostor, ki se nahaja v samem procesorju. Imenujejo se L1, L2 in L3 predpomnilniki. Čeprav so omejeni le na nekaj Mb, so hitrosti branja in pisanja podatkov v primerjavi z začasnim pomnilnikom (RAM), drastično večje.

Eden od načinov branja vnaprej, se začne že v začasnem pomnilniku. Podatke, ki jih program zahteva, procesor procesira že v pomnilniku, namesto da najprej preveri, če je ta program sploh pravilen in ali ima zahtevano dovoljenje za ogled teh podatkov.

Ko uporabljamo računalnik in imamo odprtih več programov hkrati, procesor razdeli začasni pomnilnik v več prekatov, ki so lahko dostopani le s strani programa, za katerega je določen prekat namenjen. Tako je varnost pretočnih podatkov omejena in nedostopna vsem drugim programom, ter možnim virusom in črvom, ki bi hoteli te podatke prestreči.

Vzemimo za primer program A, ki želi dostopati do spominskega prekata programa B. Zahtevane podatke bo procesor prenesel iz začasnega spomina v svoj predpomnilnik. Sledi branje podatkov in šele nato bo te posredoval naprej oz. zadržal, če je program ustrezen oz. neustrezen. Čeprav procesor teh podatkov ne bo neposredno posredoval nepravilnemu programu, Meltdown prevara procesor in ugotovi, kaj ti podatki so. Namesto da procesor vpraša neposredno, M zahteva, da naj se podatki iz izbranega sektorja začasnega spomina združijo s podatki iz drugega sektorja. Podatki so še vedno nedostopni vendar so zdaj zopet v predpomnilniku procesorja. M nadaljuje z ukazi in poveljuje procesorju naj doda še več podatkov iz različnih prekatov začasnega spomina in si zabeleži, kateri podatki so bili naloženi hitreje od ostalih, saj so bili podatki, ki so bili že predhodno shranjeni v predpomnilniškem prostoru procesorja, vneseni veliko hitreje, kot tisti, ki so bili dostopani iz začasnega spomina. S tem postopkom lahko M ugotovi kateri so bili prvotni zahtevani podatki, ki jih je želel pridobiti.

Spectre, prav tako izkorišča to tehnologijo vendar jo uporablja skupaj z Branch Predictor-om. Ta del procesorja išče vzorce pri izvajanju programov. Če procesor zazna, da se določena zahtevana operacija kliče zelo pogosto, jo prevzame v svoj pomnilnik in začne izvajati sam. Tako Spectre ukazuje procesorju naj izvaja neko funkcijo spet in spet z namenom, da napolni predpomnilnik procesorja z ukazi, ki jih nato procesor izvede. Nato z izbranimi časovnimi funkcijami in operacijami S dostopa do teh podatkov in jih manipulira po svojih željah. Ko je enkrat predpomnilnik poln, lahko S zahteva podatke iz prekata, ki so namenjeni drugemu procesu, brez da bi procesor to zahtevo zavrnil.

Razlog za razširjenost Spectre napadov tiči v samem načinu utajitve podatkov. Tu ne gre le za eden specifičen napad vendar kopico različnih. Zaradi osnov procesorja in njegovega optimalnega delovanja, je BP zelo pomemben faktor pri modernih procesorjih. To dejstvo oteži odstranjevanje varnostnih lukenj pri vseh variacijah napadov. Pri Meltdown napadih pa je rešitev veliko preprostejša. Boljše in pametnejše razporejanje prostorov v začasnem pomnilniku odpravi luknje napada, vendar se s tem oslabijo sposobnosti procesorja, kajti zaradi spreminjanja načina delovanja je potrebno posegati globoko v tehnične sposobnosti procesorja, ki ga zaradi sprememb na koncu naredijo počasnejšega.

Težave se rešujejo s strani programske in strojne opreme vendar je slednja veliko bolj učinkovita. Problem je v dejstvu, da se bodo bodoče spremembe videle le na novejših procesorjih, kajti na starejših modelih tega več ni možno storiti. Preostane nam le še programsko poseganje v procesor, ki pripelje do že omejenih težav. Kljub vsemu  pa niti bodoče strojne spremembe ne morejo zagotoviti popolne varnosti, saj sta M in S tehnologiji zasidrani globoko v načinu delovanja procesorjev in bodo odpravljanja vseh napak zelo težka, če sploh mogoča.

Za vse uporabnike, ki nimajo namena kupiti novega procesorja za varnejše uporabljanje računalnika pa preostane le eno, pametnejše brskanje po spletu. Tako da previdno na spletu in bodite še toliko bolj pozorni na vsak klik!

Viri:

-Google
-YouTube
Techquickie
LinusTechTips
PCPro
Apple
Intel

Komentarji
Ivan Srbič

Ivan Srbič

Že od nekdaj se je ukvarjal z računalniki in ker je hotel znanje še izpopolniti se trenutno izobražuje na FERI. V prostem času pa piše članke, ki jih lahko preberete tukaj.
Ivan Srbič

Latest posts by Ivan Srbič (see all)

Ivan Srbič

Že od nekdaj se je ukvarjal z računalniki in ker je hotel znanje še izpopolniti se trenutno izobražuje na FERI. V prostem času pa piše članke, ki jih lahko preberete tukaj.