Аудит событий безопасности Deckhouse Virtualization Platform (DVP) основан на системе обнаружения угроз Falco. Deckhouse запускает объединённые в DaemonSet агенты Falco на каждом узле, после чего те приступают к сбору системных вызовов ОС и данных, полученных в ходе аудита событий Kubernetes.

Разработчики Falco рекомендуют запускать его как systemd-сервис, что может быть затруднительно в кластерах Kubernetes с поддержкой автомасштабирования. В DVP реализованы дополнительные механизмы безопасности, такие как мультитенантность и политики контроля ресурсов, которые в сочетании с использованием DaemonSet обеспечивают высокий уровень защиты.

Агенты Falco на узлах кластера DVP

На каждом узле кластера запускается под Falco со следующими компонентами:

  • falco — собирает события, обогащает их метаданными и отправляет в stdout;
  • rules-loader — собирает данные с правилами из кастомных ресурсов FalcoAuditRules и сохраняет их в общую директорию;
  • falcosidekick — принимает события от falco и экспортирует их в виде метрик во внешние системы;
  • kube-rbac-proxy — защищает эндпоинт метрик falcosidekick от неавторизованного доступа.

Компоненты пода Falco

Правила аудита

Для анализа событий безопасности применяются правила, определяющие критерии подозрительного поведения. Каждое правило представляет собой выражение, содержащее определённое условие и написанное в соответствии с синтаксисом условий 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 автоматически обновляет конфигурацию.

Работа shell-operator с правилами Falco