Retbleed Π΅ Π½ΠΎΠ²Π° Π°Ρ‚Π°ΠΊΠ° срСщу спСкулативния ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° изпълнСниС Π½Π° процСсоритС Π½Π° Intel ΠΈ AMD

Π“Ρ€ΡƒΠΏΠ° изслСдоватСли ΠΎΡ‚ ETH Π¦ΡŽΡ€ΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ…Π° Π½ΠΎΠ²Π° Π°Ρ‚Π°ΠΊΠ° срСщу ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° спСкулативно изпълнСниС Π½Π° косвСни скоковС Π² процСсора, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Ρ‚Π΅ информация ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° ядрото ΠΈΠ»ΠΈ Π΄Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ Π°Ρ‚Π°ΠΊΠ° срСщу хост систСмата ΠΎΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини. УязвимоститС бяха с ΠΊΠΎΠ΄ΠΎΠ²ΠΎ ΠΈΠΌΠ΅ Retbleed (CVE-2022-29900, CVE-2022-29901) ΠΈ са ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° Π½Π° Π°Ρ‚Π°ΠΊΠΈΡ‚Π΅ Spectre-v2. Π Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° сС свСТда Π΄ΠΎ организацията Π½Π° спСкулативното изпълнСниС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° инструкцията β€žretβ€œ (Π²Ρ€ΡŠΡ‰Π°Π½Π΅), която ΠΈΠ·Π²Π»ΠΈΡ‡Π° адрСса Π·Π° скок ΠΎΡ‚ стСка, вмСсто ΠΈΠ½Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ скачанС с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° инструкцията β€žjmpβ€œ, Π·Π°Ρ€Π΅ΠΆΠ΄Π°ΠΉΠΊΠΈ адрСса ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈΠ»ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π½Π° процСсора.

НападатСлят ΠΌΠΎΠΆΠ΅ Π΄Π° създадС условия Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΏΡ€Π΅Π΄Π²ΠΈΠΆΠ΄Π°Π½Π΅ Π½Π° скок ΠΈ Π΄Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π° цСлСнасочСн спСкулативСн скок към ΠΊΠΎΠ΄ΠΎΠ² Π±Π»ΠΎΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½ ΠΎΡ‚ Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π·Π° изпълнСниС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΏΡ€ΠΎΡ†Π΅ΡΠΎΡ€ΡŠΡ‚ Ρ‰Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ, Ρ‡Π΅ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π°Ρ‚Π° Π·Π° разклоняванС Π½Π΅ Π΅ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π° ΠΈ Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ опСрацията Π΄ΠΎ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎΡ‚ΠΎ ΠΉ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, Π½ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° спСкулативното изпълнСниС, Ρ‰Π΅ сС установят Π² кСша ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈΡ‚Π΅ Π±ΡƒΡ„Π΅Ρ€ΠΈ. Ако ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎ изпълнСн Π±Π»ΠΎΠΊ ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Ρ‚ΠΎΠ³Π°Π²Π° спСкулативното ΠΌΡƒ изпълнСниС Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ установяванС Π² общия кСш ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Π½ΠΈ ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.

Π—Π° Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΠΈΡ‚Π΅, останали Π² кСша слСд спСкулативното изпълнСниС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, атакуващият ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° опрСдСлянС Π½Π° ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· ΠΊΠ°Π½Π°Π»ΠΈ Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ във Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈ ΠΈ Π½Π΅ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Π—Π° цСлСнасочСно ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° информация ΠΎΡ‚ Π·ΠΎΠ½ΠΈ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° привилСгия (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° ядрото) сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ "Π΄ΠΆΠ°Π΄ΠΆΠΈ" - послСдоватСлности ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² ядрото, подходящи Π·Π° спСкулативно Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π² зависимост ΠΎΡ‚ външни условия, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ повлияни ΠΎΡ‚ Π½Π°ΠΏΠ°Π΄Π°Ρ‚Π΅Π».

Π—Π° Π·Π°Ρ‰ΠΈΡ‚Π° срСщу класичСскитС Π°Ρ‚Π°ΠΊΠΈ Π½Π° класа Spectre, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ условни ΠΈ ΠΈΠ½Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΈ инструкции Π·Π° разклоняванС, ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°Ρ‚Π° "retpoline", Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° замяна Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° косвСно разклоняванС с инструкцията "ret", Π·Π° която Π΅ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Π±Π»ΠΎΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° стСка ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² процСсори, Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π»ΠΎΠΊ Π·Π° прСдсказванС Π½Π° разклонСния. ΠŸΡ€ΠΈ Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° retpoline ΠΏΡ€Π΅Π· 2018 Π³. сС ΡΠΌΡΡ‚Π°ΡˆΠ΅, Ρ‡Π΅ адрСснитС ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° Spectre, Π½Π΅ са ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΈ Π·Π° спСкулативно разклоняванС с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° инструкцията β€žretβ€œ.

Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π° Π°Ρ‚Π°ΠΊΠ° Retbleed, дСмонстрираха Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° създаванС Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈ условия Π·Π° ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°Π½Π΅ Π½Π° спСкулативСн ΠΏΡ€Π΅Ρ…ΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° инструкцията β€žretβ€œ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ…Π° Π³ΠΎΡ‚ΠΎΠ² Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ инструмСнти Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° послСдоватСлности ΠΎΡ‚ инструкции (Π΄ΠΆΠ°Π΄ΠΆΠΈ), подходящи Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° уязвимостта Π² ядрото Π½Π° Linux, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС появяват Ρ‚Π°ΠΊΠΈΠ²Π° условия.

Π’ Ρ…ΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ бСшС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Сксплойт, ΠΊΠΎΠΉΡ‚ΠΎ позволява Π½Π° систСми с процСсори Π½Π° Intel ΠΎΡ‚ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ процСс Π² потрСбитСлското пространство Π΄Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° ядрото със скорост ΠΎΡ‚ 219 Π±Π°ΠΉΡ‚Π° Π² сСкунда ΠΈ 98% точност. ΠŸΡ€ΠΈ процСсоритС Π½Π° AMD СфСктивността Π½Π° Сксплойта Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-висока - скоростта Π½Π° ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π΅ 3.9 KB Π² сСкунда. ΠšΠ°Ρ‚ΠΎ практичСски ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ прСдлоТСния Сксплойт Π·Π° опрСдСлянС Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π° /etc/shadow. ΠŸΡ€ΠΈ систСми с процСсори Intel Π°Ρ‚Π°ΠΊΠ°Ρ‚Π° Π·Π° опрСдСлянС Π½Π° Ρ…Π΅ΡˆΠ° Π½Π° root ΠΏΠ°Ρ€ΠΎΠ»Π°Ρ‚Π° Π΅ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½Π° Π·Π° 28 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, Π° ΠΏΡ€ΠΈ систСми с процСсори AMD Π·Π° 6 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ.

Атаката бСшС ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Π½Π° Π·Π° 6-8 поколСния процСсори Π½Π° Intel, пуснати ΠΏΡ€Π΅Π΄ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΎΡ‚ΠΎ тримСсСчиС Π½Π° 3 Π³. (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Skylake), ΠΈ AMD процСсори, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ Zen 2019, Zen 1+ ΠΈ Zen 1, ΠΊΠΎΠΈΡ‚ΠΎ бяха пуснати ΠΏΡ€Π΅Π΄ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ тримСсСчиС Π½Π° 2 Π³. ΠŸΡ€ΠΈ ΠΏΠΎ-Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ процСсори, ΠΊΠ°Ρ‚ΠΎ AMD Zen2021 ΠΈ Intel Alder Lake, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ ARM процСсоритС, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ сС Π±Π»ΠΎΠΊΠΈΡ€Π° ΠΎΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ Π·Π°Ρ‰ΠΈΡ‚Π½ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ. НапримСр ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° инструкции Π·Π° IBRS (Indirect Branch Restricted Speculation) ΠΏΠΎΠΌΠ°Π³Π° Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° срСщу Π°Ρ‚Π°ΠΊΠ°.

ΠŸΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ Π΅ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π·Π° ядрото Π½Π° Linux ΠΈ Ρ…ΠΈΠΏΠ΅Ρ€Π²Π°ΠΉΠ·ΠΎΡ€Π° Xen, ΠΊΠΎΠΈΡ‚ΠΎ Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΎ Π½Π° ΠΏΠΎ-стари процСсори. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π°Ρ‚Π° корСкция Π·Π° ядрото Π½Π° Linux промСня 68 Ρ„Π°ΠΉΠ»Π°, добавя 1783 Ρ€Π΅Π΄Π° ΠΈ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° 387 Ρ€Π΅Π΄Π°. Π—Π° съТалСниС, Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ€Π΅ΠΆΠΈΠΉΠ½ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ - Π² тСкстовСтС, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ΠΈ Π²ΡŠΡ€Ρ…Ρƒ процСсори AMD ΠΈ Intel, Π²Π»ΠΎΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° производитСлността сС оцСнява ΠΎΡ‚ 14% Π΄ΠΎ 39%. По-ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π½ΠΎ Π΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π°Ρ‰ΠΈΡ‚Π°, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° IBRS инструкции, Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² Π½ΠΎΠ²ΠΈΡ‚Π΅ поколСния процСсори Π½Π° Intel ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ ΠΎΡ‚ ядрото Π½Π° Linux 4.19.

ΠŸΡ€ΠΈ процСсоритС Π½Π° Intel сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° замСстванС Π½Π° адрСс Π·Π° спСкулативСн ΠΈΠ½Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ ΠΊΠ»ΠΎΠ½ ΠΏΠΎΡ€Π°Π΄ΠΈ функция, която възниква, ΠΊΠΎΠ³Π°Ρ‚ΠΎ възникнС Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ Π² Π±ΡƒΡ„Π΅Ρ€Π° Π·Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° стСка. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° условия, инструкцията ret Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° адрСс, ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° Ρ‚Π°Π·ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΏΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΡ‚Π΅ ΠΈΠ½Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΈ скоковС. Π’ ядрото Π½Π° Linux са ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ хиляда мСста, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ условия Π·Π° ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Π°ΠΊΡŠΠ² ΠΎΠ±Ρ€Π°Ρ‚Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ са Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Ρ‡Ρ€Π΅Π· систСмни повиквания.

ΠŸΡ€ΠΈ AMD процСсоритС спСкулативното изпълнСниС Π½Π° инструкцията β€žretβ€œ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π±Π΅Π· ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠ° към спСцифичСн Π·Π° стСка Π±ΡƒΡ„Π΅Ρ€ (Return Address Stack), Π° Π±Π»ΠΎΠΊΡŠΡ‚ Π·Π° прСдсказванС Π½Π° разклонСния Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° инструкцията β€žretβ€œ Π½Π΅ ΠΊΠ°Ρ‚ΠΎ Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ», Π° ΠΊΠ°Ρ‚ΠΎ ΠΈΠ½Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ ΠΊΠ»ΠΎΠ½ ΠΈ, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€Π°Π½Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€Π° ΠΈΠ½Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΈ ΠΏΡ€Π΅Ρ…ΠΎΠ΄ΠΈ. ΠŸΡ€ΠΈ Ρ‚Π΅Π·ΠΈ условия ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° практичСски всяка опСрация "ret", която Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Ρ‡Ρ€Π΅Π· систСмно ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅.

ОсвСн Ρ‚ΠΎΠ²Π° процСсоритС Π½Π° AMD ΡΡŠΡ‰ΠΎ ΠΈΠΌΠ°Ρ‚ Π΄Ρ€ΡƒΠ³ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ (CVE-2022-23825, ΠΎΠ±ΡŠΡ€ΠΊΠ²Π°Π½Π΅ Π½Π° Ρ‚ΠΈΠΏΠ° Ρ€Π°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅), ΡΠ²ΡŠΡ€Π·Π°Π½ с внСдряванСто Π½Π° Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½ΠΈ разклонСния - условия Π·Π° прСдсказванС Π½Π° разклонСния ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ Π΄ΠΎΡ€ΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ инструкции Π·Π° разклоняванС, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° повлияСтС Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° Π·Π° прСдсказванС Π½Π° разклонСния Π±Π΅Π· инструкция "ret". Π’Π°Π·ΠΈ функция Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ услоТнява ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° ΠΈ изисква ΠΏΠΎ-Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ изчистванС Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° Π·Π° ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° разклонСнията. ДобавянСто Π½Π° пълна Π·Π°Ρ‰ΠΈΡ‚Π° към ядрото сС ΠΎΡ‡Π°ΠΊΠ²Π° Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ 209% ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π΅ΠΆΠΈΠΉΠ½ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€