Inteli protsessorites on kasutusele võetud uus turvaaukude klass

Intel опубликовала info uue kohta haavatavuse klass nende protsessorites - MDS (Microarchitectural Data Sampling). Nagu varasemad Spectre rünnakud, võivad uued probleemid põhjustada privaatsete andmete lekkimist operatsioonisüsteemist, virtuaalmasinatest ja muudest protsessidest. Väidetavalt tuvastasid probleemid esmalt Inteli töötajad ja partnerid siseauditi käigus, misjärel andsid sõltumatud teadlased Intelile sarnaste probleemide kohta infot. AMD ja ARM protsessoreid see probleem ei puuduta.

Põhineb Grazi tehnikaülikooli (Austria) teadlaste tuvastatud probleemidel arenenud Mõned praktilised külgkanali rünnakud:

  • ZombieLoad (pDF) – võimaldab hankida konfidentsiaalset teavet teistest protsessidest, operatsioonisüsteemist, virtuaalmasinatest ja kaitstud enklaavidest (TEE, Trusted Execution Environment). Näiteks demonstreeriti võimalust määrata teises virtuaalmasinas töötavas Tor-brauseris lehtede avamise ajalugu, aga ka rakendustes kasutatavate pääsuvõtmete ja paroolide määramist;


  • RIDL (pDF) – võimaldab teabeleket Inteli protsessorite erinevate isoleeritud alade vahel, nagu täitmispuhvrid, salvestuspuhvrid ja laadimispordid. Näiteid rünnetest, mis korraldavad lekkeid teistest protsessidest, operatsioonisüsteemist, virtuaalmasinatest ja kaitstud enklaavidest. Näiteks näitab see, kuidas perioodiliste autentimiskatsete käigus (rünnak kestis 24 tundi) välja selgitada juurparooli räsi sisu failist /etc/shadow;

    Lisaks näidatakse SpiderMonkey mootoris pahatahtliku lehe avamisel näide JavaScripti ja WebAssemblyt kasutavast ründest (täisaegsetes täisväärtuslikes brauserites on selline rünnak piiratud taimeri täpsuse ja Spectre-kaitsemeetmete tõttu ebatõenäoline);

  • Radioaktiivne tolm (pDF) - võimaldab lugeda operatsioonisüsteemi poolt hiljuti kirjutatud andmeid ja määrata OS-i mälu paigutus, et lihtsustada muid rünnakuid;
  • Kauplusest lekkeni edastamine — kasutab salvestuspuhvriga töötamiseks CPU optimeerimist ja seda saab kasutada kerneli aadressiruumi juhusliku määramise mehhanismist (KASLR) möödahiilimiseks, operatsioonisüsteemi oleku jälgimiseks või organisatsioon lekib koos Spectre meetoditel põhinevate vidinatega.

Tuvastatud haavatavused:

  • CVE-2018-12126 – MSBDS (Microarchitectural Store Buffer Data Sampling), salvestuspuhvrite sisu taastamine. Kasutatakse Fallout rünnakus. Ohuastmeks määratakse 6.5 punkti (CVSS);
  • CVE-2018-12127 – MLPDS (Microarchitectural Load Port Data Sampling), laadimispordi sisu taastamine. Kasutatakse RIDL-i rünnakus. CVSS 6.5;
  • CVE-2018-12130 – MFBDS (Microarchitectural Fill Buffer Data Sampling), täitepuhvri sisu taastamine. Kasutatakse ZombieLoadi ja RIDL-i rünnakutes. CVSS 6.5;
  • CVE-2019-11091 – MDSUM (Microarchitectural Data Sampling Uncacheable Memory), puhverdamatu mälusisu taastamine. Kasutatakse RIDL-i rünnakus. CVSS 3.8.

süda tuvastas probleemid külgkanalite analüüsimeetodite rakendamisel andmetele mikroarhitektuuristruktuurides, millele rakendustel pole otsest juurdepääsu. Me räägime sellistest madala tasemega struktuuridest nagu täitmispuhvrid (Line Fill Buffer), salvestuspuhvrid (Store Buffer) ja laadimispordid (Load Port), mis on väiksemad ehitusplokid kui esimese taseme vahemälu (L1D), andmete laadimise vahemälu ( RDCL ) või L1TF (L1 terminali rike) ning sisaldavad vastavalt vähem teavet ja neid värskendatakse intensiivsemalt.

Inteli protsessorites on kasutusele võetud uus turvaaukude klass

Külgkanalite rünnakuid mikroarhitektuursetele struktuuridele on vahemälu sisu taastamise meetoditega võrreldes palju keerulisem läbi viia ning need nõuavad märkimisväärsete andmemahtude jälgimist ja analüüsimist, et teha kindlaks nende seos teatud aadressidega mälus (sisuliselt ei saa ründaja teatud andmeid sihipäraselt kinni püüda , kuid võib olla aega lekkeid koguda ja teatud tüüpi andmete rekonstrueerimiseks kasutada statistilisi meetodeid). Lisaks mõjutab rünnak ainult ründaja koodiga samas füüsilises protsessori tuumas olevaid andmeid.

Kavandatavad meetodid mikroarhitektuursete struktuuride sisu määramiseks põhinevad asjaolul, et neid struktuure kasutatakse erandite (tõrgete) spekulatiivsel käsitlemisel või laadimis- ja ladustamisoperatsioonidel.
Spekulatiivse täitmise ajal suunatakse sisemiste struktuuride sisu töötlemiseks registritesse või vahemällu. Spekulatiivsed toimingud ei jõua lõpule ja tulemus jäetakse kõrvale, kuid ümbersuunatud sisu saab määrata külgkanali vahemälu analüüsi tehnikate abil.

Laadimisporte kasutab protsessor mälust või I/O alamsüsteemist andmete vastuvõtmiseks ja vastuvõetud teabe edastamiseks CPU registritesse. Tänu juurutusfunktsioonile jäävad vanade allalaadimistoimingute andmed pordidesse seni, kuni need uute andmetega üle kirjutatakse, mis võimaldab erandite (tõrgete) ja SSE/AVX/ abil kaudselt määrata allalaadimispordi andmete olekut. AVX-512 juhised, mis laadivad rohkem kui 64 bitti andmeid. Sellistes tingimustes paljastavad laadimistoimingud sisestruktuuride aegunud andmeväärtused spekulatiivselt sõltuvatele toimingutele. Sarnaselt korraldatakse leke salvestuspuhvri kaudu, mida kasutatakse CPU vahemällu kirjutamise kiirendamiseks ja mis sisaldab aadresside, väärtuste ja lippude tabelit, samuti täitmispuhvri kaudu, mis sisaldab andmeid, ei ole veel L1 vahemälus (cache-miss), hetkel laaditakse teiste tasemete vahemäludest.

Inteli protsessorites on kasutusele võetud uus turvaaukude klass

probleem mõjutab Inteli protsessorimudelid, mida toodetakse alates 2011. aastast (alates 6. põlvkonnast). Sel juhul blokeeritakse riistvara haavatavused alates mõnest Intel Core'i 8. ja 9. põlvkonna ning Intel Xeon Scalable 2. põlvkonna mudelist (saate kontrollida, kasutades IA32_ARCH_CAPABILITIES MSR-i bitti ARCH_CAP_MDS_NO). Haavatavused on samuti juba olemas kõrvaldatud püsivara, mikrokoodi ja operatsioonisüsteemide tasemel. Intel hindab enamiku kasutajate jõudluse kadu pärast plaastri aktiveerimist vähem kui 3%. Kui Hyper-Threading tehnoloogia on keelatud, võib jõudluse halvenemine ulatuda kuni 9% SPECint_rate_base testis, kuni 11% aktiivsete täisarvude arvutustes ja kuni 19% serveripoolsete Java rakenduste käitamisel (kui HT on lubatud, on peaaegu jõudluse halvenemine puudub). Plaastrid mõjutavad I/O jõudlust vähe.

Linuxi kernel kaitseb MDS-i eest lisatud tänases uuendused 5.1.2, 5.0.16,
4.19.43, 4.14.119 ja 4.9.176. Kaitsemeetod ehitusjärgus mikroarhitektuursete puhvrite sisu kustutamisel kernelist kasutajaruumi naasmisel või juhtimise üleandmisel külalissüsteemile, mille jaoks kasutatakse VERW käsku. Kaitse toimimiseks vajab see MD_CLEAR-režiimi tuge, mis on juurutatud uusimas mikrokoodivärskenduses. Täieliku kaitse tagamiseks on soovitatav ka Hyper Threading välja lülitada. Et kontrollida süsteemi kokkupuudet Linuxi tuuma haavatavustega lisatud käitleja "/sys/devices/system/cpu/vulnerabilities/mds". Erinevate haavatavuse blokeerimisrežiimide kaasamise kontrollimiseks on kernelile lisatud parameeter “mds=”, mis võib võtta väärtused “full”, “full,nosmt” (hüperlõimede keelamine), “vmwerv” ja "väljas".

Paketi värskendused on juba välja antud RHEL и Ubuntu, kuid pole praegu saadaval Debian, Fedora и SUSE.
Parandus ka andmelekete blokeerimiseks virtuaalmasinatest moodustatud Xeni hüperviisori jaoks. Virtualiseerimissüsteemide kaitsmiseks, mis väljastavad käsu L1D_FLUSH enne juhtimise ülekandmist teisele virtuaalmasinale, ja Inteli SGX-i enklaave kaitsmiseks piisab mikrokoodi värskendusest.

Allikas: opennet.ru

Lisa kommentaar