ШІ знайшов у Linux помилку 15-річної давнини

Історія виявлення GhostLock за допомогою штучного інтелекту

У сфері кібербезпеки відбулася подія, яка демонструє зміну підходів до аналізу вихідного коду операційних систем. Спеціалізована нейромережа, налаштована на пошук аномалій у системній пам’яті, виявила критичну помилку в ядрі Linux. Ця вразливість, що отримала кодову назву GhostLock, залишалася непоміченою розробниками та інструментами статичного аналізу протягом 15 років. Помилка ховалася в підсистемі обробки швидких користувацьких блокувань (futex) та створювала умови для несанкціонованого підвищення привілеїв у системі.

Тривалий життєвий цикл цієї вразливості пояснюється її специфікою. Традиційні сканери безпеки шукають відомі патерни або явні помилки виділення пам’яті. Проте GhostLock виникає лише за збігу кількох рідкісних умов під час паралельного виконання потоків. Штучний інтелект зміг змоделювати складні сценарії взаємодії та зафіксував стан гонитви (race condition), який раніше вважався теоретично малоймовірним.

Технічні деталі вразливості в механізмі futex

Функціонал futex (fast userspace mutex) використовується в Linux для ефективної синхронізації потоків. Коли виникає конкуренція за ресурс, ядро створює чергу очікування. Помилка GhostLock була пов’язана з неправильною валідацією лічильника посилань на об’єкт блокування під час примусового завершення потоку сигналом.

Через некоректну черговість очищення структури даних зловмисник отримував можливість виконати атаку типу використання після звільнення (use-after-free). Локальний користувач із мінімальними правами міг зациклити виклики та перезаписати сусідні сектори пам’яті ядра, де зберігаються ідентифікатори безпеки процесів. Це дозволяло підмінити UID поточного процесу на 0, що еквівалентно отриманню повних прав суперкористувача root.

Характеристики та оцінка небезпеки вразливості GhostLock
Параметр оцінки Показник GhostLock Вплив на інфраструктуру
Базовий бал CVSS 7.8 High Висока ймовірність локального використання
Вектор атаки Local (Локальний) Потрібен попередній доступ до системи або контейнера
Складність атаки High (Висока) Вимагає точного таймінгу та стабілізації пам’яті
Вплив на конфіденційність Total (Повний) Зловмисник отримує доступ до всіх файлів системи
Вплив на цілісність Total (Повний) Можлива модифікація системних компонентів та логів

Загроза для контейнерної ізоляції та хмарних платформ

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

Зловмисник, який скомпрометував веб-додаток у слабко захищеному контейнері, міг використати цей баг для перехоплення контролю над усім фізичним або віртуальним сервером. Це відкривало доступ до даних інших клієнтів, що знаходяться на тій самій ноді. Хмарні провайдери та дата-центри опинилися під загрозою, оскільки архітектура спільного використання ресурсів (multi-tenancy) повністю покладається на надійність розмежування прав на рівні ядра.

Як інструменти штучного інтелекту змінюють правила кібербезпеки

Успішне застосування ШІ для пошуку GhostLock демонструє якісний стрибок у методологіях тестування коду. Сучасні великі мовні моделі та LLM-агенти навчилися не просто перевіряти синтаксис, а й розуміти логіку роботи низькорівневих інтерфейсів ядра операційної системи.

ШІ-агенти здатні безперервно проводити семантичний аналіз мільйонів рядків коду, створюючи динамічні карти взаємозв’язків. Вони автоматично генерують специфічні тест-кейси (фаззинг), спрямовані на критичні вузли, які людина-аудитор міг пропустити через рутину або брак часу. Це значно скорочує час пошуку вразливостей (Window of Vulnerability) у новому програмному забезпеченні.

Рекомендації щодо захисту та оновлення систем

Розробники ядра Linux оперативно випустили виправлення після отримання звіту від дослідників. Патч змінює логіку перевірки стану черги futex і блокує можливість повторного використання звільнених покажчиків.

  • Необхідно перевірити версію ядра Linux на всіх серверах та робочих станціях.
  • Встановити актуальні пакети оновлень безпеки від вашого дистриб’ютора (Ubuntu, Debian, RHEL).
  • Для критичних систем, де неможливе швидке перезавантаження, застосувати технології динамічного патчингу ядра без зупинки сервісів.
  • Обмежити доступ до системних викликів для невірифікованих користувачів за допомогою інструментів seccomp у контейнерних середовищах.

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

Джерела:

Павло Заслонов
Про автора

Павло Заслонов

Експерт із кіберзахисту, знає все про приховування IP-адрес та вразливості сучасних чат-ботів.

0 Коментарів

Відповісти

2500
Будь ласка, введіть коментар
Будь ласка, вкажіть ваше ім'я