Skip to main content

Безпека хмари
та контейнерів

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

8 практичних вправ про образи Docker, середовища виконання контейнерів і реєстри. Безкоштовно, без реєстрації.

1

Безпека контейнерів і образів

Секрети в шарах образів

Зчитайте дійсний токен із шару, який збірка нібито прибрала.

  • Завантажте публічний образ і пройдіть його історію збірки
  • Відкличте облікові дані ще до того, як чіпати Dockerfile
  • Перезберіть образ із секретним монтуванням BuildKit
Пройти вправу

Привілейовані контейнери

Перетворіть оболонку в контейнері на root на хості.

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

Відкритий Docker-демон

Захопіть продакшн-хост через неавтентифікований Docker API.

  • Знайдіть вузол на публічній сторінці статусу
  • Змонтуйте файлову систему хоста через демон
  • Увімкніть взаємний TLS і обмежений проксі для сокета
Пройти вправу

Вразливі базові образи

Використайте CVE в шарі ОС, який ніхто не перевіряє.

  • Проскануйте розгорнутий образ і знайдіть критичну ваду в базі
  • Закріпіть базу за дайджестом і перейдіть на slim-варіант
  • Проскануйте повторно, щоб довести, що знахідки більше немає
Пройти вправу

Шкідливі базові образи

Простежте криптомайнер до одного рядка в Dockerfile.

  • Порівняйте схожого видавця з офіційним
  • Прочитайте шар, який завантажив корисне навантаження
  • Перевіряйте підписи під час завантаження, а не після
Пройти вправу

Незахищеність реєстру контейнерів

Завантажте приватний образ, а тоді замініть тег, який вони розгортають.

  • Прочитайте продакшн-конфігурацію з анонімного завантаження
  • Залийте шар із бекдором у реліз-тег
  • Вимагайте автентифікації, обмежте push, заморозьте теги
Пройти вправу

Незахищеність мережі контейнера

Мапінг порту виставляє продакшн-базу даних в інтернет.

  • Підключіться до опублікованого порту бази даних без участі застосунку
  • Привʼяжіть мапінг до loopback і перерозгорніть стек
  • Сегментуйте сервіси в мережі, визначеній користувачем
Пройти вправу

Мінімальні образи контейнерів

Скоротіть runtime на 412 МБ до того, що справді має постачатися.

  • Здійсніть піворот інструментами, які постачив сам образ
  • Розділіть збірку й runtime багатоетапною збіркою
  • Доведіть, що у фінальному образі немає оболонки
Пройти вправу

Напрям для розробників

Безпека застосунків за поверхнями атаки. Безкоштовно, на практиці, без реєстрації.

Поширені запитання

Що таке навчання з безпеки контейнерів?

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

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

Чи є контейнер межею безпеки?

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

Root усередині контейнера — це root у ядрі хоста, тож прапорець privileged разом із монтуванням хоста перетворює виконання коду в малоцінному сервісі на контроль над машиною під ним. Межу ви налаштовуєте, а не отримуєте.

Чому секрети лишаються після того, як Dockerfile їх видаляє?

Шари образу можна лише додавати. Облікові дані, передані в одній команді RUN, записані в цьому шарі, а наступна RUN, яка видаляє файл, лише кладе новий шар зверху.

Кожен, хто завантажить образ, отримає всі шари, тож значення досі читається. Саме відкликання облікових даних відрізає доступ, а багатоетапна збірка чи секретне монтування BuildKit не дають цьому повторитися.

Ці вправи саме про Docker чи про хмарну інфраструктуру загалом?

Цей перший курс — про Docker: образи, шари, демон, реєстри та мережу контейнерів. Це той рівень, якого команди торкаються першим, і де поломки найконкретніші.

Курси про Kubernetes, хмарну інфраструктуру та інфраструктуру як код приєднаються до цієї ж категорії, щойно вийдуть.

Кому підійде навчання з безпеки контейнерів?

Розробникам, які пишуть Dockerfile, DevOps- і платформним інженерам, що відповідають за конвеєр збірки, SRE та всім, хто налаштовує реєстр або хост контейнерів.

Кілька виправлень тут — узагалі не код застосунку. Це закріплення базових образів, політики реєстру, конфігурація демона та прапорці розгортання, тож вправи корисні тим, хто володіє цими налаштуваннями, не менше, ніж тим, хто пише сервіс.

Чи безкоштовні ці вправи з безпеки контейнерів?

Так. Кожна вправа працює у вашому браузері без реєстрації.

Корпоративні можливості — аналітика проходження, пакування у SCORM та LTI для вашої LMS, SSO і власний контент — доступні в платних тарифах.

Подивіться RansomLeak в дії

Спробуйте безкоштовні вправи або замовте демо, щоб побачити аналітику, експорт SCORM, SSO та індивідуальний контент у вашому середовищі.