ΠΠ΅ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux (CVE-2021-33624), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° eBPF Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠ½Π΅ Π½Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠ»Π°Ρ Spectre, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ°Π²ΡΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡ Π·Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡΠ°ΠΊΠ°ΡΠ° Spectre ΠΈΠ·ΠΈΡΠΊΠ²Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. Π§ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² eBPF ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠ΅ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΠΏΡΠ΅Π· ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅Π½Π° ΠΎΡ ΠΏΡΠΎΠΏΡΡΠΊΠΈ Π² Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π² BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅. ΠΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡΡ ΠΈΠ·Π±ΡΠΎΡΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈΡΠ΅ ΠΏΡΡΠΈΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ° ΠΎΠΏΡΠΈΠΈΡΠ΅ Π·Π° ΡΠ°Π·ΠΊΠ»ΠΎΠ½ΡΠ²Π°Π½Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΈ ΠΎΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ°ΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Π½Π°Π±ΠΎΡΠ° ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΡΠ°ΠΊΠΈΠ²Π° ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΠ°Π·ΠΊΠ»ΠΎΠ½ΡΠ²Π°Π½Π΅, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° Π²Π·Π΅ΡΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΎΡ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½ΠΈ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ Π² ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° βΠ·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅β, Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡΡ ΠΎΡΠ°ΠΊΠ²Π°, ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅Π³ΠΈΡΡΡΡ Ρ Π°Π΄ΡΠ΅Ρ, ΡΠΈΡΡΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π² ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡΠ΅ Π³ΡΠ°Π½ΠΈΡΠΈ, Π½ΠΎ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ ΡΠ΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Ρ Π°Π΄ΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°.
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° ΡΠ»Π΅Π΄ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΄ΡΠΎΡΠΎ 4.15 ΠΈ Π΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΏΠ°ΡΠΎΠ²Π΅ (1, 2, 3, 4). Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡΡΠ°Π²Π° Π½Π΅ΠΎΡΡΡΡΠ°Π½Π΅Π½Π° Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π±Π΅Π»Π΅ΠΆΠΊΠ°ΡΠ° ΠΎΡΠ½ΠΎΡΠ½ΠΎ Π²ΡΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Π²ΡΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π½Π° Spectre. ΠΠ΅Π»Π΅ΠΆΠΊΠ°ΡΠ° ΠΎΠ±ΠΎΠ±ΡΠ°Π²Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° Π΄Π΅Π±ΡΠ³Π΅ΡΠ° rr (Record and Replay), ΠΊΠΎΠΉΡΠΎ Π½ΡΠΊΠΎΠ³Π° Π΅ Π±ΠΈΠ» ΡΡΠ·Π΄Π°Π΄Π΅Π½ Π² Mozilla Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠ΄Π½ΠΈ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ Π³ΡΠ΅ΡΠΊΠΈ Π²ΡΠ² Firefox. ΠΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π½Π°ΠΌΠ°Π»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° "rr ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ" Π·Π° ΡΠ΅ΡΡΠΎΠ²ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΡ 3 ΠΌΠΈΠ½ΡΡΠΈ 19 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π½Π° 36 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ.
ΠΠ²ΡΠΎΡΡΡ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° ΡΠ΅ΡΠΈ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΠ»Π΅Π΄ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠΈΡΠ°ΡΠ° Π½Π° Spectre. Π‘Π»Π΅Π΄ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° βmitigs=offβ, Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° βrr sourcesβ Π±Π΅Π· ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π±Π΅ΡΠ΅ 2 ΠΌΠΈΠ½ΡΡΠΈ 5 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ (1.6 ΠΏΡΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ), Π° Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π±Π΅ΡΠ΅ 33 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ (9% ΠΏΠΎ-Π±ΡΡΠ·ΠΎ). ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΡΠΎ Π΅, ΡΠ΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π·Π°ΡΠΈΡΠ°ΡΠ° Π½Π° Spectre Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π°ΠΌΠ°Π»ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ ββΡ 1.4 ΠΏΡΡΠΈ (ΠΎΡ 2m9s Π½Π° 1m32s), Π½ΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π½Π°ΠΌΠ°Π»ΠΈ Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ (ΠΎΡ 1m9s Π½Π° 0m33s), Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π°ΠΌΠ°Π»Π΅Π½Π°ΡΠ° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΊΠ΅ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΈ TLB Π½ΡΠ»ΠΈΡΠ° ΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°ΡΠΈΡΠ°ΡΠ° Π½Π° Spectre Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru