Назад в библиотеку

Источник: Гетьман А.И., Маркин Ю.В., Обыденков Д.О., Падарян В.А., Тихонов А.Ю. Подходы к представлению результатов анализа сетевого трафика // Труды ИСП РАН. 2016. №6. С.103-110

Подходы к представлению результатов анализа сетевого трафика

1А. И. Гетьман <thorin@ispras.ru>,
1Ю. В. Маркин <ustas@ispras.ru>,
1Д. О. Обыденков, <obydenkov@ispras.ru>,
1,2В. А. Падарян <vartan@ispras.ru>,
1А. Ю. Тихонов <fireboo@ispras.ru>

1 Институт системного программирования РАН

109004, Россия, г. Москва, ул. А. Солженицына,д. 25

2 Московский государственный университет имени М.В. Ломоносова,

119991 ГСП-1, Москва, Ленинские горы

Аннотация. В статье предложены различные способы представления результатов анализа сетевого трафика, необходимость в которых возникает прежде всего в задачах обеспечения сетевой информационной безопасности. Рассмотрена возможность построения полного графа сетевых взаимодействий, а также создания временной диаграммы передачи пакетов. Эти компоненты используются при расследовании инцидентов нарушения ИБ. Временная диаграмма также применяется при анализе туннельных протоколов, поскольку позволяет аналитику определить, какие именно заголовки протоколов необходимо визуализировать. Для задач, связанных с обратной инженерией, а также отладкой сетевых протоколов, предлагается использовать журнал, в котором фиксируются ошибки разбора заголовков протоколов. Представленные графические компоненты либо не имеют аналогов среди opensource-инструментов, либо улучшают уже существующие opensource-решения.

Ключевые слова: анализ сетевого трафика; отладка сетевых протоколов; граф сетевых взаимодействий; визуализация; журнал ошибок разбор

DOI: 10.15514/ISPRAS-2016-28(6)-7

Для цитирования: Гетьман А.И., Маркин Ю.В. Обыденков Д.О., Падарян В.А., Тихонов А.Ю. Подходы к представлению результатов анализа сетевого трафика. Труды ИСП РАН, том 28, вып. 6, 2016, стр. 103-110. DOI: 10.15514/ISPRAS-2016-28(6)-7

Работа поддержана грантом РФФИ 15-07-07652 А

1. Введение

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

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

2. Обзор существующих средств анализа

Большинство популярных инструментов анализа сетевого трафика либо не имеют графического интерфейса (Snort [1], The Bro Network Security Monitor [2]), либо изначально разрабатывались для решения других задач и удовлетворяют указанным требованиям лишь частично [3]. Наиболее популярным инструментом из второй группы является инструмент Wireshark [4]. Основным средством представления сетевой трассы в нём являются разобранные пакеты в виде списка, при этом только для одного выделенного пакета отображается полный стек протоколов и значения полей в заголовках этих протоколов. Пакет, как элемент списка, представляется посредством строки, состоящей из значений фиксированного набора полей, выделенных в заголовке протокола сетевого уровня (IP-адреса), а также полей заголовка протокола самого высокого уровня, который удалось разобрать. Фиксированность представления пакетов может вызывать трудности во многих случаях. В частности, это проявляется при анализе туннельных протоколов. Так протокол GRE [5] (рис. 1) предназначен для инкапсуляции пакетов сетевого уровня модели OSI в IP-пакеты: сетевой пакет, таким образом, содержит два заголовка протокола IP. В списке пакетов инструмент Wireshark отобразит поля последнего (верхнего) IP-заголовка, который с точки зрения туннельного соединения не является репрезентативным: чтобы понять, какой хост из внутренней сети инициировал взаимодействие, аналитику придется выделять каждый пакет и проверять значение поля сетевого адреса нижележащего IP-заголовка.

Другим способом визуализации сетевых соединений в Wireshark является просмотр иерархий протоколов [6], присутствующих в трассе. Однако отображение осуществляется в виде общего дерева протоколов с указанием некоторой суммарной статистики соединений, но без возможности просмотра и перехода к конкретным представителям соединений, соответствующих заданному типу вложенности протоколов, для просмотра параметров этих соединений и дальнейшего их анализа (рис. 2).

Рис. 1. Пример организации GRE-туннеля

Рис. 1. Пример организации GRE-туннеля

Fig. 1. GRE tunneling scheme.

Рис. 2. Пример отображения вложенности взаимодействий в Wireshark.

Рис. 2. Пример отображения вложенности взаимодействий в Wireshark.

Fig. 2. Wireshark's protocol hierarchy statistics.

3. Реализованные формы представления результатов анализа и их применение

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

Рассмотренные opensource-инструменты не предоставляют графических компонентов для работы с такими сценариями.

Предлагаемые компоненты представления результатов разбора опираются на модель описания данных [7], используемую ядром системы анализа, разрабатываемой в ИСП РАН. В отличие от Wireshark все сетевые пакеты (а не только выбранный пользователем) отображаются посредством дерева с выделенными заголовками инкапсулируемых протоколов (рис. 3). Таким образом, не возникает трудностей при работе с туннельными протоколами.

Рис. 3. Пример отображения стека протоколов для нескольких пакетов.

Рис. 3. Пример отображения стека протоколов для нескольких пакетов.

Fig. 3. ProtoSphere's protocol stack visualization for several packets.

Предлагается два способа визуализации сетевых взаимодействий:

Оба графа строятся по дереву сетевых узлов. Сетевой узел – это обобщение понятий отправителя и получателя для сетевых протоколов. Например, для протокола IPv4 сетевой узел описывает IP-адрес, тогда как для протокола TCP – порт. Вершина (сетевой узел) B дерева является дочерней по отношению к вершине A, если B характеризует отправителя (получателя) в заголовке некоторого протокола, вложенном (в рамках сетевого пакета) в заголовок нижележащего (согласно модели OSI) протокола, в котором выделен отправитель (получатель) A.

Граф Endpoints (рис. 4а) отображает сетевые соединения, относящиеся к протоколу самого низкого уровня в анализируемом файле. В качестве вершин здесь как правило выступают MAC- или IP-адреса. Ребра соединяют сетевые узлы, между которыми был передан хотя бы один сетевой пакет.

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

Заметим, что комбинация графов Endpoints и Nodes также позволяет визуализировать результаты задачи расследования сетевой обстановки, когда по трафику требуется определить, какие сетевые службы (приложения) запущены на том или ином компьютере в сети.

Рис. 4. (а) Пример графа Endpoints (б) Пример графа Nodes.

Рис. 4. (а) Пример графа Endpoints (б) Пример графа Nodes.

Fig. 4. (a) Endpoints graph (b) Nodes graph.

Для проведения детального анализа отдельного взаимодействия предлагается временна́я диаграмма, где каждый пакет отображается в виде стрелки с указанием отправителя и получателя (рис. 5). При этом можно указать, какие заголовки протоколов и какие поля в них должны отображаться над стрелками. Таким образом аналитик может адаптировать графический компонент под свои нужды. Следует отметить, что в анализаторе Wireshark есть аналогичный компонент [8], однако в нём отсутствует возможность настройки полей, значения которых будут отображаться для каждого пакета, что может быть неудобно, если интересующее поле отсутствует, или приводить к перегруженности отображения, если полей слишком много.

Вложенность взаимодействий с указанием параметров соединений отображается в дереве разбора (рис. 6). Именно в таком виде ядро инструмента хранит результаты анализа.

Рис. 5. Пример временно́й диаграммы.

Рис. 5. Пример временно́й диаграммы.

Fig. 5. Time-based graph.

Рис. 6. Пример дерева разбора с отображением параметров соединений.

Рис. 6. Пример дерева разбора с отображением параметров соединений.

Fig. 6. ProtoSphere's protocol hierarchy statistics with display of connection settings.

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

Описанные графические компоненты синхронизированы друг с другом и допускают быстрое переключение между различными представлениями для повышения эффективности решения прикладных задач анализа сетевого трафика.

Список литературы

  1. Snort. https://www.snort.org/, дата обращения: 10.10.2016
  2. The Bro Network Security Monitor. https://www.bro.org/, дата обращения: 10.10.2016
  3. Ю. В. Маркин, А. С. Санаров. Обзор современных инструментов анализа сетевого трафика. Препринты ИСП РАН, № 27, 2014
  4. Wireshark. https://www.wireshark.org/, дата обращения: 10.10.2016
  5. IETF RFC 2784. D. Farinacci, T. Li, S. Hanks, D. Meyer, P. Traina, Generic Routing Encapsulation, March 2000
  6. The Protocol Hierarchy window. https://www.wireshark.org/docs/wsug_html_chunked/ChStatHierarchy.html, дата обращения: 10.10.2016
  7. Гетьман А.И., Маркин Ю.В., Падарян В.А., Тихонов А.Ю.. Модель представления данных при проведении глубокого анализа сетевого трафика. Труды ИСП РАН, том 27, вып. 4, 2015 г., стр. 5-22. DOI: 10.15514/ISPRAS-2015-27(4)-1
  8. Robert Shimonski. The Wireshark Field Guide: Analyzing and Troubleshooting Network Traffic. Elsevier Science & Technology Books, 2013, 128 p.

Назад в библиотеку