Hadolint
Линтер Dockerfile, валидатор встроенного bash, написанный на Haskell
Название импортера в Security Center: Hadolint, Hadolint Dockerfile check
Образ в Auditor: registry.gitlab.com/whitespots-public/security-images/hadolint:2.12.0
Hadolint - это специализированный линтер Dockerfile, предназначенный для проверки правильности синтаксиса Dockerfile, соблюдения лучших практик и выявления потенциальных проблем, связанных с созданием Docker-образов. Он фокусируется на качестве кода и соответствии стандартам Dockerfile, помогая создавать безопасные и хорошо структурированные образы Docker.
Hadolint анализирует Docker-файлы, проверяя их на наличие типичных ошибок, соответствие рекомендациям Dockerfile и потенциальные проблемы безопасности. Этот инструмент может помочь разработчикам и командам DevOps поддерживать высокое качество Docker-файлов, гарантируя, что получаемые образы безопасны, эффективны и не содержат ошибок.
Одной из примечательных особенностей Hadolint является способность предоставлять отзывы о Dockerfile еще до создания образов, что позволяет разработчикам выявлять потенциальные проблемы на ранних этапах процесса разработки.
Пример команды Curl
В этой команде используются следующие параметры:
-X POST
: задает используемый метод HTTP (в данном случае POST).-H "Authorization: Token <authorization_token>"
: задает токен авторизации, полученный от Security Center.-H "Content-Type: multipart/form-data"
: задает тип содержимого запроса.-F "file=@<report_file_path>"
: задает путь к файлу отчета, создаваемого сканером.-F "product_name=<product_name>"
: задает название сканируемого продукта.-F "product_type=<product_type>"
: задает тип сканируемого продукта.-F "scanner_name=<scanner_name>"
: задает имя сканера, используемого для создания отчета (Bandit Scan или GitLab Bandit)-F "branch=<branch_name>"
: (необязательно) указывает имя ветки в репозитории исходного кода (если применимо). Этот параметр особенно полезен, когда вы хотите связать результаты сканирования с определенной веткой в вашем репозитории. Если параметр не указан, сканирование будет связано с веткой по умолчанию
Пример отчета:
[{"line":1,"code":"DL3006","message":"Always tag the version of an image explicitly","column":1,"file":"./test/smoke/Dockerfile","level":"warning"},{"line":3,"code":"DL3018","message":"Pin versions in apk add. Instead of apk add <package> use apk add <package>=<version>","column":1,"file":"./test/smoke/Dockerfile","level":"warning"},{"line":3,"code":"DL3019","message":"Use the --no-cache switch to avoid the need to use --update and remove /var/cache/apk/* when done installing packages","column":1,"file":"./test/smoke/Dockerfile","level":"info"}]
Last updated