Intel Corporation teave uuest oma protsessorites â (Microarchitectural Data Sampling). Nagu varasemad Spectre klassi rĂŒnnakud, vĂ”ivad uued probleemid viia operatsioonisĂŒsteemi, virtuaalmasinate ja teiste protsesside konfidentsiaalsete andmete lekkimiseni. Teadaolevalt tuvastasid probleemid esmalt Intel'i töötajad ja partnerid siseauditi kĂ€igus, mille jĂ€rel jagasid sĂ”ltumatud teadlased teavet sarnaste probleemide kohta Intelis. AMD ja ARM protsessorid ei ole sellele probleemile vastuvĂ”tlikud.
Tuginedes teadlaste tuvastatud probleemidele Graz'i TehnikaĂŒlikoolist (Austria) mitmeid praktilisi rĂŒnnakuid kĂŒlgkanalite kaudu:
- () â vĂ”imaldab hankida konfidentsiaalset teavet teistest protsessidest, operatsioonisĂŒsteemist, virtuaalmasinatest ja kaitstud keskkondadest (TEE, Trusted Execution Environment). NĂ€iteks on nĂ€idatud vĂ”imalust tuvastada Tor brauseri lehtede avamise ajalugu, mis töötab teises virtuaalmasinas, samuti tuvastada rakendustes kasutatavaid juurdepÀÀsukeelseid ja paroole;
- () â vĂ”imaldab korraldada teabe lekkimist erinevate isoleeritud alade vahel Intel'i protsessorites, nagu tĂ€itepuhvrite, mĂ€lupuhvrite ja laadimisportide vahel. RĂŒnnaku nĂ€iteid on esitatud teabe lekete korraldamiseks teistest protsessidest, operatsioonisĂŒsteemist, virtuaalmasinatest ja kaitstud keskkondadest. NĂ€iteks on nĂ€idatud, kuidas saada teada root-parooli rĂ€simise sisu /etc/shadow failist, tehes perioodilisi autentimise katseid (rĂŒnnak kestis 24 tundi);

Lisaks on nĂ€idatud rĂŒnnaku nĂ€idet JavaScripti ja WebAssembly abil, kui avati pahavara lehte SpiderMonkey mootoris (kaasaegsetes tĂ€ielikes brauserites on sellise rĂŒnnaku tĂ”enĂ€osus vĂ€ike, kuna taimeri tĂ€psuse piirangud ja meetmed Spectre'i vastu);

- () â vĂ”imaldab lugeda andmeid, mida operatsioonisĂŒsteem on hiljuti kirjutanud, ja mÀÀrata operatsioonisĂŒsteemi mĂ€lu paigutust, et lihtsustada teiste rĂŒnnakute lĂ€biviimist;
- â kasutab CPU optimeerimisi puhvriga töötamiseks ja vĂ”ib olla kasutusel tuumaportide aadressiruumi randomiseerimise mehhanismi (KASLR) kĂ”rvaldamiseks, et jĂ€lgida operatsioonisĂŒsteemi seisundit vĂ”i andmete lekkimise korraldamiseks koos Spectre meetodite pĂ”hjal loodud seadmetega.
Tuvastatud :
- CVE-2018-12126 â MSBDS (Mikroarhitektura Poestus Bufferi Andmete Proovimine), andmeesisu taastamine salvestusbuffereid. Kasutatakse Fallout rĂŒnnakus. Ohtlikkuse aste on mÀÀratud 6.5 punkti (CVSS);
- CVE-2018-12127 â MLPDS (Mikroarhitektura Laadimisporti Andmete Proovimine), andmeesisu taastamine laadimisportides. Kasutatakse RIDL rĂŒnnakus. CVSS 6.5;
- CVE-2018-12130 â MFBDS (Mikroarhitektura TĂ€itemeetod Bufferi Andmete Proovimine), andmeesisu taastamine tĂ€itemeetod buffereid. Kasutatakse ZombieLoad ja RIDL rĂŒnnakutes. CVSS 6.5;
- CVE-2019-11091 â MDSUM (Mikroarhitektura Andmete Proovimine KahemĂ”ttelises MĂ€lus), andmeesisu taastamine mittevahemĂ€lu. Kasutatakse RIDL rĂŒnnakus. CVSS 3.8.
Tuvastatud probleemid kanali kaudu analĂŒĂŒsimeetodite rakendamise vĂ”imalustes mikroarhitektuuriliste struktuuride andmetele, millele rakendused otse ei pÀÀse. Teema kĂ€sitleb madalama taseme struktuure, nagu tĂ€itemeetodid (Line Fill Buffer), salvestusbuffereid (Store Buffer) ja laadimisporte (Load Port), mis on vĂ€iksemat tĂŒĂŒpi koostisosad kui esimese taseme vahemĂ€lu (L1D), andmete laadimise vahemĂ€lu (RDCL) vĂ”i L1TF (L1 Terminal Fault) ning seega sisaldavad vĂ€hem teavet ja uueneb sagedamini.

Mikroarhitektuuriliste struktuuride kanalipĂ”hised rĂŒnnakud on oluliselt keerulisemad vĂ”rreldes vahemĂ€lu andmesisu taastamise meetoditega ning nĂ”uavad suurte andmemahtude jĂ€lgimist ja analĂŒĂŒsimist nende seose tuvastamiseks konkreetsete mĂ€lu aadressidega (praktikas ei saa rĂŒndaja sihipĂ€raselt teatud andmeid kinni pĂŒĂŒda, vaid vĂ”ib pika aja jooksul akumuleerida lekkekandeid ning rakendada statistilisi meetodeid teatud andmetĂŒĂŒpide rekonstrueerimiseks). Lisaks mĂ”jutab rĂŒnnak ainult andmeid samas fĂŒĂŒsilises CPU tuumas, mis on rĂŒndaja koodi asukohaks.
E propuestas, mÀÀratakse mikroarhitektuuriliste struktuuride andmesisu spekulatiivse vahejuhtumite (fault) vÔi laadimis- ja salvestusoperatsioonide kÀigus.
Spekulatiivse tĂ€itmise kĂ€igus suunatakse sisemiste struktuuride sisu töötlemiseks registritesse vĂ”i vahemĂ€lu. Spekulatiivsed operatsioonid ei lĂ”peta ning tulemused loobutakse, kuid suunatud sisu saab mÀÀrata kanalipĂ”histe vahemĂ€lu analĂŒĂŒsimeetodite abil.
Laadimisportid on protsessori poolt kasutatavad mĂ€lu vĂ”i sisendi/vĂ€ljundi alamĂŒsteemist andmete saamises ja saadud teabe edastamiseks CPU registritesse. Kuna vanade laadimisoperatsioonide andmed jÀÀvad portidesse enne nende ĂŒlekirjutamist uute andmetega, saab efektiivselt mÀÀrata laadimisporti andmete oleku, tehes erandite (fault) ja SSE/AVX/AVX-512 kĂ€skude kaudu, mis laadivad rohkem kui 64 bitti andmeid. Sellistes tingimustes spekulatiivsed laadimisoperatsioonid paljastavad aegunud andmed sisemistest struktuuridest sĂ”ltuvates operatsioonides. Sarnane andmete lekkimine toimub ka mĂ€lupuhvris, mida kasutatakse CPU vahemĂ€lu kirjutamise kiirendamiseks ja mis sisaldab aadresside, vÀÀrtuste ja lipukeste tabelit, samuti tĂ€itemĂ€lu, mis sisaldab andmeid, kuni L1 vahemĂ€lus puuduvad (cache-miss), kuni need laaditakse teistest vahemĂ€lutasanditest.
Probleem Intel'i protsessori mudelid, mis on toodetud alates 2011. aastast (alates 6. pĂ”lvkonnast). Samuti blokeeritakse riistvara tasemel haavatavused alates mĂ”nest 8. ja 9. pĂ”lvkonna Intel Core mudelist ning 2. pĂ”lvkonna Intel Xeon Scalable mudelist (selle saab kontrollida bit ARCH_CAP_MDS_NO kaudu IA32_ARCH_CAPABILITIES MSR). Haavatavused on juba veel tasemel pĂŒsivara, mikroprogrammeerimise ja operatsioonisĂŒsteemide. Intel'i hinnangul on enamikule kasutajatest jĂ”udluse kaotus pĂ€rast paranduse aktiveerimist 3%. Hyper-Threading'i tehnoloogia vĂ€ljalĂŒlitamisel vĂ”ib jĂ”udluse langus ulatuda 9%-ni SPECint_rate_base testis, 11%-ni aktiivsete tĂ€isarvuliste arvutuste korral ning 19%-ni serveri Java rakenduste kĂ€itamisel (HT lubamisel on jĂ”udluse langus peaaegu olematu). Parandused ei mĂ”juta praktiliselt andme sisendi/vĂ€ljundi operatsioonide jĂ”udlust.
Linuxi kÀrus on MDS-i kaitse tÀna 5.1.2, 5.0.16,
4.19.43, 4.14.119 ja 4.9.176. Kaitsemeetod mikroarhitektuuriliste puhversalte sisu puhastamisel vahetamisel kernist kasutaja ruumi vĂ”i edastamisel juhtimise host-sĂŒsteemile, mille jaoks kasutatakse kĂ€sku VERW. Selle kaitse toimimiseks on vajalik toetada MD_CLEAR reĆŸiimi, mis on rakendatud vĂ€rskes mikroprogrammeerimise uuenduses. TĂ€ieliku kaitse tagamiseks on soovitatav ka Hyper-Threading vĂ€lja lĂŒlitada. SĂŒsteemi haavatavuse kontrollimiseks kernelis Linux protsessori "\/sys\/devices\/system\/cpu\/vulnerabilities\/mds". Mitmesuguste haavatavuste blokeerimise reĆŸiimide aktiveerimise haldamiseks on kernelisse lisatud parameeter "mds=", mille vÀÀrtused vĂ”ivad olla "full", "full,nosmt" (Hyper-Threads'i vĂ€ljalĂŒlitamine), "vmwerv" ja "off".
Pakettide uuendused on juba vÀlja antud ja , kuid need on endiselt kÀttesaamatud , ja .
Parandus andmeleakide blokeerimiseks virtuaalmasinatest on samuti Xeni hĂŒperviisori jaoks. VirtuaalsĂŒsteemide kaitsmiseks, mis kutsuvad enne teise virtuaalmasina juhtimise edasiandmist esile kĂ€su L1D_FLUSH, ning Intel SGX enklaavide kaitseks piisab mikrokoodi uuendamisest.
Allikas: opennet.ru


