Программа для исследования сетевых протоколов. Анализаторы сетевых пакетов. Лучшие снифферы пакетов и анализаторы сети

Любой администратор рано или поздно получает инструкцию от руководства: «посчитать, кто ходит в сеть, и сколько качает». Для провайдеров она дополняется задачами «пустить кого надо, взять оплату, ограничить доступ». Что считать? Как? Где? Отрывочных сведений много, они не структурированы. Избавим начинающего админа от утомительных поисков, снабдив его общими знаниями, и полезными ссылками на матчасть.
В данной статье я постараюсь описать принципы организации сбора, учёта и контроля трафика в сети. Мы рассмотрим проблематику вопроса, и перечислим возможные способы съема информации с сетевых устройств.

Это первая теоретическая статья из цикла статей, посвящённого сбору, учёту, управлению и биллингу трафика и IT-ресурсов.

Структура доступа в сеть Интернет

В общем случае, структура доступа в сеть выглядит следующим образом:
  • Внешние ресурсы – сеть Интернет, со всеми сайтами, серверами, адресами и прочим, что не принадлежит сети, которую вы контролируете.
  • Устройство доступа – маршрутизатор (аппаратный, или на базе PC), коммутатор, VPN-сервер или концентратор.
  • Внутренние ресурсы – набор компьютеров, подсетей, абонентов, работу которых в сети необходимо учитывать или контролировать.
  • Сервер управления или учёта – устройство, на котором работает специализированное программное обеспечение. Может быть функционально совмещён с программным маршрутизатором.
В данной структуре, сетевой трафик проходит от внешних ресурсов к внутренним, и обратно, через устройство доступа. Оно передает на сервер управления информацию о трафике. Сервер управления обрабатывает эту информацию, хранит в базе, отображает, выдает команды на блокировку. Однако, не все комбинации устройств (методов) доступа, и методов сбора и управления, совместимы. О различных вариантах и пойдет речь ниже.

Сетевой трафик

Для начала необходимо определить, а что же подразумевается под «сетевым трафиком», и какую полезную статистическую информацию можно извлечь из потока пользовательских данных.
Доминирующим протоколом межсетевого взаимодействия пока остается IP версии 4 . Протокол IP соответствует 3му уровню модели OSI (L3). Информация (данные) между отправителем и получателем упаковывается в пакеты – имеющие заголовок, и «полезную нагрузку». Заголовок определяет, откуда и куда идет пакет (IP-адреса отправителя и получателя), размер пакета, тип полезной нагрузки. Основную часть сетевого трафика составляют пакеты с полезной нагрузкой UDP и TCP – это протоколы 4-го уровня (L4). Помимо адресов, заголовок этих двух протоколов содержит номера портов, которые определяют тип службы (приложения), передающего данные.

Для передачи IP-пакета по проводам (или радио) сетевые устройства вынуждены «оборачивать» (инкапсулировать) его в пакет протокола 2го уровня (L2). Самым распространенным протоколом такого типа является Ethernet . Фактическая передача «в провод» идет на 1м уровне. Обычно, устройство доступа (маршрутизатор) не занимается анализом заголовков пакетов на уровне, выше 4го (исключение – интеллектуальные межсетевые экраны).
Информация из полей адресов, портов, протоколов и счетчики длин из L3 и L4 заголовков пакетов данных и составляет тот «исходный материал», который используется при учёте и управлении трафиком. Собственно объем передаваемой информации находится в поле Length («Длина пакета») заголовка IP (включая длину самого заголовка). Кстати, из-за фрагментации пакетов вследствие механизма MTU общий объем передаваемых данных всегда больше размера полезной нагрузки.

Суммарная длина интересных нам в данном контексте IP- и TCP/UDP- полей пакета составляет 2...10% общей длины пакета. Если обрабатывать и хранить всю эту информацию попакетно, не хватит никаких ресурсов. К счастью, подавляющий объем трафика структурирован так, что состоит из набора «диалогов» между внешними и внутренними сетевыми устройствами, так называемых «потоков». Например, в рамках одной операции пересылки электронного письма (протокол SMTP) открывается TCP-сессия между клиентом и сервером. Она характеризуется постоянным набором параметров {IP-адрес источника, TCP-порт источника, IP-адрес получателя TCP-порт получателя} . Вместо того, чтобы обрабатывать и хранить информацию попакетно, гораздо удобнее хранить параметры потока (адреса и порты), а также дополнительную информацию – число и сумму длин переданных пакетов в каждую сторону, опционально длительность сессии, индексы интерфейсов маршрутизатора, значение поля ToS и прочее. Такой подход выгоден для ориентированных на соединение протоколов (TCP), где можно явно перехватить момент завершения сессии. Однако и для не ориентированных на сессии протоколов можно проводить агрегацию и логическое завершение записи о потоке по, например, таймауту. Ниже приведена выдержка из SQL-базы собственной системы биллинга , осуществляющей протоколирование информации о потоках трафика:

Необходимо отметить случай, когда устройство доступа осуществляет трансляцию адресов (NAT , маскарадинг) для организации доступа в Интернет компьютеров локальной сети, используя один, внешний, публичный IP-адрес. В этом случае специальный механизм осуществляет подмену IP-адресов и TCP/UDP портов пакетов трафика, заменяя внутренние (не маршрутизируемые в Интернете) адреса согласно своей динамической таблице трансляции. В такой конфигурации необходимо помнить, что для корректного учета данных по внутренним хостам сети съём статистики должен производиться способом и в том месте, где результат трансляции ещё не «обезличивает» внутренние адреса.

Методы сбора информации о трафике/статистике

Снимать и обрабатывать информацию о проходящем трафике можно непосредственно на самом устройстве доступа (ПК-маршрутизатор, VPN-сервер), с этого устройства передавая ее на отдельный сервер (NetFlow, SNMP), или «с провода» (tap, SPAN). Разберем все варианты по-порядку.
ПК-маршрутизатор
Рассмотрим простейший случай – устройство доступа (маршрутизатор) на базе ПК c ОС Linux.

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

  • перехват (копирование) пакетов, проходящих через сетевую карту сервера, при помощи библиотеки libpcap
  • перехват пакетов, проходящих через встроенный межсетевой экран
  • использование сторонних средств преобразования попакетной статистики (полученной одним из двух предыдущих методов) в поток агрегированной информации netflow
Libpcap


В первом случае копия пакета, проходящего через интерфейс, после прохождения фильтра (man pcap-filter) может быть запрошена клиентской программой на сервере, написанной с использованием данной библиотеки. Пакет поступает вместе с заголовком 2го уровня (Ethernet). Можно ограничить длину захватываемой информации (если нас интересует только информация из его заголовка). Примерами таких программ могут быть tcpdump и Wireshark . Существует реализация libpcap под Windows . В случае применения трансляции адресов на ПК-маршрутизаторе такой перехват можно осуществлять только на его внутреннем интерфейсе, подключенном к локальным пользователям. На внешнем интерфейсе, после трансляции, IP-пакеты не содержат информации о внутренних хостах сети. Однако при таком способе невозможно учесть трафик, создаваемый самим сервером в сети Интернет (что важно, если на нем работают веб– или почтовый сервис).

Работа libpcap требует поддержки со стороны операционной системы, что в настоящее время сводится к установке единственной бибилиотеки. При этом прикладная (пользовательская) программа, осуществляющая сбор пакетов, должна:

  • открыть необходимый интерфейс
  • указать фильтр, через который пропускать принятые пакеты, размер захватываемой части (snaplen), размер буфера,
  • задать параметр promisc, который переводит сетевой интерфейс в режим захвата вообще всех проходящих мимо пакетов, а не только адресованных MAC-адресу этого интерфейса
  • установить функцию (callback), вызываемую на каждый принятый пакет.

При передаче пакета через выбранный интерфейс, после прохождения фильтра эта функция получает буфер, содержащий Ethernet, (VLAN), IP и т.д. заголовки, общим размером до snaplen. Поскольку библиотека libcap копирует пакеты, заблокировать их прохождение при ее помощи невозможно. В таком случае программе сбора и обработки трафика придется использовать альтернативные методы, например вызов скрипта для помещения заданного IP-адреса в правило блокировки трафика.

Межсетевой экран


Захват данных, проходящих через межсетевой экран, позволяет учесть и трафик самого сервера, и трафик пользователей сети, даже при работе трансляции адресов. Главное в этом случае – правильно сформулировать правило захвата, и поставить его в нужное место. Данным правилом активируется передача пакета в сторону системной библиотеки, откуда приложение учета и управления трафиком может его получить. Для ОС Линукс в качестве межсетевого экрана применяют iptables, а средства перехвата – ipq, netfliter_queue или ulog . Для OC FreeBSD – ipfw с правилами типа tee или divert . В любом случае механизм межсетевого экрана дополняется возможностью работы с пользовательской программой следующим способом:
  • Пользовательская программа - обработчик трафика регистрирует себя в системе, используя системный вызов, или библиотеку.
  • Пользовательская программа или внешний скрипт устанавливает правило в межсетевой экран, “заворачивающее” выбранный трафик (согласно правилу) вовнутрь обработчика.
  • На каждый проходящий пакет обработчик получает его содержимое в виде буфера памяти (с заголовками IP и т.д. После обработки (учёта) программе необходимо также сообщить ядру операционной системы, что делать далее с таким пакетом - отбросить или передать далее. Как вариант, возможно передать ядру видоизмененный пакет.

Поскольку IP-пакет не копируется, а пересылается в программное обеспечение для анализа, становится возможным его «выброс», а следовательно, полное или частичное ограничение трафика определенного типа (например, до выбранного абонента локальной сети). Однако в случае, если прикладная программа перестала отвечать ядру о своем решении (зависла, к примеру), трафик через сервер просто блокируется.
Необходимо отметить, что описанные механизмы при существенных объемах передаваемого трафика создают избыточную нагрузку на сервер, что связано с постоянным копированием данных из ядра в пользовательскую программу. Этого недостатка лишен метод сбора статистики на уровне ядра ОС, с выдачей в прикладную программу агрегированной статистики по протоколу NetFlow .

Netflow
Этот протокол был разработан фирмой Cisco Systems для экспорта информации о трафике с маршрутизаторов с целью учета и анализа трафика. Наиболее популярная сейчас версия 5 предоставляет получателю поток структурированных данных в виде UDP-пакетов, содержащих информацию о прошедшем трафике в виде так называемых flow records:

Объем информации о трафике меньше самого трафика на несколько порядков, что особенно актуально в больших и распределенных сетях. Конечно же, блокировать передачу информации при сборе статистики по netflow невозможно (если не использовать дополнительные механизмы).
В настоящее время становится популярным дальнейшее развитие этого протокола – версия 9, основанная на шаблонной структуре flow record, реализации для устройств других производителей (sFlow). Недавно был принят стандарт IPFIX, который позволяет передавать статистику и по протоколам более глубоких уровней (например, по типу приложения).
Реализация netflow-источников (агентов, probe) доступна для ПК-маршрутизаторов, как в виде работающих по описанных выше механизмам утилит (flowprobe, softflowd), так и непосредственно встроенных в ядро ОС (FreeBSD: ng_netgraph , Linux: ). Для программных маршрутизаторов поток статистики netflow можно принимать и обрабатывать локально на самом маршрутизаторе, или отправлять по сети (протокол передачи – поверх UDP) на принимающее устройство (коллектор).


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

Функции экспорта netflow поддерживают маршрутизаторы Cisco Systems, Mikrotik, и некоторые другие. Аналогичный функционал (с другими протоколами экспорта) поддерживается всеми крупными производителями сетевого оборудования.

Libpcap “снаружи”
Немного усложним задачу. Что, если ваше устройство доступа – аппаратный маршрутизатор другого производителя? Например, D-Link, ASUS, Trendnet и т.д. На нем, скорее всего, невозможно поставить дополнительное программное средство съема данных. Как вариант – интеллектуальное устройство доступа у вас есть, но настроить его не представляется возможным (нет прав, или оно управляется вашим провайдером). В таком случае можно собирать информацию о трафике непосредственно в точке стыка устройства доступа с внутренней сетью, пользуясь «аппаратными» средствами копирования пакетов. В таком случае непременно потребуется отдельно стоящий сервер с выделенной сетевой картой для приема копий Ethernet-пакетов.
Сервер должен использовать механизм сбора пакетов по методу libpcap, описанному выше, и наша задача - на вход выделенной для этого сетевой карты подать поток данных, идентичный выходящему из сервера доступа. Для этого можно использовать:
  • Ethernet – хаб (hub): устройство, просто пересылающее пакеты между всеми своими портами без разбора. В современных реалиях его можно найти где-нибудь на пыльном складе, и применять такой метод не рекомендуется: ненадежно, низкая скорость (хабов на скорости 1 Гбит/с не бывает)
  • Ethernet – коммутатор с возможностью зеркалирования (мирроринга, SPAN портов . Современные интеллектуальные (и дорогие) коммутаторы позволяют копировать на указанный порт весь трафик (входящий, выходящий, оба) другого физического интерфейса, VLANа, в том числе удаленного (RSPAN)
  • Аппаратный раздвоитель , который может потребовать установки для сбора двух сетевых карт вместо одной – и это помимо основной, системной.


Естественно, вы можете настроить SPAN-порт и на самом устройстве доступа (маршрутизаторе), если оно это позволяет – Cisco Catalyst 6500, Cisco ASA. Вот пример такой конфигурации для коммутатора Cisco:
monitor session 1 source vlan 100 ! откуда берем пакеты
monitor session 1 destination interface Gi6/3! куда выдаем пакеты

SNMP
Что, если маршрутизатора под нашим контролем нет, с netflow связываться нет желания, нас не интересуют детали трафика наших пользователей. Они просто подключены в сеть через управляемый коммутатор, и нам надо просто грубо оценить объем трафика, приходящегося на каждый из его портов. Как вы знаете, сетевые устройства с возможностью удаленного управления поддерживают, и могут отобразить счетчики пакетов (байт), проходящих через сетевые интерфейсы. Для их опроса правильно будет использовать стандартизованный протокол удаленного управления SNMP . При помощи его можно достаточно просто получить не только значения указанных счетчиков, но также другие параметры, такие как имя и описание интерфейса, видимые через него MAC-адреса, и другую полезную информацию. Это делается как утилитами командной строки (snmpwalk), графическими SNMP-браузерами, так и более сложными программами мониторинга сети (rrdtools , cacti , zabbix , whats up gold и т.д.). Однако, данный метод имеет два существенных недостатка:
  • блокировка трафика может производиться только путем полного отключения интерфейса, при помощи того же SNMP
  • счетчики трафика, снимаемые по SNMP, относятся к сумме длин Ethernet-пакетов (причем unicast, broadcast и multicast по-отдельности), в то время как остальные описанные ранее средства дают величины относительно IP-пакетов. Это создает заметное расхождение (особенно на коротких пакетах) из-за оверхеда, вызванного длиной Ethernet-заголовка (впрочем, с этим можно приближенно бороться: L3_байт = L2_байт - L2_пакетов*38).
VPN
Отдельно стоит рассмотреть случай доступа пользователей к сети путем явного установления соединения к серверу доступа. Классическим примером может служить старый добрый dial-up, аналогом которого в современном мире являются VPN-службы удаленного доступа (PPTP, PPPoE, L2TP, OpenVPN, IPSEC)


Устройство доступа не только маршрутизирует IP-трафик пользователей, но также представляет из себя специализированный VPN-сервер, и терминирует логические туннели (часто зашифрованные), внутри которых передается пользовательский трафик.
Для учета такого трафика можно пользоваться как всеми средствами, описанными выше (и для глубокого анализа по портам/протоколам они хорошо подходят), так и дополнительными механизмами, которые предоставляют средства управления VPN-доступом. В первую очередь речь пойдет о протоколе RADIUS . Его работа – достаточно сложная тема. Мы же кратко упомянем, что контролем (авторизацией) доступа к VPN-серверу (RADIUS-клиенту) управляет специальное приложение (RADIUS-сервер), имеющее за собой базу (текстовый файл, SQL, Active Directory) допустимых пользователей с их атрибутами (ограничения по скорости подключения, назначенные IP-адреса). Помимо процесса авторизации, клиент периодически передает серверу сообщения аккаунтинга, информацию о состоянии каждой текущей работающей VPN-сессии, в том числе счетчики переданных байт и пакетов.

Заключение

Сведем все описанные выше методы сбора информации о трафике воедино:

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

  • как и куда попадают собранные данные о трафике
  • программное обеспечение для учета трафика
  • чем отличается биллинг от простой “считалки”
  • как можно накладывать ограничение на трафик
  • учёт и ограничение посещенных веб-сайтов

Теги: Добавить метки

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

Допустим у вас есть точка доступа, к которой подключены только вы, но вы замечаете, что скорость соединения какая-то низкая, звоните провайдеру, они отмечают, что все нормально или что-то подобное. А вдруг к вашей сети кто-то подключен? Можно попробовать с помощью методов из этой статьи узнать, какие программы, которые требуют Интернет-соединения он использует. А вообще, вы можете использовать эти методы, как душе угодно.

Ну что, давайте анализировать?

Команда netstat для анализа сетевой активности

Этот способ без использования всяких программ, нам лишь понадобится командная строка. В Windows есть специальная утилита netstat, которая занимается анализом сетей, давайте использовать ее.

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

В командной строке вводим команду netstat и видим много интересной информации:


Мы видим соединения, в том числе, их порты, адреса, соединения активные и ожидающиеся. Это конечно круто, но нам этого мало. Нам бы узнать, какая программа использует сеть, для этого вместе с командной netstat можно использовать параметр –b, тогда команда будет выглядеть так:

netstat –b

Теперь в квадратных скобочках будет видна утилита, которая пользуется интернетом.


Это не единственный параметр в этой команде, для отображения полного списка введите команду netstat –h .


Но, как показывает практика, многие утилиты командной строки не дают той информации, которой хотелось бы видеть, да и не так это удобно. В качестве альтернативы мы будем использовать стороннее программное обеспечение – TCPView.

Мониторинг сетевой активности с помощью TCPView

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

Итак, утилита TCPView занимается мониторингом сетей и показывает в виде списка все подключенные к сети программы, порты, адреса и соединения.


В принципе тут все предельно ясно, но некоторые пункты программы я поясню:

  • Столбец Process , ясное дело, показывает название программы или процесса.
  • Столбец PID указывает на идентификатор подключенного к сети процесса.
  • Столбец Protocol указывает на протокол процесса.
  • Столбец Local adress – локальный адрес процесса данного компьютера.
  • Столбец Local port – локальный порт.
  • Столбец Remote adress указывает на адрес, к которому подключена программа.
  • Столбец State – указывает на состояние соединения.
  • Там, где указано Sent Packets и Rcvd Packets указывает на отправленное и полученное количество пакетов, тоже самое и со столбцами Bytes .

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

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



С другими параметрами тоже произойдет изменение – с протоколами и доменами.

Если вы увидите строки разного цвета, например, зеленого, то это означает запуск нового соединения, если покажется красный цвет, то соединение завершено.

Вот и все основные настройки программы, там еще есть мелки параметры, типа настройки шрифта и сохранения списка соединения.

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

Оригинал: 8 best packet sniffers and network analyzers
Автор: Jon Watson
Дата публикации: 22 ноября 2017 года
Перевод: А. Кривошей
Дата перевода: декабрь 2017 г.

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

Есть множество утилит, которые собирают сетевой трафик, и большинство из них используют pcap (в Unix-подобных системах) или libcap (в Windows) в качестве ядра. Другой вид утилит помогает анализировать эти данные, так как даже небольшой объем траффика может генерировать тысячи пакетов, в которых трудно ориентироваться. Почти все эти утилиты мало отличаются друг от друга в сборе данных, основные отличия заключаются в том, как они анализируют данные.

Анализ сетевого трафика требует понимания того, как работает сеть. Нет никакого инструмента, который бы волшебным образом заменил знания аналитика об основах работы сети, такие как "3-х этапное рукопожатие" TCP, которое используется для инициирования соединения между двумя устройствами. Аналитики также должны иметь некоторое представление о типах сетевого трафика в нормально функционирующей сети, таких как ARP и DHCP. Это знание важно, потому что аналитические инструменты просто покажут вам то, о чем вы их попросите. Вам решать, что нужно просить. Если вы не знаете, как обычно выглядит ваша сеть, может быть сложно понять, что вы нашли то, что нужно, в массе собранных вами пакетов.

Лучшие снифферы пакетов и анализаторы сети

Промышленные инструменты

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

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

Это очень большой набор инструментов управления IT. В этой статье более уместна утилита Deep Packet Inspection and Analysis которая является его составной частью. Сбор сетевого трафика довольно прост. С использованием таких инструментов, как WireShark, базовый анализ также не является проблемой. Но не всегда ситуация полностью понятна. В очень загруженной сети может быть трудно определить даже очень простые вещи, например:

Какое приложение в сети создает этот трафик?
- если приложение известно (скажем, веб-браузер), где его пользователи проводят большую часть своего времени?
- какие соединения самые длинные и перегружают сеть?

Большинство сетевых устройств, чтобы убедиться, что пакет идет туда, куда нужно, используют метаданные каждого пакета. Содержимое пакета неизвестно сетевому устройству. Другое дело - глубокая инспекция пакетов; это означает, что проверяется фактическое содержимое пакета. Таким образом можно обнаружить критическую сетевую информацию, которую нельзя почерпнуть из метаданных. Инструменты, подобные тем, которые предоставляются SolarWinds, могут выдавать более значимые данные, чем просто поток трафика.

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

Вы можете узнать больше о NetFlow и sFlow.

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

Основы

Основным инструментом для сбора сетевого трафика является

Это приложение с открытым исходным кодом, которое устанавливается практически во всех Unix-подобных операционных системах. Tcpdump - отличная утилита для сбора данных, которая имеет очень сложный язык фильтрации. Важно знать, как фильтровать данные при их сборе, чтобы в итоге получить нормальный набор данных для анализа. Захват всех данных с сетевого устройства даже в умеренно загруженной сети может породить слишком много данных, которые будет очень трудно проанализировать.

В некоторых редких случаях достаточно будет выводить захваченные tcpdump данные прямо на экран, чтобы найти то, что вам нужно. Например, при написании этой статьи я собрал трафик и заметил, что моя машина отправляет трафик на IP-адрес, который я не знаю. Оказывается, моя машина отправляла данные на IP-адрес Google 172.217.11.142. Поскольку у меня не было никаких продуктов Google, и не был открыт Gmail, я не знал, почему это происходит. Я проверил свою систему и нашел следующее:

[ ~ ]$ ps -ef | grep google user 1985 1881 0 10:16 ? 00:00:00 /opt/google/chrome/chrome --type=service

Оказывыается, что даже когда Chrome не работает, он остается запущенным как служба. Я не заметил бы этого без анализа пакетов. Я перехватил еще несколько пакетов данных, но на этот раз дал tcpdump задачу записать данные в файл, который затем открыл в Wireshark (подробнее об этом позже). Вот эти записи:

Tcpdump - любимый инструмент системных администраторов, потому что это утилита командной строки. Для запуска tcpdump не требуется графический интерфейс. Для производственных серверов графический интерфес скорее вреден, так как потребляет системные ресурсы, поэтому предпочтительны программы командной строки. Как и многие современные утилиты, tcpdump имеет очень богатый и сложный язык, который требует некоторого времени для его освоения. Несколько самых базовых команд включают в себя выбор сетевого интерфейса для сбора данных и запись этих данных в файл, чтобы его можно было экспортировать для анализа в другом месте. Для этого используются переключатели -i и -w.

# tcpdump -i eth0 -w tcpdump_packets tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes ^C51 packets captured

Эта команда создает файл с захваченными данными:

File tcpdump_packets tcpdump_packets: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 262144)

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

3. Windump

Большинство полезных утилит с открытым исходным кодом в конечном итоге клонируют в другие операционные системы. Когда это происходит, говорят, что приложение было перенесено. Windump - это порт tcpdump и ведет себя очень похожим образом.

Самое существенное различие между Windump и tcpdump заключается в том, что Windump нуждается в библиотеке Winpcap, установленной до запуска Windump. Несмотря на то, что Windump и Winpcap предоставляются одним и тем же майнтайнером, их нужно скачивать отдельно.

Winpcap - это библиотека, которая должна быть предварительно установлена. Но Windump - это exe-файл, который не нуждается в установке, поэтому его можно просто запускать. Это нужно иметь в виду, если вы используете сеть Windows. Вам не обязательно устанавливать Windump на каждой машине, поскольку вы можете просто копировать его по мере необходимости, но вам понадобится Winpcap для поддержки Windup.

Как и в случае с tcpdump, Windump может выводить сетевые данные на экран для анализа, фильтровать таким же образом, а также записывать данные в файл pcap для последующего анализа.

4. Wireshark

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

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

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

Одной из самых полезных возможностей Wireshark является возможность следовать за потоком. Лучше всего представить поток как цепочку. На скриншоте ниже мы можем видеть множество захваченных данных, но меня больше всего интересовал IP-адрес Google. Я могу щелкнуть правой кнопкой мыши и следовать потоку TCP, чтобы увидеть всю цепочку.

Если захват трафика производился на другом компьютере, вы можете импортировать файл PCAP с помощью диалога Wireshark File -> Open. Для импортированных файлов доступны те же фильтры и инструменты, что и для захваченных сетевых данных.

5. tshark

Tshark - это очень полезное звено между tcpdump и Wireshark. Tcpdump превосходит их при сборе данных и может хирургически извлекать только те данные, которые вам нужны, однако его возможности анализа данных очень ограничены. Wireshark отлично справляется как с захватом, так и с анализом, но имеет тяжелый пользовательский интерфейс и не может использоваться на серверах без графического интерфейса. Попробуйте tshark, он работает в командной строке.

Tshark использует те же правила фильтрации, что и Wireshark, что не должно удивлять, так как они по сути являются одним и тем же продуктом. Приведенная ниже команда говорит tshark только о том, что необходимо захватить IP-адрес пункта назначения, а также некоторые другие интересующие нас поля из HTTP-части пакета.

# tshark -i eth0 -Y http.request -T fields -e ip.dst -e http.user_agent -e http.request.uri 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/title.png 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/styles/phoenix.css 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/code/jquery_lightbox/jquery_lightbox/js/jquery-1.2.6.pack.js 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/styles/index.css 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/images/title.png 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /favicon.ico 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /favicon.ico

Если вы хотите записать трафик в файл, используйте для этого параметр-W, а затем переключатель -r (чтение), чтобы прочитать его.

Сначала захват:

# tshark -i eth0 -w tshark_packets Capturing on "eth0" 102 ^C

Прочитайте его здесь же, или перенесите в другое место для анализа.

# tshark -r tshark_packets -Y http.request -T fields -e ip.dst -e http.user_agent -e http.request.uri 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /contact 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /reservations/ 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /reservations/styles/styles.css 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /res/code/jquery_lightbox/jquery_lightbox/js/jquery-1.2.6.pack.js 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /res/styles/index.css 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /res/images/title.png

Это очень интересный инструмент, который скорее попадает в категорию инструментов сетевого криминалистического анализа, а не просто снифферов. Сфера криминалистики, как правило, занимается расследованиями и сбором доказательств, и Network Miner выполняет эту работу просто отлично. Также, как wireshark может следовать потоку TCP, чтобы восстановить всю цепочку передачи паков, Network Miner может следовать потоку для того, чтобы восстановить файлы, которые были переданы по сети.

Network Miner может быть стратегически размещен в сети, чтобы иметь возможность наблюдать и собирать трафик, который вас интересует, в режиме реального времени. Он не будет генерировать свой собственный трафик в сети, поэтому будет работать скрытно.

Network Miner также может работать в автономном режиме. Вы можете использовать tcpdump, чтобы собрать пакеты в интересующей вас точке сети, а затем импортировать файлы PCAP в Network Miner. Далее можно будет попробовать восстановить какие-либо файлы или сертификаты, найденные в записанном файле.

Network Miner сделан для Windows, но с помощью Mono он может быть запущен в любой ОС, которая поддерживает платформу Mono, например Linux и MacOS.

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

7. Fiddler (HTTP)

Технически не является утилитой для захвата сетевых пакетов, но он так невероятно полезен, что попал в этот список. В отличие от других перечисленных здесь инструментов, которые предназначены для захвата трафика в сети из любого источника, Fiddler скорее служит инструментом отладки. Он захватывает HTTP трафик. Хотя многие браузеры уже имеют эту возможность в своих средствах разработчика, Fiddler не ограничивается трафиком браузера. Fiddler может захватить любой HTTP-трафик на компьютере, в том числе и не из веб-приложений.

Многие настольные приложения используют HTTP для подключения к веб-службам, и помимо Fiddler, единственным способом захвата такого трафика для анализа является использование таких инструментов, как tcpdump или Wireshark. Однако они работают на уровне пакетов, поэтому для анализа необходимо реконструировать этии пакеты в потоки HTTP. Это может потребовать много работы для выполнения простых исследований и здесь на помощь приходит Fiddler. Fiddler поможет обнаружить куки, сертификаты, и прочие полезные данные, отправляемые приложениями.

Fiddler является бесплатным и, так же, как Network Miner, он может быть запущен в Mono практически на любой операционной системе.

8. Capsa

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

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

Capsa доступна только для Windows 2008/Vista/7/8 и 10.

Заключение

Несложно понять, как с помощью описанных нами инструментов системный админимтратор может создать инфраструктуру мониторинга сети. Tcpdump или Windump могут быть установлены на всех серверах. Планировщик, такой как cron или планировщик Windows, в нужный момент запускает сеанса сбора пакетов и записывает собранные данные в файл pcap. Далее системный администратор может передать эти пакеты центральной машине и анализировать их с помощью wireshark. Если сеть слишком велика для этого, имеются инструменты корпоративного уровня, такие как SolarWinds, чтобы превратить все сетевые пакеты в управляемый набор данных.

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

  • Dan Nanni, Утилиты с интерфейсом командной строки для мониторинга сетевого трафика в Linux
  • Paul Cobbaut, Администрирование систем Linux. Перехват сетевого трафика
  • Paul Ferrill, 5 инструментов для мониторинга сети в Linux
  • Pankaj Tanwar, Захват пакетов при помощи библиотеки libpcap
  • Riccardo Capecchi, Использование фильтров в Wireshark
  • Nathan Willis, Анализ сети с помощью Wireshark
  • Prashant Phatak,

Оригинальное название: A Summary of Network Traffic Monitoring and Analysis Techniques

Ссылка на оригинальный текст: http://www.cse.wustl.edu/~jain/cse567-06/ftp/net_monitoring/index.html

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

Алиша Сессил

Обзор методов анализа и мониторинга сетевого трафика

Так как продолжают расти частные внутренние сети компаний, чрезвычайно важно, чтобы сетевые администраторы знали и умели управлять вручную различными типами трафика, который путешествует по их сети. Мониторинг и анализ трафика необходимы для того, чтобы более эффективно диагностировать и решать проблемы, когда они происходят, таким образом не доводя сетевые сервисы до простоя в течении длительного времени. Доступно много различных инструментов, которые позволяют помочь администраторам с мониторингом и анализом сетевого трафика. Данная статья обсуждает методы мониторинга ориентированные на маршрутизаторы и методы мониторинга не ориентированные на маршрутизаторы (активные и пассивные методы). Статья даёт обзор трёх доступных и наиболее широко используемых методов мониторинга сети, встроенных в маршрутизаторы (SNMP, RMON и Cisco Netflow) и предоставляет информацию о двух новых методах мониторинга, которые используют сочетание пассивного и активного методов мониторинга (WREN и SCNM).

1. Важность мониторинга и анализа сети

Сетевой мониторинг (мониторинг сети) - это сложная задача, требующая больших затрат сил, которая является жизненно важной частью работы сетевых администраторов. Администраторы постоянно стремятся поддержать бесперебойную работу своей сети. Если сеть «упадёт» хотя бы на небольшой период времени, производительность в компании сократится и (в случае организаций предоставляющих государственные услуги) сама возможность предоставления основных услуг будет поставлена под угрозу. В связи с этим администраторам необходимо следить за движением сетевого трафика и производительностью на всей сети и проверять, появились ли в ней бреши в безопасности.

2. Способы мониторинга и анализа

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

2.1. Методы мониторинга основанные на маршрутизаторе

Методы мониторинга основанные на маршрутизаторе - жёстко заданы (вшиты) в маршрутизаторах и, следовательно, имеют низкую гибкость. Краткое описание наиболее часто используемых методов такого мониторинга приведены ниже. Каждый метод развивался много лет прежде чем стать стандартизованным способом мониторинга.

2.1.1. Протокол простого сетевого мониторинга (SNMP), RFC 1157

SNMP - протокол прикладного уровня, который является частью протокола TCP/IP. Он позволяет администраторам руководить производительностью сети, находить и устранять сетевые проблемы, планировать рост сети. Он собирает статистику по трафику до конечного хоста через пассивные датчики, которые реализуются вместе с маршрутизатором. В то время, как существуют две версии (SNMPv1 и SNMPv2), данный раздел описывает только SNMPv1. SNMPv2 построен на SNMPv1 и предлагает ряд усовершенствований, таких как добавление операций с протоколами. Стандартизируется ещё один вариант версии SNMP. Версия 3 (SNMPv3) находится на стадии рассмотрения.

Для протокола SNMP присущи три ключевых компонента: управляемые устройства (Managed Devices), агенты (Agents) и системы управления сетью (Network Management Systems - NMSs). Они показаны на рис. 1.

Рис. 1. Компоненты SNMP

Управляемые устройства включают в себя SNMP-агента и могут состоять из маршрутизаторов, переключателей, коммутаторов, концентраторов, персональных компьютеров, принтеров и других элементов, подобных этим. Они несут ответственность за сбор информации и делают её доступной для системы управления сетью (NMS).

Агенты включают в себя программное обеспечение, которое владеет информацией по управлению, и переводят эту информацию в форму, совместимую с SNMP. Они закрыты для устройства управления.

Системы управления сетью (NMS) выполняют приложения, которые занимаются мониторингом и контролем устройств управления. Ресурсы процессора и памяти, которые необходимы для управления сетью, предоставляются NMS. Для любой управляемой сети должна быть создана хотя бы одна система управления. SNMP может действовать исключительно как NMS, или агент, или может исполнять свои обязанности или др.

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

SNMP использует 4 протокольные операции в порядке действия: Get, GetNext, Set и Trap. Команда Get используется, когда NMS выдаёт запрос на информацию для управляемых устройств. SNMPv1-запрос состоит из заголовка сообщения и единицы данных протокола (PDU). PDU-сообщения содержит информацию, которая необходима для удачного выполнения запроса, который будет либо получать информацию от агента, либо задавать значение в агенте. Управляемое устройство использует SNMP агентов, расположенных в нём, для получения необходимой информации и затем посылает сообщение NMS"у, с ответом на запрос. Если агент не владеет какой либо информацией по отношению к запросу, он ничего не возвращает. Команда GetNext будет получать значение следующего экземпляра объекта. Для NMS также возможно посылать запрос (операция Set), когда устанавливается значение элементов без агентов. Когда агент должен сообщить NMS-события, он будет использовать операцию Trap.

Как говорилось ранее, SNMP - протокол уровня приложений, который использует пассивные сенсоры, чтобы помочь администратору проследить за сетевым трафиком и производительностью сети. Хотя, SNMP может быть полезным инструментом для сетевого администратора, он создаёт возможность для угрозы безопасности, потому что он лишён возможности аутентификации. Он отличается от удалённого мониторинга (RMON), который обсуждается в следующем разделе, тем, что RMON работает на сетевом уровне и ниже, а не на прикладном.

2.1.2. Удалённый мониторинг (RMON), RFS 1757

RMON включает в себя различные сетевые мониторы и консольные системы для изменения данных, полученных в ходе мониторинга сети. Это расширение для SNMP информационной базы данных по управлению (MIB). В отличии от SNMP , который должен посылать запросы о предоставлении информации, RMON может настраивать сигналы, которые будут «мониторить» сеть, основанную на определённом критерии. RMON предоставляет администраторам возможности управлять локальными сетями также хорошо, как удалёнными от одной определённой локации/точки. Его мониторы для сетевого уровня приведены ниже. RMON имеет две версии RMON и RMON2. Однако в данной статье говорится только о RMON. RMON2 позволяет проводить мониторинг на всех сетевых уровнях. Он фокусируется на IP-трафике и трафике прикладного уровня.

Хотя существует 3 ключевых компонента мониторинговой среды RMON, здесь приводятся только два из них. Они показаны на рис. 2 ниже.


Рис. 2. Компоненты RMON

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

RMON использует 9 различных групп мониторинга для получения информации о сети.

  • Statistics - статистика измеренная датчиком для каждого интерфейса мониторинга для данного устройства.
  • History - учёт периодических статистических выборок из сети и хранение их для поиска.
  • Alarm - периодически берёт статистические образцы и сравнивает их с набором пороговых значений для генерации события.
  • Host - содержит статистические данные, связанные с каждым хостом, обнаруженным в сети.
  • HostTopN - готовит таблицы, которые описывают вершину хостов (главный хост).
  • Filters - включает фильтрацию пакетов, основываясь на фильтровом уравнении для захвата событий.
  • Packet capture - захват пакетов после их прохождения через канал.
  • Events - контроль генерации и регистрация событий от устройства.
  • Token ring - поддержка кольцевых лексем.

Как установлено выше, RMON, строится на протоколе SNMP. Хотя мониторинг трафика может быть выполнен при помощи этого метода, аналитические данные об информации, полученные SNMP и RMON имеют низкую производительность. Утилита Netflow, которая обсуждается в следующем разделе, работает успешно со многими пакетами аналитического программного обеспечения, чтобы сделать работу администратора намного проще.

2.1.3. Netflow, RFS 3954

Netflow - это расширение, которое было представлено в маршрутизаторах Cisco, которые предоставляют возможность собирать IP сетевой трафик, если это задано в интерфейсе. Анализируя данные, которые предоставляются Netflow, сетевой администратор может определить такие вещи как: источник и приёмник трафика, класс сервиса, причины переполненности. Netflow включает в себя 3 компонента: FlowCaching (кеширующий поток), FlowCollector (собиратель информации о потоках) и Data Analyzer (анализатор данных). Рис. 3 показывает инфраструктуру Netflow. Каждый компонент, показанный на рисунке, объясняется ниже.


Рис. 3. Инфраструктура NetFlow

FlowCaching анализирует и собирает данные о IP потоках, которые входят в интерфейс, и преобразует данные для экспорта.

Из Netflow-пакетов может быть получена следующая информация:

  • Адрес источника и получателя.
  • Номер входящего и выходящего устройства.
  • Номер порта источника и приёмника.
  • Протокол 4 уровня.
  • Количество пакетов в потоке.
  • Количество байтов в потоке.
  • Временной штамп в потоке.
  • Номер автономной системы (AS) источника и приёмника.
  • Тип сервиса (ToS) и флаг TCP.

Первый пакет потока, проходящий через стандартный путь переключения, обрабатывается для создания кэша. Пакеты с подобными характеристиками потока используются для создания записи о потоке, которая помещается в кэш для всех активных потоков. Эта запись отмечает количество пакетов и количество байт в каждом потоке. Кэшируемая информация затем периодически экспортируется в Flow Collector (сборщик потоков).

Flow Collector - ответственен за сбор, фильтрование и хранение данных. Он включает в себя историю об информации о потоках, которые были подключены при помощи интерфейса. Снижение объёма данных также происходит при помощи Flow Collector"а при помощи выбранных фильтров и агрегации.

Data Analyzer (анализатор данных) необходим, когда нужно представить данные. Как показано на рисунке, собранные данные могут использоваться для различных целей, даже отличных от мониторинга сети, таких как планирование, учёт и построение сети.

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

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

2.2. Технологии не основанные на маршрутизаторах

Хотя технологии, не встроенные в маршрутизатор всё же ограничены в своих возможностях, они предлагают большую гибкость, чем технологии встроенные в маршрутизаторы. Эти методы классифицируются как активные и пассивные.

2.2.1. Активный мониторинг

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

Главным образом использование инструментов, такие как команда ping, которая измеряет задержку и потери пакетов, и traceroute, которая помогает определить топологию сети, является примером основных активных инструментов измерения. Оба эти инструмента посылают пробные ICMP-пакеты до точки назначения и ждут, когда эта точка ответит отправителю. Рис. 4 - пример команды ping, которая использует активный способ измерения, посылая Echo-запрос от источника через сеть в установленную точку. Затем получатель посылает Echo-запрос обратно источнику от которого пришёл запрос.


Рис. 4. Команда ping (Акстивное измерение)

Данный метод может не только собирать единичные метрики об активном измерении, но и может определять топологию сети. Ещё один важный пример активного измерения - утилита iperf. Iperf - это утилита, которая измеряет качество пропускной способности TCP и UDP протоколов. Она сообщает пропускную способность канала, существующую задержку и потери пакетов.

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

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

2.2.2. Пассивный мониторинг

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


Рис. 5. Установка пассивного мониторинга

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

Хотя пассивный мониторинг не имеет затрат, которые имеет активный мониторинг, он имеет свои недостатки. С пассивным мониторингом, измерения могут быть проанализированы только оф-лайн и они не представляют коллекцию. Это создаёт проблему, связанную с обработкой больших наборов данных, которые собраны во время измерения.

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

2.2.3. Комбинированный мониторинг

После прочтения разделов выше, можно благополучно переходить к заключению о том, что комбинирование активного и пассивного мониторинга - лучший способ, чем использование первого или второго по отдельности. Комбинированные технологии используют лучшие стороны и пассивного, и активного мониторинга сред. Две новые технологии, представляющие комбинированные технологии мониторинга, описываются ниже. Это «Просмотр ресурсов на концах сети» (WREN) и «Монитор сети с собственной конфигурацией» (SCNM).

2.2.3.1. Просмотр ресурсов на концах сети (WREN)

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

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

Рис. 6. Информация, собранная на главном уровне трассировок пакетов

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

Анализатор трассировок пользовательского уровня - другой уровень в среде WREN. Это компонент, который начинает трассировку любого пакета, собирает и обрабатывает возвращённые данные на уровне ядра оператора. Согласно проектированию, компоненты пользовательского уровня не нуждаются в чтении информации от объекта трассировки пакетоввсё время. Они могут быть проанализированы незамедлительно после того, как трассировка будет завершена, чтобы сделать заключение в реальном времени, или данные могут быть сохранены для дальнейшего анализа.

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

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

В общем, WREN - это очень полезная установка, которая использует преимущества и активного, и пассивного мониторинга. Хотя эта технология находится на раннем этапе развития, WREN может предоставить администраторам полезные ресурсы в мониторинге и анализе их сетей. Монитор Собственного конфигурирования сети (SCNM) - другой инструментарий, который использует технологии и активного, и пассивного мониторинга.

2.2.3.2. Сетевой монитор с собственной конфигурацией (SCNM)

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

Аппаратное средство устанавливается в критических точках сети. Оно отвечает за пассивный сбор заголовков пакетов. Программное обеспечение запускается на конечной точке сети. Рис. 7, приведённый ниже, показывает программный компонент SCNM среды.


Рис. 7. Программный компонент SCNM

Программное обеспечение отвечает за создание и посылку активированных пакетов, которые используются для старта мониторинга сети. Пользователи будут посылать в сеть пакеты активации, содержащие детали о пакетах, которые они хотят получить для мониторинга и сбора. Пользователи не нуждаются в знании местоположения SCNM-хоста, принимая за истину то, что все хосты открыты для «прослушки» пакетов. На основе информации, которая существует в рамках активационного пакета, фильтр помещается в поток сбора данных, который также работает в конечной точке . Собираются заголовки пакетов сетевого и транспортного уровня, которые соответствуют фильтру. Фильтр будет автоматически введён в тайм аут, после точно заданного времени, если он получает другие пакеты приложения. Служба выборки пакетов, которая запускается на SCNM-хосте, использует команду tcpdump (подобно программе выборки пакетов) в порядке полученных запросов и записи трафика, который соответствует запросу.

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

SCNM предназначен для установки и использования, главным образом, администраторами. Тем не менее обычные пользователи могут использовать некоторую часть этой функциональности. Хотя обычные пользователи способны использовать части среды SCNM мониторинга, им позволено смотреть только свои собственные данные.

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

3. Заключение

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

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

Недавно, при обсуждении в одном чате вопроса: как из Wireshark вытащить файл , всплыла утилита NetworkMiner. Пообщавшись с коллегами и по гуглив в Интернете, я сделал вывод, что об этой утилите знает не так много народу. Так как утилита в разы упрощает жизнь исследователя/пентестера, то исправляю этот недостаток и расскажу сообществу о том, что же такое NetworkMiner.

NetworkMiner – утилита для перехвата и анализа сетевого траффика между хостами локальной сети, написанная под ОС Windows (но также работает в Linux, Mac OS X, FreeBSD).

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

Официальная страница утилиты: http://www.netresec.com/?page=Networkminer

И так, приступим к рассмотрению.

Утилита доступна в двух редакциях: Free и Professional (стоимость 700 USD).

В редакции Free доступны следующие опции:

  • перехват траффика;
  • разбор PCAP файла;
  • прием PCAP файла по IP;
  • определение ОС.

В редакции Professional добавляются опции:

  • разбор PcapNG файла,
  • Определение протокола порта,
  • Экспорт данных в CSV / Excel,
  • Проверка DNS имен по сайту http://www.alexa.com/topsites ,
  • Локализация по IP,
  • Поддержка командной строки.

В данной статье рассмотрим опцию разбор PCAP файла, полученного от Wireshark.

Но для начала установим NetworkMiner в Kali Linux.

  1. По умолчанию, пакеты Mono уже стоят в KaliLinux, но если они не установлены, то выполняем следующее действие:

sudo apt-get install libmono-winforms2.0-cil

  1. Далее скачиваем и устанавливаем NetworkMiner

wget sf.net/projects/networkminer/files/latest -O /tmp/nm.zip
sudo unzip /tmp/nm.zip -d /opt/
cd /opt/NetworkMiner*
sudo chmod +x NetworkMiner.exe
sudo chmod -R go+w AsscodebledFiles/
sudo chmod -R go+w Captures/

  1. Чтобы запустить NetworkMiner используем следующую команду:

mono NetworkMiner.exe

Для информации. Пять минут перехвата траффика у себя в тестовой сети собрало более 30 000 различных пакетов.

Как понимаете, анализировать такой трафик достаточно трудоемко и по времени затратно. Wireshark обладает встроенными фильтрами и достаточно гибок, но что делать когда надо быстро проанализировать траффик, не изучая всего многообразия Wireshark?

Попробуем посмотреть какую информацию нам предоставит NetworkMiner.

  1. Открываем полученный PCAP в NetworkMiner. Понадобилось меньше минуты, чтобы проанализировать дамп траффика из более 30 000 пакетов.

  1. На вкладке Hosts приводится список всех хостов, участвующих в формирование траффика, с детальной информацией по каждому хосту:

  1. На вкладке Frames, трафик приводится в виде пакетов с информацией по каждому уровню модели OSI (Канальному, Сетевому и Транспортному).

  1. Следующая вкладка Credentials покажет перехваченные попытки авторизации в открытом виде. Вот так потратив меньше минуты можно из большого дампа трафика сразу получить логин и пароль на авторизацию. Я это делал на примере своего роутера.

  1. И еще одна вкладка, которая облегчает получение данных из трафика – это Files.

В нашем примере мне попался pdf файл, который можно сразу открыть и посмотреть.

Но больше всего я удивился, когда обнаружил в дампе трафика — txt файл, как оказалось от моего роутера DIR-620. Так вот этот роутер, при авторизации на нем, передает в текстовом виде все свои настройки и пароли, в том числе от WPA2.

В итоге, утилита оказалась довольно интересная и полезная.

Тебе, дорогой читатель, отдаю на прочтение данную статью, а я пошел покупать новый роутер.

Просмотров