ΠΠ° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ 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