Как эффективно анализировать сетевой трафик ЦПС, откуда его брать и можно ли это делать без участия человека?
Back to blog

Как эффективно анализировать сетевой трафик ЦПС, откуда его брать и можно ли это делать без участия человека?

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

Функции Wireshark для эффективного анализа файлов захвата сетевого трафика

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

Кнопки для фильтров отображения

Одной из полезных функций Wireshark является Фильтр отображения (Display Filter). При применении данного фильтра из всего захваченного трафика Wireshark отображает только те кадры, которые соответствуют указанному пользователем выражению, другие данные - скрываются программой (они не удаляются из захваченного фрагмента сетевого трафика и будут вновь доступны после отмены фильтра). Например, анализируя захваченный трафик с цифровой подстанции, пользователь может отобразить в Wireshark только GOOSE-сообщения, исключив из отображаемых данных кадры Sampled Values, или же сделать так, чтобы отображались только клиент-серверные коммуникации (MMS). При задании выражения для фильтра отображения пользователь может не только указывать тип интересующего протокола, но и его поля с определёнными значениями, чтобы отобразить специфические кадры. Например, пользователь может отобразить все кадры Sampled Values c признаком синхронизации времени Local; симулированные GOOSE/SV-сообщения; GOOSE/SV-сообщения с данными, имеющими определённое значение атрибута качества (invalid, test и др.). Один из самых простых и распространенных способов ввода выражения для фильтра отображения и его применения является использование текстового поля, расположенного над областью отображения кадров.

Рис. 1. Поле для ввода выражения для фильтра отображения.

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

Рис. 2. Добавление кнопки для применения фильтра отображения.

После нажатия ОК, кнопка фильтра становится доступной в интерфейсе Wireshark.

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

Больше не надо вводить выражения для фильтров вручную. Создайте фильтры для GOOSE, SV, MMS-сообщений, для сообщений PTP, а также других протоколов, используемых на цифровой подстанции, с определёнными значениями отдельных полей этих протоколов, являющимися для вас индикаторами определенных условий функционирования системы. Стоит отметить, что применив фильтр отображения, для своих коллег вы можете экспортировать только отображаемые кадры, а не направлять им полный файл захвата трафика (File - Export Specified Packets, далее требуется отметить опцию Displayed).

Маркировка и комментирование кадров

Когда вы нашли интересующие вас кадры, вы можете их маркировать.

Рис. 4. Маркированные кадры.

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

Удобно, когда вы локализовали какую-то проблему в сетевом трафике и хотите поделиться проблемными кадрами с коллегами, не отправляя им избыточную информацию. Маркировать можно какое угодно количество кадров - это можно сделать выбрав один или группу кадров и нажав сочетание клавиш CTRL + M. Для снятия маркировки нужно проделать те же действия. Маркировка не сохраняется в файлах pcap (pcapng) - то есть после закрытия файла с маркированными кадрами и его повторного открытия, маркировка исчезнет. Однако «след» для своих коллег можно оставить с помощью другого инструмента - комментария к кадру. Для того, чтобы оставить комментарий требуется правой кнопкой мыши кликнуть по кадру, выбрать опцию Packet Comment и добавить комментарий. Далее нужно сохранить файл захвата в формате pcapng (по-умолчанию используется, начиная с версии 1.8 ПО Wireshark). При открытии файла захвата ваши коллеги могут использовать фильтр отображения с выражением 'frame.comment', чтобы отобразить все кадры с пользовательскими комментариями. Сам комментарий будет доступен в области Packet Details.

Рис. 5. Просмотр комментария пользователя в файле захвата трафика.

Добавьте этот фильтр в виде кнопки, как описано в предыдущем разделе. Делитесь и анализируйте файлы захвата трафика с коллегами более эффективно!

Отображение пользовательских наименований устройств вместо MAC и IP-адресов

Специалисты, имеющие практический опыт работы с Wireshark, обращали внимание, что программа заменяет первые три октета MAC-адреса (известны как OUI – Organizationally Unique Identifier) сетевого интерфейса устройства, на наименование производителя. Это возможно благодаря тому, что Wireshark хранит в отдельном текстовом файле соответствие OUI наименованию производителя (уникальные OUI, в свою очередь, приобретаются производителями у организации IEEE). Но можно ли сделать так, чтобы Wireshark использовал кастомные правила по замене определённых MAC-адресов на пользовательские наименования? Например, чтобы вместо MAC-адреса устройства 00:26:57:01:34:6e (или, как это отображает Wireshark, NppEkra_01:34:6e) отображалось «АУВ_W1E», а вместо 64:60:38:d0:34:6e (или Hirschma_d0:b7:18) – «Коммутатор_SW22».

В дополнение к этому было бы удобно если пользователь также мог бы определить правила по замене IP-адресов на пользовательские наименования, например, чтобы вместо IP-адреса 192.168.1.100 отображалось «Сервер АСУ ТП основной» и т.д.

Всё это существенно бы упростило анализ файлов захвата сетевого трафика. И это возможно.

Для этого в ОС Windows в Wireshark перейдите в пункт меню Help – About, а на Mac OS – перейдите в пункт меню Wireshark – About Wireshark. В открывшемся диалоговом окне выберите вкладку Folders, а далее кликните на путь, указанный напротив пункта Personal configuration. В открывшейся папке откройте или создайте (в случае отсутствия) текстовый файл ethers. В этом файле укажите MAC-адреса всех устройств, трафик которых присутствует в анализируемом файле захвата сетевого трафика, с указанием пользовательского имени устройств через пробел (каждое устройство описывается на новой строке). Сохраните изменения.

                ```
                00.26.57.01.25.9f АУВ_W1E
                00.26.57.01.25.9d РЗА_W1E
                00.26.57.01.32.a7 РЗА_W2E
                00.26.57.01.25.99 АУВ_W2E
                00.26.57.01.38.2a ПДС_W1E
                4a.00.62.06.45.a8 ПДС_W2E
                64:60:38:d0:b8:18 Коммутатор_SW1
                64:60:38:d0:b7:18 Коммутатор_SW2
                ```

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

                ```
                192.168.1.210 Сервер_времени_основной
                192.168.161.74 РАС_№1
                ```

Для того, чтобы Wireshark подтягивал данные из указанных файлов надо сделать еще пару манипуляций - перейдите в пункт меню Preferences – Name resolution и убедитесь, что отмечены следующие пункты: Resolve MAC addresses, Resolve network (IP) addresses. Перезапустите Wireshark.

Теперь в файле захвата сетевого трафика отображаются пользовательские наименования устройств вместо их MAC и IP-адресов, и вам будет намного проще ориентироваться при его анализе!

Экспорт в CSV/JSON и другие форматы

Можно ли анализировать файл захвата сетевого трафика в более понятном для себя интерфейсе, не пользуясь вышеупомянутыми фильтрами отображения, маркировки и комментирования? И это можно! Например, в Microsoft Excel. Для этого в Wireshark предусмотрена возможность экспорта данных в форматы CSV, JSON, простого текста и еще несколько форматов. CSV, наверное, может быть одним из наиболее предпочтительных вариантов, ведь этот файл можно открыть и обрабатывать в Excel. Например, быстро находить кадры со специфичными полями, строить различные графики, в том числе, осциллограммы тока, напряжения и дискретных сигналов из GOOSE, SV и MMS-сообщений. Для того, чтобы экспортировать нужные данные из кадров SV/GOOSE/MMS необходимо раскрыть структуру интересующих кадров и выбрать интересующие поля. Например, поля значений тока и напряжения из сообщения SV. Кликнуть правой кнопкой мыши и выбрать Apply as a column. Дальше требуется выбрать пункт меню File - Export Packet Dissections, выбрать нужный формат (например, CSV) и указать какие кадры вы хотите включать в экспортируемые данные: все захваченные, отображаемые (в результате работы фильтра), маркированные и др.

Рис. 6. Экспорт захвата трафика в CSV/JSON/Plain text и др.

А далее применяем свои знания Excel по сортировке и фильтрации данных, построения графиков и т.д. Те, кто освоил Python, могут автоматизировать обработку, визуализацию и анализ используя, например, формат JSON.

При экспорте, например, в JSON не требуется применять поля кадров как столбцы, возможен экспорт всех полей кадра, отображаемых в области Packet Details. Для этого при сохранении результатов экспорта необходимо отметить опцию Packet details.

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

Где взять файлы захвата трафика PCAP для анализа и какими они должны быть?

Конечно, для этого можно использовать сам Wireshark. Однако поставить компьютер на цифровую подстанцию и захватить весь трафик не получится. Во-первых, данных очень много (об этом далее) и компьютер крайне быстро исчерпает свои ресурсы и перестанет работать, во-вторых - нужно подключаться в разные сегменты сети (шина станции и шина процесса, а еще есть виртуальные локальные сети, которыми мы отстраиваемся от большого объема трафика и ряд других нюансов). Можно попробовать использовать несколько компьютеров, но как их синхронизировать и как совмещать данные? Можно также встретить требования по захвату всего трафика цифровой подстанции и хранению файлов захваченного трафика не менее 3 и даже 6 месяцев. А какие для этого нужны хранилища данных? Посчитать несложно и мы это сделали, учитывая, правда, только трафик МЭК 61850 (Sampled Values, GOOSE). Возьмём небольшую подстанцию 110/10 кВ, реализованную по третьей архитектуре с 22 потоками Sampled Values и 120 GOOSE-сообщениями (реальная подстанция). Если непрерывно писать весь этот трафик, то понадобится около 100 ТБ/месяц. Если руководствоваться требованием по хранению данных в течение полугода, понадобится хранилище объемом около 600 ТБ. А еще нужно будет использовать специальное дорогостоящее оборудование (тапы), серверную платформу и др. Общая стоимость этого оборудования выходит далеко за 10 млн. рублей, не учитывая работы по пуско-наладке оборудования и ПО.

Какие есть альтернативы? Например, производить захват сетевого трафика по аналогии с регистрацией осциллограмм автономными регистраторами аварийных событий, с пуском по коммуникационным событиям (потеря того или иного сообщения, изменение признака синхронизации времени и др.), изменению данных в сообщениях и другим критериям. Такие файлы захвата будут включать в себя информацию и о предшествующем режиме и о режиме, наблюдавшемся после возникновения события, представляющего интерес. Захват трафика в таком случае было бы актуально иметь в масштабе всего энергообъекта и пользователю было бы хорошо сразу получить один единственный файл PCAP. В таком подходе файлы PCAP имеют адекватный размер и их можно хранить и 3 месяца, и 6 месяцев и даже в течение нескольких лет. Описанный функционал предоставляет система мониторинга и диагностики цифровых коммуникаций Теквел Парк. Теквел Парк имеет модульную архитектуру, состоящую из сервера и устройств мониторинга сети.

Рис. 7. Теквел Парк на одной из цифровых подстанций архитектуры III (крайний слева).

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

Рис. 8. Устройства мониторинга сети системы Теквел Парк.

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

Рис. 9. Профиль события в системе Теквел Парк с возможностью выгрузки файла захвата сетевого трафика PCAP.

Можно ли автоматизировать анализ сетевого трафика цифровой подстанции?

Для этого мы и создали Теквел Парк. Теквел Парк, по сравнению с Wireshark, имеет ряд замечательных для пользователя особенностей:

  • Контролирует соответствие сетевого трафика МЭК 61850 файлу SCD, который в него загружен, и делает это в автоматическом режиме. В журнале событий пользователь получает детальную информацию с указанием фактических параметров сообщений, отличающихся от конфигурации согласно файлу SCD.
  • Автоматически фиксирует неисправности коммуникаций МЭК 61850 (сбои счетчиков сообщений, изменения признаков синхронизации времени, пропажа сообщений и др.). Все неисправности коммуникаций сохраняются в журнале событий с указанием метки времени события; наименования устройства, с которым связана неисправность; наименования блока управления передачей этого сообщения; краткого описания сути неисправности.
  • Автоматически фиксирует изменения данных в сообщениях.
  • Автоматически производит захват трафика при возникновении неисправности коммуникации или при изменении данных сообщений МЭК 61850, с захватом предшествующего режима.
  • Автоматически визуализирует данные из GOOSE и Sampled Values с указанием наименований сигналов на вашем родном языке.

Рис. 10. Журнал событий системы мониторинга сетевого трафика цифровой подстанции Теквел Парк.

Рис. 11. Отображение осциллограмм сигналов из сообщений GOOSE и Sampled Values.

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