Как стать автором
Обновить
265.15
FirstVDS
Виртуальные серверы в ДЦ в Москве

Обзор Luntry. Платформа для обнаружения аномалий в реальном времени для Kubernetes

Время на прочтение5 мин
Количество просмотров4K

В современных реалиях информационная безопасность стала важнейшим аспектом в жизни IT-систем. Количество атак постоянно растет, появляются новые виды угроз. Постоянно происходят утечки информации. Одна из самых популярных платформ для оркестрации – Kubernetes – также подвержена всевозможным рискам. В связи с этим необходим инструмент, который сможет выявлять подозрительную активность, а также обеспечивать должный уровень безопасности не только кластера Kubernetes, но и приложений, которые запущены внутри него. Одним из таких решений является коммерческий продукт отечественного производства под названием Luntry.

Luntry относится к классу Observability решений. Под Observability подразумевается показатель того, насколько эффективно можно определить внутреннее состояние системы по ее выходным данным. 

Основная цель Luntry заключается в повышении видимости происходящего в приложениях, запущенных в кластере Kubernetes. Благодаря предоставляемой информации появляется возможность отслеживать бесперебойную работу своих сервисов и управлять их безопасностью, не замедляя производственный цикл.

С технической точки зрения, Luntry представляет собой набор контейнеров, оформленных в Kubernetes-ресурсы. Решение представляет из себя систему сенсоров, поставляемых в виде DaemonSet, которые работают на нодах кластера, собирают информацию и передают ее на бэкенд.

Сенсор не может навредить системе — Luntry является read-only системой. Это означает, что платформа не записывает, не создает и не вносит какие-либо изменения в конфигурацию кластера. Благодаря технологии eBPF платформа способна быстро и без вреда для системы снимать системные вызовы с нод и использовать их для обучения и формирования модели поведения внутри контейнера.

Установка Luntry

Установить Luntry можно несколькими способами:

  1. При помощи helm репозитория;

  2. Установить локально. Данный способ используется в случае, если невозможно использовать удаленный 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.

Теги:
Хабы:
+9
Комментарии2

Публикации

Информация

Сайт
firstvds.ru
Дата регистрации
Дата основания
Численность
51–100 человек
Местоположение
Россия
Представитель
FirstJohn