Π΄Π°Π½Π½ΠΈ Π·Π° Π½ΠΎΠ² ΠΊΠ»Π°Ρ Π°ΡΠ°ΠΊΠΈ (Load Value Injection, ) Π²ΡΡΡ Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π² CPU Intel, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ Intel SGX Π°Π½ΠΊΠ»Π°Π²ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ.
ΠΠΎΠ²ΠΈΡΡ ΠΊΠ»Π°Ρ Π°ΡΠ°ΠΊΠΈ Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΠΈ Ρ ΡΡΡΠΈΡΠ΅ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΏΡΠΈ Π°ΡΠ°ΠΊΠΈΡΠ΅ (Microarchitectural Data Sampling), Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½ΠΎΠ²ΠΈΡΠ΅ Π°ΡΠ°ΠΊΠΈ Π½Π΅ ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ Meltdown, Spectre, MDS ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π°ΡΠ°ΠΊΠΈ. ΠΠ° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ LVI Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² CPU. ΠΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠΈΡΠ° ΠΏΠΎ ΡΠΎΡΡΡΠ΅ΡΠ΅Π½ ΠΏΡΡ, ΡΡΠ΅Π· Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ LFENCE ΡΠ»Π΅Π΄ Π²ΡΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΠΎΠ΄ΠΌΡΠ½Π° Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ RET Ρ POP, LFENCE ΠΈ JMP, ΡΠ΅ ΡΠΈΠΊΡΠΈΡΠ°Ρ ΡΠ²ΡΡΠ΄Π΅ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ β ΠΏΠΎ ΠΎΡΠ΅Π½ΠΊΠΈ Π½Π° ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈΡΠ΅, ΠΏΡΠ»Π½Π°ΡΠ° ΡΠΎΡΡΡΠ΅ΡΠ½Π° Π·Π°ΡΠΈΡΠ° ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Ρ 2-19 ΠΏΡΡΠΈ.
Π§Π°ΡΡΠΈΡΠ½ΠΎ, ΡΡΡΠ΄Π½ΠΎΡΡΡΠ° ΠΏΡΠΈ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΠ° ΠΎΡ ΡΠΎΠ²Π°, ΡΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π°ΡΠ°ΠΊΠ°ΡΠ° Π½ΠΎΡΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅Π½, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅Π½ Ρ
Π°ΡΠ°ΠΊΡΠ΅Ρ (Π°ΡΠ°ΠΊΠ°ΡΠ° Π΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ½ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½Π°, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΄Π½Π° Π·Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΈ ΡΠ΅ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΡΠ°ΠΌΠΎ Π² ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅).
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Intel ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° ΡΠΌΠ΅ΡΠ΅Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ (5.6 ΠΎΡ 10) ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠΌΡΠ΅ΡΠ° ΠΈ SDK Π·Π° ΡΡΠ΅Π΄Π°ΡΠ° SGX, Π² ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Ρ Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π°ΡΠ° Π°ΡΠ°ΠΊΠ° ΠΏΠΎ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π΅Π½ ΠΏΡΡ. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° Π°ΡΠ°ΠΊΠ° Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠΈ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ Intel, Π½ΠΎ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° LVI Π΄Π° Π±ΡΠ΄Π΅ Π°Π΄Π°ΠΏΡΠΈΡΠ°Π½Π° ΠΈ Π·Π° Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ Π°ΡΠ°ΠΊΠΈ ΠΎΡ ΠΊΠ»Π°Ρ Meltdown.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠ° Π±Π΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½Π° ΠΏΡΠ΅Π· Π°ΠΏΡΠΈΠ» ΠΌΠΈΠ½Π°Π»Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΡ ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΠΆΠΎ ΠΠ°Π½ ΠΠ°Π»ΠΊ (Jo Van Bulck) ΠΎΡ ΠΡΠΎΠ²Π΅Π½ΡΠΊΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ Ρ ΡΡΠ°ΡΡΠΈΠ΅ΡΠΎ Π½Π° 9 ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠΈ, Π±ΡΡ Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΏΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π°ΡΠ°ΠΊΠΈ, Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π΄ΠΎΠΏΡΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ, ΠΏΡΠ΅Π· ΡΠ΅Π²ΡΡΠ°ΡΠΈ ΡΠ°Π·ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Bitdefender ΡΡΡΠΎ ΠΊΠΎΠ½ΡΡΠ°ΡΠΈΡΠ°Ρ Π° Π΅Π΄ΠΈΠ½ ΠΎΡ Π²Π°ΡΠΈΠ°Π½ΡΠΈΡΠ΅ Π½Π° Π°ΡΠ°ΠΊΠ° LVI ΠΈ Π³ΠΎ ΡΡΠΎΠ±ΡΠΈΡ Π° Π½Π° Intel. ΠΠ°ΡΠΈΠ°Π½ΡΠΈΡΠ΅ Π½Π° Π°ΡΠ°ΠΊΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ ΠΏΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ, ΠΊΠ°ΡΠΎ Π±ΡΡΠ΅Ρ Π·Π° Π·Π°ΠΏΠ°ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ (SB, Store Buffer), Π±ΡΡΠ΅Ρ Π·Π° Π·Π°ΠΏΡΠ»Π²Π°Π½Π΅ (LFB, Line Fill Buffer), Π±ΡΡΠ΅Ρ Π·Π° ΡΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° FPU ΠΈ ΠΊΠ΅Ρ ΠΎΡ ΠΏΡΡΠ²ΠΎ Π½ΠΈΠ²ΠΎ (L1D), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π² ΡΠ°ΠΊΠΈΠ²Π° Π°ΡΠ°ΠΊΠΈ ΠΊΠ°ΡΠΎ , , , , ΠΈ .
ΠΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ LVI Π°ΡΠ°ΠΊΠΈΡΠ΅ MDS Π΅, ΡΠ΅ MDS ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΌΠΈΠΊΡΠΎΠ°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΡΠ°Π²Π°Ρ Π² ΠΊΠ΅ΡΠ° ΡΠ»Π΅Π΄ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (fault) ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ load ΠΈ store, Π΄ΠΎΠΊΠ°ΡΠΎ
Π°ΡΠ°ΠΊΠΈΡΠ΅ LVI ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΏΠΎΠ΄ΠΌΡΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ attacker Π² ΠΌΠΈΠΊΡΠΎΠ°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ, Ρ ΡΠ΅Π» Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΡΡ
Ρ ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΆΠ΅ΡΡΠ²Π°ΡΠ°. Π§ΡΠ΅Π· ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΠΈ, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°ΠΊΡΠΈΡΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ Π² Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠΎΠ΄ Π½Π° ΡΠ΅Π»Π΅Π²ΠΈΡ CPU.
ΠΠ° Π² ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°-ΠΆΠ΅ΡΡΠ²Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ΄ (gadgets), Π² ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½Π° ΠΎΡ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡ ΡΡΠΎΠΉΠ½ΠΎΡΡ, Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (fault, abort ΠΈΠ»ΠΈ assist), ΠΊΠΎΠΈΡΠΎ ΠΎΡΡ Π²ΡΡΠ»ΡΡ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ. ΠΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π΅Π½ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½ΠΈΡΠ΅ Π² Π³Π°Π΄ΠΆΠ΅ΡΠ° Π΄Π°Π½Π½ΠΈ. Π ΡΠ°ΡΡΠ½ΠΎΡΡ, ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°ΡΡ ΠΎΡ ΠΊΠΎΠ΄Π° (Π³Π°Π΄ΠΆΠ΅Ρ), ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°, ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΡΠΎ Π½Π΅ ΡΠ΅ Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π»ΠΎ ΠΈ ΠΎΡΠΌΠ΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π΄ΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎΡΠΎ ΠΈΠΌ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡΡΠ°Π²Π°Ρ Π² ΠΊΠ΅ΡΠ° L1D ΠΈ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈΡΠ΅ Π±ΡΡΠ΅ΡΠΈ ΠΈ ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ ΠΎΡ ΡΡΡ Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π· ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ.
ΠΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ Β«assistΒ», Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ Β«faultΒ», ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π²ΡΡΡΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π±Π΅Π· ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ. Assist ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈ Π±ΠΈΡ A (Accessed) ΠΈΠ»ΠΈ D (Dirty) Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π·Π° ΡΡΡΠ°Π½ΠΈΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΡΠ΄Π½ΠΎΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π°ΡΠ°ΠΊΠ° Π²ΡΡΡ Ρ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π΅ ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΡΠ° Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° assist, ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°ΠΉΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΆΠ΅ΡΡΠ²Π°ΡΠ°. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΡΠΎΠ²Π°, Π½ΠΎ Π² Π±ΡΠ΄Π΅ΡΠ΅ Π½Π΅ Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ. ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π°ΡΠ°ΠΊΠ°ΡΠ° ΠΊΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΅ ΠΏΠΎΡΠ²ΡΡΠ΄Π΅Π½Π° ΡΠ°ΠΌΠΎ Π·Π° Π°Π½ΠΊΠ»Π°Π²ΠΈ Π½Π° Intel SGX, Π΄ΡΡΠ³ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΎΡΡΠ°Π²Π°Ρ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ½ΠΈ ΠΈΠ»ΠΈ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΈ Π² ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ (Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ gadgets Π² ΠΊΠΎΠ΄Π°)
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΈ Π²Π΅ΠΊΡΠΎΡΠΈ Π½Π° Π°ΡΠ°ΠΊΠΈ:
- ΠΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ΄ΡΠ΅Π½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΊΡΠΌ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅Ρ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ°ΡΠ° Π·Π°ΡΠΈΡΠ° Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΡΡΠ΅ΡΡ Π°ΡΠ°ΠΊΠΈ ΠΎΡ ΠΊΠ»Π°Ρ Spectre 1, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ Π·Π° Π·Π°ΡΠΈΡΠ° SMAP (ΠΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π½Π°Π΄Π·ΠΎΡ) Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΠ° ΠΎΡ Π°ΡΠ°ΠΊΠ° LVI. ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° Π·Π°ΡΠΈΡΠ° Π² ΡΠ΄ΡΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°, Π°ΠΊΠΎ Π² Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ΅ ΠΎΡΠΊΡΠΈΡΡ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° Π°ΡΠ°ΠΊΠ° LVI.
- ΠΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ. ΠΠ° Π°ΡΠ°ΠΊΠ°ΡΠ° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΊΠΎΠ΄ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅Π»Π΅Π²ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ.
- ΠΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Ρ ΠΎΡΡ ΡΡΠ΅Π΄Π° Π² Π³ΠΎΡΡΡΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΡΠ°ΠΊΠ°ΡΠ° Π΅ ΠΊΠ»Π°ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π° ΠΊΠ°ΡΠΎ ΠΏΡΠ΅ΠΊΠ°Π»Π΅Π½ΠΎ ΡΠ»ΠΎΠΆΠ½Π°, ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠ° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΠ΄Π½ΠΈ ΡΡΡΠΏΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
- ΠΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π³ΠΎΡΡΡΠ²Π°ΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠ΅ΠΊΡΠΎΡΡΡ Π½Π° Π°ΡΠ°ΠΊΠ°ΡΠ° Π΅ Π±Π»ΠΈΠ·ΡΠΊ Π΄ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, Π½ΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΠΈ Π·Π° Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠ½Π΅ Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π³ΠΎΡΡΡΠ²Π°ΡΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ.
ΠΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈΡΠ΅ ΠΎΠΏΠΎΠ²Π΅ΡΡΠΈΡ Π° Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π°ΡΠ°ΠΊΠ°, Π½ΠΎ ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π°Π»Π½ΠΈ Π°ΡΠ°ΠΊΠΈ. ΠΡΡΠ²ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π² ΠΏΡΠΎΡΠ΅ΡΠ°-ΠΆΠ΅ΡΡΠ²Π° ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΡΠΎ, ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° Π²ΡΡΡΠ°Π½Π΅ (, Return-Oriented Programming). Π ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΠΆΠ΅ΡΡΠ²Π°ΡΠ° Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ, ΡΡΠ΄ΡΡΠΆΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π³Π°Π΄ΠΆΠ΅ΡΠΈ (ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° Π°ΡΠ°ΠΊΠ°ΡΠ° ΠΊΡΠΌ ΡΠ΅Π°Π»Π½ΠΈ ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π΅ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΎ). ΠΡΠΎΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π°ΠΌΠ΅ΡΠ²Π°Π½Π΅ Π² ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ° ΠΏΡΠΈ ΡΠΈΡΡΠΈΡΠ°Π½Π΅ Π½Π° AES Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π°Π½ΠΊΠ»Π°Π²Π° Intel SGX ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ Π·Π° ΡΠΈΡΡΠΈΡΠ°Π½Π΅ ΠΊΠ»ΡΡ.

ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
