GPUHammer — Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π°Ρ‚Π°ΠΊΠΈ Rowhammer Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ GPU

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ· УнивСрситСта Π’ΠΎΡ€ΠΎΠ½Ρ‚ΠΎ прСдставили ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π°Ρ‚Π°ΠΊΡƒ класса Rowhammer, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ для искаТСния содСрТимого видСопамяти. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊΠΈ, приводящСй ΠΊ подстановкС Π΄ΠΎ 8 Π±ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…, продСмонстрирована Π½Π° дискрСтном GPU NVIDIA A6000 с Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ GDDR6. Π’ качСствС практичСского ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ искаТСниС для Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния ΠΈ сущСствСнного (с 80% Π΄ΠΎ 0.1%) сниТСния точности Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠΌΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния всСго ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°.

 GPUHammer - Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π°Ρ‚Π°ΠΊΠΈ Rowhammer Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ GPU

Π”ΠΎ сих ΠΏΠΎΡ€ созданиС Π°Ρ‚Π°ΠΊ класса Rowhammer для видСопамяти Π±Ρ‹Π»ΠΎ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΎ ΠΈΠ·-Π·Π° слоТности опрСдСлСния физичСской раскладки памяти Π² Ρ‡ΠΈΠΏΠ°Ρ… GDDR, Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΏΡ€ΠΈ доступС ΠΊ памяти (Π² 4 Ρ€Π°Π·Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅) ΠΈ Π±ΠΎΠ»Π΅Π΅ высокой частоты обновлСния памяти. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡŽ исслСдований мСшало задСйствованиС Π² Ρ‡ΠΈΠΏΠ°Ρ… GDDR ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ манипуляций, приводящих ΠΊ ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€Π΅ заряда, для Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ созданиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… тСстовых стСндов Π½Π° Π±Π°Π·Π΅ FPGA.

Для изучСния видСопамяти исслСдоватСлями Π±Ρ‹Π»Π° создана новая Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π° GDDR DRAM, Π° Π² самой Π°Ρ‚Π°ΠΊΠ΅ задСйствованы примСняСмыС для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… вычислСний ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ доступа ΠΊ памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² качСствС усилитСлСй интСнсивности доступа ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ячСйкам. Для провСдСния Π°Ρ‚Π°ΠΊΠΈ Π½Π° GPU NVIDIA использован Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ ΠΊΠΎΠ΄ CUDA.

Π’ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅ CUDA Π½Π΅ выполняСтся ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ физичСским адрСсам памяти, Π½ΠΎ Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ NVIDIA ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ памяти Π² ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ ΠΈ воспользовались исслСдоватСли для вычислСния смСщСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти ΠΈ опрСдСлСния раскладки Π±Π°Π½ΠΊΠΎΠ² памяти. РаспознаниС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ Π±Π°Π½ΠΊΠ°ΠΌ памяти Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π°Π½Π°Π»ΠΈΠ· Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°Π»ΠΈΡΡŒ ΠΏΡ€ΠΈ доступС ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π±Π°Π½ΠΊΠ°ΠΌ памяти.

Π’ систСмах, совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… GPU, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ сСрвСры для выполнСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния, Π°Ρ‚Π°ΠΊΠ° позволяСт ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ содСрТимоС видСопамяти с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ качСствС ΠΌΠ΅Ρ€Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ компания NVIDIA Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ ошибок (ECC, Error Correction Codes) ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«nvidia-smi -e 1Β» ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСрии Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ OD-ECC (On-Die ECC), Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ GeForce RTX 50, RTX PRO, GB200, B200, B100, H100, H200, H20 ΠΈ GH200.

По Π΄Π°Π½Π½Ρ‹ΠΌ исслСдоватСлСй Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ECC Π½Π° систСмах с GPU A6000 ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ сниТСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ выполнСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° 10% ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ ΠΎΠ±ΡŠΡ‘ΠΌΠ° памяти Π½Π° 6.25%. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ для провСдСния Π°Ρ‚Π°ΠΊΠΈ ΠΈ выполнСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π° Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ раскладки видСопамяти Π½Π° систСмах с GPU NVIDIA ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π½Π° GitHub.

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

ΠœΠ΅Ρ‚ΠΎΠ΄ Π°Ρ‚Π°ΠΊΠΈ Rowhammer Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π² 2014 Π³ΠΎΠ΄Ρƒ, послС Ρ‡Π΅Π³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ исслСдоватСлями бСзопасности ΠΈ производитСлями оборудования Π½Π°Ρ‡Π°Π»Π°ΡΡŒ ΠΈΠ³Ρ€Π° Π² «кошки-ΠΌΡ‹ΡˆΠΊΠΈΒ» β€” ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Ρ‡ΠΈΠΏΠΎΠ² памяти ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, Π° исслСдоватСли Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ способы Π΅Ρ‘ ΠΎΠ±Ρ…ΠΎΠ΄Π°. НапримСр, для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ RowHammer ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Ρ‡ΠΈΠΏΠΎΠ² Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ TRR (Target Row Refresh), Π½ΠΎ оказалось, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ искаТСниС ячССк лишь Π² частных случаях, Π½ΠΎ Π½Π΅ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΡ‚ всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π°Ρ‚Π°ΠΊΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Ρ‚Π°ΠΊΠΈ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ для Ρ‡ΠΈΠΏΠΎΠ² DDR3, DDR4 ΠΈ DDR5 Π½Π° систСмах с процСссорами Intel, AMD ΠΈ ARM. Π’Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ способы ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ ошибок ECC ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊΠΈ ΠΏΠΎ сСти ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ JavaScript-ΠΊΠΎΠ΄Π° Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

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

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