ΠΡΠΎΠ΅ΠΊΡΡΡ Grsecurity ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° Π°ΡΠ°ΠΊΠ° Π·Π° Π½ΠΎΠ²Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (CVE-2021-26341) Π² ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ Π½Π° AMD, ΡΠ²ΡΡΠ·Π°Π½Π° ΡΡΡ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ»Π΅Π΄ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°ΠΏΡΠ΅Π΄. ΠΠΊΠΎ Π°ΡΠ°ΠΊΠ°ΡΠ° Π΅ ΡΡΠΏΠ΅ΡΠ½Π°, ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈΡΠ΅ ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΠ»ΠΈ Π΅ΠΊΡΠΏΠ»ΠΎΠΉΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π°Π΄ΡΠ΅ΡΠ° ΠΈ Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΡΡ Π·Π°ΡΠΈΡΠ½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ KASLR (ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ), ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΊΠΎΠ΄ Π² ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ ePBF. ΠΡΡΠ³ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π½Π° Π°ΡΠ°ΠΊΠ° Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΠΈΡ Π° ΠΌΠΎΠ³Π»ΠΈ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π°Ρ Π΄ΠΎ ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ, ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠ΅Π²Π°Π½ΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½ΠΎ ΡΠ»Π΅Π΄ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° Π·Π° ΠΏΡΠ΅ΡΠΊΠ°ΡΠ°Π½Π΅ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° (SLS, Straight Line Speculation). ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΠ°ΠΊΠ°Π²Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π·Π° ΡΡΠ»ΠΎΠ²Π΅Π½ ΡΠΊΠΎΠΊ, Π½ΠΎ ΠΈ Π·Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π΅Π½ ΡΠΊΠΎΠΊ, ΠΊΠ°ΡΠΎ JMP, RET ΠΈ CALL. Π‘Π»Π΅Π΄ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΠΏΡΠ΅ΡΠΊΠ°ΡΠ°Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈ, ΡΠ΅ ΡΠ°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ Π²ΠΊΠ»ΡΡΠ²Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎ Π²ΡΡΡΠ° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π°Π·Π°Π΄ ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠ° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΡΠ»Π΅Π΄Π°ΡΠ° ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° ΠΎΡΡΠ°Π²Π° Π² ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ΅Ρ ΠΈ Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π·Π° Π°Π½Π°Π»ΠΈΠ· Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅Π½ ΠΊΠ°Π½Π°Π».
ΠΠ°ΠΊΡΠΎ ΠΏΡΠΈ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Spectre-v1, Π°ΡΠ°ΠΊΠ°ΡΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (Π΄ΠΆΠ°Π΄ΠΆΠΈ) Π² ΡΠ΄ΡΠΎΡΠΎ, ΠΊΠΎΠΈΡΠΎ Π²ΠΎΠ΄ΡΡ Π΄ΠΎ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ»ΠΎΠΊΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° Π΄ΠΆΠ°Π΄ΠΆΠΈ Π² ΠΊΠΎΠ΄Π° ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΊΡΠΌ ΡΡΡ , ΠΊΠΎΠΈΡΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. Π£ΡΠ»ΠΎΠ²ΠΈΡ Π·Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΈ ΠΎΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π²ΡΠ² Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° Π½Π° eBPF. ΠΠ° Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΡΡΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° eBPF, ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ eBPF Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° (βsysctl -w kernel.unprivileged_bpf_disabled=1β).
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π·Π°ΡΡΠ³Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΠ°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Zen1 ΠΈ Zen2, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΡΠ²ΠΎ ΠΈ Π²ΡΠΎΡΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ AMD EPYC ΠΈ AMD Ryzen Threadripper, ΠΊΠ°ΠΊΡΠΎ ΠΈ AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper ΠΡΠΎΡΠ΅ΡΠΎΡΠΈ ΠΎΡ ΡΠ΅ΡΠΈΡΡΠ° PRO ΠΈ APU A. ΠΠ° Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ INT3 ΠΈΠ»ΠΈ LFENCE ΡΠ»Π΅Π΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° ΡΠ°Π·ΠΊΠ»ΠΎΠ½ΡΠ²Π°Π½Π΅ (RET, JMP, CALL).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru