Перейти к содержанию


Салют 👋,
Данная лабораторная работа посвещена изучению аудита безопасности Docker при использовании Docker Bench Security. Мы рассмотрим как с ним работать. Мы разберем как проверить конфигурации безопасности и выявить их не корректность, как произвести чекап с CIS Docker Benchmark v1.6.0.

Для сдачи данной работы также будет требоваться ответить на дополнительыне вопросы по описанным темам.


Структура репозитория лабораторной работы

lab06
├── audit.sh
├── config
   └── nginx.conf
├── docker-compose.yml
├── README.md
└── vulnerable-app.yml

Материал

  • Docker Bench Security - официальным инструментом аудита безопасности от Docker, который проверяет наличие практик при развертывания на CIS Docker Benchmark

  • Реальный аудит контейнерной безопасности выполняется на Linux‑хосте / WSL2 с нативным Docker Engine», что соответствует методике CIS и практике промышленного Dockerhardening

  • Рассматриваемые вопросы безопасности

    • Привилегионные контейнера
    • Захардкоженные данные учеток
    • Отключенные профили безопасности (AppArmor, Seccomp)
    • Прямое монтирования файловой системы
    • Устаревшие образы и явный запуск сервисов от привелегированного пользователя
    • Дополнительные сервисы, лишние утилиты
    • Ррасширенные volume‑маунты
    • env и SQL‑инициализации
    • Примеры анти‑паттернов privileged, host‑network, docker.sock, secrets-in-env, outdated images
  • Контекст безопасности

    • Не задавать пользователей с правами «root» для работы сервисов внутри контейнеров.
    • Не запускать контейнеры в привилегированном режиме.
    • Не отключать профили безопасности Docker.
    • Не допускать запуск контейнеров, использующих тип сети «host»
    • Не разрешать доступ к docker.socket изнутри контейнера. Не подключать docker socket в контейнер без необходимости, либо с использованием плагинов авторизации.
    • Не использовать секреты в открытом виде в Docker-файлах образов. По возможности не использовать переменные окружения и не хранить секреты внутри контейнера. Хранение и управление секретами возложить на сторонний сервис.
    • Ограничивать и контролировать использование ресурсов контейнерами. Указывать ограничения на уровне самого ПО или на уровне контейнеров для использования ресурсов хоста.
    • Контролировать качество базовых образов контейнеров. Использовать официальные образы и использовать образы с минимально необходимым набором инструментов.
    • Сканировать образы на наличие уязвимостей и проверки требований ИБ (Compliance Checks)
    • Сбрасывание capabilities уменьшает поверхность атаки
    • Файловые системы только для чтения предотвращают фальсификалирование
    • Пространства имен пользователя улучшает изоляцию

Задание

  • 1. Необходимо установить Docker Engine для Linux
$ sudo apt-get update
$ sudo apt-get install -y docker.io
$ sudo usermod -aG docker "$USER"

$ sudo systemctl start docker
$ docker pull docker/docker-bench-security
  • 2. Проверьте работу докера и сделать скрипт audit.sh исполняемым
  • 3. Развернуть уязвимое приложение как отдельные стенды
$ docker compose up -d # основной web, app, postgres
$ docker-compose -f dvulnerable-app.yml up -d # поверх для vulnerable-web, debug-shell
    -f # file
    up # создает и поднимает файлы из compose
    -d # фоновый режим
  • 4. Запустите скрипт из venv и проанализируйте то, что вывело на терминале и что вывело при конвертировании
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install openpyxl odfpy
$ ./audit.sh
$ deactivate # или $ deactivate 2>/dev/null || true
  • 5. Проведите анализ уязвимостей, опишите их причину возникновения
  • 6. Опишите влияния уязвимостей, их сценарий атаки
  • 7. Оцените риски ИБ и предложите меры для их снижения:
    • Следует разобрать .yaml описав, что в них считается не безопасным и почему
    • Опишите сценарии реализации рисков CR, DL
    • Предложили исправленные .yaml
  • 8. Сделайте анализ уязвимостей из сгенерированных файлов .odt, .xslx и опишите их в отчете. Файлы конвертируются в эти директории
"├── json/          (Trivy JSON outputs)"
"├── text/          (CIS audit text outputs)"
"├── xlsx/          (Excel spreadsheets)"
"└── odt/           (OpenDocument Text files)"
  • 9. Подготовьте отчет gist.
  • 10. Почистите кеш от venv и остановите уязвимостей приложение, почистите контейнера
$ rm -rf venv
$ docker-compose -f demo-vulnerable-app.yml down
$ docker system prune -f

Troobleshooting

  • Права для исполнения скрипта
$ chmod +x xxx.sh # разрешение прав при permission denied
  • На macOS/AArch64 docker-bench-security может не запускаться из‑за ограничений Docker Desktop и это работает для Linux‑VM. На Mac используем Trivy‑скан и разбор конфигурации compose‑файлов.

Copyright © 2025 Elijah S Shmakov

Logo


Логотип