Откриха още една хардуерна уязвимост в процесорите на Intel

Открит е нов начин за хакване чрез страничен канал, който засяга няколко поколения процесори на Intel. Тази техника за атакуване дава възможност за извличане на всякаква чувствителна информация чрез регистъра EFLAGS и анализа на времето на изпълнение на някои инструкции. Всъщност тя е производна на уязвимостта Meltdown, която бе открита през 2018 г. и засяга множество x86-базирани микропроцесори, като по-късно бяха открити и редица други уязвимости от този тип.

Според изследователи от Университета Цинхуа и Университета на Мериленд новият метод за хакване използва уязвимост във времевото изпълнение, която позволява извличането на секретни данни от паметта на потребителското пространство чрез времеви анализ.

Изследователите допълват, че проблемът се дължи на недостатък при промяната на регистъра EFLAGS при преходно изпълнение, което влияе на времето за изпълнение на инструкциите JCC (Jump if Condition Is Met). Регистърът EFLAGS е регистър на процесора, който съдържа различните флагове, свързани със състоянието на процесора, а инструкцията JCC е инструкция на процесора, която осъществява условен преход въз основа на съдържанието на регистъра EFLAGS. Атаката се извършва на два етапа: първият е да се задейства времево изпълнение и кодиране на секретните данни чрез регистъра EFLAGS, а вторият – измерване на времето за изпълнение на инструкцията JCC, за да могат да се декодират данните.

Проведените експерименти показаха, че атаката от този тип е изключително опасна – извличат се 100% от данните при компютри, базирани на Intel Core i7-6700 и Intel Core i7-7700. Малко по-малък е процентът на успешно осъществяване на тази атака при процесора Intel Core i9-10980XE.

Тестовете са направени на компютър под управлението на Linux дистрибуцията Ubuntu 22.04 jammy с ядрото Linux 5.15.0. Не са създавани експлойти за Windows, но това е хардуерна уязвимост, която не зависи от операционната система. Експертите подчертават, че осъществяването на тази атака е по-трудно в сравнение с атаката чрез страничен канал, в която се използва състоянието на кеша, понеже при най-новите процесори на Intel се налага зацикляне от по около 1000 пъти. Но тя е обезпокоително ефективна със своите 100% извличане на чувствителна информация – данните за онлайн банкиране, потребителски имена, пароли и т.н.

Интересно е, че специалистите не знаят как протича самият процес на тази атака – те просто са забелязали поведението на процесите на Intel и са създали съответните експлойти. Предполага се, че в модула за изпълнение на инструкциите в процесорите на Intel има специален допълнителен буфер, който има нужда от допълнително време за връщане в начално състояние, ако се налага внезапно прекратяване изпълнението на потока от инструкции за осъществяването на условен преход.

По-долу е даден опростеният алгоритъм на експлойта. Естествено, някои неща не са указани съвсем точно, а други се премълчават, но идеята е ясна.

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