Уязвимостта в eBPF позволява байпас защита срещу Spectre атаки

Вчера публикувахме тук в блога новините за Aya, библиотека за създаване на eBPF драйвери в Rust и е, че целта на това е да се създадат по-сигурни драйвери или Просимо проект за осигуряване на памет на ядрото на Linux с Rust (два страхотни проекта, които ще дадат много за разговор през следващите месеци).

И за кратко време се съобщава за различни уязвимости в който възползвайте се от грешки в eBPF и че това е проблем, при който разработчиците на ядрото не са спрели да работят и може би Rust е решението.

Причината за засягане на тази тема е тази наскоро бе публикувана новината, че те са се идентифицирали "Друга" уязвимост в ядрото на Linux (CVE-2021 33624-) за байпас защита срещу уязвимости от клас Spectre, тъй като това позволява да се използва подсистемата eBPF, за да може да се определя съдържанието на паметта в резултат на създаването на условия за спекулации с изпълнението на определени операции.

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

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

В засегнатите системи непривилегирована програма BPF може да използва тази уязвимост, за да филтрира съдържанието на произволна памет на ядрото (и следователно цялата физическа памет) през страничен канал.

Например когато анализира операцията "зареждане", проверяващият приема, че инструкцията използва регистър с адрес, чиято стойност винаги е в определените граници, но нападателят може да създаде условия под който процесорът ще се опита спекулативно да извърши сделка с адрес, който не отговаря на условията за проверка.

Атаката на Призрака изисква наличието на специфичен скрипт в привилегирования код, което води до спекулативно изпълнение на инструкции. Чрез манипулиране на BPF програмите, които се предават за изпълнение, е възможно да се генерират такива инструкции в eBPF и да се филтрира съдържанието на паметта на ядрото и произволни области на физическата памет през странични канали.

Освен това, можете да отбележите бележка за въздействието върху производителността на активите за защита срещу Spectre клас уязвимости.

Тази бележка обобщава резултатите rr (Record and Replay) оптимизация за отстраняване на грешки, веднъж създадена от Mozilla за отстраняване на грешки, които се повтарят трудно във Firefox. Кеширането на системните повиквания, използвани за проверка на съществуването на директории, намалява операцията "rr източници" за тестовия проект от 3 минути 19 секунди на 36 секунди.

Авторът на оптимизацията реши да провери колко ще се промени производителност след деактивиране на защитата на Spectre. След стартиране на системата с параметър «смекчавания = изключен», времето за изпълнение на «rr източници» без оптимизация беше 2 минути 5 секунди (1.6 пъти по-бързо) и с оптимизация 33 секунди (9% по-бързо).

Любопитно е, деактивирането на защитата на Spectre не само намалява времето за изпълнение на кода на ниво ядро ​​за 1.4 пъти (от 2 минути 9 секунди до 1 минута 32 секунди), той също намаля наполовина времето за изпълнение в потребителското пространство (от 1 min 9s до 33s), вероятно поради намаляване на ефективността Кешът на процесора и TLB се нулират, когато е активирана защитата Spectre.

Проблемът се появи след пускането на ядрото 4.15 и е фиксиран под формата на кръпки, които в момента все още не достигат до всички дистрибуции, така че се препоръчва на потребителите тези дни да правят съответните актуализации веднага щом получат известията.

Si искате да знаете повече за това, можете да проверите подробностите В следващия линк.


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

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

*

*

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