28 lines
2.8 KiB
Plaintext
28 lines
2.8 KiB
Plaintext
6.1 Docker
|
||
https://blog.aquasec.com/docker-security-best-practices
|
||
- Помните, что при использовании FROM наследуются все проблемы исходного имиджа
|
||
- Нельзя хардкодить credentials внутри имиджей - для управления такими вещами следует использовать
|
||
соответствующие решения
|
||
- Следует помнить, что контейнеры - это не секьюрити-решение и все контейнеры и сам демон бегут
|
||
от рута и соответственно, есть возможность повышения привилегий и выхода за пределы контейнера
|
||
https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/ - хорошим вариантом
|
||
будет настройка профиля AppArmor для защиты основной системы на уровне ядра.
|
||
- Обратите внимание на сложность и большое количество абстракций
|
||
- Проверяйте образы, скачанные с dockerhub, не доверяйте вслепую
|
||
- Ограничивайте доступные ресурсы для контейнеров
|
||
- Необходимо использовать SECCOMP для ограничения доступа
|
||
- Необходимо периодически мониторить активность конетйнеров
|
||
- Необходимы правила менеджмента жизненных циклов контейнеров
|
||
- Контейнеры должны находиться на отдельном разделе
|
||
- Необходима грамотная настройка сети для контейнеров
|
||
- legacy registry и Userland Proxy должен быть отключен
|
||
- В случае удаленного доступа необходимо использовать TLS для демона
|
||
- Включите логгирование на уровне хотя бы INFO
|
||
- Делайте HEALTHCHECK в контейнере
|
||
- Запретите setuid и setgid в образах
|
||
- COPY более безопасный, чем ADD
|
||
- По возможности не используйте привилегированные контейнеры
|
||
- Настройте container restart policy
|
||
- Используйте отдельный network namespace для контейнеров
|
||
- Не открывайте устройства с хоста напрямую в контейнер
|
||
- Проверьте настройки cgroups |