В современных реалиях информационная безопасность стала важнейшим аспектом в жизни IT-систем. Количество атак постоянно растет, появляются новые виды угроз. Постоянно происходят утечки информации. Одна из самых популярных платформ для оркестрации – Kubernetes – также подвержена всевозможным рискам. В связи с этим необходим инструмент, который сможет выявлять подозрительную активность, а также обеспечивать должный уровень безопасности не только кластера Kubernetes, но и приложений, которые запущены внутри него. Одним из таких решений является коммерческий продукт отечественного производства под названием Luntry.
Luntry относится к классу Observability решений. Под Observability подразумевается показатель того, насколько эффективно можно определить внутреннее состояние системы по ее выходным данным.
Основная цель Luntry заключается в повышении видимости происходящего в приложениях, запущенных в кластере Kubernetes. Благодаря предоставляемой информации появляется возможность отслеживать бесперебойную работу своих сервисов и управлять их безопасностью, не замедляя производственный цикл.
С технической точки зрения, Luntry представляет собой набор контейнеров, оформленных в Kubernetes-ресурсы. Решение представляет из себя систему сенсоров, поставляемых в виде DaemonSet, которые работают на нодах кластера, собирают информацию и передают ее на бэкенд.
Сенсор не может навредить системе — Luntry является read-only системой. Это означает, что платформа не записывает, не создает и не вносит какие-либо изменения в конфигурацию кластера. Благодаря технологии eBPF платформа способна быстро и без вреда для системы снимать системные вызовы с нод и использовать их для обучения и формирования модели поведения внутри контейнера.
Установка Luntry
Установить Luntry можно несколькими способами:
При помощи helm репозитория;
Установить локально. Данный способ используется в случае, если невозможно использовать удаленный helm репозиторий.
В официальной документации описан каждый способ установки с необходимыми параметрами. Далее будет рассмотрен способ установки при помощи helm репозитория и использования внутренней СУБД PostgreSQL. Если установка планируется на production среду, то необходимо использовать внешнюю СУБД.
Для начала необходимо подключить helm репозиторий. Команда для подключения репозитория Luntry выглядит следующим образом:
helm repo add luntry --username %USER% --password @PASSWORD@
https://registry.luntry.com/chartrepo/luntry/
%USER% — пользователь для доступа к репозиторию.
%PASSWORD% — пароль пользователя для доступа к репозиторию.
Пользователь и пароль от репозитория предоставляет вендор.
После того как репозиторий будет подключен можно приступать к установке Luntry. Для этого используется следующая команда:
helm install luntry luntry/luntry -n luntry-new --create-namespace \
--set database.enabled=true \
--set admin.user="luntry" \
--set admin.password="luntry_pass"
-n luntry-new – luntry будет установлен в namespace с названием luntry-new.
--set database.enabled – данный параметр со значением true означает что будет использоваться внутренняя СУБД.
--set admin.user="luntry" – данный параметр задает имя пользователя, которое будет использоваться для входа в веб-интерфейс. В данном случае имя пользователя будет задано как luntry.
--set admin.password="luntry_pass" – данный параметр задает пароль пользователю, который будет использоваться для входа в веб-интерфейс. В данном случае имя пользователя будет задано как luntry.
После того как у всех компонентов системы появится статус ready (в среднем данная процедура занимает от 2-3 минут до 7 минут) можно перейти в веб-интерфейс Luntry.
Отслеживать статус подов можно при помощи команды:
kubectl get po -n luntry-new
Для доступа к веб-интерфейсу необходимо получить IP-адрес компонента luntry-visualizer (компонент веб-интерфейса) при помощи команды:
kubectl get svc luntry-visualizer -n luntry-new
Далее перейти по адресу и порту, указанному в выводе. В данном случае веб-интерфейс luntry расположен по адресу 10.107.214.110 и слушает порт 32235.
При первом входе отобразится главная страница с аутентификацией. Логин и пароль от веб-интерфейса необходимо использовать те, которые были заданы в момент установки при помощи helm чарта (параметры set admin.user и set admin.password):
Обзор программы
Luntry позволяет работать с системой в следующих режимах:
Cluster Mode — работа с системой на уровне кластера;
Microservice Mode — работа с системой на уровне микросервисов.
При входе в программу открывается главный раздел – Dashboard, который отображает основную информацию о кластере, а также информацию о политиках кластера и аномалиях (подробнее о том, что такое аномалия будет описано далее). В разделе System отображается количество кластеров, нод, установленных сенсоров, количество namespace, workloads и количество образов.
Далее рассмотрим основные разделы Luntry:
Policies
Anomalies
Infrastructure
Kubernetes Map
Kubernetes network
Runtime Policy
Anomalies
RBAC
Policies отображает количество политик, которые в данный момент проходят обучение, количество активных, неактивных и архивированных политик.
Anomalies отображает матрицу аномалий.
Luntry позволяет создавать автоматически обученные политики, с помощью которых можно находить аномалии, связанные с процессами, работой с файлами и сетью.
Аномалия — это действие, которое контейнер на совершал во время обучения\валидации политики.
Матрица аномалий показывает количество аномалий каждого типа:
Process — аномалии, связанные с процессами;
File — аномалии, связанные с файловыми операциями;
Network — аномалии, связанные с сетевым взаимодействием.
Infrastructure отображает более подробную информацию о кластере Kubernetes и нодах кластера:
Kubernetes Map отображает сетевое взаимодействие между Workloads компонентами.
При открытии данного раздела появляется меню с фильтрами, в котором можно выбрать namespace, временной промежуток, за который необходимо отобразить события, а также выбрать links – типы связей. Связи делятся на следующие категории:
All — все типы связей;
Internet — связи с сущностями в сети Internet;
Aliases — связи с сущностями, заданными в системе администратором;
Namespaces — связи с сущностями из других namespaces, не выбранных в фильтре;
Localhost — взаимодействие по localhost;
Kubernetes network отображает сетевое взаимодействие между различными компонентами кластера.
Каждый компонент оформлен соответствующим образом. Прямоугольные блоки — это Namespaces. Каждый узел — это определённый Kubernetes ресурс со своей соответствующей иконкой. При этом показывается родитель Pod’ов, а не они сами (Pods может быть 10-100).
Связи между узлами — это либо фактическое хождение трафика (сплошная линия), либо логическая связь между ресурсами (пунктирная линия).
Runtime Policy отображает список политик для образов контейнеров в соответствующих Kubernetes ресурсах с учетом их разновидности.
Anomalies отображает список аномалий, обнаруженных в кластере.
Если открыть аномалию, то отобразится вся подробная информация о выбранной аномалии, включая ее график, на котором отображаются действия, выполненные на хосте (набор команд), а также дата и время выполнения действий, которые привели к созданию аномалии:
В разделе RBAC (расшифровывается как Role-based access control и представляет собой систему распределения прав доступа к различным объектам в кластере Kubernetes) происходит работа с субъектами (Service Accounts, Users, Groups), правами и ролями RBAC.
В разделе Images отображается список образов контейнеров. Число рядом с именем образа обозначает, в каком количестве данный образ в текущий момент времени используется. С помощью раскрывающихся элементов можно просмотреть детали для каждого образа.
Переключатель Only Used Images позволяет отображать в списке только активные образы (образы, которые сейчас используются тем или иным контейнером).
Подводя итоги, можно сказать что Luntry отлично подойдет в качестве решения для обеспечения безопасности кластеров Kubernetes, а также микросервисов. Благодаря обширному набору функций, Luntry также можно использовать как систему мониторинга за кластером Kubernetes. Кроме того, одним из главных преимуществ Luntry является отечественная разработка, что важно в текущих реалиях импортозамещения.
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.
antivoland
А сколько денег хотят за продукт, есть информация? На офф.сайте только по запросу высылают и не понятно как будет рассчитываться стоимость...