0Pricing
Docker & DevOps Fundamentals · Урок

Проверка безопасности образов контейнеров

Интегрируйте инструменты проверки образов в конвейер CI/CD, чтобы выявлять уязвимости в образах Docker.

«Проверка безопасности образов контейнеров» — бесплатный урок Docker & DevOps Fundamentals на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Docker & DevOps Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.

Зачем сканировать образы контейнеров?

Образы контейнеров — основа современных приложений. Как и любое программное обеспечение, они могут содержать скрытые уязвимости. Сканирование образов — важная практика, помогающая обнаружить эти уязвимости до развёртывания приложений.

Это помогает убедиться, что используемое вами программное обеспечение защищено и не содержит известных уязвимостей.

Проверка безопасности образов контейнеров — иллюстрация 1

Скрытые опасности в образах

Какие уязвимости могут скрываться в образах контейнеров?

  • Устаревшие базовые образы: использование старых версий операционных систем (например, Ubuntu или Alpine), содержащих известные уязвимости.
  • Уязвимые библиотеки: любые дополнительные программные пакеты или зависимости, устанавливаемые в образ, могут содержать уязвимости (CVE).
  • Неправильные настройки: хотя сканирование в первую очередь выявляет известные CVE, ненадлежащие настройки также могут создавать риски.

Как работают сканеры образов

Сканеры образов контейнеров выполняют следующие действия:

  • Анализируют слои: проверяют каждый слой образа Docker.
  • Извлекают компоненты: определяют все установленные пакеты, библиотеки и зависимости (например, пакеты OS, библиотеки Python и модули Node.js).
  • Сопоставляют с базами данных: сравнивают эти компоненты с обширными регулярно обновляемыми базами данных уязвимостей (например, базами CVE).
  • Создают отчёты: предоставляют подробный список обнаруженных уязвимостей, их степени важности и, зачастую, рекомендуемых исправлений.

Инструменты для работы

Для сканирования образов контейнеров доступны несколько мощных инструментов с открытым исходным кодом и коммерческих решений:

  • Trivy: популярный сканер с открытым исходным кодом, известный удобством использования и широким охватом.
  • Clair: ещё один надёжный вариант с открытым исходным кодом, часто интегрируемый в крупные реестры контейнеров.
  • Docker Scout (через docker scan): встроен в Docker Desktop и использует базу данных уязвимостей Snyk для быстрого локального сканирования.

Локальное сканирование образа

Выполним быстрое сканирование распространённого образа Docker с помощью встроенной команды docker scan. Эта команда использует Docker Scout (на базе Snyk), чтобы проверить наличие уязвимостей.

Попробуйте выполнить этот пример:

docker scan nginx:latest

Анализ результатов

После сканирования Вы получите отчёт. Обратите внимание на следующие сведения:

  • Идентификатор CVE: уникальный идентификатор уязвимости (например, CVE-2023-1234).
  • Уровень критичности: степень опасности уязвимости (например, критический, высокий, средний или низкий).
  • Пакет: конкретный программный компонент или библиотека, содержащие уязвимость.
  • Исправленная версия: часто в отчёте предлагается версия пакета или базового образа, устраняющая проблему.

Сканирование в рабочем процессе

Настоящая ценность сканирования образов проявляется при интеграции этой процедуры в рабочий процесс разработки. Добавив сканирование в Ваш конвейер непрерывной интеграции (CI), Вы сможете:

  • Рано обнаруживать проблемы: выявлять уязвимости сразу после фиксации нового кода или сборки образа.
  • Автоматизировать проверки безопасности: сделать безопасность стандартной автоматизированной частью процесса сборки.
  • Предотвращать развёртывание: настроить конвейер CI так, чтобы сборка завершалась с ошибкой при обнаружении критических уязвимостей и небезопасные образы не попадали в рабочую среду.

Автоматизация сканирования с помощью CI

Ниже приведён концептуальный фрагмент, показывающий, как можно интегрировать сканирование Trivy в рабочий процесс GitHub Actions. Это гарантирует автоматическую проверку каждого собранного образа.

# .github/workflows/scan.yml
name: Image Scan

on:
  push:
    branches: [ main ]

jobs:
  build-and-scan:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Build Docker Image
      run: docker build -t my-app:latest .
    - name: Run Trivy Scan
      uses: aquasecurity/trivy-action@master
      with:
        image-ref: 'my-app:latest'
        format: 'table'
        exit-code: '1' # Fail build on critical issues

Устранение обнаруженных проблем

Обнаружить уязвимости — это только половина дела; необходимо также их устранить! Вот распространённые стратегии устранения проблем:

  • Обновляйте базовые образы: всегда используйте последние исправленные версии выбранного базового образа.
  • Сокращайте зависимости: устанавливайте только те пакеты, которые абсолютно необходимы для работы приложения.
  • Используйте многоэтапные сборки: применяйте многоэтапные Dockerfile, чтобы уменьшить размер итогового образа и удалить инструменты сборки, не нужные во время выполнения.
  • Устанавливайте исправления: применяйте доступные конкретные исправления безопасности для уязвимых компонентов.

Проверка сканирования

Сканирование образов — важная часть безопасной разработки контейнеров. Проверьте, насколько хорошо Вы поняли материал.

Основные выводы

Вы узнали о важной роли сканирования безопасности образов контейнеров:

  • Оно выявляет известные уязвимости (CVE) в базовых образах и зависимостях.
  • Такие инструменты, как Trivy, Clair и Docker Scout, помогают автоматизировать этот процесс.
  • Интеграция сканирования в конвейер CI/CD обеспечивает раннее обнаружение проблем и предотвращает развёртывание небезопасных образов.
  • Регулярно обновляйте образы и сокращайте количество зависимостей, чтобы уменьшить поверхность атаки.

Продолжайте сканировать образы, чтобы поддерживать высокий уровень безопасности!

Часто задаваемые вопросы

Урок «Проверка безопасности образов контейнеров» бесплатный?

Да — полный текст урока «Проверка безопасности образов контейнеров» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Docker & DevOps Fundamentals, подпишись на CoddyKit PRO. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.

Чему я научусь в уроке «Проверка безопасности образов контейнеров»?

Интегрируйте инструменты проверки образов в конвейер CI/CD, чтобы выявлять уязвимости в образах Docker. Ты практикуешь Docker & DevOps Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Docker & DevOps Fundamentals?

Предыдущий опыт не требуется. Docker & DevOps Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Проверка безопасности образов контейнеров»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Docker & DevOps Fundamentals?

Да. Каждый урок Docker & DevOps Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Проверка безопасности образов контейнеров
  2. Безопасность контейнеров во время выполнения
  3. Управление секретами и RBAC
  4. Сетевые политики и минимальные привилегии в сети
← Назад к Docker & DevOps Fundamentals