Мінімальні образи контейнерів
Кожен інструмент, який ви розгортаєте, дістається зловмисникові в спадок.
Що таке Мінімальні образи контейнерів?
Продакшн-образ із менеджером пакетів, компілятором, оболонкою та мережевими утилітами перетворює обмежену ваду застосунку на робочий набір інструментів. Зловмисник нічого не приносить: образ уже постачав усе потрібне. Ви скористаєтеся однією командою через помилку в сервісі checkout, щоб знайти curl і прочитати облікові дані ролі інстанса з ендпоінта метаданих за адресою 169.254.169.254. Потім ви розділите збірку на дві стадії, скопіюєте лише скомпільований артефакт у фінальний образ distroless і побачите, що в контейнері, розгорнутому наново, оболонка не відкривається, бо її там немає.
Що ви дізнаєтесь у Мінімальні образи контейнерів
- Розпізнавайте, що оболонка, менеджер пакетів, компілятор і мережеві інструменти в образі для виконання стають набором інструментів зловмисника.
- Простежуйте, як одна команда через ваду в застосунку використовує curl з образу, щоб прочитати облікові дані ролі інстанса з 169.254.169.254.
- Налаштовуйте багатостадійну збірку, яка лишає інструменти збірки на стадії збірки й переносить далі лише скомпільований артефакт.
- Застосовуйте фінальний образ distroless і перевіряйте, що в контейнері, розгорнутому наново, оболонку відкрити неможливо.
- Пояснюйте, як прибирання оболонки й менеджера пакетів ламає найпростіший шлях від обмеженого виконання коду до контролю.
Мінімальні образи контейнерів — Кроки навчання
-
Плацдарм у сервісі checkout
Боб починає не з оболонки. Сервіс checkout формує з шаблону етикетки відправлень у форматі PDF, і одне поле запиту виконується як код шаблону, а не сприймається як текст. Боб вставляє пробний пейлоад, щоб переконатися, що може виконати команду, і побачити, хто він і де опинився.
-
Усе, що постачається в образі
Боб виконує по одній команді від імені app, але оболонки в нього ще немає. Зазвичай саме тут зловмисник застряє, якщо тільки контейнер не надає йому готовий набір інструментів. Перш ніж робити щось гучне, він перевіряє, що вже встановлено.
-
Заберіть хмарні облікові дані через curl
Контейнер працює в хмарі, а кожен хмарний інстанс відкриває на фіксованій внутрішній адресі сервіс метаданих, який видає тимчасові облікові дані ролі машини. Щоб до нього звернутися, потрібен клієнт HTTP. Образ його постачав. Доступ Боба до застосунку був жорстко обмежений.
-
Як одна команда стала зламом
-
Оболонка в контейнері для виконання
На хостах контейнерів компанії Skelwyn працює система виявлення і реагування на загрози на пристроях (EDR). Вона не знає, для чого призначений кожен контейнер; вона повідомляє про поведінку, яка не пасує контейнеру для виконання.
-
Підтвердьте, що постачається в образі
Аліса відтворює те, що знайшов зловмисник: запитує в запущеного контейнера, які з цих інструментів у ньому справді є.
-
Образ для виконання на 412MB
Набір інструментів не безкоштовний: це зайва вага і це поверхня атаки. Аліса перевіряє розмір образу, у якому сервіс насправді працює.
-
Як набір інструментів потрапляє в образ
Образ збирається з одного Dockerfile. Аліса відкриває його, щоб побачити, чому в контейнері для виконання опиняється компілятор.
-
Одна стадія — і все потрапляє в продакшн
Образ і збирається, і запускається в одній стадії, тож усе, що потрібно для збірки, несе з собою й образ для виконання.
-
Відокремте збірку від виконання
Виправлення — багатостадійна збірка: повний образ з усім набором інструментів збірки лишається стадією збірки, яка компілює застосунок, а в образ distroless для виконання, у якому немає ні оболонки, ні менеджера пакетів, ні компілятора, копіюється лише готовий застосунок і його залежності.
Охоплення стандартів безпеки
CWE
- CWE-1188 Initialization of a Resource with an Insecure Default
CIS Controls
- CIS 2 Inventory and Control of Software Assets
- CIS 4 Secure Configuration of Enterprise Assets and Software
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- ID.AM Asset Management
- PR.PS Platform Security