CyberCodeReview
  • Главная
  • 🔦Auditor
    • 📥Установка
      • Установка
      • Обновление
    • 🎯Функционал
    • ⚙️Настройки
      • Интеграция с Security Center
        • Настройка активов продукта
        • Конфигуратор Auditor
        • Последовательности
          • Создание последовательности
          • Изменение цепочек
      • Прямое использование Auditor
        • Очистка
        • Учетные данные Docker
        • Обработчики
        • Персонализация
      • Задания
        • Технические задания
        • Задания сканирования
        • Настройка заданий
    • 🚀Запуск аудита
      • Интеграция с Security Center
        • Запуск аудита вручную
        • Запуск аудита по расписанию
      • Прямое использование Auditor
  • 🖥️Security Center
    • 📥Установка
      • Установка
      • Начало работы с Security Center
        • Параметры конфигурации
      • Обновление
      • Доступ к конечным точкам API Security Center
      • Перенос базы данных
      • FAQ: типичные ошибки в процессе развертывания
    • 🎯Функционал
      • Активные задачи
      • Метрики безопасности
        • Дашборд статистики критичности
        • WRT (Weighted Risk Trend)
        • Как работать с WRT (для руководителей команд)
        • Настройки метрик
          • SLA
        • CVSS
          • Правило CVSS
      • Дедупликатор
        • Правила базовой дедупликации
        • Правила расширенной дедупликации
      • Пользовательские отчеты
    • 🎣Валидатор
      • Создание правила
      • Фильтрация и сортировка фильтров
    • 🕷️Просмотр обнаружений
      • Просмотр всех уязвимостей
      • Объединение уязвимостей в группы
      • Доступные массовые действия
      • Просмотр отдельной уязвимости
      • Фильтры и сортировка
    • 🔬Сканеры
      • Импорт отчетов от сканеров в Security Center
        • Ручной импорт используя файл отчета
        • Импорт через Терминал используя файл отчета
        • Импорт через лямбда-функцию используя файл отчета
      • Описание сканеров
        • Сканеры кода
          • Bandit
          • Brakeman
          • Checkov
          • CodeQL
          • ESLint
          • Gemnasium
          • Gosec
          • Hadolint
          • KICS
          • PHP_CodeSniffer
          • Retire.js
          • Semgrep
          • SpotBugs
          • Terrascan
        • Сканеры секретов
          • Gitleaks
          • Trufflehog3
        • Сканеры зависимостей образа и кода
          • Trivy
          • Плагин Trivy vulners.com
        • Веб-сканеры
          • Arachni Scan
          • Acunetix
          • Burp Enterprise Scan
          • OWASP Zap
        • Сканеры инфраструктуры
          • Prowler
          • Subfinder
          • Naabu
          • Nessus
          • Nuclei
        • Сканеры мобильной безопасности
          • MobSFScan
        • Прочие сканеры
          • Dependency-Track
          • Snyk
      • Кастомные импортеры
        • Актуальные кастомные импортеры
    • 📊Jira
      • Настройка интеграции Jira
      • Настройка веб-хука Jira
    • Dependency Track
    • 🛠️Основные настройки Security Center
      • Настройка уведомлений
        • Интеграция
        • Критерии и расписание
        • Управление расписанием уведомлений
      • Настройки SSO
        • GitLab SSO
        • Microsoft SSO
        • Okta SSO
      • Управление ролями пользователей и контролем доступа
        • Управление пользователями
        • Создание и редактирование ролей
      • Настройки продукта
        • Создание продукта
        • Импорт репозиториев
        • Параметры продукта
        • Оценка рисков
        • Активы продукта
      • Интеграция с системой контроля версий (VCS)
      • Настройки сканера
        • Автозакрытие
        • Группировка обнаружений
        • Пользовательское описание Jira
        • Пользовательское сопоставление критичности
        • Настройка задач Auditor
      • Настройка ссылок репозиториев
      • Страница тегов
      • Экран активов
Powered by GitBook
On this page
  1. Security Center
  2. Сканеры
  3. Описание сканеров
  4. Сканеры кода

Hadolint

Линтер Dockerfile, валидатор встроенного bash, написанный на Haskell

PreviousGosecNextKICS

Last updated 3 months ago

Название импортера в Security Center: Hadolint, Hadolint Dockerfile check

- это специализированный линтер Dockerfile, предназначенный для проверки правильности синтаксиса Dockerfile, соблюдения лучших практик и выявления потенциальных проблем, связанных с созданием Docker-образов. Он фокусируется на качестве кода и соответствии стандартам Dockerfile, помогая создавать безопасные и хорошо структурированные образы Docker.

Hadolint анализирует Docker-файлы, проверяя их на наличие типичных ошибок, соответствие рекомендациям Dockerfile и потенциальные проблемы безопасности. Этот инструмент может помочь разработчикам и командам DevOps поддерживать высокое качество Docker-файлов, гарантируя, что получаемые образы безопасны, эффективны и не содержат ошибок.

Одной из примечательных особенностей Hadolint является способность предоставлять отзывы о Dockerfile еще до создания образов, что позволяет разработчикам выявлять потенциальные проблемы на ранних этапах процесса разработки.

Пример команды Curl

curl -X POST localhost/api/v1/scan/import/ -H "Authorization: Token a75bb26171cf391671e67b128bfc8ae1c779ff7b" -H "Content-Type: multipart/form-data" -F "file=@./" -F "product_name=Product1" -F "product_type=Application" -F "scanner_name=Hadolint Dockerfile check" -F "branch=dev"

В этой команде используются следующие параметры:

  1. -X POST: задает используемый метод HTTP (в данном случае POST).

  2. -H "Authorization: Token <authorization_token>": задает , полученный от Security Center.

  3. -H "Content-Type: multipart/form-data": задает тип содержимого запроса.

  4. -F "file=@<report_file_path>": задает путь к файлу отчета, создаваемого сканером.

  5. -F "product_name=<product_name>": задает название сканируемого продукта.

  6. -F "product_type=<product_type>": задает тип сканируемого продукта.

  7. -F "scanner_name=<scanner_name>": задает имя сканера, используемого для создания отчета (Bandit Scan или GitLab Bandit)

  8. -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"}]

[
    {
   "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"
    }
]
🖥️
🔬
Hadolint
токен авторизации