В этой статье мы рассмотрим Dockle инструмент для проверки безопасности образов контейнеров, который можно использовать для поиска уязвимостей. Кроме того, с его помощью можно выполнять проверку на соответствие Best Practice, чтобы убедиться, что образ действительно создаётся на основе сохраненной истории команд.
Установка Dockle
Трудностей при установке утилиты возникнуть не должно:
-
Установка в OSX
$ brew install goodwithtech/r/dockle
-
Установка в Linux
# RHEL$ VERSION=$( curl --silent "https://api.github.com/repos/goodwithtech/dockle/releases/latest" | \ grep '"tag_name":' | \ sed -E 's/.*"v([^"]+)".*/\1/' \) && rpm -ivh https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Linux-64bit.rpm#Ubuntu$ VERSION=$( curl --silent "https://api.github.com/repos/goodwithtech/dockle/releases/latest" | \ grep '"tag_name":' | \ sed -E 's/.*"v([^"]+)".*/\1/' \) && curl -L -o dockle.deb https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Linux-64bit.deb$ sudo dpkg -i dockle.deb && rm dockle.deb
После установки утилиты всё, что вам нужно сделать, это указать имя образа. Больше ничего настраивать не нужно, вам даже не потребуется Docker.
Пример использования Dockle
Запускаем утилиту, указав имя образа. Если проблем нет, в
консоль будет выведено сообщение PASS
, а при
обнаружении проблем или уязвимостей подробная информация о них:
Попробуем запустить Dockle в Docker, на скриншоте видно, что утилита отлично работает:
Основные функции и преимущества Dockle
-
поиск уязвимостей в образах,
-
помощь в создании правильного Dockerfile,
-
простота в использовании, нужно указать только имя изображения,
-
поддержка CIS Benchmarks.
Сравнение с другими инструментами
Существует большое количество похожих инструментов для диагностики безопасности, например: Docker Bench или Hadolint. Но в сравнении с ними Dockle более функциональна:
Применение Dockle в DevSecOps
Думаю, что эта небольшая статья хорошая отправная точка для начала работы с Dockle. Она может легко использоваться в CI, улучшит ваши пайплайны в соответствии с концепцией DevSecOps.
По ссылкам ниже вы можете найти примеры того, как настроить системы CI / CD для работы с Dockle: