Виправлення зараз: діра у безпеці файлової системи Linux, яка отримала назву Sequoia, може захопити системи

  • Oct 19, 2023

Уразливість безпеки файлової системи ядра Linux може дозволити будь-якому користувачеві отримати привілеї root.

У деякі дні дощ не йде, а злива. Це стосується сьогоднішнього Linux. Нещодавно було виявлено не одну, а дві серйозні діри в безпеці. По-перше, був a помилка systemd, яка може легко вивести системи з ладу. Тепер у файловій системі ядра Linux з’явилася діра в безпеці, яку будь-який користувач може використати, щоб заволодіти комп’ютером. Як я вже сказав, у деякі дні він просто ллє.

ZDNET Рекомендує

Найкращі класи Linux Foundation

Хочете хорошу роботу в техніці? Тоді вам потрібно знати Linux і програмне забезпечення з відкритим кодом. Один із найкращих способів навчання – це курс Linux Foundation.

Читайте зараз

The Дослідницька група Qualys, який виявив помилку файлової системи, також виявив уразливість перетворення типу size_t в int у файловій системі ядра Linux. Це Діра в безпеці Linux отримала назву Sequoia і це було призначено CVE-2021-33909.

Звучить не так багато, чи не так? Навпаки! Його можна використовувати проти більшості дистрибутивів Linux у їхніх конфігураціях за замовчуванням. І, що ще гірше, будь-який -- я повторюю, будь-який -- непривілейований користувач може зловживати ним, щоб отримати привілеї root.

Ось як це працює. Ми всі використовуємо файлові системи щодня, але ви, ймовірно, не замислюєтеся про те, як це працює. Хто, крім розробників, займається? У випадку Linux інтерфейс файлової системи реалізований у трирівневій архітектурі. Є рівень інтерфейсу користувача; реалізація файлової системи; і драйвери запам'ятовуючих пристроїв.

Інтерфейс seq_file ядра Linux створює віртуальні файли, що містять послідовності записів. Кожен запис має поміститися в буфер seq_file. Коли на ньому закінчується простір, він просто збільшується вдвічі. Це не біда. У вас закінчиться пам'ять задовго до того, як ви зможете зламати систему цим. Проблема з’являється через те, що ця змінна size_t також передається функціям, аргументом size яких є 32-розрядне ціле число зі знаком, а не size_t. І це, мій друже, хоч і дуже велика кількість, але її можна перевищити.

Потім, як пояснює Бхарат Джогі, старший менеджер із вразливостей і сигнатур Qualys: «Якщо непривілейований локальний зловмисник створює, монтує та видаляє глибокий каталог структуру, загальна довжина шляху якої перевищує 1 ГБ, і якщо зловмисник відкриває()s і читає()s /proc/self/mountinfo, то" через серію інших маневрів, які ви можете писати з обмежує пам'ять.

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

Насправді це саме те, що зробила команда безпеки Qualys. Вони розробили експлойт, який потім використовували для отримання повних привілеїв адміністратора при інсталяції за замовчуванням Ubuntu 20.04, Ubuntu 20.10, Ubuntu 21.04, Debian 11, і Fedora 34. Добре, давайте просто визнаємо це. Практично будь-який дистрибутив Linux вразливий до цього трюку.

Це чудовий день для того, щоб бути системним адміністратором Лінуса чи що?

Хороша новина полягає в тому, що, незважаючи на те, що ця проблема жива й неприємна в будь-якій системі, на якій працює ядро ​​Linux від 3.16 до 5.13.x перед 5.13.4, доступні виправлення. Фактично, я залатав своє Linux Mint робочий стіл для нього, ще до того, як я навіть почав писати цю історію. Так, це так погано.

Ерік Сандін, червоний капелюхпровідний розробник файлової системи придумав вирішення проблеми.

Грег Кроа-Хартман, супроводжувач ядра Linux для стабільної гілки Linux, згодом випустив патч ядра для Sequoia 20 липня у випуску ядра Linux 5.13.4.

Якщо ви не можете оновити ядро, ви все одно можете зменшити проблему, встановивши /proc/sys/kernel/unprivileged_userns_clone на 0. Це запобігає монтуванню зловмисником довгого каталогу в просторі імен користувача. Однак зловмисник все одно може підключити отруйно довгий каталог через Файлова система в просторі користувача (FUSE). Ви також повинні встановити /proc/sys/kernel/unprivileged_bpf_disabled на 1. Це запобігає завантаженню зловмисником eBPF програму в ядро. Однак можуть бути й інші способи нападу. Єдиний надійний спосіб усунути цю дірку в безпеці — оновити ядро.

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

Пов'язані історії:

  • Виявлено неприємну помилку безпеки Linux systemd
  • Розкрито основну проблему RPM у Linux
  • CloudLinux випускає інструмент безпеки UChecker для серверів Linux