Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

CONTAINER_VULN_AUDIT Linux / DevOps

Аудит безопасности Docker-образов: сканирование уязвимостей с Trivy и Grype

Обновлено: 21.08.2026
  • Наличие критических уязвимостей (CVE Critical/High) в базовых образах production-сервисов.
  • Требования стандартов безопасности (PCI-DSS, ISO 27001, SOC2) по регулярному аудиту цепочек поставки ПО (Software Supply Chain).
  • Отсутствие прозрачности состава пакетов и транзитивных библиотек (SBOM) в сборках.

1. Установка утилиты сканирования Trivy (Aqua Security)

# Установка на Ubuntu / Debian
apt-get install -y wget apt-transport-https gnupg lsb-release
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor -o /usr/share/keyrings/trivy.gpg
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/trivy.list
apt-get update && apt-get install -y trivy

2. Сканирование локального Docker-образа через Trivy

# Поиск только критических и высоких уязвимостей с кодом возврата для CI/CD
trivy image --severity HIGH,CRITICAL --ignore-unfixed --exit-code 1 my-app:latest

3. Генерация SBOM (Software Bill of Materials) через Syft и анализ в Grype

# Установка Grype и Syft (Anchore)
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin

# Создание паспорта компонентов SBOM в формате SPDX/CycloneDX
syft my-app:latest -o cyclonedx-json > sbom.json

# Сканирование SBOM на известные CVE
grype sbom:sbom.json --fail-on high

4. Интеграция в GitLab CI (.gitlab-ci.yml)

container_scanning:
  stage: test
  image:
    name: aquasec/trivy:latest
    entrypoint: [""]
  script:
    - trivy image --no-progress --format template --template "@/contrib/gitlab.tpl" -o gl-container-scanning-report.json $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
    - trivy image --exit-code 1 --severity CRITICAL --no-progress $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  artifacts:
    reports:
      container_scanning: gl-container-scanning-report.json
💡 Практика специалистов: Для минимизации количества CVE в отчетах переводите финальные стейджи Dockerfile на образы Distroless (gcr.io/distroless) или Chainguard Images, где полностью удалены менеджеры пакетов и шеллы.

Частые вопросы (FAQ)

Что означает опция --ignore-unfixed в Trivy?

Она скрывает из отчета уязвимости, для которых мейнтейнеры дистрибутива еще не выпустили исправлений (security patches), предотвращая ложные блокировки CI/CD пайплайнов.

В чем разница между сканированием Trivy и Grype?

Оба сканера высокоэффективны, но используют разные базы фидов: Trivy сканирует не только OS-пакеты, но и зависимости языков (npm, pip, go.mod), а Grype оптимизирован для работы в связке с SBOM генератором Syft.

Полезные материалы
Рекомендуем