Проверка безопасности Docker-образов с помощью Trivy

Проверка безопасности Docker-образов с помощью Trivy

Безопасность контейнеров является одним из важнейших аспектов кибербезопасности. В этой статье я познакомлю вас с инструментом для проверки безопасности контейнеров Docker. Мы рассмотрим установку и использование Trivy.

Еще по теме: Сканер уязвимостей из Nmap с помощью Vulscan

Проверка безопасности Docker-образов с помощью Trivy

Aquasecurity Trivy — это сканер уязвимостей Docker-образов. Trivy умеет сканировать как образ в репозитории, так и локальный образ. Он нацелен на нахождение уязвимостей двух типов – проблемы сборок ОС (поддерживаются Alpine, RedHat (EL), CentOS, Debian GNU, Ubuntu) и проблемы в зависимостях (Gemfile.lock, Pipfile.lock, composer.lock, package-lock.json, yarn.lock, Cargo.lock).

Хотя на рынке существует множество инструментов для проверки безопасности контейнеров, этот, безусловно, один из самых легких и многофункциональных.

Trivy может работать на разных платформах Linux, включая RHEL, CentOs, Ubuntu, Debian, Arch Linux, MacOS, Nix и т. д. Мы будем устанавливать и использовать в Ubuntu 18.04 Bionic Beaver LTS.

Установка Trivy

Есть разные способы установки Trivy на разные платформы. Чтобы установить Trivy в Ubuntu, используйте следующие команды:

$ sudo apt-get install wget apt-transport-https gnupg lsb-release
$ wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
$ echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list
$ sudo apt-get update
$ sudo apt-get install trivy

Проверка безопасности Docker-образов с помощью Trivy

После установки приступим к поиску и сканированию уязвимостей.

Использование сканера уязвимостей Trivy

Чтобы запустить поиск уязвимостей образа Docker, используйте следующую команду:

$ trivy image <образ>

Например, мы хотим запустить поиск уязвимостей образа nginx:

$ trivy image nginx:latest

Проверка безопасности Docker-образов с помощью Trivy
И как видим, уязвимостей очень много. Теперь попробуем запустить проверку Alpine:

Проверка безопасности Docker-образов с помощью Trivy

Мы также можем использовать Trivy для обнаружения неправильных конфигураций безопасности в IaC, Dockerfile и манифесте Kubernetes.

Обнаружение неправильных настроек безопасности

Можно запускать проверку неправильных настроек безопасности как в файловой системе, так и в репозиториях git. Попробуем запустить сканирование файловой системы. Для этого нужно клонировать этот репозиторий:

Репозиторий git содержит файл Dockerfile и файл манифеста deployment.yaml k8s.

Dockerfile выглядит следующим образом:

FROM nginx
USER root

Обратите внимание, что мы начали с базового образа nginx и установили для пользователя значение root. Однако это не лучшая практика. Не рекомендуется использовать пользователя root для запуска контейнеров.

Файл deployment.yaml выглядит следующим образом:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          privileged: true

В этом манифесте мы целенаправленно, в качестве эксперимента установили для привилегированного атрибута в securityContext значение true. Этого конечно делать нельзя.

А теперь попробуем запустить сканирование и посмотреть, сможет ли найти эти критичную (в плане безопасности) настройку комфигурации:

$ trivy config <директория_конфига>

Проверка безопасности Docker-образов с помощью Trivy

И как видите, сканер нашел эту проблему в конфигурации.

Заключение

Trivy хорошо работает как комплексный инструмент статического анализа безопасности образов контейнеров и связанной с ними конфигурации, и он хорошо сочетается с CI. При эффективном внедрении он может значительно повысить безопасность контейнеров.

Более подробно о безопасности контейнеров Docker.

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *