Салют ,
Данная лабораторная работа посвещена изучению аудита безопасности 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и остановите уязвимостей приложение, почистите контейнера
Troobleshooting
- Права для исполнения скрипта
- На macOS/AArch64 docker-bench-security может не запускаться из‑за ограничений Docker Desktop и это работает для Linux‑VM. На Mac используем Trivy‑скан и разбор конфигурации compose‑файлов.
Links
- Docker
- Docker Engine security
- Docker Bench for Security
- CIS Docker Benchmark
- Trivy: Container Security Scanner
- Markdown
- Gist
- GitHub Docs
- GitHub CLI
Copyright © 2025 Elijah S Shmakov

