Docker и InSpec: проверка контейнерной инфраструктуры на безопасность
Cis-docker-benchmark – это ни что иное как профиль соответствия InSpec, который содержит в себе набор тестов для запуска в автоматическом режиме. По итогам тестирования вы получаете детальное описание того, что у вас сделано хорошо, а что требует улучшения.
Для тех, кто еще не знаком с InSpec, скажу лишь, что это очень полезный открытый фреймворк на Ruby со своим декларативным языком, предназначенным для написания правил автоматической проверки вашей инфраструктуры на соответствие чему угодно. В данном конкретном случае это решение применяется для описания набора правил тестирующих вашу контейнерную инфраструктуру на соответствие определенным политикам безопасности.
При помощи InSpec можно тестировать локальный хост, удаленный хост и даже определенный контейнер! Если вам хотелось бы получить больше информации на эту тему, пишите, пожалуйста, в комментариях.
На странице проекта cis-docker-benchmark в GitHub приведены все возможные варианты запуска набора тестов. Наиболее удобный с моей точки зрения — это запуск сразу из локальной директории:
git clone https://github.com/dev-sec/cis-docker-benchmark
inspec exec cis-docker-benchmark --attrs sample_attributes.yml -t ssh://user@192.168.123.11 --sudo
При таком варианте запуска вы можете поменять необходимые вам атрибуты профиля тестирования, находящиеся в файле cis-docker-benchmark/sample_attributes.yml. Назначение атрибутов для тестирования можно выяснить в описании проекта cis-docker-benchmark на GitHub.
Само собой, перед выполнением вышеуказанных команд у вас должен быть установлен git, Ruby и InSpec.
Лично я сходу обнаружил на своем продуктивном сервере 99 ошибок из набора в 150 запущенных тестов. Пошел исправлять.
P.S. Кстати, автоматические проверки вашей инфраструктуры InSpec-ом могут быть легко встроены в ваши процессы CI/CD. Успехов в работе!