Docker — мощная платформа для контейнеризации, но она также имеет уязвимости, которые могут быть использованы злоумышленниками. В этой статье мы рассмотрим основные уязвимости Docker и способы защиты от них, а также приведём команды для практического применения.
1️⃣ Привилегированные Контейнеры
Опасность: Контейнеры с флагом --privileged получают доступ к устройствам и ядру ОС, что может привести к эскалации привилегий.
➡️ Не используйте
--privileged.➡️ Для доступа к устройствам используйте флаг
--device.docker run --device=/dev/sda1 -it ubuntu
2️⃣ Уязвимости в Образах
Опасность: Использование устаревших или уязвимых образов может стать вектором атак.
➡️ Используйте официальные и обновляемые образы.
➡️ Регулярно сканируйте образы с помощью Trivy.
trivy image my-image:latest
3️⃣ Сетевая Безопасность
Опасность: Открытые порты и неправильные настройки могут привести к атаке.
➡️ Ограничьте сетевые настройки и используйте фильтрацию трафика через флаг
-p.docker run -p 8080:80 my-web-app
4️⃣ Изоляция Контейнеров
Опасность: Плохая изоляция может привести к утечке данных или эскалации привилегий.
➡️ Используйте SELinux или AppArmor для изоляции.
➡️ Включите Docker Content Trust для работы с подписанными образами.
docker run --security-opt label:type:docker_t my-image
5️⃣ Защита Docker Daemon Опасность: Несанкционированный доступ к Docker Daemon может дать злоумышленнику права root.
➡️ Ограничьте доступ к Docker Daemon.
➡️ Защитите сокет
docker.sock.chmod 660 /var/run/docker.sock
chown root:docker /var/run/docker.sock
