Skip to content

Latest commit

 

History

History
195 lines (143 loc) · 14.2 KB

File metadata and controls

195 lines (143 loc) · 14.2 KB

Салют 👋,
Данная лабораторная работа посвящена изучению аудита безопасности 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 и практике промышленного Docker hardening.

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

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

Контекст безопасности

Основные принципы безопасности Docker описаны в Лаб. №5 — здесь фокус на аудите и проверке их выполнения через CIS Benchmark.

Уровни CIS Docker Benchmark

Level 1
БазовыйОбязательный
Минимальный набор проверок, не влияющий на производительность. Подходит для всех окружений.
Level 2
РасширенныйПродвинутый
Углублённые проверки, могут ограничивать функциональность. Для production и высокого уровня защиты.

Категории проверок CIS

1. Host ConfigurationАудит, файловые разрешения, логирование Docker daemon, настройки ядра хоста
2. Docker DaemonTLS, авторизация, сетевой режим, логирование, live restore, user namespace
3. Docker Daemon FilesПрава на docker.sock, конфиги daemon, TLS-сертификаты, /etc/docker
4. Container ImagesДоверенные базовые образы, USER не root, HEALTHCHECK, минимизация пакетов
5. Container RuntimeAppArmor/seccomp, capabilities, privileges, read-only FS, ресурсные лимиты
6. Docker Security OpsСканирование образов, Content Trust, мониторинг, incident response

Задание

  • 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. Проверьте работу Docker и сделайте скрипт audit.sh исполняемым
  • 3. Разверните уязвимое приложение как отдельные стенды
$ docker compose up -d # основной web, app, postgres
$ docker-compose -f vulnerable-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, .xlsx и опишите их в отчете. Файлы конвертируются в эти директории
"├── 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 vulnerable-app.yml down
$ docker system prune -f

Container Vulnerability Scanning (Trivy)

Помимо аудита конфигурации (CIS Benchmark), важно сканировать сами образы на известные CVE в OS-пакетах и языковых зависимостях.

  • 11. Установите Trivy и просканируйте образы из docker-compose.yml
# установка (macOS)
$ brew install aquasecurity/trivy/trivy

# установка (Linux)
$ curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin

# сканирование образа из compose
$ trivy image --severity HIGH,CRITICAL <image_name>:<tag>

# JSON-отчёт для анализа
$ trivy image --format json --output audit_reports/json/trivy-report.json <image_name>:<tag>
  • 12. Проанализируйте результаты Trivy: определите, из каких слоёв приходят уязвимости — из базового образа или из установленных зависимостей. Предложите меры снижения: обновление base image, пиннинг версий, multi-stage build
  • 13. Сравните подходы: CIS Benchmark (конфигурация хоста) vs Trivy (CVE в образах). В каких ситуациях нужен каждый?

Troubleshooting

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

Смотри также


Links