ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Intel ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π½ΠΎΠ²ΠΎΠΌ Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ β (Microarchitectural Data Sampling). ΠΠ°ΠΊ ΠΈ ΠΏΡΠΎΡΠ»ΡΠ΅ Π°ΡΠ°ΠΊΠΈ ΠΊΠ»Π°ΡΡΠ° Spectre Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΠ΅ΡΠΊΠ΅ Π·Π°ΠΊΡΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ ΠΈ ΡΡΠΆΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². Π£ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΏΠ΅ΡΠ²Π° Π±ΡΠ»ΠΈ Π²ΡΡΠ²Π»Π΅Π½Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠ°ΡΡΠ½ΡΡΠ°ΠΌΠΈ Intel Π² Ρ ΠΎΠ΄Π΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ Π°ΡΠ΄ΠΈΡΠ°, ΠΏΠΎΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ Π² Intel ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ. ΠΡΠΎΡΠ΅ΡΡΠΎΡΡ AMD ΠΈ ARM ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈΠ· ΠΡΠ°ΡΡΠΊΠΎΠ³ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ° (ΠΠ²ΡΡΡΠΈΡ) Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°ΡΠ°ΠΊ ΠΏΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ:
- () β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ
ΠΌΠ°ΡΠΈΠ½ ΠΈ Π·Π°ΡΠΈΡΡΠ½Π½ΡΡ
Π°Π½ΠΊΠ»Π°Π²ΠΎΠ² (TEE, Trusted Execution Environment). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΎΡΠΊΡΡΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡ Π² Tor browser, Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΌ Π² Π΄ΡΡΠ³ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
ΠΊΠ»ΡΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ;
- () β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΡΠΊΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΡΠΌΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ
Intel, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π±ΡΡΠ΅ΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π±ΡΡΠ΅ΡΡ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π°ΡΠ°ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅ΡΠ΅ΠΊ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ
ΠΌΠ°ΡΠΈΠ½ ΠΈ Π·Π°ΡΠΈΡΡΠ½Π½ΡΡ
Π°Π½ΠΊΠ»Π°Π²ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΡΠ·Π½Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Ρ
ΡΡΠ° ΠΏΠ°ΡΠΎΠ»Ρ root ΠΈΠ· /etc/shadow ΠΏΡΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΠΎΠΏΡΡΠΊΠ°Ρ
Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ (Π°ΡΠ°ΠΊΠ° Π·Π°Π½ΡΠ»Π° 24 ΡΠ°ΡΠ°);

ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π°ΡΠ°ΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JavaScript ΠΈ WebAssembly ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π² Π΄Π²ΠΈΠΆΠΊΠ΅ SpiderMonkey (Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ Π°ΡΠ°ΠΊΠ° ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½Π° ΠΈΠ·-Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΈ ΠΌΠ΅Ρ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ Spectre);

- () β Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅Π΄Π°Π²Π½ΠΎ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΠ‘ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π°ΡΠ°ΠΊ;
- β ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΡΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ CPU ΠΏΠΎ ΡΠ°Π±ΠΎΡΠΊΠ΅ Ρ Π±ΡΡΠ΅ΡΠΎΠΌ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·Π°ΡΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΡΠ΄ΡΠ° (KASLR), Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΡΠ΅ΡΠ΅ΠΊ Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Ρ Π³Π°Π΄ΠΆΠ΅ΡΠ°ΠΌΠΈ Π½Π° Π±Π°Π·Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Spectre.
ΠΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ :
- CVE-2018-12126 β MSBDS (Microarchitectural Store Buffer Data Sampling), Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠΎΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π°ΡΠ°ΠΊΠ΅ Fallout. Π‘ΡΠ΅ΠΏΠ΅Π½Ρ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² 6.5 Π±Π°Π»Π»ΠΎΠ² (CVSS);
- CVE-2018-12127 β MLPDS (Microarchitectural Load Port Data Sampling), Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΡΠΎΠ² Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π°ΡΠ°ΠΊΠ΅ RIDL. CVSS 6.5;
- CVE-2018-12130 β MFBDS (Microarchitectural Fill Buffer Data Sampling), Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠΎΠ² Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π°ΡΠ°ΠΊΠ°Ρ ZombieLoad ΠΈ RIDL. CVSS 6.5;
- CVE-2019-11091 β MDSUM (Microarchitectural Data Sampling Uncacheable Memory), Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π½Π΅ΠΊΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π°ΡΠ°ΠΊΠ΅ RIDL. CVSS 3.8.
Π²ΡΡΠ²Π»Π΅Π½Π½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π² ΠΌΠΈΠΊΡΠΎΠ°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ
ΡΡΡΡΠΊΡΡΡΠ°Ρ
, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΏΡΡΠΌΡΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ°. Π Π΅ΡΡ Π²Π΅Π΄ΡΡΡΡ ΠΎ ΡΠ°ΠΊΠΈΡ
Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ
ΡΡΡΡΠΊΡΡΡΠ°Ρ
, ΠΊΠ°ΠΊ Π±ΡΡΠ΅ΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Line Fill Buffer), Π±ΡΡΠ΅ΡΡ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ (Store Buffer) ΠΈ ΠΏΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ (Load Port), ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠΌΠΈ ΡΠΎΡΡΠ°Π²Π½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, ΡΠ΅ΠΌ ΠΊΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (L1D), ΠΊΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
(RDCL) ΠΈΠ»ΠΈ L1TF (L1 Terminal Fault), ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ.

ΠΡΠ°ΠΊΠΈ ΠΏΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ Π½Π° ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π² ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΡΡΠ° ΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΡΠΌΠΎΠ² Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΡ ΡΠ²ΡΠ·ΠΈ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌΠΈ Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ (ΠΏΠΎ ΡΡΡΠΈ, Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π»Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π° ΠΌΠΎΠΆΠ΅Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡ ΡΡΠ΅ΡΠΊΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π²ΠΈΠ΄ΠΎΠ² Π΄Π°Π½Π½ΡΡ ). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π°ΡΠ°ΠΊΠ° Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΄ΡΠ΅ CPU, ΡΡΠΎ ΠΈ ΠΊΠΎΠ΄ Π°ΡΠ°ΠΊΡΡΡΠ΅Π³ΠΎ.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ
ΡΡΡΡΠΊΡΡΡ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π½Π° ΡΠΎΠΌ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ (fault) ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ load ΠΈ store.
ΠΡΠΈ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
ΡΡΡΡΠΊΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈΠ»ΠΈ ΠΊΡΡ. Π‘ΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ, Π½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΡΡΠ° ΠΏΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ.
ΠΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠ΅Π³ΠΈΡΡΡΡ CPU. ΠΠ·-Π·Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ ΡΡΠ°ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π² ΠΏΠΎΡΡΠ°Ρ Π΄ΠΎ ΠΈΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ Π½ΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠΎΡΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ (fault) ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ SSE/AVX/AVX-512, Π·Π°Π³ΡΡΠΆΠ°ΡΡΠΈΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ 64 Π±ΠΈΡ Π΄Π°Π½Π½ΡΡ . Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΠΎ Π·Π°ΡΠ²Π΅ΡΠΈΠ²Π°ΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠΎΡ ΠΎΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ ΡΡΠ΅ΡΠΊΠ° ΡΠ΅ΡΠ΅Π· Π±ΡΡΠ΅Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΊΡΡ CPU ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π±Ρ ΡΠ°Π±Π»ΠΈΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ², Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ»Π°Π³ΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π· Π±ΡΡΠ΅Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠΎΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ Π² ΠΊΡΡΠ΅ L1 (cache-miss), Π½Π° Π²ΡΠ΅ΠΌΡ ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ· ΠΊΡΡΠ΅ΠΉ Π΄ΡΡΠ³ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Intel, Π²ΡΠΏΡΡΠΊΠ°Π΅ΠΌΡΠ΅ Ρ 2011 Π³ΠΎΠ΄Π° (Π½Π°ΡΠΈΠ½Π°Ρ Ρ 6 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ). ΠΡΠΈ ΡΡΠΎΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ 8 ΠΈ 9 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ Intel Core ΠΈ 2 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ Intel Xeon Scalable (ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ΅Π· Π±ΠΈΡ ARCH_CAP_MDS_NO Π² IA32_ARCH_CAPABILITIES MSR) . Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠΆΠ΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ, ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π° ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠΎ ΠΎΡΠ΅Π½ΠΊΠ΅ Intel ΠΏΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΠ»Π΅ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ 3%. ΠΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Hyper-Threading ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΡ ΠΎΠ΄ΠΈΡΡ Π΄ΠΎ 9% Π² ΡΠ΅ΡΡΠ΅ SPECint_rate_base, Π΄ΠΎ 11% ΠΏΡΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ ΠΈ Π΄ΠΎ 19% ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ HT ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ). ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π²Π²ΠΎΠ΄ΠΎΠΌ/Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ.
Π ΡΠ΄ΡΠ΅ Linux Π·Π°ΡΠΈΡΠ° ΠΎΡ MDS Π² ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΡ
5.1.2, 5.0.16,
4.19.43, 4.14.119 ΠΈ 4.9.176. ΠΠ΅ΡΠΎΠ΄ Π·Π°ΡΠΈΡΡ Π½Π° ΠΎΡΠΈΡΡΠΊΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ
Π±ΡΡΠ΅ΡΠΎΠ² Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ΄ΡΠ° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ VERW. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π·Π°ΡΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° MD_CLEAR, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² ΡΠ²Π΅ΠΆΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π°. ΠΠ»Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ Π·Π°ΡΠΈΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Hyper Threading. ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Π½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠ΄ΡΠΎ Linux ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Β«/sys/devices/system/cpu/vulnerabilities/mdsΒ». ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΆΠΈΠΌΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠ΄ΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«mds=Β», ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Β«fullΒ», Β«full,nosmtΒ» (ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Hyper-Threads), Β«vmwervΒ» ΠΈ Β«offΒ».
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠΆΠ΅ Π²ΡΠΏΡΡΠ΅Π½Ρ Π΄Π»Ρ ΠΈ , Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ , ΠΈ .
ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΡΠ΅ΠΊ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ
ΠΌΠ°ΡΠΈΠ½ ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° Xen. ΠΠ»Ρ Π·Π°ΡΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ
Π²ΡΠ·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ L1D_FLUSH ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΠΈ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ Π°Π½ΠΊΠ»Π°Π²ΠΎΠ² Intel SGX Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru


