В данном подразделе описывается архитектура подсистемы Security (подсистемы безопасности) Deckhouse Kubernetes Platform (DKP).
В подсистему Security входят следующие модули:
В подразделе на данный момент описаны следующие компоненты подсистемы Security:
Контроль целостности — совокупность механизмов проверки контейнеров для обеспечения безопасности и их соответствия заданной конфигурации.
В Deckhouse Kubernetes Platform (DKP) контроль целостности работает:
Также, начиная с версии 1.74, в DKP реализован механизм контроля целостности модулей, который защищает их от подмены и изменения. Этот механизм включается автоматически при поддержке операционной системой на узлах, где установлена DKP, модуля ядра erofs. При отсутствии этого модуля ядра DKP продолжит работу без механизма контроля целостности модулей, при этом появится алерт о неработоспособности этой функциональности.
DKP обеспечивает контроль целостности контейнеров приложений на уровне контейнерного рантайма (CRI).
После скачивания образа приложения DKP проверяет его целостность, сверяя хеш-сумму SHA-256. Запуск контейнера возможен только при успешной проверке контрольной суммы.
Последовательность контроля целостности при запуске:
Для повышения уровня безопасности можно настраивать политики загрузки образов при использовании политик безопасности, чтобы гарантировать использование актуальных версий при запуске контейнеров.
Аудит событий безопасности в DKP включает в себя анализ событий ядра Linux и аудита событий API Kubernetes. Это позволяет отслеживать, что приложения в подах работают в неизменном виде, соответствуют ожидаемому состоянию и не были модифицированы.
Для аудита используются:
В процессе контроля целостности работающих контейнеров могут выявляться такие угрозы, как запуск оболочек командной строки в контейнерах или подах, обнаружение контейнеров, работающих в привилегированном режиме, монтирование небезопасных путей в контейнеры, попытки чтения секретных данных.
Аудит событий безопасности Deckhouse Kubernetes Platform (DKP) основан на системе обнаружения угроз Falco. DKP запускает объединённые в DaemonSet агенты Falco на каждом узле, после чего те приступают к сбору системных вызовов ОС и данных, полученных в ходе аудита событий Kubernetes.
Разработчики Falco рекомендуют запускать его как systemd-сервис, что может быть затруднительно в кластерах Kubernetes с поддержкой автомасштабирования. В DKP реализованы дополнительные механизмы безопасности, такие как мультитенантность и политики контроля ресурсов, которые в сочетании с использованием DaemonSet обеспечивают высокий уровень защиты.
На каждом узле кластера запускается под Falco со следующими компонентами:
Для анализа событий безопасности применяются правила, определяющие критерии подозрительного поведения. Каждое правило представляет собой выражение, содержащее определённое условие и написанное в соответствии с синтаксисом условий Falco.
В DKP предусмотрены следующие виды встроенных правил:
Для добавления пользовательских правил используется кастомный ресурс FalcoAuditRules.
У каждого агента Falco есть сайдкар-контейнер с экземпляром сервиса shell-operator. Этот экземпляр считывает правила из ресурсов Kubernetes, конвертирует их в правила Falco и сохраняет правила в директорию /etc/falco/rules.d/ в поде. При добавлении нового правила Falco автоматически обновляет конфигурацию.
Опишите вашу задачу, и мы поможем вам ее решить