Всем привет!
Можно до бесконечности пытаться устранить уязвимости в образах контейнеров, а можно использовать минималистичные образы, в которых «начинка» сведена к минимуму – distroless.
Варианты реализации есть от Google и Chainguard. И кажется, что все отлично – ничего лишнего внутри нет,
sh, bash отсутствуют и эксплуатация уязвимостей становится (не) возможной.Однако, нет ничего абсолютного. В статье Автор предлагает рассмотреть обычный Debian образ из реестра Google и посмотреть можно ли что-то сделать.
Автор пробует:
🍭 Запустить
sh, bash внутри контейера. Логично, что ничего не получается🍭 Далее он меняет
entrypoint на /usr/bin/openssl🍭 Используя
enc он может читать информацию, в том числе в Kubernetes, получая ServiceAccountTokenДа, это лишь чтение и изучение, но идею можно развить и дальше. Какой вывод можно сделать? Да, distroless – отличный вариант для сокращения поверхности атаки, но это не панацея и потому лучше не полагаться только на них, а подходить к вопросу обеспечения защиты контейнеров комплексно