Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 17(103)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3

Библиографическое описание:
Бгатов И.П. АНАЛИЗ СЕТЕВОГО ТРАФИКА // Студенческий: электрон. научн. журн. 2020. № 17(103). URL: https://sibac.info/journal/student/103/178262 (дата обращения: 25.11.2024).

АНАЛИЗ СЕТЕВОГО ТРАФИКА

Бгатов Игорь Петрович

магистрант, кафедра системы автоматизированного проектирования, Пензенский государственный университет,

РФ, Пенза

АННОТАЦИЯ

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

 

Ключевые слова: анализ сетевого трафика, разбор сетевого трафика, сетевые пакеты, формат сетевого пакета, сетевые протоколы, анализ сетевых протоколов, WireShark.

 

Сетевой пакет представляет собой последовательность элементов данных какого-либо протокола (например протокол TCP). Элемент данных протокола называется PDU – Packet Data Unit. Сетевой стек протоколов организован в соответствие стандарту сетевой модели OSI/ISO. Согласно стандарту стек состоит из следующих уровней:

  • Прикладной уровень;
  • Уровень представления;
  • Сеансовый уровень;
  • Транспортный уровень;
  • Сетевой уровень;
  • Канальный уровень;
  • Физический уровень.

Каждый протокол работает на определенном уровне этой модели (кроме физического). Физический уровень представляет собой непосредственный набор устройств и проводников для обеспечения работы сети. Таким образом, на канальном уровне работают протоколы Ethernet, Token Ring, FibreChannel. На сетевом – IP, IPv6 и т.д. [1].

Каждый узел сети, если это позволено конфигурацией, может отправлять и принимать пакеты. На отправке пакет проходит по сетевому стеку протоколов сверху вниз, на приеме снизу вверх. То есть при отправке пакет генерируется протоколом высокого уровня (например, HTTP хочет сформировать GET запрос веб страницы), и передает его по стеку вниз. Следующий протокол добавляет к PDU протокола HTTP свой PDU. Подробная схема представлена на рисунке 1.

 

Рисунок 1. Путь сетевого пакета по стеку протоколов при отправке

 

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

Стоит отметить что протоколов и видов их PDU огромное количество. Каждый PDU определенного протокола имеет свою структуру. Программы для анализа сетевого трафика должны знать эти структуры, иначе проанализировать PDU будет невозможно. Модули для анализа PDU протоколов называют по разному, в популярной программе «WireShark» их называют диссекторами, где то их называют парсерами [2]. Суть их заключаются в том, что они содержат информацию обо всех возможных PDU своего протокола и знают, за что отвечает каждое поле, могут выделить это поле из сырых данных пакета и передать оставшиеся данные в другой модуль разбора.

Например, структура PDU протокола Ethernet является следующей:

  • Шесть байт данных занимает MAC адрес узла, которому отправляется пакет;
  • Шесть байт данных занимает MAC адрес узла, который отправляет пакет;
  • Два байта данных занимает идентификатор следующего по стеку протокола, чей PDU располагается за Ethernet данными.

Таким образом, зная структуру PDU Ethernet протокола, анализатор сетевого трафика извлекает информацию о MAC адресах источника и назначения пакета, а также понимает какой PDU лежит далее [3].

Идентификатором протокола следующего уровня (за канальным идет сетевой) является двух байтное число, например идентификатор протокола IPv4 – 0x0800.

Протоколы сетевого уровня также в своем PDU несут информацию о протоколе следующего уровня (то есть транспортного). В структуре пакета IPv4  отведен один байт под идентификатор транспортного протокола. Идентификатор протокола TCP – 0x06.

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

Транспортные протоколы не несут в себе идентификаторов следующих за ними протоколов. Однако они несут информацию о портах отправки и приема пакетов. Протоколы прикладного, сеансового уровня чаще всего закреплены за определенными портами. Например, порт 0x80 используется протоколом http,  логично привести данные идущие за транспортным уровнем к структуре http пакета.

Однако привязки протоколов к портам не являются сто процентной гарантией того что этот пакет действительно несет PDU этого протокола.

Поэтому на этапе анализа пакетов следующих за транспортным уровнем применяется так называемый эвристический анализ.

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

После того как все PDU во всем сетевом пакете были разобраны, можно провести непосредственный анализ. Например, разобрав PDU протокола HTTP можно узнать, какие данные, получает или запрашивает пользователь (если они не зашифрованы). На основе этой информации работодатель можно сделать вывод занимается ли его подчиненный работой или же проводит время впустую, занимаясь просмотром развлекательного контента.

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

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

 

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

  1. Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели [Электронный ресурс] / Habr. – Режим доступа: https://habr.com/ru/post/307252/, свободный  (Дата обращения: 02.04.2020)
  2. Chapter 9. Packet Dissection. [Электронный ресурс] / WireShark Documentation. – Режим доступа: https://www.wireshark.org/docs/wsdg_html_chunked/ChapterDissection.html#ChDissectWorks, свободный  (Дата обращения: 04.04.2020)
  3. Гетьман А. И.  Модель представления данных при проведении глубокого анализа сетевого трафика [Текст] // Труды Института системного программирования РАН. — 2015. Москва: ООО «BAK» — С - 9-12;

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

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.