ZenHammer — ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Ρ‚Π°ΠΊΠΈ для искаТСния содСрТимого памяти Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… AMD Zen

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ· ШвСйцарской Π²Ρ‹ΡΡˆΠ΅ΠΉ тСхничСской ΡˆΠΊΠΎΠ»Ρ‹ Π¦ΡŽΡ€ΠΈΡ…Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Ρ‚Π°ΠΊΠΈ ZenHammer, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π°Ρ‚Π°ΠΊ класса RowHammer для измСнСния содСрТимого ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² динамичСской ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти (DRAM), Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для использования Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… с процСссорами AMD. ΠŸΡ€ΠΎΡˆΠ»Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Ρ‚Π°ΠΊ класса RowHammer ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π»ΠΈΡΡŒ систСмами Π½Π° Π±Π°Π·Π΅ процСссоров Intel, Π½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ΅ исслСдованиС ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ искаТСния ячССк памяти Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ памяти ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ AMD.

Π Π°Π±ΠΎΡ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° продСмонстрирована Π½Π° систСмах AMD Zen 2 ΠΈ Zen 3 с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ DDR4 ΠΎΡ‚ Ρ‚Ρ€Ρ‘Ρ… Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ (Samsung, Micron ΠΈ SK Hynix). Атака ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Ρ‡ΠΈΠΏΠ°Ρ… памяти ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ TRR (Target Row Refresh), Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ искаТСния ячССк памяти Π² сосСдних строках. По ΠΎΡ†Π΅Π½ΠΊΠ΅ исслСдоватСлСй систСмы Π½Π° Π±Π°Π·Π΅ CPU AMD Zen 3 Π±ΠΎΠ»Π΅Π΅ уязвимы, Ρ‡Π΅ΠΌ систСмы с процСссорами Intel Coffee Lake, ΠΈ ΠΈΡ… ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ эффСктивнСС Π°Ρ‚Π°ΠΊΠΎΠ²Π°Ρ‚ΡŒ. На систСмах AMD Zen 2 искаТСния ячССк ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ для 7 ΠΈΠ· 10 протСстированных Ρ‡ΠΈΠΏΠΎΠ² DDR4, Π° Π½Π° систСмах Zen 3 для 6 ΠΈΠ· 10. Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊΠΈ Π½Π° систСмы AMD Zen 4 с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ DDR5, Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для DDR4 ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Ρ‚Π°ΠΊΠΈ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ воспроизвСсти лишь Π½Π° 1 ΠΈΠ· 10 протСстированных Ρ‡ΠΈΠΏΠΎΠ² памяти DDR5, ΠΏΡ€ΠΈ этом сама Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивных шаблонов чтСния, подходящих для устройств DDR5.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‡ΠΈΠΏΠ°ΠΌΠΈ AMD ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π½Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ эксплоиты, ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ содСрТимоС записСй Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ страниц памяти (PTE, page table entry) для получСния ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ядра, обходящиС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ пароля/ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ памяти процСсса sudo ΠΈ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ хранящийся Π² памяти ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ RSA-2048 Π² OpenSSH для воссоздания Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°. Атаку Π½Π° страницы памяти ΡƒΠ΄Π°Π»ΠΎΡΡŒ воспроизвСсти Π½Π° 7 ΠΈΠ· 10 протСстированных Ρ‡ΠΈΠΏΠΎΠ² DDR4, Π°Ρ‚Π°ΠΊΡƒ Π½Π° ΠΊΠ»ΡŽΡ‡ RSA — Π½Π° 6 Ρ‡ΠΈΠΏΠ°Ρ…, Π° Π°Ρ‚Π°ΠΊΡƒ Π½Π° sudo — Π½Π° 4 Ρ‡ΠΈΠΏΠ°Ρ…, ΠΏΡ€ΠΈ этом врСмя Π°Ρ‚Π°ΠΊΠΈ составило 164, 267 ΠΈ 209 сСкунд, соотвСтствСнно.

ZenHammer - ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Ρ‚Π°ΠΊΠΈ для искаТСния содСрТимого памяти Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… AMD Zen

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ для Π°Ρ‚Π°ΠΊΠΈ Π½Π° систСму Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹, для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΈΠ»ΠΈ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Ρ‚Π°ΠΊΠΈ ΠΏΠΎ сСти. На GitHub ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½ исходных ΠΊΠΎΠ΄ инструмСнтария DARE для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π° раскладки адрСсов Π² памяти DRAM, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π° Π½Π°Π±ΠΎΡ€Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для fuzzing-тСстирования искаТСния Π±ΠΈΡ‚ΠΎΠ² Π² памяти — ddr4_zen2_zen3_pub для Ρ‡ΠΈΠΏΠΎΠ² DDR4 (Zen 2 and Zen 3) ΠΈ ddr5_zen4_pub для Ρ‡ΠΈΠΏΠΎΠ² DDR5 (Zen 4), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ своих систСм Π½Π° ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠ΅.

ZenHammer - ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Ρ‚Π°ΠΊΠΈ для искаТСния содСрТимого памяти Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… AMD Zen

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

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

Компания AMD ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΠΎΡ‚Ρ‡Ρ‘Ρ‚ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ говорится, Ρ‡Ρ‚ΠΎ Π² процСссорах AMD ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ памяти, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ спСцификациям DDR, ΠΈ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ зависит Π² основном ΠΎΡ‚ настроСк систСмы ΠΈ DRAM-памяти, с вопросами ΠΎΠ± устранСнии ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ слСдуСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ производитСлям памяти ΠΈ систСм. Из ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… способов услоТнСния ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊ класса Rowhammer упоминаСтся использованиС ECC-памяти, ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ частоты Ρ€Π΅Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ памяти, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Ρ€Π΅Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ использованиС процСссоров с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π΅ΠΆΠΈΠΌ MAC (Maximum Activate Count) для DDR4 (1, 2 ΠΈ 3 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ AMD EPYC «Naple», «Rome» ΠΈ «Milan») ΠΈ RFM (Refresh Management) для DDR5 (4 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ AMD EPYC).

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

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