Способы захвата и анализа сетевого трафика

Для начала давайте определимся что такое захват трафика? Этот термин обычно ассоциируется с понятием «прослушка» (sniffing).

И действительно, при захвате трафика мы получаем доступ ко всему, что проходит через сетевой адаптер, то есть «прослушиваем» интерфейс. В зависимости от типа интерфейса и способа сбора, мы можем видеть трафик на различных уровнях модели OSI: от первого до седьмого.

Так давайте же рассмотрим способы захвата и анализа!

1. Host Based

Сбор трафика который происходит непосредственно на узлах, обычно это L3 устройства, такие как:

  • Межсетевые экраны
  • Маршрутизаторы или L3-коммутаторы
  • Оконечные серверы или АРМ пользователей

В случаях сбора на межсетевых экранах и роутерах мы можем использовать встроенные утилиты сбора трафика, такие как packet capture (Cisco/Usergate/Maipu), tcpdump (.nix системы, VyOS, s-terra, CheckPoint), fw monitor (CheckPoint) и др.

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

1.1. Плюсы и минусы Host Based

Плюсы:

  • Это быстро и не требует дополнительных манипуляций на сети, подключаемся по SSH/WEB/Application и начинаем собирать трафик.
  • Это бесплатно, утилиты сбора трафика идут «из коробки» или бесплатно распространяются.

Минусы:

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

Этот способ используется в 90% случаев и позволяет быстро найти симптомы или саму причину проблемы. В последующих публикациях мы подробно рассмотрим данный подход и его применение.

2. Network Based

Суть этого метода заключается в том, чтобы собирать трафик с устройств уровня L2-L3, настраивая зеркалирование трафика (SPAN), или даже с физических линий, используя дополнительные устройства, известные как TAP-устройства.

Зеркалирование трафика в основном выполняется на системы защиты и анализа сетевой безопасности, такие как:

  • IDS (Intrusion Detection System) и IPS (Intrusion Prevention System) — это специализированные системы для мониторинга сетевого трафика и обнаружения подозрительных действий, указывающих на попытки взлома или кибератаки.
  • SIEM (Security Information and Event Management) — это комплексное решение для обеспечения безопасности, которое объединяет функции управления информационной безопасностью (SIM) и управления событиями безопасности (SEM) в единую систему.
  • DLP (Data Leak Prevention) — это программно-аппаратный комплекс, предназначенный для обнаружения и предотвращения несанкционированной передачи конфиденциальной информации за пределы корпоративной сети.
  • и др.

Давайте более подробно рассмотрим способы зеркалирования.

2.1. SPAN

SPAN-порт (Switched Port Analyzer) — это специальная функция сетевых коммутаторов и маршрутизаторов, которая позволяет копировать и перенаправлять сетевой трафик с определенных портов-источников или определённых VLAN на порт назначения для мониторинга. Причём SPAN можно настроить только если трафик копируется в рамках одного L2-устройства.

Настройка SPAN довольно простая:

Проверить настроенный мы можем командой:

Как вы можете видеть, по умолчанию monitor session копирует передаваемый и принимаемый трафик в порт назначения. Если вы хотите перехватывать трафик, идущий только в одну сторону, то это можно настроить:

Всего то нужно добавить rx (получение) или tx (отправка), и всё! Теперь мы сможем перенаправлять только односторонний трафик. Если бы у нас был trunk-интерфейс FastEthernet 0/3, мы могли бы добавить фильтр, чтобы выбрать сети VLAN, которые хотим зеркалировать.

Фильтр, описанный выше, перенаправит трафик только VLAN 1–100 который проходит через trunk в destination-порт. Если мы хотим использовать в качестве источника не интерфейс, а VLAN, то тоже можем это сделать следующим образом:

Мы не можем использовать для перенаправления ранее созданный 1 сеанс, потому что мы уже используем физический source-интерфейс для этого сеанса. Также невозможно использовать один и тот же destination-интерфейс для нескольких сеансов. Тут я создал новый номер сеанса и выбрал FastEthernet 0/3 в качестве назначения.

Подведём неблоьшой итог по SPAN. Зеркалирование трафика позволяет анализировать трафик например для:

  • Если вы хотите использовать wireshark для перехвата трафика с интерфейса, подключенного к рабочей станции, серверу, телефону или чему-либо еще, что вы хотите перехватить.
  • Перенаправить весь трафик из определённого VLAN на IDS/IPS
  • Перенаправить все VoIP пакеты из телефонного VLAN для записи звонков.

А что нам делать если нужно передавать трафик с удалённого L2-устройства? Нам что к каждому коммутатору подключать отдельную систему IDS/IPS для анализа? Для решения этой проблемы был придуман RSPAN.

2.2. RSPAN

RSPAN (Remote Switch Port Analyzer) — это технология зеркалирования трафика, которая позволяет осуществлять мониторинг сетевого трафика на физически удаленных портах через сеть коммутаторов.

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

Для демонстрации RSPAN я буду использовать топологию выше:

Идея заключается в том, чтобы перенаправить трафик с FastEthernet 0/3 на SW1 на FastEthernet 0/2 на SW2. Здесь нам нужно настроить несколько параметров.

Во-первых, нам нужно создать VLAN и сообщить коммутаторам, что это RSPAN vlan. Об этом легко забыть.

Во-вторых, мы настроим trunk между коммутаторами:

Теперь настроим сам RSPAN. Источником выбираем порт FastEthernet 0/3 а назначением RSPAN-VLAN:

А на SW2 мы выбираем VLAN 100 в качестве источника и FastEthernet 0/2 в качестве назначения:

Теперь проверим, с помощью команды show monitor session:

Вот и вся настройка, теперь давайте поговорим о некоторых особенностях. SPAN и RSPAN имеют свои ограничения. Я хотел бы поделиться с вами наиболее важными из них:

  • Источником может быть любой порт коммутатора… switchport, routed port, access port, trunk port, etherchannel и т. д.
  • Когда вы настраиваете trunk-порт в качестве SPAN source-interface, он начинает копировать трафик из всех VLAN. Однако существует возможность фильтровать этот трафик.
  • Можно использовать несколько физических интерфейсов-источников или несколько VLAN, но нельзя смешивать физические интерфейсы и VLAN.
  • Очень просто «загрузить в полку» интерфейс. Если выбрать всю VLAN в качестве источника и использовать 100-мегабитный интерфейс назначения…
  • Когда вы настраиваете destination-порт, вы «теряете» его конфигурацию. Т. е. по умолчанию интерфейс будет использоваться только для приёмо-передачи SPAN-трафика.
  • Фреймы L2, такие как CDP, VTP, DTP и STP BPDU, по умолчанию не копируются, но вы можете указать SPAN/RSPAN копировать их в любом случае.

2.3. TAP Device

Сетевой TAP (Test Access Point) — это устройство, которое напрямую подключается к кабельной инфраструктуре сети. Оно устанавливается между двумя сетевыми устройствами и служит для мониторинга сетевого трафика.

С помощью внутреннего делителя TAP создаёт копию данных, которая отправляется на порт мониторинга, в то время как исходные данные продолжают передаваться по сети. Большинство TAP копируют потоки передачи от устройств A и B, отправляя их в отдельные порты мониторинга (TxA и TxB).

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

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

2.4. Плюсы и минусы Network Based способа

Этот метод сбора трафика очень эффективен, и по факту мы упираемся только в пропускную способность.

Плюсы:

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

Минусы:

  • Слишком много трафика. Обычно трафик мониторят на магистральных коммутаторах или на коммутаторах ядра, чтобы видеть как можно больше информации. Это огромный вызов для систем которые слушают и анализируют этот трафик, нужны большие вычислительные мощности, огромное дисковое пространство чтобы хранить дамп этого трафика.
  • Нет видимости всех сетевых взаимодействий. Из-за того что трафик снимают на «избранных» центральных узлах, далеко не всё идёт через них. Если два сервера или пользователя находятся в одном VLAN, то есть большой шанс, что они взаимодействуют на уровне L2, не доходя до ядра сети, а настроить SPAN-порт на каждом коммутаторе — практически нереализуемая задача.

Так как же снимать трафик проходящий через все устройства? Для это цели был разработан третий способ…

3. Flow Based

Метод Flow Based позволяет собирать данные о трафике с помощью специальных протоколов, таких как Netflow и Sflow. Эта информация включает в себя следующие параметры: source-адрес, destination-адрес, протокол, source- и destination-порты, а также TCP-флаги. По сути, это заголовки пакетов без их содержимого.

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

Давайте подробнее рассмотрим процесс настройки экспорта NetFlow на Cisco IOS, взяв в качестве примера следующую топологию:

С левой стороны у нас расположен хост, который будет подключаться к интернету через R1. В нижней части находится сервер ntop. Это программное обеспечение для анализа трафика с открытым исходным кодом, поддерживающее NetFlow.

Давайте пока сосредоточимся на том как настроить маршрутизатор. Сначала указываем сервер:

Маршрутизатор экспортирует все потоки в 10.10.10.100 с целевым UDP-портом 2055. NetFlow поддерживает несколько версий, поэтому, если вы хотите использовать определенную версию, вот как это сделать:

Мы настроили маршрутизатор на использование версии 9. При желании мы можем настроить интерфейс, который маршрутизатор должен использовать как источник экспорта:

Последнее, что нам нужно сделать, это указать маршрутизатору, на каких интерфейсах отслеживать потоки:

Для этого я использую команду ip route-cache flow. Когда вы используете эту команду, она будет отслеживать все входящие потоки на физическом и всех сабинтерфейсах. Вы также можете использовать команды ip flow egress или ip flow ingress, если хотите включить ее только на одном подинтерфейсе или в одном направлении.

Теперь давайте приступим к проверке:

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

Проверим что трафик от клиента видим на сервере:

NetFlow — это эффективный инструмент для анализафика нам её может не хватить для более глубокого анализа проблемы. В реальной сетевого трафика. Он предоставляет данные, аналогичные тем, что можно получить из счёта за телефонные разговоры: сведения о звонках, их продолжительности, месте совершения и т. д. Однако в отличие от счёта, NetFlow отслеживает все IP-пакеты в сети.

3.1. Плюсы и минусы Flow Based

Плюсы:

  • Вся ваша сеть превращается в подобие «сенсора», конечно при условии что оборудование поддерживает протоколы экспорта потоков. Мы видим весь трафик вплоть до трафика в пределах одного широковещательного домена на одном коммутаторе.
  • Минимальное колличество трафика, из-за того, что мы собираем только телеметрию, а не сам трафик, объём этой информации крайне мал. Например, при снифинге трафика между коммутатором ядра и межсетевым экраном, на линке которого протекает 1 Гигабит/сек, объём трафика телеметрии будет всего 2 Мбит/сек, т.е. сжимается в 500 раз. Что позволяет снимать трафик в удалённых филиалах через VPN, не разворачивая локальные flow-коллекторы на площадках.
  • Минимальные ресурсы для анализатора, т.к. потоки трафика для анализа минимальные, то и для обработки этой телеметрии не понадобится много ресурсов, по сравнению с теми же решениями, которые слушают SPAN-порт и выполняют DPI.

Минусы:

  • Мало информации, поскольку мы собираем только телеметрию трафика нам её может не хватить для более глубокого анализа проблемы. В реальной жизни чаще всего с помощью flow-коллектора определяют какую-то аномалию трафика, а после уже снимают полноценный дам для анализа используя методы host-based или network-based.
  • Хуже точность получаемых данных, все flow-протоколы собирают телеметрию не с каждого пакета, а к примеру с каждого 100-го пакета, это называется семплирование, для того чтобы уменьшить объёмы передаваемой информации и снизить нагрузку сетевого устройства. В блольшинстве случаев этого достаточно для определения общей картины протекания трафика, но иногда это выливается в явные пробелы.
  • Поддержка протоколов на сетевом оборудовании, далеко не на каждом оборудовании пристует функционал flow-экспорта.

4. Выводы

В этом уроке мы изучили, что такое «прослушка» (sniffing). Рассмотрели методы сбора трафика: Host Based, Network Based и Flow Based. Каждый из них имеет свои плюсы и минусы и подходит для разных задач. 

Какой способ лучше? Лучше всего использовать все три способа, чтобы эффективно собирать данные: Host Based, Network Based и Flow Based. У каждого из них есть свои преимущества и недостатки, и они подходят для разных задач.

На этом всё. Если у вас остались вопросы, пишите в комментариях, буду рад ответить!

#tshoot #networking #cisco

en_USEnglish