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