GNN for Network Traffic Analysis

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
GNN for Network Traffic Analysis
Complex
~2-4 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1212
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    822

Разработка GNN для анализа трафика в сетях

Сетевой трафик — граф по природе: хосты (узлы), соединения (рёбра). GNN обнаруживает аномалии и атаки, которые невидимы при анализе отдельных flows, но очевидны в топологическом контексте.

Где GNN превосходит традиционный IDS

Традиционные IDS (Snort, Suricata) работают с сигнатурами и пороговыми правилами для отдельных пакетов и flows. Сложные атаки распределены по времени и множеству хостов:

  • APT (Advanced Persistent Threat): медленное lateral movement через множество хостов
  • Botnet C2: трафик от одного бота выглядит нормально, сеть — нет
  • Insider threat: нормальный трафик, аномальная топология

Представление трафика как граф

Dynamic network graph

Скользящее временное окно (5–15 минут): все соединения формируют граф. Узлы = IP-адреса (с признаками: тип устройства, роль в сети, исторический профиль). Рёбра = агрегированные flow метрики за окно (байты, пакеты, порты, протоколы, duration).

Признаки узлов (node features):

  • Количество исходящих/входящих соединений
  • Уникальные destination IPs/ports
  • Объём трафика по направлениям
  • Протокольное распределение
  • Временные паттерны (burstiness)
  • Отклонение от исторического baseline

Признаки рёбер (edge features):

  • Packet size distribution
  • Inter-arrival time statistics
  • Payload entropy (шифрование vs. plaintext)
  • TCP flag patterns
  • Duration и persistence

Детекция аномалий и атак

Link prediction для обнаружения аномальных соединений

Модель обучается предсказывать вероятность существования рёбра по базовому поведению сети. Новое неожиданное соединение (хост A никогда не коммуницировал с хостом B) → низкая predicted probability → аномалия.

Node classification

Классификация узлов: legitimate, C2_server, infected_host, scanner, exfiltration_source. Обучение на лабельных данных (известные инциденты + нормальный трафик).

Graph-level anomaly detection

Для обнаружения атак, затрагивающих всю сеть (DDoS, worm spreading): сравнение текущего graph embedding с исторической нормой. Variational Graph Autoencoder (VGAE) обучается на нормальном трафике и детектирует отклонения.

Обнаружение специфических угроз

Botnet detection

Боты: синхронное поведение (beaconing), схожие communication patterns, hierarchical C2 structure. GNN с temporal attention: обнаружение узлов с похожими temporal graph patterns, соответствующих botnet membership.

Lateral movement (APT)

Медленное распространение через сеть: каждый hop выглядит нормально, но последовательность хопов — нет. Temporal path analysis: GNN с рекуррентным компонентом для отслеживания path patterns во времени.

DNS tunneling

Необычные DNS-паттерны: высокая частота, длинные субдомены, нетипичные record types. Graph-based: DNS-сервер → клиент рёбра с аномальными атрибутами.

Реализация на PyTorch Geometric

from torch_geometric.nn import GATConv, global_mean_pool
from torch_geometric.transforms import NormalizeFeatures

class TrafficGNN(torch.nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1 = GATConv(in_channels=20, out_channels=64, heads=8, dropout=0.2)
        self.conv2 = GATConv(64 * 8, 32, heads=1)
        self.anomaly_head = torch.nn.Linear(32, 1)  # Node-level anomaly score

    def forward(self, data):
        x, edge_index, edge_attr = data.x, data.edge_index, data.edge_attr
        x = F.elu(self.conv1(x, edge_index, edge_attr))
        x = F.dropout(x, p=0.2, training=self.training)
        x = self.conv2(x, edge_index)
        return torch.sigmoid(self.anomaly_head(x))  # Anomaly score per node

Production архитектура

Сбор трафика: NetFlow/IPFIX/sFlow collectors (Ntopng, PMACCT)
Stream processing: Apache Flink (windowed graph construction)
Graph DB: Neo4j (real-time neighborhood queries)
Inference: TorchServe + PyTorch Geometric
Alerting: Elastic SIEM / Splunk integration
Visualization: Gephi / Grafana + custom graph UI

Пропускная способность: до 100k flows/second при инкрементальном обновлении графа. Latency alert: 30–90 секунд (размер окна + inference time).

Precision/recall на NSL-KDD и реальных корпоративных данных: AUC 0.94–0.97 для известных attack types, 0.82–0.88 для novel attacks (zero-day).