Знайдено вразливість у підсистемі tty ядра Linux

Випустили дослідники з команди Google Project Zero нещодавно через допис у блозі новий метод використання вразливостей (CVE-2020-29661) у реалізації обробника ioctl TIOCSPGRP Підсистема ядра Linux tty, а також детальні механізми захисту, які можуть заблокувати ці вразливості.

У пості згадується, що проблема викликана помилкою в налаштуваннях блокування, що призвело до стану гонки в коді /tty/tty_jobctrl.c, який використовувався для створення умов для доступу до пам'яті після запуску (використання-після-вільне), використовуваного простором користувача за допомогою маніпуляції з ioct- за допомогою виклику TIOCSPGRP.

Крім опублікованої інформації, також була виконана демонстрація функціонального експлойту для підвищення привілеїв в Debian 10 з ядром 4.19.0-13-amd64 і що також не виключає, що це може вплинути на різні дистрибутиви, серед яких, звісно, ​​є ті, що базуються на Debian і походять від нього.

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

Фрагменти коду в цій публікації в блозі, які мають відношення до експлойту, взяті з попередньої версії 4.19.160, оскільки на ній базується цільове ядро ​​Debian; деякі інші фрагменти коду з основної лінії Linux.

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

Висновок невтішний, оскільки зазначається, що такі методи, як сегментація пам’яті в купі та контроль доступу до пам’яті після її звільнення, на практиці не застосовуються, оскільки вони призводять до погіршення продуктивності та захисту на основі CFI (Control Flow Integrity), який блокує експлойти в пізніх стадії нападу, потребує вдосконалення.

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

Щоразу, коли відкривається / dev / ptmx (скорочено від «псевдотермінал мультиплексор»), отриманий дескриптор файлу представляє сторону пристрою (його в документації та джерелах ядра згадується як «головний псевдотермінал») пристрою. new pseudo -термінал.

 Відповідний термінальний пристрій (до якого зазвичай підключається оболонка) автоматично створюється ядром у / dev / pts / .

Розглядаючи те, що може змінити в довгостроковій перспективі, акцент робиться на використанні вдосконалених статичних аналізаторів або використання безпечних для пам’яті мов, таких як діалекти Rust і C з розширеними анотаціями (наприклад, перевірений C), для створення шашок статусу, блокування, об'єкти та покажчики. У методах захисту також згадується включення режиму panic_on_oops, що робить структури ядра доступними лише для читання та обмежує доступ до системних викликів за допомогою таких механізмів, як seccomp.

Помилка, що спричиняє проблему це було виправлено в ядрі Linux 3 грудня минулого року. Проблема проявляється в ядрах до версії 5.9.13, але більшість дистрибутивів усунули проблему в оновленнях пакетів ядра, які були запропоновані минулого року.

Також згадується подібна вразливість (CVE-2020-29660), яка була одночасно виявлена ​​під час реалізації виклику TIOCGSID ioctl, але також була вилучена скрізь.

В кінці кінців Якщо вам цікаво дізнатись більше про це, Ви можете перевірити деталі У наступному посиланні.


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

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

*

*

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