Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² процСссорах Intel Atom, приводящая ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· рСгистров

Компания Intel раскрыла свСдСния ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠΉ уязвимости (CVE-2023-28746) Π² процСссорах Intel Atom (E-core), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ процСссом, Π΄ΠΎ этого Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ²ΡˆΠ΅ΠΌΡΡ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ядрС CPU. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, которая ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ имя RFDS (Register File Data Sampling), Π²Ρ‹Π·Π²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ опрСдСлСния остаточной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· рСгистровых Ρ„Π°ΠΉΠ»ΠΎΠ² (RF, Register File) процСссора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для совмСстного хранСния содСрТимого рСгистров Π²ΠΎ всСх Π·Π°Π΄Π°Ρ‡Π°Ρ… Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ядрС CPU.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° выявлСна ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌΠΈ Intel Π² Ρ…ΠΎΠ΄Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Π°ΡƒΠ΄ΠΈΡ‚Π°. Π”Π΅Ρ‚Π°Π»ΡŒΠ½Π°Ρ информация ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ эксплуатации уязвимости Π½Π΅ раскрываСтся. УтвСрТдаСтся, Ρ‡Ρ‚ΠΎ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ процСссов для извлСчСния Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚.Π΅. осСданиС доступной для извлСчСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ носит случайный Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ остаточной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· процСссов Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ядра систСмы, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин, Π°Π½ΠΊΠ»Π°Π²ΠΎΠ² SGX ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ SMM.

Π£Ρ‚Π΅Ρ‡ΠΊΠ΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ рСгистры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π² функциях копирования памяти ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ строк, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² функциях memcpy, strcmp ΠΈ strlen. Π£Ρ‚Π΅Ρ‡ΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈ Ρ‡Π΅Ρ€Π΅Π· рСгистры для хранСния чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈ Ρ†Π΅Π»Ρ‹Ρ… чисСл, Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ Π² процСссС выполнСния Π·Π°Π΄Π°Ρ‡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Π°Ρ‰Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… рСгистров, поэтому ΡƒΡ‚Π΅Ρ‡ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· Π½ΠΈΡ… ΠΌΠ΅Π½Π΅Π΅ вСроятна. ΠžΡΡ‚Π°Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² рСгистрах, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒΡΡ ΠΈΠ· рСгистровых Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π°Ρ‚Π°ΠΊ ΠΏΠΎ сторонним ΠΊΠ°Π½Π°Π»Π°ΠΌ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… Π² кэшС CPU.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ процСссоры Atom Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Alder Lake, Raptor Lake, Tremont, Goldmont ΠΈ Gracemont. Π’Π°ΠΊ ΠΊΠ°ΠΊ уязвимыС процСссоры Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ€Π΅ΠΆΠΈΠΌ HyperThreading, ΡƒΡ‚Π΅Ρ‡ΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° выполнСния Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ядром CPU. ИзмСнСния для блокирования уязвимости Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² состав обновлСния ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π° microcode-20240312-staging. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ уязвимости ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для блокирования Ρ€Π°Π½Π΅Π΅ выявлСнных Π°Ρ‚Π°ΠΊ класса MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling), TAA (Transactional Asynchronous Abort), DRPW (Device Register Partial Write) ΠΈ SBDS (Shared Buffers Data Sampling).

Для блокирования ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ Π² ядрС ΠΈ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°Ρ… ΠΏΠΎΠΌΠΈΠΌΠΎ обновлСния ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π° трСбуСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹, основанных Π½Π° использовании инструкции VERW для очистки содСрТимого ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ возвращСния ΠΈΠ· ядра Π² пространство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ управлСния гостСвой систСмС. Указанная Π·Π°ΡˆΠΈΡ‚Π° ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ Xen ΠΈ ядро Linux. Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π² ядрС Linux ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ядра Ρ„Π»Π°Π³ «reg_file_data_sampling=on», Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ подвСрТСнности уязвимости ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ «/sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling».

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