Атаки GDDRHammer ΠΈ GeForge, ΠΈΡΠΊΠ°ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒ GPU для доступа ΠΊΠΎ всСй памяти CPU

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… унивСрситСтов БША ΠΈ Австралии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π΄Π²Π΅ Π°Ρ‚Π°ΠΊΠΈ класса Rowhammer β€” GDDRHammer ΠΈ GeForge, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ядра CUDA Π½Π° GPU NVIDIA Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ искаТСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² Π² Ρ‡ΠΈΠΏΠ°Ρ… видСопамяти GDDR. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ прСдставлСнного Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GPUHammer, Π½ΠΎΠ²Ρ‹Π΅ Π°Ρ‚Π°ΠΊΠΈ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ воздСйствиСм Π½Π° Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π² памяти GPU, Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊΠΎ всСй основной памяти, относящСйся ΠΊ адрСсному пространству CPU. Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ продСмонстрированы эксплоиты, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ root-доступ ΠΊ основной систСмС ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ CUDA-ядра Π½Π° GPU.

ОбС Π°Ρ‚Π°ΠΊΠΈ Π΄ΠΎΠ±ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ заряда Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ячСйках видСопамяти, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρƒ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΡ… Π½Π΅Ρ‚ прямого доступа, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ измСнСнию хранящихся Π² этих ячСйках Π±ΠΈΡ‚ΠΎΠ². Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ чтСния ΠΈ записи Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΎΡ‚Π½ΠΎΡΡΡ‰ΡƒΡŽΡΡ ΠΊ адрСсному пространству CPU, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΡƒΡ‚Ρ‘ΠΌ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Π° памяти GPU (cudaMalloc) для Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ изоляции памяти GPU ΠΈ отобраТСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… адрСсов GPU Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ адрСса физичСской памяти GPU ΠΈΠ»ΠΈ CPU.

Π’ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· искаТСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π±ΠΈΡ‚ΠΎΠ² Π² видСопамяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранятся Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ страниц памяти GPU, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… адрСсов Π² физичСскиС. ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Ρ‚Π°ΠΊΠ°ΠΌΠΈ GDDRHammer ΠΈ GeForge сводятся ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ GDDRHammer ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ страниц послСднСго уровня (PT β€” Last Level Page Table), Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ GeForge β€” ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ страниц послСднСго уровня (PD0 β€” Last Level Page Directory).

Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ трансляции адрСсов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ прямого доступа GPU ΠΊ памяти CPU, поэтому ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ адрСса Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ страниц GPU Π½Π° физичСский адрСс Π² основной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΈ выставлСниС Ρ„Π»Π°Π³Π° APERTURE, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅ΠΆΠΈΠΌ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° памяти CPU, Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ c ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ основной памяти Ρ‡Π΅Ρ€Π΅Π· ΡˆΠΈΠ½Ρƒ PCIe ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΌ IOMMU (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½).

 Атаки GDDRHammer ΠΈ GeForge, ΠΈΡΠΊΠ°ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒ GPU для доступа ΠΊΠΎ всСй памяти CPU
 Атаки GDDRHammer ΠΈ GeForge, ΠΈΡΠΊΠ°ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒ GPU для доступа ΠΊΠΎ всСй памяти CPU

Π£ΡΠΏΠ΅ΡˆΠ½Ρ‹Π΅ Π°Ρ‚Π°ΠΊΠΈ продСмонстрированы для Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ NVIDIA RTX A6000 Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Ampere (ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ начинаСтся с $6850, Π° ΠΏΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½Π½Ρ‹Ρ… β€” с $4000) ΠΈ Π±Ρ‹Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ NVIDIA RTX 3060 ($250-300). Разработанная Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΎΠ±Ρ…ΠΎΠ΄Π° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Rowhammer Π² сочСтании с задСйствованиСм прСдоставляСмых Π² GPU срСдств распараллСливания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π² 64 Ρ€Π°Π·Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ частоту возникновСния искаТСния ячССк ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΌΠΈ Π°Ρ‚Π°ΠΊΠ°ΠΌΠΈ. Π’ качСствС Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ€Ρ‹ для блокирования Π°Ρ‚Π°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«nvidia-smi -e 1Β» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Ρ€Π΅ΠΆΠΈΠΌ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ ошибок ECC (Error Correcting Codes), Π½ΠΎ ΠΎΠ½ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ расходам ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΠΎΠΉΠ΄Ρ‘Π½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ECCploit ΠΈ ECC.fail.

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

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

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

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