ΠΡΡΠΏΠΏΠ° ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈΠ· Π¨Π²Π΅ΠΉΡΠ°ΡΡΠΊΠΎΠΉ Π²ΡΡΡΠ΅ΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΊΠΎΠ»Ρ Π¦ΡΡΠΈΡ Π°, ΠΠΌΡΡΠ΅ΡΠ΄Π°ΠΌΡΠΊΠΎΠ³ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ° ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Qualcomm ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π°ΡΠ°ΠΊΠΈ ΠΊΠ»Π°ΡΡΠ° RowHammer, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π±ΠΈΡΠΎΠ² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (DRAM). ΠΡΠ°ΠΊΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΎ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ Blacksmith ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ CVE-2021-42114. ΠΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΈΠΏΡ DDR4, ΡΠ½Π°Π±ΠΆΡΠ½Π½ΡΠ΅ Π·Π°ΡΠΈΡΠΎΠΉ ΠΎΡ ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° RowHammer. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ ΡΠΈΡΡΠ΅ΠΌ Π½Π° ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Π½ΠΎΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π½Π° GitHub.
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ Π°ΡΠ°ΠΊΠΈ ΠΊΠ»Π°ΡΡΠ° RowHammer ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΊΠ°Π·ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π±ΠΈΡΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΡΡΠΌ ΡΠΈΠΊΠ»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΡΡΠ΅Π΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ°ΠΌΡΡΡ DRAM ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΄Π²ΡΡ ΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΡΠ΅Π΅ΠΊ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΠ° ΠΈ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠ°, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ»ΡΠΊΡΡΠ°ΡΠΈΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ Π°Π½ΠΎΠΌΠ°Π»ΠΈΡΠΌ, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ ΠΏΠΎΡΠ΅ΡΡ Π·Π°ΡΡΠ΄Π° ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΡΡΠ΅Π΅ΠΊ. ΠΡΠ»ΠΈ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ°Ρ, ΡΠΎ ΡΠΎΡΠ΅Π΄Π½ΡΡ ΡΡΠ΅ΠΉΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ΅ΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΡΠΌ Π·Π°ΡΡΠ΄Π° ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠΈΠΊΠ» ΡΠ΅Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π½Π΅ ΡΡΠΏΠ΅Π΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΡΡ Π² ΡΡΠ΅ΠΉΠΊΠ΅ Π΄Π°Π½Π½ΡΡ .
ΠΠ»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ RowHammer ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΡΠΈΠΏΠΎΠ² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ TRR (Target Row Refresh), ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠΈΡΠ°Π΅Ρ ΠΎΡ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π΅ΠΊ Π² ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΡΡΡΠΎΠΊΠ°Ρ , Π½ΠΎ ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π°ΡΠΈΡΠ° ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π»Π°ΡΡ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ «Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΡΠ½ΠΎΡΡΡ (security by obscurity), ΠΎΠ½Π° Π½Π΅ ΡΠ΅ΡΠ°Π»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΠΊΠΎΡΠ½Π΅, Π° Π·Π°ΡΠΈΡΠ°Π»Π° Π»ΠΈΡΡ ΠΎΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΡΠ°ΡΡΠ½ΡΡ ΡΠ»ΡΡΠ°Π΅Π², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΏΡΡΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π° Π·Π°ΡΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΌΠ°Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Google ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»Π° ΠΌΠ΅ΡΠΎΠ΄ Half-Double, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»Π° Π·Π°ΡΠΈΡΠ° TRR, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ Π°ΡΠ°ΠΊΠ΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π»ΠΈΡΡ ΡΡΠ΅ΠΉΠΊΠΈ, Π½Π°ΠΏΡΡΠΌΡΡ Π½Π΅ ΠΏΡΠΈΠ»Π΅Π³Π°ΡΡΠΈΠ΅ ΠΊ ΡΠ΅Π»Π΅Π²ΠΎΠΉ.
ΠΠΎΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Blacksmith ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΈΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Ρ ΠΎΠ΄Π° Π·Π°ΡΠΈΡΡ TRR, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° Π½Π΅ΠΎΠ΄Π½ΠΎΡΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ Ρ ΡΠ°Π·Π½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ ΠΊ Π΄Π²ΡΠΌ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠΊΠ°ΠΌ-Π°Π³ΡΠ΅ΡΡΠΎΡΠ°ΠΌ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ΅ΡΠΊΠΈ Π·Π°ΡΡΠ΄Π°. ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Ρ ΡΠ΅ΡΠΊΠ΅ Π·Π°ΡΡΠ΄Π°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ fuzzer, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π±ΠΈΡΠ°ΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π°ΡΠ°ΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π²Π°ΡΡΠΈΡΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ, ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠ΅ΠΉΠΊΠ°ΠΌ.
ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΡ ΠΎΠ΄, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ Π½Π° ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ, Π΄Π΅Π»Π°Π΅Ρ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π·Π°ΡΠΈΡΡ TRR, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΠΏΠΎΠ΄ΡΡΡΡΡ ΡΠΈΡΠ»Π° ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ ΡΡΠ΅ΠΉΠΊΠ°ΠΌ ΠΈ ΠΏΡΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΡΡΠ΄ΠΊΠΈ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΡΡΠ΅Π΅ΠΊ. Π Blacksmith ΡΠ°Π±Π»ΠΎΠ½ Π΄ΠΎΡΡΡΠΏΠ° ΡΠ°Π·ΠΌΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ°Π·Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π΅ΠΊ c ΡΠ°Π·Π½ΡΡ ΡΡΠΎΡΠΎΠ½ ΠΎΡ ΡΠ΅Π»Π΅Π²ΠΎΠΉ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠ΅ΡΠΊΠΈ Π·Π°ΡΡΠ΄Π° Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π°Ρ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½.
ΠΠ΅ΡΠΎΠ΄ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅ ΡΠ°Π½Π΅Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ±Ρ ΠΎΠ΄Π° TRR — ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠ΄Π°Π»ΠΎΡΡ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΠΈΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅Ρ ΠΈΠ· 40 Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΊΡΠΏΠ»Π΅Π½Π½ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ DDR4 ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° Samsung, Micron, SK Hynix ΠΈ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ (Π½Π° 4 ΡΠΈΠΏΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π½Π΅ Π±ΡΠ» ΡΠΊΠ°Π·Π°Π½). ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ°Π½Π΅Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄ TRRespass ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π»ΠΈΡΡ Π΄Π»Ρ 13 ΠΈΠ· 42 ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ².
Π ΠΎΠ±ΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Blacksmith ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΊ 94% ΠΈΠ· Π²ΡΠ΅Ρ DRAM-ΡΠΈΠΏΠΎΠ², ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π½Π° ΡΡΠ½ΠΊΠ΅, Π½ΠΎ ΠΏΠΎ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΏΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ·Π²ΠΈΠΌΡ ΠΈ ΠΏΡΠΎΡΠ΅ Π΄Π»Ρ Π°ΡΠ°ΠΊΠΈ, ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΠ΅. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠΈΠΏΠ°Ρ ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ (ECC) ΠΈ ΡΠ΄Π²ΠΎΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ Π·Π°ΡΠΈΡΡ, Π½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ. ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π° Π² ΡΠΆΠ΅ Π²ΡΠΏΡΡΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ°Ρ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΡΠΈΡΡ Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΠΏΠΎΡΡΠΎΠΌΡ Π°ΡΠ°ΠΊΠ° ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ Π΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π³ΠΎΠ΄Ρ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Blacksmith Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ (PTE, page table entry) Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΡΠ΄ΡΠ°, ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Ρ ΡΠ°Π½ΡΡΠ΅Π³ΠΎΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° RSA-2048 Π² OpenSSH (ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ Π² ΡΡΠΆΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Π·Π°ΠΊΡΡΡΠΎΠΌΡ ΠΊΠ»ΡΡΡ Π°ΡΠ°ΠΊΡΡΡΠ΅Π³ΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ VM ΠΆΠ΅ΡΡΠ²Ρ) ΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΡΠ΅ΡΠ΅Π· ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° sudo Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ root. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ Π±ΠΈΡΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡ 3 ΡΠ΅ΠΊΡΠ½Π΄ Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΡΠΎΠ² ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π°ΡΠ°ΠΊΠΈ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° LiteX Row Hammer Tester Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π·Π°ΡΠΈΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡ Π°ΡΠ°ΠΊ ΠΊΠ»Π°ΡΡΠ° RowHammer, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Antmicro ΠΏΠΎ Π·Π°ΠΊΠ°Π·Ρ Google. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ FPGA Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΌΠΈ Π½Π°ΠΏΡΡΠΌΡΡ Π² ΡΠΈΠΏ DRAM Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π»ΠΈΡΠ½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ FPGA ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Python. Π¨Π»ΡΠ· Π·Π° Π±Π°Π·Π΅ FPGA Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
(ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ), Payload Executor, ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π° Π±Π°Π·Π΅ LiteDRAM (ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ Π΄Π»Ρ DRAM Π»ΠΎΠ³ΠΈΠΊΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΡΠΎΠΊ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ) ΠΈ CPU VexRiscv. ΠΠ°ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌ FPGA, Π²ΠΊΠ»ΡΡΠ°Ρ Lattice ECP5, Xilinx Series 6, 7, UltraScale ΠΈ UltraScale+.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru