За горизонтом логов: как Graph Neural Networks переосмысливает анализ сетевого трафика

“Анализ сетевого трафика, это не просто просмотр логов. Это попытка увидеть структуру хаоса. Традиционные методы смотрят на пакеты, мы же предлагаем смотреть на связи. Graph Neural Networks, это не очередной алгоритм машинного обучения, а принципиально иной способ мышления о сети, где узел, это не изолированная единица, а продукт своего окружения.”

Graph Neural Networks для анализа сетевого трафика

Почему графы, а не просто данные

Сетевой трафик по своей природе реляционен. Компьютер не общается с сервером в вакууме — он часть сложной паутины соединений: клиенты, серверы, маршрутизаторы, межсетевые экраны. Каждое событие — запрос, ответ, ошибка, это не просто строка в логе, а ребро между двумя узлами этой паутины. Традиционные методы анализа, будь то сигнатурный поиск или даже некоторые модели машинного обучения, часто работают с «плоскими» данными: изолированными пакетами или потоками. Они теряют контекст — кто с кем общался до этого, через какие промежуточные узлы прошел трафик, какова общая топология взаимодействий в этот момент времени.

Graph Neural Network (GNN) работает иначе. Она принимает на вход саму сеть, представленную в виде графа. Узлы (ноды), это хосты, устройства, сервисы. Ребра — установленные соединения, сессии, запросы. Каждый узел и ребро могут иметь свои атрибуты: для узла — IP-адрес, тип ОС, количество открытых портов; для ребра — объем переданных данных, протокол, временные метки, флаги TCP.

GNN учится не на признаках объекта, а на признаках его соседей и структуры связей. Аномальное поведение устройства часто становится очевидным не по его собственным логам, а по тому, как изменился характер его взаимодействия с окружением. Например, рабочий компьютер, внезапно начавший сканировать порты на соседних серверах, — его собственные метрики (нагрузка ЦП, память) могут быть в норме, но паттерн его связей резко изменится. Именно это изменение GNN и может обнаружить.

От потоков данных к графу событий: практический разбор

Первая и ключевая задача — трансформация сырых сетевых данных (NetFlow, sFlow, PCAP, логи межсетевых экранов) в граф. Это не формальное преобразование, а процесс наделения данных структурным смыслом.

Определение узлов и их признаков

Узел, это не всегда отдельный IP. Решение зависит от уровня детализации. На уровне L3 узлом может быть IP-адрес или подсеть. На уровне L4/L7 — комбинация IP и порта (сервис). Для анализа внутренней сети корпорации часто используют сущности «пользователь» (учетная запись) и «устройство» (инвентарный номер).

Признаки узла (node features) формируются из статической и динамической информации:

  • Статика: Роль в сети (клиент, сервер, шлюз), принадлежность к сегменту (DMZ, внутренняя сеть), данные из CMDB.
  • Динамика (агрегированная за временное окно): Количество исходящих/входящих соединений, разнообразие используемых портов, средний объем передаваемых данных, типичные протоколы.

Эти признаки представляются в виде числового вектора, который подается на вход нейронной сети.

Определение ребер и их признаков

Ребро устанавливается между двумя узлами при наличии хотя бы одного сетевого взаимодействия в анализируемом временном окне (например, 5 минут).

Признаки ребра (edge features), это характеристики самого взаимодействия:

  • Общее количество пакетов и байт в обоих направлениях.
  • Продолжительность сессии.
  • Используемый транспортный протокол (TCP/UDP) и порт назначения.
  • Флаги TCP (SYN, ACK, RST, FIN) и их соотношение, что может указывать на сканирование или неполные соединения.
  • Временные метки начала и конца.

Граф может быть направленным (от источника к назначению) или ненаправленным, в зависимости от решаемой задачи.

Архитектуры GNN для задач информационной безопасности

Не все архитектуры Graph Neural Networks одинаково полезны для анализа трафика. Выбор зависит от того, что мы хотим обнаружить: аномалии в поведении узлов, подозрительные ребра (соединения) или глобальные структурные изменения в графе.

GCN (Graph Convolutional Network) для классификации узлов

GCN агрегирует информацию от соседей узла. Каждый слой сети обновляет вектор признаков узла, «смешивая» его с усредненными признаками соседних узлов. После нескольких таких слоев узел «знает» не только о себе, но и о топологии своего окружения на 2-3 шага вперед.

Применение: Присвоение узлам меток «нормальный», «подозрительный», «скомпрометированный». Обученная на исторических данных модель может, например, выявлять хосты, участвующие в ботнете, по косвенным признакам — их связи с известными C&C-серверами или друг с другом образуют специфическую кластеризованную структуру, которую GCN улавливает.

GraphSAGE для работы с динамическими графами

Классический GCN требует знания всего графа целиком для обучения и вывода. В реальной сети новые узлы (например, временные виртуальные машины) появляются постоянно. GraphSAGE решает эту проблему, обучаясь не на фиксированном графе, а на функции агрегации признаков соседей. Это позволяет генерировать эмбеддинги (векторные представления) для ранее невиданных узлов, основываясь только на их локальных связях.

Применение: Мониторинг в реальном времени, где граф постоянно обновляется. Можно вычислять эмбеддинг для каждого нового соединения и сравнивать его с эмбеддингами нормальных исторических взаимодействий, выявляя отклонения.

GAT (Graph Attention Network) для взвешивания важности связей

Не все соседи узла одинаково важны для оценки его состояния. Связь с корпоративным сервером обновлений весомее, чем фоновый запрос к NTP-серверу. GAT вводит механизм внимания: нейронная сеть сама обучается определять, признаки каких соседей стоит учитывать в большей степени при обновлении эмбеддинга целевого узла.

Применение: Точное выявление целенаправленных атак (APT), где злоумышленник использует легитимные сервисы для скрытного взаимодействия. GAT может научиться «не обращать внимания» на стандартный фоновый трафик и сфокусироваться на редких, но значимым связям между критичными активами.

Обучение без учителя: как найти неизвестную угрозу

Основная проблема в ИБ — отсутствие размеченных данных об атаках, особенно о новых. Поэтому supervised learning (обучение с учителем) часто неприменим. На помощь приходят методы обучения без учителя на графах.

Идея: обучить GNN реконструировать исходный граф или его признаки. Модель учится на нормальном трафике, запоминая типичные паттерны связей. В процессе работы она пытается предсказать, должно ли существовать ребро между двумя узлами, или какими должны быть признаки узла, исходя из его окружения.

Высокая ошибка реконструкции — сигнал аномалии. Например:

  • Аномальная связь: Модель, обученная на трафике офиса, «не ожидает» прямого RDP-соединения между компьютером бухгалтера и инженерным сервером в другом сегменте.
  • Аномальный узел: Новый сервер в сети, чьи паттерны исходящих соединений (к кому и как часто он обращается) резко отличаются от паттернов других серверов той же роли.
  • Структурная аномалия: Внезапное появление плотно связанной группы узлов (звездообразная или полносвязная структура), что может указывать на активность вредоносного ПО, рассылающего себя или сканирующего сеть.

Для этого подходят архитектуры вроде Graph Autoencoder, которые кодируют граф в сжатое латентное представление, а затем декодируют обратно. Разница между исходным и восстановленным графом и есть метрика аномальности.

Интеграция в существующие процессы и регуляторные требования

Внедрение GNN — не замена SIEM или NTA-системам, а их усиление. Рассмотрим точки интеграции в контексте требований регуляторов, таких как 152-ФЗ и приказы ФСТЭК.

Обогащение контекста событий ИБ

GNN может работать как движок обогащения. Получая от SIEM или системы сбора логов информацию о новом сетевом событии, GNN-модель в реальном времени вычисляет контекстный «графовый эмбеддинг» для участвующих хостов. Этот эмбеддинг — числовой вектор — добавляется в качестве дополнительного признака к событию. Правила корреляции в SIEM или модели машинного обучения могут использовать этот признак для повышения точности. Например, событие «исходящее соединение на нестандартный порт» само по себе не критично. Но если эмбеддинг хоста-инициатора в этот момент сильно отклоняется от его типичного «графового профиля», вес события резко возрастает.

Верификация сегментации сети (микросетегментация)

Требования регуляторов предписывают обеспечить изоляцию сегментов сети. GNN может использоваться для автоматического анализа реальных потоков трафика и их сопоставления с заданными политиками сегментации. Модель строит граф разрешенных и фактических соединений между сегментами. Обнаружение устойчивых ребер, нарушающих политику (например, прямые связи из сегмента IoT в сегмент финансовых систем), становится наглядной задачей поиска аномалий в графе.

Моделирование угроз и оценка уязвимости

GNN позволяет перейти от анализа отдельных уязвимостей (CVE) к оценке риска на уровне системы. Граф, где узлы — активы, а ребра — потенциальные пути перемещения злоумышленника (учетные данные, уязвимости, доверенные соединения), можно использовать для моделирования атаки. Алгоритмы, работающие на таком графе (по сути, разновидность GNN), могут предсказать наиболее вероятные цепочки компрометации от точки входа до критичных активов, что напрямую соотносится с требованиями по оценке актуальных угроз.

Ограничения и практические сложности

Несмотря на потенциал, внедрение GNN сопряжено с вызовами, о которых редко пишут в научных статьях.

  • Вычислительная сложность: Обучение и вывод на больших графах (десятки тысяч узлов) требуют значительных ресурсов GPU. Динамический характер сети означает необходимость частого перестроения или инкрементального обновления графа, что добавляет сложности.
  • Качество исходных данных: Модель работает только с тем, что ей подано. Неполные данные NetFlow, отсутствие информации о внутреннем трафике хоста (loopback, межпроцессное взаимодействие) или некорректная агрегация узлов приводят к построению искаженного графа и, как следствие, к ложным выводам.
  • Интерпретируемость: «Почему модель пометила этот узел как аномальный?» — ответ GNN часто сводится к анализу многомерного эмбеддинга, что сложно объяснить аналитику. Развиваются методы объяснимого ИИ (XAI) для графов, но они пока не стали стандартом.
  • Адаптация к нормальному дрейфу: Сеть меняется легитимно: внедряются новые сервисы, меняется топология. Модель, обученная без учителя, может начать считать эти изменения аномалиями. Требуются механизмы непрерывного дообучения или детектирования концептуального дрейфа в самих графовых данных.

Эти ограничения не отменяют ценность подхода, но указывают на то, что GNN, это мощный инструмент в арсенале, а не серебряная пуля. Его эффективность максимальна при интеграции в комплексную платформу, где он отвечает именно за анализ структурных и реляционных аномалий, дополняя другие методы.

Оставьте комментарий