Π”Π²Π΅ Π°Ρ‚Π°ΠΊΠΈ срСщу ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° прСдсказванС Π½Π° кСш ΠΊΠ°Π½Π°Π»Π° Π² процСсоритС Π½Π° AMD

Π“Ρ€ΡƒΠΏΠ° изслСдоватСли ΠΎΡ‚ ВСхничСския унивСрситСт Π² Π“Ρ€Π°Ρ† (Австрия), извСстни ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Π°Ρ‚Π°ΠΊΠ° MDS, NetSpectre, Π₯Π²ΡŠΡ€Ρ‡Π°Ρ‰ Ρ‡ΡƒΠΊ ΠΈ ZombieLoad, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Π½Π΅ Π½Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, спСцифични Π·Π° AMD процСсори ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈ Π΄Π²Π° Π½ΠΎΠ²ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π° странични ΠΊΠ°Π½Π°Π»Π½ΠΈ Π°Ρ‚Π°ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Ρ‚ ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° прСдсказванС Π½Π° LXNUMX кСш ΠΊΠ°Π½Π°Π»Π° Π½Π° AMD процСсоритС. Π’Π΅Ρ…Π½ΠΈΠΊΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° намаляванС Π½Π° СфСктивността Π½Π° ASLR Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π°, Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π² уязвими AES Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ повишаванС Π½Π° СфСктивността Π½Π° Π°Ρ‚Π°ΠΊΠ°Ρ‚Π° Spectre.

Бяха ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ внСдряванСто Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° прСдсказванС Π½Π° ΠΊΠ°Π½Π°Π»Π° (way predictor) Π² кСша Π·Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΎ Π½ΠΈΠ²ΠΎ (L1D) Π½Π° процСсора, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° прСдсказванС ΠΊΠΎΠΉ кСш ΠΊΠ°Π½Π°Π» ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ адрСс Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡΡ‚Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π² процСсоритС Π½Π° AMD, сС основава Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΞΌ-Ρ‚Π°Π³ΠΎΠ²Π΅ (ΞΌTag). ΞΌTag сС изчислява Ρ‡Ρ€Π΅Π· ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° спСцифична Ρ…Π΅Ρˆ функция към виртуалния адрСс. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ Π·Π° прСдсказванС Π½Π° ΠΊΠ°Π½Π°Π»Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΞΌTag, Π·Π° Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ ΠΊΠ°Π½Π°Π»Π° Π½Π° кСша ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ ΞΌTag позволява Π½Π° процСсора Π΄Π° сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈ Π΄ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏ само Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΊΠ°Π½Π°Π», Π±Π΅Π· Π΄Π° Ρ‚ΡŠΡ€ΡΠΈ във всички ΠΎΠΏΡ†ΠΈΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ намалява консумацията Π½Π° СнСргия Π½Π° процСсора.

Π”Π²Π΅ Π°Ρ‚Π°ΠΊΠΈ срСщу ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° прСдсказванС Π½Π° кСш ΠΊΠ°Π½Π°Π»Π° Π² процСсоритС Π½Π° AMD

По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΡ‚ΠΎ инТСнСрство Π½Π° внСдряванСто Π½Π° систСмата Π·Π° прСдсказванС Π½Π° ΠΊΠ°Π½Π°Π»ΠΈ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ поколСния процСсори Π½Π° AMD, пуснати ΠΎΡ‚ 2011 Π³. Π΄ΠΎ 2019 Π³., бяха ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ Π΄Π²Π΅ Π½ΠΎΠ²ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π° Π°Ρ‚Π°ΠΊΠ° Π½Π° страничСн ΠΊΠ°Π½Π°Π»:

  • Collide+Probe - позволява Π½Π° Π°Ρ‚Π°ΠΊΡƒΠ²Π°Ρ‰ Π΄Π° прослСди Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π·Π° процСси, изпълнявани Π½Π° Π΅Π΄Π½ΠΎ ΠΈ ΡΡŠΡ‰ΠΎ логичСско процСсорно ядро. Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ адрСси, ΠΊΠΎΠΈΡ‚ΠΎ причиняват ΡΠ±Π»ΡŠΡΡŠΡ†ΠΈ Π² Ρ…Π΅Ρˆ функцията, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° изчисляванС Π½Π° ΞΌTag Π·Π° прослСдяванС Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Π°Ρ‚Π°ΠΊΠΈΡ‚Π΅ Flush+Reload ΠΈ Prime+Probe, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΏΡ€ΠΈ процСсоритС Π½Π° Intel, Collide+Probe Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сподСлСна ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π΅Π· ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° физичСски адрСси.
  • Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅+ΠŸΡ€Π΅Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ - позволява Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ слСдитС Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° Π΅Π΄Π½ΠΎ ΠΈ ΡΡŠΡ‰ΠΎ физичСско ядро ​​на процСсора. ΠœΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ сС основава Π½Π° Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ ΠΊΠ»Π΅Ρ‚ΠΊΠ° с физичСска ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π² L1D кСша само вСднъТ. Π’Π΅Π·ΠΈ. Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° ΠΊΠ»Π΅Ρ‚ΠΊΠ° ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π΅Π½ адрСс Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΈΠ·Π²Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ»Π΅Ρ‚ΠΊΠ°Ρ‚Π° ΠΎΡ‚ L1D кСша, позволявайки прослСдяванС Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π°Ρ‚Π°ΠΊΠ°Ρ‚Π° Ρ€Π°Π·Ρ‡ΠΈΡ‚Π° Π½Π° сподСлСна ΠΏΠ°ΠΌΠ΅Ρ‚, тя Π½Π΅ изчиства Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° кСша, позволявайки стСлт Π°Ρ‚Π°ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ изчистват Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ кСша Π½Π° послСдното Π½ΠΈΠ²ΠΎ.

Π’ΡŠΠ· основа Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈΡ‚Π΅ Collide+Probe ΠΈ Load+Reload, изслСдоватСлитС са дСмонстрирали няколко сцСнария Π·Π° Π°Ρ‚Π°ΠΊΠ° Π½Π° страничСн ΠΊΠ°Π½Π°Π»:

  • Показана Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° скрит ΠΈΠ½Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π΅Π½ ΠΊΠ°Π½Π°Π» ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²Π° процСса, позволяващ трансфСр Π½Π° Π΄Π°Π½Π½ΠΈ със скорост Π΄ΠΎ 588 kB Π² сСкунда.
  • Използвайки ΡΠ±Π»ΡŠΡΡŠΡ†ΠΈ Π² ΞΌTag, бСшС възмоТно Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Снтропията Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ Π½Π° ASLR (ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ Π½Π° адрСсно пространство) ΠΈ Π΄Π° сС Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ ASLR Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° Π² ядрото Π½Π° напълно Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Linux систСма. Показана Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π°Ρ‚Π°ΠΊΠ° Π·Π° намаляванС Π½Π° Снтропията Π½Π° ASLR ΠΊΠ°ΠΊΡ‚ΠΎ ΠΎΡ‚ потрСбитСлски прилоТСния, Ρ‚Π°ΠΊΠ° ΠΈ Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° JavaScript ΠΊΠΎΠ΄, изпълняван Π² срСда Π½Π° ΠΏΡΡΡŠΡ‡Π½ΠΈΠΊ, ΠΈ ΠΊΠΎΠ΄, изпълняван Π² Π΄Ρ€ΡƒΠ³Π° гост срСда.

    Π”Π²Π΅ Π°Ρ‚Π°ΠΊΠΈ срСщу ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° прСдсказванС Π½Π° кСш ΠΊΠ°Π½Π°Π»Π° Π² процСсоритС Π½Π° AMD

  • Π’ΡŠΠ· основа Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Collide+Probe бСшС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π°Ρ‚Π°ΠΊΠ° Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡Π° Π·Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ уязвима рСализация (Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Π’-ΠΎΠ±Ρ€Π°Π·Π½Π° маса) AES ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅.
  • Използвайки ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Collide+Probe ΠΊΠ°Ρ‚ΠΎ ΠΊΠ°Π½Π°Π» Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π°Ρ‚Π°ΠΊΠ°Ρ‚Π° Spectre успя Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅ частни Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ ядрото, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сподСлСна ΠΏΠ°ΠΌΠ΅Ρ‚.

Уязвимостта възниква ΠΏΡ€ΠΈ процСсори AMD, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ
Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ ΠΈ Zen2.
AMD бСшС ΡƒΠ²Π΅Π΄ΠΎΠΌΠ΅Π½ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° 23 август 2019 Π³., Π½ΠΎ досСга Π½Π΅ пусна Π΄ΠΎΠΊΠ»Π°Π΄Π° с информация Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° уязвимостта. Π‘ΠΏΠΎΡ€Π΅Π΄ изслСдоватСлитС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ Π½Π° Π½ΠΈΠ²ΠΎ актуализация Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄ Ρ‡Ρ€Π΅Π· прСдоставянС Π½Π° MSR Π±ΠΈΡ‚ΠΎΠ²Π΅ Π·Π° сСлСктивно Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° систСмата Π·Π° прСдсказванС Π½Π° ΠΊΠ°Π½Π°Π»Π°, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Intel Π½Π°ΠΏΡ€Π°Π²ΠΈ, Π·Π° Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈΡ‚Π΅ Π·Π° прСдсказванС Π½Π° разклонСния.

Π”Π²Π΅ Π°Ρ‚Π°ΠΊΠΈ срСщу ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° прСдсказванС Π½Π° кСш ΠΊΠ°Π½Π°Π»Π° Π² процСсоритС Π½Π° AMD

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

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