ΠΠ΅ΡΠ΅ ΡΠ°Π·ΠΊΡΠΈΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π½ΠΎΠ²Π° Π°ΡΠ°ΠΊΠ° ΡΡΠ΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ Π½Π° Intel - AEPIC Leak (CVE-2022-21233), ΠΊΠΎΡΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ Π°Π½ΠΊΠ»Π°Π²ΠΈ Intel SGX (Software Guard eXtensions). ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π·Π°ΡΡΠ³Π° 10-ΡΠΎ, 11-ΡΠΎ ΠΈ 12-ΡΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ Π½Π° Intel (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΠΈ Ice Lake ΠΈ Alder Lake) ΠΈ Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅Π½ ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅Π½ Π΄Π΅ΡΠ΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΎΡΡΠ°Π²Π°ΡΠΈ Π² APIC (Advanced Programmable Interrupt Controller) ΡΠ΅Π³ΠΈΡΡΡΠΈ ΡΠ»Π΅Π΄ ΠΌΠΈΠ½Π°Π»ΠΎΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ Π°ΡΠ°ΠΊΠΈΡΠ΅ ΠΎΡ ΠΊΠ»Π°Ρ Spectre, ΡΠ΅ΡΡΡ ΠΏΡΠΈ AEPIC Leak Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΡΡΠ΅Π· ΠΊΠ°Π½Π°Π»ΠΈ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ - ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° ΠΏΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΡΠ΅Π· ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅, ΠΎΡΡΠ°Π·Π΅Π½ΠΎ Π² ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° MMIO (ΠΊΠ°ΡΡΠΈΡΠ°Π½ Ρ ΠΏΠ°ΠΌΠ΅Ρ I/O) . ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ Π°ΡΠ°ΠΊΠ°ΡΠ° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΏΡΠ΅Ρ Π²ΡΡΠ»Π΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ΅ΡΠΎΠ²Π΅ΡΠ΅ Π½Π° Π²ΡΠΎΡΠΎΡΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ Π½ΠΈΠ²ΠΎ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅ ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΡΠ° Π±ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π½Π° ΡΡΡΠΎΡΠΎ ΡΠ΄ΡΠΎ ββΠ½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π°ΡΠ°ΠΊΠ° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈ Π½Π° APIC MMIO, Ρ.Π΅. ΠΈΠ·ΠΈΡΠΊΠ²Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΠΌΠ΅ΡΠΎΠ΄ΡΡ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π΄ΠΎ Π°ΡΠ°ΠΊΡΠ²Π°Π½Π΅ Π½Π° SGX Π°Π½ΠΊΠ»Π°Π²ΠΈ, Π΄ΠΎ ΠΊΠΎΠΈΡΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΡ Π½ΡΠΌΠ° ΠΏΡΡΠΊ Π΄ΠΎΡΡΡΠΏ. ΠΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈΡΠ΅ ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Ρ AES-NI ΠΈ RSA ΠΊΠ»ΡΡΠΎΠ²Π΅, ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈ Π² SGX, ΠΊΠ°ΠΊΡΠΎ ΠΈ Intel SGX ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΠΈ ΡΠΈΡΠ»Π° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΠΎΠ΄ΡΡ Π·Π° Π°ΡΠ°ΠΊΠ°ΡΠ° Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π² GitHub.
Intel ΠΎΠ±ΡΠ²ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π±ΡΡΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΠΌΠΈΠ²Π°Π½Π΅ ΠΈ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΌΠ΅ΡΠΊΠΈ Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° Π°Π½ΠΊΠ»Π°Π²Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ. ΠΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° SDK Π·Π° Intel SGX ΡΡΡΠΎ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π° Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π·Π° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ Ρ
ΠΈΠΏΠ΅ΡΠ²Π°ΠΉΠ·ΠΎΡΠΈ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ΅ΠΆΠΈΠΌ x2APIC Π²ΠΌΠ΅ΡΡΠΎ Π½Π°ΡΠ»Π΅Π΄Π΅Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌ xAPIC, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ MSR ΡΠ΅Π³ΠΈΡΡΡΠΈ Π²ΠΌΠ΅ΡΡΠΎ MMIO Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ APIC ΡΠ΅Π³ΠΈΡΡΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru