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


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

<p>В настоящее время задача анализа сетевого трафика приобретает все большую актуальность: этому способствует как развитие и внедрение новых сетевых технологий (VoIP, P2P, потоковое видео), так и появление большого количества протоколов прикладного уровня, использующихся новыми сетевыми приложениями.</p>
<p>В зависимости от конкретной системы, использующей анализ, и решаемой задачи применяется либо анализ на потоке (онлайн), либо анализ записанных сетевых трасс (оффлайн). Среди систем, работающих на потоке, можно выделить:</p>
<ul>
<li>защитные системы: межсетевые экраны, системы обнаружения и предотвращения вторжений (IDS/IPS), системы управления информационной безопасностью (SIEM), системы защиты от DDoS атак;</li>
<li>системы, обеспечивающие качество связи (QoS, QoE) и оптимизирующие пропускную способность канала (WAN Optimization);</li>
<li>системы применения политик к сетевому трафику (PCEF, PCRF, NAC).</li>
</ul>
<p>К задачам, решающимся на записанных сетевых трассах, относятся:</p>
<ul>
<li>разработка и отладка разборщиков протоколов, в т.ч. для последующего применения на потоке;</li>
<li>анализ несоответствий между стандартом протокола и конкретной реализацией;</li>
расследование инцидентов нарушения информационной безопасности подготовка сигнатур для систем безопасности, работающих на потоке;</li>
<li>анализ закрытых сетевых протоколов (например, C&C протоколов botnet).</li>
</ul>
<p>Подзадачи, возникающие при онлайн и оффлайн анализе, очень близки: идентификация протокола, разбор полей заголовков с выделением их значений, восстановление высокоуровневых объектов, таких как файлы, сайты и изображения из сетевых пакетов. В то же время условия анализа существенно различаются:</p>
<ul>
<li>для работы на потоке требуется обработка на высокой скорости потенциально бесконечного потока данных в условиях ограниченных ресурсов памяти;</li>
<li>при анализе сетевых трасс скорость обработки и ресурсные ограничения существенной роли не играют – на первый план выходят вопросы уровня детализации анализа, визуализации результатов и удобства навигации по данным в процессе анализа.</li>
</ul>
<p>Важным требованием является совместимость между системами анализа – возможность быстрой проверки «на потоке» разборщика нового протокола или сигнатуры, разработанных в оффлайн окружении. Для реализации такого функционала в системе анализа ProtoSphere используется схема, приведенная на рисунке 1.</p>
<p><strong>Рисунок 1. Общая схема системы ProtoSphere.</strong></p>
<p><img src="/images/protosphere/protosphere-1.jpg" alt="ProtoSphere. Программная инфраструктура для проведения углубленного анализа сетевого трафика с возможностью разбора заголовков произвольного стека протоколов" /></p>
<p>Ключевые особенности ядра системы:</p>
<ul>
<li>обработка данных, содержащих искажения, потери, перестановки и дублирование пакетов, асимметричный трафик;</li>
<li>управление ресурсами для поддержки состояний разбираемых потоков;</li>
<li>поддержка анализа сжатых и шифрованных данных;</li>
<li>поддержка туннелей произвольной конфигурации;</li>
<li>извлечение передаваемых объектов из трафика: видео/аудио потоки, веб-страницы, файлы.</li>
</ul>
<p>С учетом задач, решаемых посредством анализа сетевых трасс, критическим фактором, влияющим на скорость и эффективность, является наличие в среде анализа графических компонентов, позволяющих визуализировать различные аспекты сетевых взаимодействий. Базовыми компонентами отображения являются:</p>
<ul>
<li>список сетевых пакетов, где каждый пакет представлен посредством дерева разбора с заголовками протоколов различных уровней дерево потоков с учётом уровней вложенности протоколов окно дампа данных, отображающее содержимое выделенного объекта;</li>
<li>список элементов, из которых состоит выделенный объект (например, IP-фрагменты для IP-пакета);</li>
<li>окно объектов, включающих выделенный объект как составную часть (в т.ч., TCP-сеанс для TCP-пакета).</li>
</ul>
<p>Важной подзадачей является локализация одного или нескольких сетевых соединений для последующего детального анализа. Для поддержки решения этой подзадачи используется два графа: граф оконечных узлов и граф, детализирующий сетевые взаимодействия выбранного узла. В обоих случаях вершинами графа являются стороны сетевого взаимодействия, а ребра отражают факт взаимодействия и его характеристики. Общий вид графов приведен на рисунке 2.</p>
<p><strong>Рисунок 2 (а). Граф оконечных узлов.</strong></p>
<p><img src="/images/protosphere/protosphere-2a.jpg" alt="ProtoSphere. Программная инфраструктура для проведения углубленного анализа сетевого трафика с возможностью разбора заголовков произвольного стека протоколов" /></p>
<p><strong>Рисунок 2 (б). Граф взаимодействий отдельного узла.</strong></p>
<p><img src="/images/protosphere/protosphere-2b.jpg" alt="ProtoSphere. Программная инфраструктура для проведения углубленного анализа сетевого трафика с возможностью разбора заголовков произвольного стека протоколов" /></p>
<p>При исследовании отдельного сетевого взаимодействия или группы связанных взаимодействий удобным способом представления является временная диаграмма, пример которой приведен на рисунке 3.</p>
<p><strong>Рисунок 3. Временная диаграмма.</strong></p>
<p><img src="/images/protosphere/protosphere-3.jpg" alt="ProtoSphere. Программная инфраструктура для проведения углубленного анализа сетевого трафика с возможностью разбора заголовков произвольного стека протоколов" /></p>
<p>Данный компонент поддерживает гибкую настройку, позволяя указывать, какие заголовки протоколов и поля в них должны отображаться над стрелками – таким образом пользователь может адаптировать компонент под свои задачи.</p>
<p>Для получения информации о событиях, таких как обнаружение неподдерживаемого протокола, несоответствие формата пакета стандарту и др., возникающих в процессе анализа, используется компонент ведения журнала, общий вид которого показан на рисунке 4.</p>
<p><strong>Рисунок 4. Журнал событий.</strong></p>
<p><img src="/images/protosphere/protosphere-4.jpg" alt="ProtoSphere. Программная инфраструктура для проведения углубленного анализа сетевого трафика с возможностью разбора заголовков произвольного стека протоколов" /></p>
<p>Все приведенные компоненты синхронизированы между собой и позволяют переключаться в наиболее удобное для текущего этапа анализа представление. Например, по событию в журнале можно переключиться на конкретный сетевой пакет в дереве разбора и его поле, вызвавшее данное событие, что наиболее востребовано при итеративной разработке модуля разбора закрытого сетевого протокола.</p>

Исполнитель

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

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