Почему в Kaspersky Container Security проверки пишутся на CEL, а не на Rego
В Kaspersky Container Security рассказали, почему для проверок безопасности в Kubernetes выбрали язык CEL вместо Rego. Речь идёт о защите Runtime в K8s: готовые средства вроде Pod Security Admission, OPA Gatekeeper и Kyverno закрывают лишь базовый уровень, а реальные требования ИБ почти всегда выходят за рамки предустановленных проверок. Как только политика перестаёт быть тривиальной, возникают две инженерные проблемы — и выбор языка описания правил становится принципиальным.
Подробности
Когда речь заходит о проверках безопасности в Kubernetes, на ум в первую очередь приходят готовые средства: Pod Security Admission, OPA Gatekeeper, Kyverno. Они хорошо закрывают базовый уровень — привилегированные контейнеры, отсутствие лимитов, запуск от root. Однако реальные требования ИБ редко умещаются в набор из десятка предустановленных проверок. Здесь кроется ловушка: как только политика перестаёт быть тривиальной, начинаются две разные проблемы, и обе они инженерные. Именно поэтому в Kaspersky Container Security отказались от использования Rego — языка, лежащего в основе OPA Gatekeeper, — и построили механизм проверок на CEL. Выбор в пользу CEL обусловлен тем, что сложные политики требуют от инженера не только понимания логики проверки, но и удобства её описания, сопровождения и отладки. Поскольку в компании всё строится вокруг безопасности, защита Kubernetes стала для команды первостепенной задачей, что и определило требования к инструменту описания правил.Что делать
Специалистам, отвечающим за безопасность кластеров Kubernetes, стоит обратить внимание на следующие моменты: — Оценить, насколько текущий набор проверок покрывает реальные требования ИБ, а не только базовый уровень. Предустановленные политики Pod Security Admission, OPA Gatekeeper и Kyverno полезны, но их почти всегда недостаточно. — При выборе языка описания политик учитывать сложность поддержки нетривиальных правил: чем сложнее политика, тем выше цена ошибки и трудозатраты на сопровождение. — Рассмотреть CEL как альтернативу Rego для задач Runtime-защиты в K8s — особенно если основные трудности возникают именно на этапе описания и поддержки сложных проверок. — Изучить опыт Kaspersky Container Security: в компании отдельно подчёркивают, что защита Runtime в Kubernetes — это приоритет, и подход к инструментам описания проверок выбирался исходя из инженерных, а не маркетинговых соображений. Выбор языка описания проверок — не второстепенная деталь, а фактор, определяющий, насколько быстро и безопасно команда сможет реагировать на реальные угрозы в Kubernetes. Опыт Kaspersky Container Security показывает, что при усложнении политик инженерные критерии выходят на первый план, и CEL в этой роли оказывается предпочтительнее Rego.Источник: Хабр — Информационная безопасность

