Институт системного программирования им. В.П. Иванникова РАН


ProtoSphere. Программная инфраструктура для проведения углубленного анализа сетевого трафика с возможностью разбора заголовков произвольного стека протоколов

В настоящее время задача анализа сетевого трафика приобретает все большую актуальность: этому способствует как развитие и внедрение новых сетевых технологий (VoIP, P2P, потоковое видео), так и появление большого количества протоколов прикладного уровня, использующихся новыми сетевыми приложениями.

В зависимости от конкретной системы, использующей анализ, и решаемой задачи применяется либо анализ на потоке (онлайн), либо анализ записанных сетевых трасс (оффлайн). Среди систем, работающих на потоке, можно выделить:

  • защитные системы: межсетевые экраны, системы обнаружения и предотвращения вторжений (IDS/IPS), системы управления информационной безопасностью (SIEM), системы защиты от DDoS атак;
  • системы, обеспечивающие качество связи (QoS, QoE) и оптимизирующие пропускную способность канала (WAN Optimization);
  • системы применения политик к сетевому трафику (PCEF, PCRF, NAC).

К задачам, решающимся на записанных сетевых трассах, относятся:

  • разработка и отладка разборщиков протоколов, в т.ч. для последующего применения на потоке;
  • анализ несоответствий между стандартом протокола и конкретной реализацией;
  • расследование инцидентов нарушения информационной безопасности подготовка сигнатур для систем безопасности, работающих на потоке;
  • анализ закрытых сетевых протоколов (например, C&C протоколов botnet).

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

  • для работы на потоке требуется обработка на высокой скорости потенциально бесконечного потока данных в условиях ограниченных ресурсов памяти;
  • при анализе сетевых трасс скорость обработки и ресурсные ограничения существенной роли не играют – на первый план выходят вопросы уровня детализации анализа, визуализации результатов и удобства навигации по данным в процессе анализа.

Важным требованием является совместимость между системами анализа – возможность быстрой проверки «на потоке» разборщика нового протокола или сигнатуры, разработанных в оффлайн окружении. Для реализации такого функционала в системе анализа ProtoSphere используется схема, приведенная на рисунке 1.

Рисунок 1. Общая схема системы ProtoSphere.

ProtoSphere. Программная инфраструктура для проведения углубленного анализа сетевого трафика с возможностью разбора заголовков произвольного стека протоколов

Ключевые особенности ядра системы:

  • обработка данных, содержащих искажения, потери, перестановки и дублирование пакетов, асимметричный трафик;
  • управление ресурсами для поддержки состояний разбираемых потоков;
  • поддержка анализа сжатых и шифрованных данных;
  • поддержка туннелей произвольной конфигурации;
  • извлечение передаваемых объектов из трафика: видео/аудио потоки, веб-страницы, файлы.

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

  • список сетевых пакетов, где каждый пакет представлен посредством дерева разбора с заголовками протоколов различных уровней дерево потоков с учётом уровней вложенности протоколов окно дампа данных, отображающее содержимое выделенного объекта;
  • список элементов, из которых состоит выделенный объект (например, IP-фрагменты для IP-пакета);
  • окно объектов, включающих выделенный объект как составную часть (в т.ч., TCP-сеанс для TCP-пакета).

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

Рисунок 2 (а). Граф оконечных узлов.

ProtoSphere. Программная инфраструктура для проведения углубленного анализа сетевого трафика с возможностью разбора заголовков произвольного стека протоколов

Рисунок 2 (б). Граф взаимодействий отдельного узла.

ProtoSphere. Программная инфраструктура для проведения углубленного анализа сетевого трафика с возможностью разбора заголовков произвольного стека протоколов

При исследовании отдельного сетевого взаимодействия или группы связанных взаимодействий удобным способом представления является временная диаграмма, пример которой приведен на рисунке 3.

Рисунок 3. Временная диаграмма.

ProtoSphere. Программная инфраструктура для проведения углубленного анализа сетевого трафика с возможностью разбора заголовков произвольного стека протоколов

Данный компонент поддерживает гибкую настройку, позволяя указывать, какие заголовки протоколов и поля в них должны отображаться над стрелками – таким образом пользователь может адаптировать компонент под свои задачи.

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

Рисунок 4. Журнал событий.

ProtoSphere. Программная инфраструктура для проведения углубленного анализа сетевого трафика с возможностью разбора заголовков произвольного стека протоколов

Все приведенные компоненты синхронизированы между собой и позволяют переключаться в наиболее удобное для текущего этапа анализа представление. Например, по событию в журнале можно переключиться на конкретный сетевой пакет в дереве разбора и его поле, вызвавшее данное событие, что наиболее востребовано при итеративной разработке модуля разбора закрытого сетевого протокола.

Разработчик/участник

Компиляторные технологии

Перейти к списку всех технологий