ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ класс уязвимостСй Π² процСссорах Intel

Компания Intel ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° свСдСния ΠΎ Π½ΠΎΠ²ΠΎΠΌ классС уязвимостСй Π² своих процСссорах — MDS (Microarchitectural Data Sampling). Как ΠΈ ΠΏΡ€ΠΎΡˆΠ»Ρ‹Π΅ Π°Ρ‚Π°ΠΊΠΈ класса Spectre Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΈ Ρ‡ΡƒΠΆΠΈΡ… процСссов. УтвСрТдаСтся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ спСрва Π±Ρ‹Π»ΠΈ выявлСны сотрудниками ΠΈ ΠΏΠ°Ρ€Ρ‚Π½Ρ‘Ρ€Π°ΠΌΠΈ Intel Π² Ρ…ΠΎΠ΄Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Π°ΡƒΠ΄ΠΈΡ‚Π°, ΠΏΠΎΠ»Π΅ Ρ‡Π΅Π³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… Π² Intel ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ нСзависимыС исслСдоватСли. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Ρ‹ AMD ΠΈ ARM ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹.

На основС выявлСнных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ исслСдоватСлями ΠΈΠ· Грацского тСхничСского унивСрситСта (Австрия) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ нСсколько практичСских Π°Ρ‚Π°ΠΊ ΠΏΠΎ сторонним ΠΊΠ°Π½Π°Π»Π°ΠΌ:

  • ZombieLoad (PDF) — позволяСт ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссов, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΈ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Ρ… Π°Π½ΠΊΠ»Π°Π²ΠΎΠ² (TEE, Trusted Execution Environment). НапримСр, продСмонстрирована Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ опрСдСлСния истории открытия страниц Π² Tor browser, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² прилоТСниях ΠΊΠ»ΡŽΡ‡Π΅ΠΉ доступа ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ;


  • RIDL (PDF) — позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‚Π΅Ρ‡ΠΊΡƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ областями Π² процСссорах Intel, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π±ΡƒΡ„Π΅Ρ€Ρ‹ заполнСния, Π±ΡƒΡ„Π΅Ρ€Ρ‹ хранСния ΠΈ ΠΏΠΎΡ€Ρ‚Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ провСдСния Π°Ρ‚Π°ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссов, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΈ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Ρ… Π°Π½ΠΊΠ»Π°Π²ΠΎΠ². НапримСр, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ содСрТимоС Ρ…ΡΡˆΠ° пароля root ΠΈΠ· /etc/shadow ΠΏΡ€ΠΈ пСриодичСских ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°Ρ… Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Π°Ρ‚Π°ΠΊΠ° заняла 24 часа);

    ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ провСдСния Π°Ρ‚Π°ΠΊΠΈ с использованиСм JavaScript ΠΈ WebAssembly ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ врСдоносной страницы Π² Π΄Π²ΠΈΠΆΠΊΠ΅ SpiderMonkey (Π² соврСмСнных ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… подобная Π°Ρ‚Π°ΠΊΠ° маловСроятна ΠΈΠ·-Π·Π° ограничСния точности Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΈ ΠΌΠ΅Ρ€ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Spectre);

  • Fallout (PDF) — Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅Π΄Π°Π²Π½ΠΎ записанныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ раскладку памяти ОБ для упрощСния провСдСния Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Ρ‚Π°ΠΊ;
  • Store-To-Leak Forwarding — эксплуатируСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ 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), ΠΈ соотвСтствСнно Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ мСньшС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ интСнсивно.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ класс уязвимостСй Π² процСссорах Intel

Атаки ΠΏΠΎ сторонним ΠΊΠ°Π½Π°Π»Π°ΠΌ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ структуры сущСствСнно слоТнСС Π² ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ восстановлСния содСрТимого кэша ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ отслСТивания ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… для опрСдСлСния ΠΈΡ… связи с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ адрСсами Π² памяти (ΠΏΠΎ сути, Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Ρ‚ΡŒ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ статистичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для рСконструкции ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π°Ρ‚Π°ΠΊΠ° Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ физичСском ядрС CPU, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠΎΠ΄ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅Π³ΠΎ.

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ опрСдСлСния содСрТимого ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… структур ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ структуры ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ спСкулятивной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (fault) ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ load ΠΈ store.
ΠŸΡ€ΠΈ спСкулятивном Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ содСрТимоС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… структур пСрСнаправляСтся для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² рСгистры ΠΈΠ»ΠΈ кэш. БпСкулятивныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ отбрасываСтся, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ содСрТимоС ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π°Π½Π°Π»ΠΈΠ·Π° кэша ΠΏΠΎ сторонним ΠΊΠ°Π½Π°Π»Π°ΠΌ.

ΠŸΠΎΡ€Ρ‚Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ процСссором для получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· памяти ΠΈΠ»ΠΈ подсистСмы Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ прСдоставлСния ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² рСгистры CPU. Из-Π·Π° особСнности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ старых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² ΠΏΠΎΡ€Ρ‚Π°Ρ… Π΄ΠΎ ΠΈΡ… пСрСзаписи Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ позволяСт косвСнно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ состояниС Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠΎΡ€Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ манипуляций с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ (fault) ΠΈ инструкциями SSE/AVX/AVX-512, Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ 64 Π±ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… условиях ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ спСкулятивно Π·Π°ΡΠ²Π΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ значСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… структур Π² зависимыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠΎΡ…ΠΎΠΆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ организуСтся ΡƒΡ‚Π΅Ρ‡ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· Π±ΡƒΡ„Π΅Ρ€ хранСния, примСняСмый для ускорСния записи Π² кэш CPU ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² сСбя Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ адрСсов, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Ρ„Π»Π°Π³ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π±ΡƒΡ„Π΅Ρ€ заполнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΠΊΠ° ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² кэшС L1 (cache-miss), Π½Π° врСмя ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ· кэшСй Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ класс уязвимостСй Π² процСссорах Intel

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ процСссоров 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».

ОбновлСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΡƒΠΆΠ΅ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹ для RHEL ΠΈ Ubuntu, Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ нСдоступны для Debian, Fedora ΠΈ SUSE.
Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ для блокирования ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Ρ‚Π°ΠΊΠΆΠ΅ сформировано для Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° Xen. Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ систСм Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ L1D_FLUSH ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ управлСния Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС, ΠΈ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π°Π½ΠΊΠ»Π°Π²ΠΎΠ² Intel SGX достаточно обновлСния ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ