Уразливість в eBPF дозволяє захистити від обстрілу привидами

Вчора ми опублікували тут у своєму блозі новини про Aya, бібліотека для створення драйверів eBPF в Rust і полягає в тому, що метою цього є створення більш безпечних драйверів або Проект Prossimo для забезпечення пам’яті ядра Linux із Rust (два чудові проекти, про які можна буде багато поговорити у наступні місяці).

І це за короткий час з’явилися різні вразливості в якій скористатися помилками в eBPF і що це проблема, в якій розробники ядра не перестали працювати, і можливо Rust є рішенням.

Причина торкання цієї теми полягає в тому нещодавно була опублікована новина, яку вони встановили "Інша" вразливість у ядрі Linux (CVE-2021-33624) для обхід захисту від вразливостей класу Spectre, оскільки це дозволяє використовувати підсистему eBPF, щоб мати можливість визначати вміст пам'яті в результаті створення умов для спекуляцій на виконанні певних операцій.

Згадується, що вразливість це спричинено помилками у верифікаторі, який використовується для виявлення помилок та недійсної активності у програмах BPF. Верифікатор перераховує можливі шляхи виконання коду, але ігнорує будь-які параметри розгалуження, які не є дійсними з точки зору семантики архітектури набору команд.

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

У уражених системах непривілейована програма BPF може використовувати цю вразливість для фільтрації вмісту довільної пам'яті ядра (і, отже, всієї фізичної пам'яті) через бічний канал.

Наприклад, під час аналізу операції "завантаження" перевіряючий припускає, що в інструкції використовується регістр з адресою, значення якої завжди знаходиться в зазначених межах, але зловмисник може створити умови під яким процесор буде спекулятивно намагатися здійснити торгівлю з адресою, яка не відповідає умовам перевірки.

Атака Привид вимагає наявності певного сценарію в привілейованому коді, що призводить до спекулятивного виконання інструкцій. Маніпулюючи програмами BPF, які передаються для виконання, можна генерувати такі інструкції в eBPF та фільтрувати вміст пам'яті ядра та довільні області фізичної пам'яті через бічні канали.

Крім того, Ви можете позначити примітку про вплив на продуктивність активів для захисту від класу вразливостей Spectre.

Ця примітка підсумовує результати Оптимізація налагоджувача rr (Record and Replay), колись створена Mozilla для налагодження важко повторюваних помилок у Firefox. Кешування системних викликів, що використовуються для перевірки існування каталогів, зменшило роботу "rr sources" для тестового проекту з 3 хвилин 19 секунд до 36 секунд.

Автор оптимізації вирішив перевірити скільки зміниться продуктивність після відключення захисту Spectre. Після завантаження системи з параметром «пом'якшення = вимкнено» час виконання «rr джерел» без оптимізації становив 2 хвилини 5 секунд (в 1.6 рази швидше) та з оптимізацією 33 секунди (швидше на 9%).

Цікаво, відключення захисту Spectre не тільки зменшило час роботи коду рівня ядра в 1.4 рази (від 2 хв 9 с до 1 хв 32 с), це також зменшило вдвічі час виконання в просторі користувача (від 1 хв. 9 с. до 33 с.), імовірно, через зменшення ефективності кеш-пам'яті ЦП та TLB скидаються, коли ввімкнено захист Spectre.

Проблема з'явилася після випуску ядра 4.15 та було виправлено у вигляді латок, які на даний момент все ще не потрапляють до всіх дистрибутивів, тому рекомендується користувачам, що в ці дні вони роблять відповідні оновлення, як тільки вони отримують повідомлення.

Si ви хочете дізнатися більше про це, Ви можете перевірити деталі У наступному посиланні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.