Що таке Docker Rootless режим і навіщо він потрібен для підвищення безпеки?
За замовчуванням демон Docker і всі запущені в ньому контейнери керуються від імені привілейованого суперкористувача root на хостовій машині. Це створює серйозні ризики безпеки, оскільки потенційний зловмисник у разі втечі з контейнера отримує повний контроль над усією операційною системою сервера. Режим Rootless був створений для усунення цієї вразливості.
Rootless-режим дозволяє запускати як демон Docker, так і самі контейнери від імені звичайного непривілейованого користувача без прав root. Для цього використовуються простори імен ядра Linux, які ізолюють процеси та ресурси. Навіть якщо додаток всередині контейнера скомпрометовано, у атакуючого не буде адміністративного доступу до хоста.
Перехід на цей режим вимагає виконання певних попередніх системних налаштувань. Адміністратору необхідно налаштувати сабміграцію ідентифікаторів користувачів і переконатися, що ядро підтримує необхідні функції. Після встановлення утиліти налаштування демон запускається як користувацька служба системи ініціалізації.
Варто зазначити деякі обмеження, з якими можна зіткнутися під час використання Rootless-режиму. Наприклад, контейнери не можуть займати стандартні привілейовані мережеві порти нижче номера тисяча без додаткового налаштування. Також можуть виникнути особливості під час роботи з деякими специфічними типами мережевих мостів і сховищами даних.
Тим не менш, для продакшн-оточень із підвищеними вимогами до захищеності даних використання Docker у Rootless-режимі є чудовою практикою. Це дозволяє суттєво знизити потенційну шкоду від можливих кібератак і вразливостей нульового дня в програмному забезпеченні.