SWAPGS нова спекулативна уязвимост при изпълнение

SWAPGS-експлойт-2

Лос Изследователите на Bitdefender установиха нова уязвимост в механизма за спекулативно изпълнение на инструкции в съвременните процесори, които са получили името SWAPGS, Съответстващо на името на инструкцията на процесора, причиняваща проблема.

Уязвимост позволява на непривилегирован атакуващ да определя съдържанието на областите на паметта на ядрото или работещи виртуални машини. Проблемът е потвърден на процесори Intel (x86_64) и засяга частично процесори AMD, за които основният вектор на атака не се появява.

По-рано внедрените Spectre и Meltdown методи за уязвимост не предпазват от SWAPGS атаки с помощта на процесори Intel, но вече са предложени решения за Linux, ChromeOS, Android и Windows.

Уязвимостта принадлежи към класа Spectre v1 и се основава на идеята за извличане на данни от кеша на процесора, който остава след спекулативното изпълнение на инструкциите.

Блоковете за прогнозиране на преобразуване на съвременните процесори използват проактивното изпълнение на някои инструкции, които са по-склонни да бъдат изпълнени, за подобряване на производителността, но без да се чака изчисляването на всички фактори, които определят тяхното изпълнение (например, когато условията за преход на инструкциите или параметрите за достъп все още не са изчислени).

Ако прогнозата не бъде потвърдена, процесорът изхвърля резултата от спекулативното изпълнение, но данните, обработени по време на изпълнението, се кешират от процесора и могат да бъдат възстановени с помощта на методи за определяне на съдържанието на кеша в каналите. Трети страни, които анализират промяна във времето за достъп до кеширани и некеширани данни.

Относно SWAPGS

Особеността на новата атака е използването на теч, който възниква по време на спекулативното изпълнение на инструкцията SWAPGS, което се използва в операционните системи за замяна на стойността на регистъра на GS, когато управлението се прехвърля от потребителско пространство към ядрото на операционната система (стойността на GS, използвана в потребителското пространство, се заменя със стойността, използвана при операции на ядрото).

Ядрото на Linux в GS съхранява указател per_cpu, който се използва за достъп до данните на ядрото, и сочи към TLS (Thread Local Storage) в потребителското пространство.

За да се изключи двойното извикване на инструкцията SWAPGS след многократен достъп до ядрото от пространството на ядрото или при изпълнение на код, който не изисква подмяна на GS регистър, преди инструкцията се извършва проверка и условен преход.

Механизмът за спекулативно изпълнение предшества изпълнението на кода с инструкцията SWAPGS, без да се чака резултатът от проверката и ако избраният клон не бъде потвърден, той отхвърля резултата.

Следователно, може да възникне ситуация, когато клон, указващ изпълнението на SWAPGS, е спекулативно избран, но по време на спекулативно изпълнение стойността на GS регистъра ще бъде променена от инструкцията SWAPGS и ще се използва в операции, зависими от паметта, които се кешират от процесора.

Изследователите предложиха два сценария на атака за които са подготвени експлойт прототипи.

  • Първият сценарий се основава на ситуацията, при която инструкцията SWAPGS не се изпълнява спекулативно, въпреки че се използва при действително изпълнение, а вторият сценарий е обратната, когато инструкцията SWAPGS се изпълнява спекулативно, въпреки че всъщност не би трябвало.
  • За всеки сценарий има две оперативни опции: нападателят може да определи стойността на определен адрес в зоната на ядрото, а нападателят може да търси конкретна стойност на произволни адреси в ядрото.

Решението изисква инсталиране на актуализация на ядрото както на хост, така и на гост среди, последвано от рестартиране на системата. За да деактивирате защитата в Linux, можете да използвате опцията "nospectre_v1", която също деактивира мерките за блокиране на уязвимостта SWAPGS.

Решението се предлага като кръпка за ядрото на Linux, който вече е включен във версии 4.19.65, 5.2.7, 4.14.137, 4.9.188 и 4.4.188, докато за различните дистрибуции на Linux съответните корекции ще пристигнат през периода на тази и следващата седмица.


Съдържанието на статията се придържа към нашите принципи на редакторска етика. За да съобщите за грешка, щракнете върху тук.

Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван.

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.