Kaspersky Lab - Vislabākā aizsardzība!
Sākumlapa » Apdraudējumi » Spektroloģija: centrālo procesoru aparatūras ievainojamības 2019. gadā

Spektroloģija: centrālo procesoru aparatūras ievainojamības 2019. gadā

35. saietā Chaos Communications Congress, gadu pēc pirmās publikācijas par centrālo procesoru aparatūras ievainojamībām Meltdown un Spectre, pētnieku grupa no Grācas Tehniskās Universitātes Austrijā uzstājās ar referātiem par zināmo centrālo procesoru aparatūras ievainojamību pašreizējo stāvokli. Uzreiz jāsaka, ka pērn uzzinājām par daudzām šādām ievainojamībām.

 

 

Īsumā par Meltdown un Spectre

Vispirms atgādināsim, kas ir Meltdown un Spectre un ar ko tās savstarpēji atšķiras.

Ievainojamības Meltdown iemesls ir mūsdienu centrālo procesoru spēja izpildīt instrukcijas ārpus kārtas. Tā ir ļoti noderīga spēja, kas tiešām paātrina koda apstrādāšanu, taču dažos gadījumos centrālais procesors var apstrādāt pie kļūdas novedošu kodu, kuru vispār nevajadzētu izpildīt. Tas ir, centrālais procesors (CPU) izpilda kodu, un tikai pēc tam kļūst skaidrs, ka šo operāciju nav iespējams pabeigt — tādas situācijas rodas tieši tādēļ, ka instrukcijas tiek izpildītas ārpus kārtas.

Protams, ka šādu operāciju rezultātus nevar nodot tālāk vai kaut kur izmantot, tomēr tie atstāj pēdas mikroarhitektūras līmenī — CPU kešatmiņā. Un no turienes tos var izņemt. Rezultātā kešatmiņu ir iespējams izmantot, lai iegūtu datus, kuri citādi nebūtu pieejami — piemēram, paroli. Lūk, kā tas notiek. Pieņemsim, ka kāda programma pieprasa piekļuvi datiem krātuvē, un normālā gadījumā sistēma šim pieprasījumam atbildētu noliedzoši, jo piekļuvei nav autorizācijas. Bet sakarā ar operāciju izpildīšanu ārpus kārtas parole tomēr nonāk kešatmiņā, no kurienes to var diezgan vienkārši „izķeksēt”. Vārdu sakot, ievainojamība Meltdown var izpausties, kad notiek mēģinājums izpildīt neatļautu darbību.

Ievainojamība Spectre ir līdzīga Meltdown, bet lai gan arī tā ir saistīta ar centrālā procesora skaitļošanas paātrinājumu, tā izriet no mūsdienu CPU zarojumparedzes iespējas. Īsi sakot, CPU spēj diezgan precīzi paredzēt šādu shēmu: tā kā darbībai A parasti seko darbība B, tad CPU var veikt darbību B, kad vēl nav noskaidroti darbības A rezultāti. Ja prognoze ir bijusi pareiza un tiešām seko darbība B, tad viss ir kārtībā — un ja darbības A rezultāti liecina, ka CPU būtu vajadzējis veikt darbību С, nevis B, tad CPU vienkārši pamet B zarojumu un pārslēdzas uz citu, kur jāveic darbība C.

Tā kā zarojumparedzi var apmācīt, tad vairumā gadījumu šī funkcija „atceras” darbību secību, tādējādi būtiski uzlabojot centrālā procesora veiktspēju (ja darbība B vairākas reizes ir sekojusi darbībai A, tad CPU loģiski secina, ka konkrētajā situācijā tam pēc A ir jāveic B). Tomēr atgadās arī nepareizas prognozes (dažreiz B vietā jāveic darība C, lai gan zarojumparedze ļoti labi „atceras”, ka pēc A parasti seko B).

Ja pietiekami ilgi apmācām sistēmu, rādot, ka noteikts zarojums ir pareizais un tiek vienmēr izpildīts, bet tad mainām kādu parametru, lai šis zarojums būtu nepareizs, CPU to vispirms tik un tā izpildīs un tikai pēc tam anulēs, jo konstatēs, ka jāizpilda cits zarojums. Bet tāpat kā ievainojamības Meltdown gadījumā arī šeit var palikt darbības rezultāts, piemēram, kešatmiņā, no kurienes to atkal var izņemt.

Sekas ir apmēram tādas pašas: ievainojamība Spectre pieļauj neautorizētu piekļuvi datiem. Tāda piekļuve ir iespējama vienīgi tajos gadījumos, kad zarojumparedze bijusi nepareiza, taču varbūtības teorija apliecina, ka agri vai vēlu tā neizbēgami notiek.

 

Pēc gada — divi desmiti jaunu Spectre un Meltdown variantu

Pēc ievainojamību Meltdown un Spectre atklāšanas pētnieki sāka aktīvāk iedziļināties šajā problēmā un drīz atrada citas, līdzīgas problēmas, kas atšķīrās tikai sīkumos. Viņi secināja, ka CPU projektētāji izmanto vēl citus darbības optimizēšanas paņēmienus, kas rada Meltdown un Spectre līdzīgas ievainojamības. Grācas Universitātes komanda uzskaitījusi 14 Meltdown līdzīgas ievainojamības un 13 Spectre līdzīgas ievainojamības — kopā 27 CPU aparatūras ievainojamības, kamēr 2018. gada sākumā bija tikai divas šāda veida ievainojamības.

 

Meltdown un Spectre variantu klasifikācija.

Meltdown un Spectre variantu klasifikācija.

Lai gan agrāk AMD apgalvoja, ka tā centrālais procesors iztiek bez Meltdown veida ievainojamībām, pētnieki ir atklājuši Meltdown variantu (Meltdown-BR), kas piemīt arī AMD CPU. Tātad šobrīd visu trīs lielāko piegādātāju — AMD, ARM un Intel — CPU ir ar Meltdown un Spectre ievainojamībām. Vai, labākajā gadījumā, ar šo ievainojamību variantiem.

Par laimi, liela daļa no daudzajiem variantiem nedarbojas ARM, AMD vai Intel procesoros — vai arī pētniekiem nav izdevies panākt, lai tie darbotos. Taču vairums darbojas vismaz dažos gadījumos.

Uzņēmumi sāka izlaist labojumus CPU mikrokodiem, operētājsistēmām un atsevišķām programmām jau 2018. gada janvārī, cenšoties novērst šos traucējumus. Diemžēl Spectre un Meltdown ir aparatūras ievainojamības; tās piemīt aparatūrai, tādēļ tās nav iespējams pilnīgi novērst ar programmatūras labojumiem.

Piemēram, vienu no labojumiem ieviesa Linux OS kodolā, bet tas tik stipri palēnināja sistēmas darbību, ka pēc kāda laika to izņēma no koda.

Spectre rada īpašas problēmas, jo tas skar dažādus mikroarhitektūras komponentus, tādēļ vajadzīgi atsevišķi labojumi katram no tiem. Un katra labojuma dēļ nepieciešams deaktivēt noteiktas funkcijas vai veikt citas papildu darbības, tādējādi vēl vairāk pasliktinot veiktspēju.

Daudzos gadījumos labojumi tik stipri ietekmē veiktspēju, ka labotā sistēma darbojas lēnāk nekā tāda, kurā CPU funkcijas ar ievainojamībām vispār ir izslēgtas.

 

Radikāls risinājums būtu — izurbt vainīgo CPU daļu, kā te parādīts (tas, protams, ir joks).

Radikāls risinājums būtu — izurbt vainīgo CPU daļu, kā te parādīts (tas, protams, ir joks).

Spectre un Meltdown nākotne

Intel 2018. gada oktobrī paziņoja, ka tā jaunajiem CPU (domāta paaudze, kuru izlaidīs 2019. gadā) aizsardzība pret Spectre un Meltdown būs nodrošināta aparatūras līmenī. Taču tā būs tikai divām „bāzes” versijām, bet jau iepriekš minējām, ka variantu ir krietni vairāk. Arī AMD plāno labot vienu no Spectre versijām savos jaunajos Zen 2 arhitektūras procesoros, kurus sāks izlaist 2019. gadā. Aparatūras uzlabojumus sola arī ARM, apgalvojot, ka „visi nākamie CPU būs aizsargāti pret uzbrukumiem, kas izmanto Spectre veida ievainojamības”.

Protams, ka tās ir labas ziņas — bet tikai tiem, kuri iegādāsies jaunas ierīces. Savukārt tiem no mums, kuri nopirks datoru, viedtālruni vai citu ierīci ar 2018. gadā vai agrāk ražotu Intel, AMD vai ARM procesoru, vajadzēs uzstādīt labojumus gandrīz visam, un šie labojumi ievērojami samazinās veiktspēju. Ļoti iespējams, ka daži lietotāji vispār neuzstādīs labojumus.

CPU ražotāji pārāk ilgi ir ignorējuši aparatūras līmeņa ievainojamības un nodarbojušies tikai ar centrālā procesora veiktspējas optimizēšanu. Bet par jebkuru optimizāciju nākas maksāt: kaut kas uzlabojas, bet citur parādās jaunas problēmas. Tagad būs visai sarežģīti novērst šīs dziļi aparatūrā sakņotās ievainojamības. Taču arī jāatzīst, ka tādu ievainojamību ļaunprātīga izmantošana nav vienkārša, tādēļ nevajag zaudēt cerības — vismaz līdz nākamās paaudzes procesoru laišanai tirgū.

Pilnu Grācas Tehniskās Universitātes pētnieku uzstāšanos, kā arī viņu atbildes uz jautājumiem, 35. saietā Chaos Communications Congress varat skatīt zemāk.

 

 

Izmantoti Kaspersky Lab materiāli.

Birkas:
Iepriekšējais raksts
Nākošais raksts

Komentēt

Jūsu e-pasts netiks publicēts. Obligātie lauki ir iezīmēti *

*

4 + 5 =

Kaspersky Lab - Vislabākā aizsardzība, lieliskas cenas!
Uz augšu