Нов Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° Π°Ρ‚Π°ΠΊΠ° Π½Π° Foreshadow, засягащ процСсори Intel, AMD, ARM ΠΈ IBM

Π“Ρ€ΡƒΠΏΠ° изслСдоватСли ΠΎΡ‚ ВСхничСския унивСрситСт Π² Π“Ρ€Π°Ρ† (Австрия) ΠΈ Π¦Π΅Π½Ρ‚ΡŠΡ€Π° Π·Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Π° сигурност Π₯Π΅Π»ΠΌΡ…ΠΎΠ»Ρ† (CISPA), Ρ€Π°Π·ΠΊΡ€ΠΈ (PDF) Π½ΠΎΠ² Π²Π΅ΠΊΡ‚ΠΎΡ€ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°Ρ‚Π°ΠΊΠΈ ΠΎΡ‚ страничСн ΠΊΠ°Π½Π°Π» ΠŸΡ€Π΅Π΄Π²Π΅ΡΡ‚Π½ΠΈΠΊ (L1TF), ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Ρ‚Π΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° Π°Π½ΠΊΠ»Π°Π²ΠΈΡ‚Π΅ Intel SGX, SMM (Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° систСмата), областитС Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° ядрото Π½Π° ОБ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈΡ‚Π΅ машини Π² систСмитС Π·Π° виртуализация. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½Π°Ρ‚Π° Π°Ρ‚Π°ΠΊΠ°, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΠΏΡ€Π΅Π· 2018 Π³ ΠŸΡ€Π΅Π΄Π²Π΅ΡΡ‚Π½ΠΈΠΊ Новият Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π΅ Π΅ спСцифичСн Π·Π° процСсоритС Π½Π° Intel ΠΈ засяга процСсори ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΊΠ°Ρ‚ΠΎ ARM, IBM ΠΈ AMD. ОсвСн Ρ‚ΠΎΠ²Π° новият Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π΅ изисква висока производитСлност ΠΈ Π°Ρ‚Π°ΠΊΠ°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½Π° Π΄ΠΎΡ€ΠΈ Ρ‡Ρ€Π΅Π· стартиранС Π½Π° JavaScript ΠΈ WebAssembly Π² ΡƒΠ΅Π± Π±Ρ€Π°ΡƒΠ·ΡŠΡ€.

Атаката Foreshadow сС възползва ΠΎΡ‚ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π΅Π½ адрСс, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π½Π° страница Π³Ρ€Π΅ΡˆΠΊΠ°), ΠΏΡ€ΠΎΡ†Π΅ΡΠΎΡ€ΡŠΡ‚ спСкулативно изчислява физичСския адрСс ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, Π°ΠΊΠΎ са Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² L1 кСша. БпСкулативният Π΄ΠΎΡΡ‚ΡŠΠΏ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΏΡ€Π΅Π΄ΠΈ Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π½Π° страницитС Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ нСзависимо ΠΎΡ‚ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° записа Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π½Π° страницитС Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° (PTE), Ρ‚.Π΅. ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ във физичСската ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ тяхната чСтимост. Π‘Π»Π΅Π΄ Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° наличността Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΏΡ€ΠΈ липса Π½Π° Ρ„Π»Π°Π³Π° Present Π² PTE, опСрацията сС ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Ρ, Π½ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ остават Π² кСша ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° опрСдСлянС Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° кСша ΠΏΡ€Π΅Π· странични ΠΊΠ°Π½Π°Π»ΠΈ (Ρ‡Ρ€Π΅Π· Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ във Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ към ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈ ΠΈ Π½Π΅ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ).

Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ са ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° срСщу Foreshadow са Π½Π΅Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΈ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½Π° интСрпрСтация Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Уязвимост
Foreshadow ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° нСзависимо ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈΡ‚Π΅ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° ядрото, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ са Π±ΠΈΠ»ΠΈ считани Π·Π° Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° изслСдоватСлитС дСмонстрираха Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Foreshadow Π°Ρ‚Π°ΠΊΠ° Π½Π° систСми със сравнитСлно стари ядра, Π² ΠΊΠΎΠΈΡ‚ΠΎ са Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ всички Π½Π°Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠΈ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° Foreshadow, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ с Π½ΠΎΠ²ΠΈ ядра, Π² ΠΊΠΎΠΈΡ‚ΠΎ Π΅ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° само Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° Spectre-v2 (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ опцията Π½Π° ядрото Π½Π° Linux nospectre_v2).

УстановСно Π΅, Ρ‡Π΅ Π΅Ρ„Π΅ΠΊΡ‚ Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π΅ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ с инструкции Π·Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° софтуСр ΠΈΠ»ΠΈ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π΅Π½ Π΅Ρ„Π΅ΠΊΡ‚
ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π½ΠΎ сС случва, ΠΊΠΎΠ³Π°Ρ‚ΠΎ спСкулативнитС Π΄Π΅Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Π½Π° потрСбитСлско пространство сС рСгистрират Π² ядрото. Π’ΠΎΠ²Π° ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎ Ρ‚ΡŠΠ»ΠΊΡƒΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° уязвимостта ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Ρ‡Π΅ ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ във Foreshadow ΠΌΠΎΠΆΠ΅ Π΄Π° възникнС само ΠΏΡ€Π΅Π· L1 кСша, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈ (приспособлСния Π·Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅) Π² ядрото ΠΌΠΎΠΆΠ΅ Π΄Π° допринСсС Π·Π° ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ извън L1 кСша, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² L3 кСш.

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π°Ρ‚Π° функция ΡΡŠΡ‰ΠΎ отваря Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° създаванС Π½Π° Π½ΠΎΠ²ΠΈ Π°Ρ‚Π°ΠΊΠΈ, насочСни към процСситС Π½Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ адрСси във физичСски Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ срСди ΠΈ опрСдСлянС Π½Π° адрСси ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½ΠΈ Π² рСгистритС Π½Π° процСсора. ΠšΠ°Ρ‚ΠΎ дСмонстрация, изслСдоватСлитС ΠΏΠΎΠΊΠ°Π·Π°Ρ…Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° идСнтифицирания Π΅Ρ„Π΅ΠΊΡ‚ Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ процСс Π² Π΄Ρ€ΡƒΠ³ с производитСлност ΠΎΡ‚ ΠΎΠΊΠΎΠ»ΠΎ 10 Π±ΠΈΡ‚Π° Π² сСкунда Π½Π° систСма с процСсор Intel Core i7-6500U. Показана Π΅ ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ ΠΎΡ‚ Π°Π½ΠΊΠ»Π°Π²Π° Intel SGX (ΠΎΡ‚Π½Π΅ 32 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, Π·Π° Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ 64-Π±ΠΈΡ‚ΠΎΠ²Π° стойност, записана Π² 15-Π±ΠΈΡ‚ΠΎΠ² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€). Някои Π²ΠΈΠ΄ΠΎΠ²Π΅ Π°Ρ‚Π°ΠΊΠΈ сС ΠΎΠΊΠ°Π·Π°Ρ…Π° възмоТни Π·Π° изпълнСниС Π² JavaScript ΠΈ WebAssembly, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ бСшС възмоТно Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ физичСският адрСс Π½Π° JavaScript ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΈ Π΄Π° сС ΠΏΠΎΠΏΡŠΠ»Π½ΡΡ‚ 64-Π±ΠΈΡ‚ΠΎΠ²ΠΈΡ‚Π΅ рСгистри със стойност, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½Π° ΠΎΡ‚ атакуващия.

Π—Π° Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚Π΅ Π°Ρ‚Π°ΠΊΠ°Ρ‚Π° Π½Π° Foreshadow ΠΏΡ€Π΅Π· L3 кСша, ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Spectre-BTB (Branch Target Buffer), Π²Π½Π΅Π΄Ρ€Π΅Π½ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π½Π° retpoline, Π΅ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ изслСдоватСлитС смятат, Ρ‡Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС остави retpoline Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ Π΄ΠΎΡ€ΠΈ Π½Π° систСми с Π½ΠΎΠ²ΠΈ процСсори, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚ Π·Π°Ρ‰ΠΈΡ‚Π° срСщу извСстни уязвимости Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° спСкулативно изпълнСниС Π½Π° процСсора. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ прСдставитСли Π½Π° Intel заявиха, Ρ‡Π΅ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚ Π΄Π° добавят Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΌΠ΅Ρ€ΠΊΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° срСщу Foreshadow към процСсоритС ΠΈ считат Π·Π° Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ Π·Π°Ρ‰ΠΈΡ‚Π° срСщу Π°Ρ‚Π°ΠΊΠΈ Spectre V2 ΠΈ L1TF (Foreshadow).

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

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