Spoločnosť Intel informácie o novom v ich procesoroch — (Microarchitectural Data Sampling). Rovnako ako predchádzajúce útoky typu Spectre, aj nové problémy môžu viesť k úniku dôverných údajov operačného systému, virtuálnych strojov a cudzích procesov. Tvrdí sa, že problémy boli najprv identifikované zamestnancami a partnermi spoločnosti Intel počas vnútorného auditu, po ktorom informácie o podobných problémoch v Inteli odovzdali nezávislí výskumníci. Procesory AMD a ARM nie sú touto problematikou postihované.
Na základe identifikovaných problémov výskumníkmi z Technickej univerzity Graz (Rakúsko) niektoré praktické útoky prostredníctvom bočných kanálov:
- () — umožňuje extrahovať dôvernú informáciu z iných procesov, operačného systému, virtuálnych strojov a chránených enkláv (TEE, Trusted Execution Environment). Napríklad bola predvedená možnosť určiť históriu otvárania stránok v Tor браузере, ktorý bežal v inom virtuálnom stroji, ako aj určiť používané v aplikáciách prístupové kľúče a heslá;
- () — umožňuje organizovať únik informácií medzi rôznymi izolovanými oblasťami v procesoroch Intel, ako sú vyrovnávacie pamäte, pamäťové buffere a načítacie porty. Príklady realizácie útokov sú predvedené na organizovanie únikov z iných procesov, operačných systémov, virtuálnych strojov a chránených enkláv. Napríklad bolo predvedené, ako zistiť obsah hashu hesla root z /etc/shadow pri periodických pokusoch o autentifikáciu (útok trval 24 hodín);

Okrem toho bol predvedený príklad uskutočnenia útoku pomocou JavaScriptu a WebAssembly pri otvorení škodlivej stránky v engíne SpiderMonkey (v moderných plnohodnotných prehliadačoch je takýto útok málo pravdepodobný kvôli obmedzeniu presnosti časovača a opatreniam na ochranu proti Spectre);

- () — umožňuje čítať údaje, ktoré nedávno zapísal operačný systém, a určiť usporiadanie pamäte OS na zjednodušenie vykonávania iných útokov;
- — zneužíva optimalizácie CPU pri práci s pamäťovým bufferom a môže byť použité na obídenie mechanizmu náhodného rozmiestnenia adresného priestoru jadra (KASLR), na monitorovanie stavu operačného systému alebo na únikov v kombinácii s gadgetami založenými na metódach Spectre.
Identifikované :
- CVE-2018-12126 — MSBDS (Microarchitectural Store Buffer Data Sampling), obnovenie obsahu úložných prvkov. Používa sa v útoku Fallout. Úroveň nebezpečenstva je stanovená na 6.5 bodu (CVSS);
- CVE-2018-12127 — MLPDS (Microarchitectural Load Port Data Sampling), obnovenie obsahu načítacích portov. Používa sa v útoku RIDL. CVSS 6.5;
- CVE-2018-12130 — MFBDS (Microarchitectural Fill Buffer Data Sampling), obnovenie obsahu vyplňovacích prvkov. Používa sa v útokoch ZombieLoad a RIDL. CVSS 6.5;
- CVE-2019-11091 — MDSUM (Microarchitectural Data Sampling Uncacheable Memory), obnovenie obsahu necacheovateľnej pamäte. Používa sa v útoku RIDL. CVSS 3.8.
identifikovaných problémov v možnosti aplikácie analytických metód prostredníctvom vedľajších kanálov na dáta v mikroarchitektonických štruktúrach, na ktoré aplikácie priamo nemajú prístup. Týka sa to takých nízkoúrovňových štruktúr, ako sú vyplňovacie prvky (Line Fill Buffer), úložné prvky (Store Buffer) a načítacie porty (Load Port), ktoré sú menšími súčasťami ako cache prvej úrovne (L1D), cache načítania dát (RDCL) alebo L1TF (L1 Terminal Fault) a zodpovedne obsahujú menej informácií a sú aktualizované intenzívnejšie.

Útoky prostredníctvom vedľajších kanálov na mikroarchitektonické štruktúry sú podstatne náročnejšie na realizáciu v porovnaní s metódami obnovy obsahu cache a vyžadujú sledovanie a analýzu významného množstva dát na určenie ich vzťahu k určitým adresám v pamäti (v podstate útočník nemôže cielene zachytiť určité dáta, ale môže dlhodobo zhromažďovať úniky a používať štatistické metódy na rekonštrukciu určitých typov dát). Okrem toho útok zasahuje iba do dát na tom istom fyzickom jadre CPU, na ktorom je aj kód útočníka.
Navrhnuté metódy určenia obsahu mikroarchitektonických štruktúr sa zakladajú na tom, že tieto dáta sa používajú pri špekulatívnom spracovaní výnimiek (fault) alebo operácií načítania a uloženia.
Pri špekulatívnom vykonávaní je obsah vnútorných štruktúr presmerovaný na spracovanie do registri alebo cache. Špekulatívne operácie sa nedokončujú a výsledok sa zamieta, ale presmerovaný obsah môže byť určený pomocou metód analýzy cache prostredníctvom vedľajších kanálov.
Boot ports are used by the processor to obtain data from memory or the input/output subsystem and to provide the retrieved information into the CPU registers. Due to the implementation specifics, data from old load operations remains in the ports until overwritten by new data, which allows for an indirect determination of the data state in the load port through manipulations with exceptions (faults) and SSE/AVX/AVX-512 instructions that load more than 64 bits of data. In such conditions, load operations speculatively expose outdated data values from internal structures into dependent operations. A similar leakage is organized through the storage buffer used to accelerate writing to the CPU cache and includes a table of addresses, values, and flags, as well as a fill buffer that contains data while missing in the L1 cache (cache-miss), until it is loaded from caches of other levels.
Problém Intel processor models released since 2011 (starting from the 6th generation). Hardware vulnerabilities are blocked starting from certain models of the 8th and 9th generations of Intel Core and the 2nd generation of Intel Xeon Scalable (can be checked via the ARCH_CAP_MDS_NO bit in the IA32_ARCH_CAPABILITIES MSR). Vulnerabilities have also already at the firmware, microcode, and operating system levels. According to Intel's estimates, performance loss after activating the patch for most users 3%. With Hyper-Threading technology disabled, the performance drop can reach 9% in the SPECint_rate_base test, up to 11% during integer computing tasks, and up to 19% during the execution of server Java applications (with HT enabled, performance degradation is almost non-existent). The patches have virtually no impact on the performance of I/O related operations.
In the Linux kernel, protection against MDS in today's 5.1.2, 5.0.16,
4.19.43, 4.14.119, and 4.9.176. The protection method on clearing the contents of microarchitectural buffers at the moment of returning from kernel to user space or when transferring control to the guest system, for which the VERW instruction is used. For the protection to work, support for the MD_CLEAR mode, implemented in the latest microcode update, is required. For complete protection, it is also recommended to disable Hyper-Threading. To check for the system's vulnerability to this issue, refer to the Linux kernel. spracovateľ „/sys/devices/system/cpu/vulnerabilities/mds“. Na riadenie aktivácie rôznych režimov blokovania zraniteľnosti bol do jadra pridaný parameter „mds=“, ktorý môže nadobúdať hodnoty „full“, „full,nosmt“ (vypnutie Hyper-Threads), „vmwerv“ a „off“.
Aktualizácie balíkov už boli vydané pre a , ale zatiaľ zostávajú nedostupné pre , a .
Oprava na blokovanie únikov údajov z virtuálnych strojov tiež pre hypervízor Xen. Na ochranu virtualizačných systémov, ktoré vykonávajú príkaz L1D_FLUSH pred odovzdaním riadenia inému virtuálnemu stroju, a na ochranu encláv Intel SGX stačí aktualizácia mikrokódu.
Zdroj: opennet.ru


