FlippyRAM — дистрибутив для тСстирования Π°Ρ‚Π°ΠΊΠΈ Rowhammer

На ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ 38C3 прСдставлСн Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ FlippyRAM, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ наличия уязвимостСй, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ класса Rowhammer для измСнСния содСрТимого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Код инструмСнтария написан Π½Π° Π‘++ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT. Для упрощСния тСстирования сформирован Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ live-дистрибутив (1 Π“Π‘), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ провСсти ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ²ΡˆΠΈΡΡŒ с USB Flash, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° для Docker.

ЦСлью ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° являСтся ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊ ΡƒΡ‡Π°ΡΡ‚ΠΈΡŽ Π² исслСдовании, ΠΏΡ‹Ρ‚Π°ΡŽΡ‰Π΅ΠΌΡΡ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ статистику ΠΎ Ρ‚ΠΎΠΌ, насколько уязвимости класса Rowhammer ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² систСмах, находящихся Π² ΠΎΠ±ΠΈΡ…ΠΎΠ΄Π΅. Π”Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ тСстирования ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠ°ΠΊ ΠΈΠ· Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ дистрибутива, Ρ‚Π°ΠΊ ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½Π° сайт исслСдования.

ΠœΠ΅Ρ‚ΠΎΠ΄ Π°Ρ‚Π°ΠΊΠΈ Rowhammer Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ 10 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, послС Ρ‡Π΅Π³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ исслСдоватСлями бСзопасности ΠΈ производитСлями оборудования Π½Π°Ρ‡Π°Π»Π°ΡΡŒ ΠΈΠ³Ρ€Π° Π² «ΠΊΠΎΡˆΠΊΠΈ-ΠΌΡ‹ΡˆΠΊΠΈ» — ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Ρ‡ΠΈΠΏΠΎΠ² памяти ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, Π° исслСдоватСли Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ способы Π΅Ρ‘ ΠΎΠ±Ρ…ΠΎΠ΄Π°. Помимо Ρ‡ΠΈΠΏΠΎΠ² DDR3 Π½Π° систСмах Intel x86, Π±Ρ‹Π»ΠΈ выявлСны ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Ρ‚Π°ΠΊΠΈ Π½Π° Ρ‡ΠΈΠΏΡ‹ DDR4 ΠΈ DDR5, систСмы с процСссорами AMD ΠΈ ARM, Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ ошибок ECC, способы ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊΠΈ ΠΏΠΎ сСти ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ JavaScript-ΠΊΠΎΠ΄Π° Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

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

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