Added some facts from xakep.ru

This commit is contained in:
alien 2019-09-13 00:16:43 +03:00
parent f8cb3b1f24
commit ef283bbd59
2 changed files with 16 additions and 2 deletions

View File

@ -1,6 +1,7 @@
6.9 For adminnistrators 6.9 For adminnistrators
6.1 Docker 6.1 Docker
https://blog.aquasec.com/docker-security-best-practices https://blog.aquasec.com/docker-security-best-practices
https://xakep.ru/2019/07/05/docker-security/.
6.1.1 Помните, что при использовании FROM наследуются все проблемы исходного имиджа 6.1.1 Помните, что при использовании FROM наследуются все проблемы исходного имиджа
Нельзя хардкодить credentials внутри имиджей - для управления такими вещами следует использовать Нельзя хардкодить credentials внутри имиджей - для управления такими вещами следует использовать
соответствующие решения соответствующие решения
@ -9,7 +10,8 @@
https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/ - хорошим вариантом https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/ - хорошим вариантом
будет настройка профиля AppArmor для защиты основной системы на уровне ядра. будет настройка профиля AppArmor для защиты основной системы на уровне ядра.
6.1.3 Обратите внимание на сложность и большое количество абстракций 6.1.3 Обратите внимание на сложность и большое количество абстракций
6.1.4 Проверяйте образы, скачанные с dockerhub, не доверяйте вслепую 6.1.4 Проверяйте образы, скачанные с dockerhub, не доверяйте вслепую. Верифицируйте достоверность через
Docker Content Trust
6.1.5 Ограничивайте доступные ресурсы для контейнеров 6.1.5 Ограничивайте доступные ресурсы для контейнеров
6.1.6 Необходимо использовать SECCOMP для ограничения доступа 6.1.6 Необходимо использовать SECCOMP для ограничения доступа
6.1.7 Необходимо периодически мониторить активность конетйнеров 6.1.7 Необходимо периодически мониторить активность конетйнеров
@ -27,9 +29,12 @@
6.1.18 Используйте отдельный network namespace для контейнеров 6.1.18 Используйте отдельный network namespace для контейнеров
6.1.19 Не открывайте устройства с хоста напрямую в контейнер 6.1.19 Не открывайте устройства с хоста напрямую в контейнер
6.1.20 Проверьте настройки cgroups 6.1.20 Проверьте настройки cgroups
6.1.21 Проверяйте конфигурацию при помощи Docker Bench Security
6.1.22 Проверяйте отсутствие смонтированного сокета docker внутри контейнера
6.2 Kubernets 6.2 Kubernets
https://www.cncf.io/blog/2019/01/14/9-kubernetes-security-best-practices-everyone-must-follow/ https://www.cncf.io/blog/2019/01/14/9-kubernetes-security-best-practices-everyone-must-follow/
https://rancher.com/blog/2019/2019-01-17-101-more-kubernetes-security-best-practices/ https://rancher.com/blog/2019/2019-01-17-101-more-kubernetes-security-best-practices/
https://xakep.ru/2019/08/28/bulletproof-kubernetes/
6.2.1 K8s всегда должен быть обновлен до последней версии. Новые функции безопасности - а 6.2.1 K8s всегда должен быть обновлен до последней версии. Новые функции безопасности - а
не только исправления ошибок - добавляются в каждое ежеквартальное обновление, и чтобы не только исправления ошибок - добавляются в каждое ежеквартальное обновление, и чтобы
воспользоваться ими, мы важно использовать последнюю стабильную версию. Самое лучшее, воспользоваться ими, мы важно использовать последнюю стабильную версию. Самое лучшее,
@ -53,6 +58,7 @@
им наименьший набор разрешений, необходимых для каждого сайта использования. Это лучше, чем предоставление им наименьший набор разрешений, необходимых для каждого сайта использования. Это лучше, чем предоставление
слишком широких разрешений учетной записи по умолчанию для пространства имен. Большинству приложений вообще слишком широких разрешений учетной записи по умолчанию для пространства имен. Большинству приложений вообще
не нужен доступ к API; Для них можно установить «false» для automountServiceAccountToken. не нужен доступ к API; Для них можно установить «false» для automountServiceAccountToken.
Для аудита и автоматизации настройки RBAC можно использовать Audit2rbac и Rbac-manager.
6.2.4 Выносите чувствительные процессы в отдельный namespace, чтобы ограничить потенциальное влияние компрометации. 6.2.4 Выносите чувствительные процессы в отдельный namespace, чтобы ограничить потенциальное влияние компрометации.
Такой подход снижает риск доступа к чувствительному приложению через менее защищенное приложение, которое совместно Такой подход снижает риск доступа к чувствительному приложению через менее защищенное приложение, которое совместно
использует среду выполнения контейнера или хост. Например, учетные данные Kubelet скомпрометированного узла обычно использует среду выполнения контейнера или хост. Например, учетные данные Kubelet скомпрометированного узла обычно
@ -80,7 +86,15 @@
попытках входа, желательно их влючить. попытках входа, желательно их влючить.
Проведите бенчмарк. https://www.cisecurity.org/benchmark/kubernetes/ Проведите бенчмарк. https://www.cisecurity.org/benchmark/kubernetes/
Даже если вы не используете Rancher, почитайте инструкцию по харденингу https://rancher.com/docs/rancher/v2.x/en/security/hardening-2.2/ Даже если вы не используете Rancher, почитайте инструкцию по харденингу https://rancher.com/docs/rancher/v2.x/en/security/hardening-2.2/
и бенчмаркингу https://releases.rancher.com/documents/security/latest/Rancher_Benchmark_Assessment.pdf и бенчмаркингу https://releases.rancher.com/documents/security/latest/Rancher_Benchmark_Assessment.pdf.
Утилиты для аудита: kube-bench, тест CIS Kubernetes.
6.2.10 Запустите Kubesec и выполните рекомендации по использованию сервисов хранения секретов и настроек безопасности
6.2.11 Используйте систему обнаружения вторжения наподобие Falco, настройте оповещения в корпоративный мессенджер
6.2.12 Настройте фильтрацию сетевой активности через межсетевой экран Cilium - сервер фильтрации сети с учетом API-вызовов.
6.2.13 Используйте сеть Calico для безопасного сетевого соединения. Calico - софтверный свитч, который создает сеть
третьего уровня и использует туннелирование.
6.2.14 Подумайте об использовании коммерческого SaaS секьюрити-направленности - Aqua Security, Cavirin, NeuVector, Sysdig Secure.
6.2.15 Если кластер бежит на AWS, можно использовать Kube2iam для подставления учетных данных AWS IAM в контейнеры
6.3 Bare-metal Nginx 6.3 Bare-metal Nginx
https://geekflare.com/nginx-webserver-security-hardening-guide/ https://geekflare.com/nginx-webserver-security-hardening-guide/
https://www.upguard.com/articles/10-tips-for-securing-your-nginx-deployment https://www.upguard.com/articles/10-tips-for-securing-your-nginx-deployment

Binary file not shown.