Аудит событий безопасности Deckhouse Virtualization Platform (DVP) основан на системе обнаружения угроз Falco. Deckhouse запускает объединённые в DaemonSet агенты Falco на каждом узле, после чего те приступают к сбору системных вызовов ОС и данных, полученных в ходе аудита событий Kubernetes.
Разработчики Falco рекомендуют запускать его как systemd-сервис, что может быть затруднительно в кластерах Kubernetes с поддержкой автомасштабирования. В DVP реализованы дополнительные механизмы безопасности, такие как мультитенантность и политики контроля ресурсов, которые в сочетании с использованием DaemonSet обеспечивают высокий уровень защиты.
На каждом узле кластера запускается под Falco со следующими компонентами:
falco— собирает события, обогащает их метаданными и отправляет в stdout;rules-loader— собирает данные с правилами из кастомных ресурсов FalcoAuditRules и сохраняет их в общую директорию;falcosidekick— принимает события отfalcoи экспортирует их в виде метрик во внешние системы;kube-rbac-proxy— защищает эндпоинт метрикfalcosidekickот неавторизованного доступа.
Правила аудита
Для анализа событий безопасности применяются правила, определяющие критерии подозрительного поведения. Каждое правило представляет собой выражение, содержащее определённое условие и написанное в соответствии с синтаксисом условий Falco.
Встроенные правила
В DVP предусмотрены следующие виды встроенных правил:
- правила для аудита Kubernetes, которые помогают выявить проблемы с безопасностью DVP и самим механизмом аудита.
Эти правила расположены в контейнере
falcoпо пути/etc/falco/k8s_audit_rules.yaml; - нормативные правила, удовлетворяющие требованиям приказа ФСТЭК России №118 от 4 июля 2022 г.
«Требования по безопасности информации к средствам контейнеризации».
Эти правила
fstecописаны в формате кастомного ресурса FalcoAuditRules.
Пользовательские правила
Для добавления пользовательских правил используется кастомный ресурс FalcoAuditRules.
У каждого агента Falco есть сайдкар-контейнер с экземпляром сервиса shell-operator.
Этот экземпляр считывает правила из ресурсов Kubernetes, конвертирует их в правила Falco
и сохраняет правила в директорию /etc/falco/rules.d/ в поде.
При добавлении нового правила Falco автоматически обновляет конфигурацию.