Kaks 2010. aastate enim avalikustatud haavatavust olid üksteisega väga tihedalt seotud. Tarkvara turvaaukude asemel on Spectre ja Meltdown CPU-de põhikonstruktsiooni haavatavused, mis muudavad probleemi lahendamise keerulisemaks. Probleemid ise on eriti tõsised, võimaldades teiste rakenduste ja operatsioonisüsteemi mälu avaldamist.
Ülevaade
Protsessorid kasutavad kõrgeima jõudluse saavutamiseks uskumatult täiustatud konstruktsioone, sealhulgas tehnikaid, sealhulgas spekulatiivne täitmine ja harude ennustamine. Spekulatiivne täitmine on koht, kus CPU alustab protsessi käivitamist enne, kui ta teab, kas see seda vajab, et säästa aega, kui ta otsustab, et ta seda vajab. Haru ennustamine on spekulatiivse teostuse alamhulk, mis püüab ennustada protsessi tulemust ja seejärel alustab järgmise sammu arvutamist selle prognoositud väärtuse põhjal, võimaldades CPU-l täita rida juhiseid tellida.
Spectre haavatavus tuleneb nende kahe funktsiooni rakendamisest. See võimaldab rakendusel rikkuda enamiku kaasaegsete tarkvarade sisseehitatud mälu eraldamise tehnikaid, mis võimaldavad avaldada mälu, sealhulgas saladusi, nagu paroolid ja krüpteerimisvõtmed. Üks Spectre'i probleeme on see, et andmetele pääseb juurde rakendustest, millel pole turvaauke, kuna vaja on ainult pahatahtlikku programmi.
Meltdowni haavatavus põhineb mõnel mälutehnikal, aga ka ülalmainitud spekulatiivsel täitmissüsteemil. See kasutab protsessi käivitamise ja privileegide kontrolli vahel "rassitingimust" ning võimaldab pahatahtlikul programmil pääseda juurde teiste rakenduste ja operatsioonisüsteemi mälule.
Näpunäide. Võistlustingimus on probleem, mille puhul üks ülesanne peaks tuginema teisele, kuid õiget täitmiskäsku ei jõustata. Selle tulemuseks võib olla see, et "teine" protsess käivitub esimesena ja kasutab initsialiseerimata mälu, mis oleks pidanud sisaldama "esimese" protsessi tulemust, ning lekib selle mälu eelmine sisu. Sel konkreetsel juhul ei tohiks protsess käivituda enne, kui lubade kontroll on kinnitanud, et see on lubatud, kuid toimivuse optimeerimise tõttu võib lubade kontroll toimuda ka teisena.
Efektid
2017. aasta keskel avastasid mitmed meeskonnad iseseisvalt nii Meltdowni kui ka Spectre ning teatasid privaatselt plaastreid välja töötanud protsessoritootjatele. Tänu jõudluse optimeerimisele suunatud plaastritele vähendasid need protsessorite jõudlust kuni 30% halvima stsenaariumi korral, kusjuures 2–14% tulemuslikkuse langus esindab rohkem inimeste kogemusi.
Turvaaugud mõjutasid paljusid x86 protsessoreid, IBM POWER protsessoreid ja mõningaid ARM-põhiseid protsessoreid. Sulamine mõjutab riistvara, mida tavaliselt leidub nii personaalarvutites kui ka pilveserverites. Spectre mõjutab personaalarvuteid, pilveservereid ja mobiilseadmeid. Kõik Inteli protsessorid aastatel 1995 kuni 2018. aasta keskpaigani olid probleemide suhtes haavatavad (välja arvatud Itaniumi ja Atomi liinid enne 2013. aastat). AMD CPU-sid Meltdown ei mõjutanud, kuid need olid Spectre'i suhtes haavatavad.
Tarkvara leevendavad paigad töötati välja ja avaldati operatsioonisüsteemi pakkujate kaudu, mis lahendavad enamiku probleemidest. Alates 2018. aasta keskpaigast on Intel oma protsessori kujundust värskendanud, et lisada probleemidele riistvaralised leevendused.
Mõlemat probleemi saab ära kasutada loodud JavaScriptiga pahatahtlike veebilehtede kaudu, seega on see väga oluline veenduge, et turvapaigad on installitud igasse süsteemi, isegi kui jõudlus väheneb raske. Kahjuks ei saa probleeme ühe plaastriga lahendada, kuna need on äärmiselt keerulised ja sügavad probleemid Riistvaraga integreerimisel jätkatakse aja jooksul turvapaikade levitamist, nagu uuemad variandid avastatud.