TONTOU — Π°Ρ‚Π°ΠΊΠ° Π½Π° CPU Intel ΠΈ AMD, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ уязвимостСй Spectre v2

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ· массачусСтского тСхнологичСского института выявили Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ Π°Ρ‚Π°ΠΊΠΈ TONTOU (Time-of-Neutralization to Time-of-Use), ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΡƒΡŽ Π½ΠΎΠ²Ρ‹ΠΉ способ эксплуатации ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… уязвимостСй класса Spectre v2. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ содСрТимоС памяти ядра ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ эксплоита Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Код для блокирования эксплуатации уязвимости принят Π² состав ядра Linux 5 августа ΠΈ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π² состав выпусков 7.1.7, 6.18.43, 6.12.102, 6.6.149, 6.1.181, 5.15.214 ΠΈ 5.10.263.

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ продСмонстрирована Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ для опрСдСлСния Ρ…ΡΡˆΠ° пароля ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root, Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠ³ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ /etc/shadow ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² систСмС. Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· памяти ядра с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ 5.47 Π±Π°ΠΉΡ‚ Π² сСкунду ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ 91.97%. Из 10 тСстовых запусков эксплоита, Π² срСднСм ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π²ΡˆΠΈΡ…ΡΡ 18 ΠΌΠΈΠ½ΡƒΡ‚, Π² ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ случаСв ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² памяти Ρ„Π°ΠΉΠ»Π° /etc/shadow ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π΅Π³ΠΎ содСрТимоС.

Эксплоит продСмонстрирован Π½Π° систСмах с процСссорами AMD ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ с CPU AMD сСмСйств Zen 1-4. На систСмах Intel Π°Ρ‚Π°ΠΊΠ° Ρ‚Π°ΠΊΠΆΠ΅ осущСствима, Π½ΠΎ эксплуатация Π±ΠΎΠ»Π΅Π΅ слоТна. Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ пСрСполнСния стСка адрСсов Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈ блокирования уязвимости SRSO (Speculative Return Stack Overflow) Π² процСссорах AMD примСняСтся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Safe-RET, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Π±ΡƒΡ„Π΅Ρ€ прСдсказания ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ использования ΠΈ суТаСт ΠΎΠΊΠ½ΠΎ провСдСния Π°Ρ‚Π°ΠΊΠΈ Π΄ΠΎ 2 инструкций, выполняСмых нСсколько дСсятков наносСкунд.

Для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΎΠΊΠ½Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° замСдлСния CPU, позволившая ΡƒΡΠΏΠ΅Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ подстановку прСрывания Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ для пСрСнаправлСния ΠΏΠΎΡ‚ΠΎΠΊΠ° выполнСния Π² ядрС ΠΈ использования ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° прСрывания для искаТСния записи Π² Π±ΡƒΡ„Π΅Ρ€Π΅ прСдсказания ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ². Для эксплуатации уязвимости SRSO Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ условия, ΠΊΠΎΠ³Π΄Π° Π±Π»ΠΎΠΊ прСдсказания ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² спСкулятивно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ большоС число Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ прСдсказанных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² CALL, достаточноС для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ стСк адрСсов Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ прСдсказанныС Ρ‚ΠΎΡ‡ΠΊΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°, Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅ стСка. Π’ ΠΈΡ‚ΠΎΠ³Π΅, Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты стСка ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ пСрСзаписаны Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌ значСния, Ρ‡Ρ‚ΠΎ Π² дальнСйшСм ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ использованию этих Π·Π°ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ спСкулятивном Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ инструкции RET Π² контСкстС Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ процСсса.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚, Ρ‡Ρ‚ΠΎ прСдсказаниС вСтвлСния Π½Π΅ ΠΎΠΏΡ€Π°Π²Π΄Π°Π»ΠΎΡΡŒ ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² исходноС состояниС, Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π² процСссС спСкулятивного выполнСния Π΄Π°Π½Π½Ρ‹Π΅ осядут Π² кэшС ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… Π±ΡƒΡ„Π΅Ρ€Π°Ρ…. Если ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ осущСствляСт ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ памяти, Ρ‚ΠΎ Π΅Π³ΠΎ спСкулятивноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ осСданию Π² ΠΎΠ±Ρ‰Π΅ΠΌ кэшС ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… ΠΈΠ· памяти. Для извлСчСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· кэша ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов опрСдСлСния содСрТимого кэша Π½Π° основС Π°Π½Π°Π»ΠΈΠ·Π° измСнСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ доступа ΠΊ ΠΏΡ€ΠΎΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈ Π½Π΅ ΠΏΡ€ΠΎΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ.

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

ΠšΡƒΠΏΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ хостинг для сайтов с Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ DDoS, VPS VDS сСрвСры πŸ”₯ ΠšΡƒΠΏΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ хостинг для сайтов с Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ DDoS, VPS VDS сСрвСры | ProHoster