Система мониторинга безопасности от компании VK Tech


VK SIEM - модульная система, которая способна обрабатывать очень большое количество данных. Она объединяет как новые, так и успешно зарекомендовавшие себя инженерные решения VK.

Инфраструктура VK SIEM размещена в едином облаке VK (OneCloud) – там же, где находятся сервисы ВКонтакте, Одноклассников, Дзен, VK Видео и других сервисов VK. Что это значит? Огромные вычислительные мощности и масштабируемость, что делает VK SIEM невероятно быстрым.

Особенности VK SIEM:

  • Модуль нормализации: преобразование «сырых» логов в CEF+
    • Для обработки всех поступающих событий мы используется универсальную схему Common Event Format, но постоянно расширяем ее (сейчас она содержит 300+ полей). 
    • Для нормализации событий используеся Vector.dev.
  • Модуль обогащения: собвтенная реализация «активных листов»
    • Сразу на потоке добавляется контекст, чтобы уже на моменте корреляции получать всю необходимую информацию о событии.
    • Реализован функционал «статических активных листов» (обновление списков обогащения раз в несколько часов) и «динамических активных листов» (обновление списков обогащений несколько раз в минуту на основе информации из предыдущих событий). Один из сценариев «динамических активных листов» – обновления на основе результатов коррелятора.
  • Хранилище обогащений: Key-value хранилище, источник модуля обогащения.
  • Коррелятор
    • Потоковый коррелятор событий, который анализирует на скоростях в миллионы EPS. Может легко масштабироваться без потери производительности. Все правила написаны и обновляются собственными аналитиками.
    • Также дополнительно разрабатываем «ретроспективный» коррелятор для корреляции и поиска IoC в логах, автоматически записанных в собственные базы данных.
  • Пользовательский интерфейс (UI) для аналитиков SOC
    • Используется OpenSearch Dashboards: во-первых, чтобы сохранить пользовательский опыт наших инженеров (это очень удобный инструмент для работы с логами и выявления аномалий), а во-вторых, это Open Source, который можно использовать как конструктор и дорабатывать под свои потребности.
  • Холодное хранилище
    • Выбран YTSaurus как успешно зарекомендовавшее себя внутри VK (и не только) решение для распределенного хранения данных, особенно, с потенциалом для масштабирования. Основная задача – получать доступ к логам, полученные минимум за последние полгода, а в идеале – без ограничения по сроку.
  • Индексатор
    • Разработан модуль индексации, чтобы обеспечить быстрый полнотекстовый поиск по петабайтам событий и возможностью сложных агрегаций.
  • Горячее хранилище
    • Чтобы максимально быстро находить актуальные события, в нашей архитектуре предусмотрено горячее хранилище. В сочетании с индексатором это дает аналитикам возможность за несколько секунд получать доступ к данным за последние 3 месяца. 
    • Используется Click House, который предоставляется в инфраструктуре как сервис.
  • Транслятор
    • Так как модульное решение включает ClickHouse (горячее хранилище), YTSaurus (холодное хранилище), собственный индексатор и ядро OpenSearch Dashboard (только UI, от хранения событий в OpenSearch сознательно отказались), то для их объединения и бесшовного функционирования понадобилось создать транслятор. 
    • Используя внешний индексатор, он преобразовывает запросы пользователя в базы данных, а затем снова преобразовывает для отображения ответа в UI. Транслятор умеет одновременно работать с холодным и горячим хранилищем, поэтому аналитику не нужно думать, где хранятся те или иные данные, все работает по одной кнопке.