Π§ΠΈΠΏΡ‹ памяти DDR4 ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ уязвимы для Π°Ρ‚Π°ΠΊ RowHammer, нСсмотря Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ

Π“Ρ€ΡƒΠΏΠΏΠ° исслСдоватСлСй ΠΈΠ· АмстСрдамского свободного унивСрситСта, ШвСйцарской Π²Ρ‹ΡΡˆΠ΅ΠΉ тСхничСской ΡˆΠΊΠΎΠ»Ρ‹ Π¦ΡŽΡ€ΠΈΡ…Π° ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Qualcomm ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ исслСдованиС эффСктивности примСняСмой Π² соврСмСнных Ρ‡ΠΈΠΏΠ°Ρ… памяти DDR4 Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ класса RowHammer, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ содСрТимоС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² динамичСской ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти (DRAM). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ оказались Π½Π΅ΡƒΡ‚Π΅ΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ Ρ‡ΠΈΠΏΡ‹ DDR4 основных ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ уязвимы (CVE-2020-10255).

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ RowHammer позволяСт ΠΈΡΠΊΠ°Π·ΠΈΡ‚ΡŒ содСрТимоС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² памяти ΠΏΡƒΡ‚Ρ‘ΠΌ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΎΠ³ΠΎ чтСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· сосСдних ячССк памяти. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ°ΠΌΡΡ‚ΡŒ DRAM прСдставляСт собой Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ячССк, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит ΠΈΠ· кондСнсатора ΠΈ транзистора, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ чтСния ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ области памяти ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ„Π»ΡƒΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ напряТСния ΠΈ аномалиям, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΡ‚Π΅Ρ€ΡŽ заряда сосСдних ячССк. Если ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ чтСния достаточно большая, Ρ‚ΠΎ ячСйка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ достаточно большой ΠΎΠ±ΡŠΡ‘ΠΌ заряда ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ» Ρ€Π΅Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ успССт Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ измСнСнию значСния сохранённых Π² ячСйкС Π΄Π°Π½Π½Ρ‹Ρ….

Для блокирования ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ эффСкта Π² соврСмСнных Ρ‡ΠΈΠΏΠ°Ρ… DDR4 примСняСтся тСхнология TRR (Target Row Refresh), прСдназначСнная для прСдотвращСния искаТСния ячССк ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π°Ρ‚Π°ΠΊΠΈ RowHammer. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ TRR ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ CPU ΠΈ памяти Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΠ΅Ρ‚ TRR ΠΏΠΎ своСму, примСняСт собствСнныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈ Π½Π΅ раскрываСт Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ примСняСмых производитСлями ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² блокирования RowHammer ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡƒΡ‚ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π·Π°Ρ‰ΠΈΡ‚Ρ‹. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ оказалось, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠ΅ΠΌΡ‹ΠΉ производитСлями ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ «Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΡΡΠ½ΠΎΡΡ‚ΡŒ (security by obscurity) ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ TRR ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ лишь для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π² частных случаях, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ Π°Ρ‚Π°ΠΊΠΈ, ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ заряда ячССк Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ΄ΠΈ Π΄Π²ΡƒΡ… сосСдних строках.

Разработанная исслСдоватСлями ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° позволяСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ‡ΠΈΠΏΠΎΠ² многосторонним Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌ Π°Ρ‚Π°ΠΊΠΈ RowHammer, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° влияния Π½Π° заряд производится сразу для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк ячССк памяти. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π°Ρ‚Π°ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ производитСлями Π·Π°Ρ‰ΠΈΡ‚Ρƒ TRR ΠΈ приводят ΠΊ искаТСнию Π±ΠΈΡ‚ΠΎΠ² памяти Π΄Π°ΠΆΠ΅ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ DDR4.
Из 42 ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… DIMM-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ 13 ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ оказались уязвимы для нСстандартных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² провСдСния Π°Ρ‚Π°ΠΊΠΈ RowHammer, нСсмотря Π½Π° Π·Π°ΡΠ²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹ производитСлями SK Hynix, Micron ΠΈ Samsung, продукция ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ 95% Ρ€Ρ‹Π½ΠΊΠ° DRAM.

ΠšΡ€ΠΎΠΌΠ΅ DDR4, Π±Ρ‹Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½Ρ‹ ΠΈ примСняСмыС Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устойствах Ρ‡ΠΈΠΏΡ‹ LPDDR4, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ оказались Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π°Ρ‚Π°ΠΊΠΈ RowHammer. Π’ частности, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ оказалась ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ, примСняСмая Π² смартфонах Google Pixel, Google Pixel 3, LG G7, OnePlus 7 ΠΈ Samsung Galaxy S10.

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ смогли воспроизвСсти Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Ρ… Ρ‡ΠΈΠΏΠ°Ρ… DDR4 нСсколько Ρ‚Π΅Ρ…Π½ΠΈΠΊ эксплуатации. НапримСр, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ RowHammer-эксплоита для PTE (Page Table Entries) ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ для получСния ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ядра провСдСния Π°Ρ‚Π°ΠΊΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 2.3 сСкунд Π΄ΠΎ Ρ‚Ρ€Ρ‘Ρ… часов пятнадцати сСкунд, Π² зависимости ΠΎΡ‚ тСстируСмых Ρ‡ΠΈΠΏΠΎΠ². Атака ΠΏΠΎ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ хранящСгося Π² памяти ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° RSA-2048 заняла ΠΎΡ‚ 74.6 сСкунд Π΄ΠΎ 39 ΠΌΠΈΠ½ΡƒΡ‚ 28 сСкунд. Атака Π½Π° ΠΎΠ±Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ памяти процСсса sudo заняла 54 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ 16 сСкунд.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ примСняСмых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Ρ‡ΠΈΠΏΠΎΠ² памяти DDR4 ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° TRRespass. Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ провСдСния Π°Ρ‚Π°ΠΊΠΈ трСбуСтся информация ΠΎ примСняСмой Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ памяти раскладкС физичСских адрСсов Π² привязкС ΠΊ Π±Π°Π½ΠΊΠ°ΠΌ ΠΈ строкам ячССк памяти. Для опрСдСлСния раскладки Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° drama, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π°Ρ запуска с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root. Π’ блиТайшСС врСмя Ρ‚Π°ΠΊΠΆΠ΅ планируСтся ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для тСстирования памяти смартфонов.

Компании Intel ΠΈ AMD посовСтовали для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ с ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠ΅ΠΉ ошибок (ECC), ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ памяти с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Maximum Activate Count (MAC) ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΡƒΡŽ частоту Ρ€Π΅Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΆΠ΅ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ для ΡƒΠΆΠ΅ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Ρ‡ΠΈΠΏΠΎΠ² отсутствуСт Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Rowhammer, Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ECC ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ частоты Ρ€Π΅Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ памяти оказались нСэффСктивны. НапримСр, Ρ€Π°Π½Π΅Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ способ Π°Ρ‚Π°ΠΊΠΈ Π½Π° DRAM-ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² ΠΎΠ±Ρ…ΠΎΠ΄ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ECC, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊΠΈ Π½Π° DRAM Ρ‡Π΅Ρ€Π΅Π· Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ, ΠΈΠ· гостСвой систСмы ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ запуска JavaScript Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

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

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