12 аналізаторів мережевих пакетів для системних адміністраторів і аналітиків безпеки

Аналіз мережевих пакетів: глибоке занурення у вашу мережу

Ваша мережа – це фундамент діяльності вашого бізнесу. Тому надзвичайно важливо розуміти, що відбувається в її глибинах.

Ландшафт цифрового бізнесу зазнав значних змін. Від простих скриптів CGI, написаних на Perl, ми перейшли до кластерних розгортань, автоматизованих за допомогою Kubernetes та інших платформ оркестрування. Це вже не просто технічні терміни, це реальність.

(Зображення: Типовий контейнерний, розподілений сучасний веб-додаток – джерело: medium.com)

Зворушливо, але основи залишаються незмінними з 1970-х років. Усе, що ми маємо, — це набір абстракцій, які підтримуються фізичними кабелями, що створюють мережу (звісно, існують віртуальні мережі, але суть та сама). Ми можемо уявити мережу як набір рівнів відповідно до моделі OSI, але в кінцевому підсумку ми завжди працюємо з протоколами TCP/IP, ping, маршрутизаторами, і всі вони служать одній меті: передачі пакетів даних.

Що таке мережевий пакет?

Усе, що ми робимо в інтернеті – спілкування в чаті, перегляд відео, ігри, серфінг, покупки – це обмін пакетами даних між двома комп’ютерами. Пакет — це найменша одиниця інформації, що передається в мережі, і існує чітка методологія побудови та перевірки цих пакетів. (Якщо цікаво, ось детальніше).

(Зображення: Потік пакетів у мережі – джерело: training.ukdw.ac.id)

Кожен пакет є ланкою в ланцюзі, правильно переданою з джерела і перевіреною в пункті призначення. Якщо один пакет відсутній або не в порядку, процес призупиняється, поки всі пакети не будуть отримані у правильній послідовності, і лише тоді вони об’єднуються, щоб утворити вихідні дані (наприклад, зображення).

Тепер, коли ми розуміємо, що таке мережа, важливо зрозуміти, що робить мережевий аналізатор. Це інструмент, що дозволяє переглядати окремі пакети у вашій мережі.

Але навіщо вам це потрібно? Давайте обговоримо це далі.

Навіщо аналізувати пакети?

Пакети є основними будівельними блоками в мережевому потоці даних, подібно до того, як атоми є основою всієї матерії. При аналізі матеріалів або газів нас не хвилює окремий атом. Тож навіщо аналізувати окремі мережеві пакети? Що ми можемо дізнатися, окрім того, що вже знаємо?

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

  • Необґрунтована втрата конфіденційних даних за відсутності явного порушення безпеки.
  • Діагностика повільних додатків без будь-яких очевидних причин.
  • Перевірка на відсутність злому вашого комп’ютера або мережі.
  • Виявлення, чи не використовує хтось ваш Wi-Fi без дозволу (так званий “контрейлер”).
  • З’ясування причин вузьких місць на сервері, незважаючи на низький трафік.

Аналіз пакетів надає конкретні докази. Якщо ви володієте навичками аналізу пакетів та маєте відповідні дані, ви зможете захистити себе від неправдивих звинувачень у зломі або банальних звинувачень у некомпетентності як розробника чи адміністратора мережі.

(Зображення: Вся справа в мізках! – джерело: dailydot.com)

Ось реальний приклад, взятий з блогу тут:

Додаток, критично важливий для компанії, мав проблеми з продуктивністю та помилки під час розгортання у клієнтів. Це був інструмент для розрахунку цін на акції, який використовувався керівниками біржових ліній у фінансових компаніях по всьому світу. Аналіз поведінки TCP показав, що проблема полягала в реалізації TCP постачальником ОС. Помилка полягала в тому, що кожного разу, коли стек надсилання переходив у стан контролю перевантаження, він ніколи не відновлювався, що призводило до комічно малого вікна надсилання. Після боротьби з менеджерами та службою підтримки розробників, які не розуміли проблеми, виявилося, що розробник ОС впровадив розширення RFC1323 у стек. Наступного дня було отримано патч, і продукт запрацював ідеально.

Розробник пояснив, що вхідні ACK з корисним навантаженням неправильно класифікувалися як DUPACK, коли стек перебував у стані контролю перевантаження. Цього не буває в напівдуплексних програмах, наприклад HTTP, але програма, яку я підтримував, надсилала дані двонаправлено через сокет.

Керівництво не підтримувало мене (мій менеджер кричав на мене за те, що я «завжди хочу використовувати сніфер» для вирішення проблем), і ніхто, крім мене, не розглядав реалізацію TCP постачальника ОС як джерело проблеми. Самостійна боротьба за виправлення від постачальника ОС зробила цю перемогу особливо приємною, і я заробив багато довіри.

(Зображення: )

Коротше кажучи, цей спеціаліст зіткнувся з проблемами продуктивності, які були винні у його додатку. Тільки завдяки ретельному аналізу пакетів було доведено, що проблема полягала не в програмі, а в обробці мережевого протоколу операційною системою. Виправленням була не настройка програми, а виправлення розробниками операційної системи!

Де б була ця людина без аналізу пакетів? Ймовірно, без роботи. Якщо це вас не переконало у важливості аналізу пакетів, то я не знаю, що ще переконає.

Тепер, коли ви знаєте, що аналіз пакетів – це надзвичайно корисна навичка, є хороша новина: навчитися цьому не так вже й складно!

Завдяки потужним, але простим у використанні інструментам аналізу пакетів, отримувати інформацію можна так само легко, як читати звіт про продажі. Однак, вам потрібні глибші знання про роботу мережі. Але це не є якоюсь складною наукою, все доволі логічно і зрозуміло.

Почніть читати документацію одного з цих інструментів, використовуючи його у власній мережі, і незабаром ви станете експертом. 😀

Wireshark

Wireshark — це проєкт з довгою історією (почався у 1998 році), що став стандартом де-факто у сфері аналізу мереж. Вражає, що це проєкт, що базується на волонтерстві та підтримці спонсорів. Wireshark є відкритим кодом (не на GitHub, але код можна знайти тут) і навіть має свою конференцію!

(Зображення:)

Основні можливості Wireshark:

  • Підтримка сотень мережевих протоколів.
  • Сумісність з багатьма форматами файлів (tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® (стиснутий і нестиснутий), Sniffer® Pro, NetXray® тощо).
  • Працює на всіх поширених платформах (Linux, Windows, macOS, Solaris, FreeBSD та ін.).
  • Зчитування даних в режимі реального часу з Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring та ін.
  • Розпакування gzip в реальному часі.
  • Підтримка розшифрування багатьох протоколів (WPA/WPA2, SNMPv3 тощо)
  • Розширений аналіз VoIP.
  • Правила кольорового кодування для швидшого візуального сканування.

Ви можете навчитися використовувати Wireshark, переглянувши цей фантастичний онлайн-курс.

Хочете використовувати Wireshark у терміналі? Спробуйте Termshark.

tcpdump

Якщо ви консерватор і фанат командного рядка, tcpdump створений для вас.

Це культова утиліта Linux, що залишається актуальною, і більшість “прогресивних” інструментів базується на ній. Немає графічного інтерфейсу, але функціональність інструмента є достатньою.

Встановлення може бути трохи незручним. Хоча tcpdump постачається з більшістю сучасних дистрибутивів Linux, якщо у вас його немає, потрібно буде збирати з вихідного коду.

(Зображення:)

Команди tcpdump прості та лаконічні, призначені для вирішення конкретних проблем, наприклад:

  • Відображення всіх доступних інтерфейсів.
  • Захоплення трафіку лише з одного інтерфейсу.
  • Збереження захоплених пакетів у файл.
  • Захоплення лише помилкових пакетів.

Якщо вам потрібний швидкий аналіз, tcpdump — чудовий вибір (особливо, якщо він вже встановлений!). Перегляньте приклади команд tcpdump у реальному часі тут.

Tproxy

Tproxy – це простий інструмент командного рядка з відкритим кодом для проксі-з’єднань TCP у мережі. Написаний на Go, він запакований у двійковий файл і доступний на всіх сучасних платформах Linux і macOS.

(Зображення: командний рядок для моніторингу підключень Mysql)

Він використовується для проксі HTTP-з’єднань та перевірки вмісту HTTP-запитів та відповідей. Він також може проксувати інші протоколи, такі як SOCKS або TCP. Його можна використовувати для аналізу трафіку під час з’єднання. Це корисно для налагодження та тестування додатків, які використовують TCP, а також для створення проксі-сервісів TCP.

Інструмент створений, щоб надати простий інтерфейс для tcpdump, що дозволяє користувачам проксі-з’єднання TCP та виконувати розширений аналіз мережі без необхідності розбиратися з протоколом TCP.

(Зображення: підключення gRPC)

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

Інші варіанти використання Tproxy:

  • Для налагодження та оптимізації з’єднань TCP.
  • Для розуміння роботи інших проксі-програм, таких як Burp Suite і ZAP.
  • Для проксі-з’єднань TCP між двома хостами або між хостом і віддаленою службою TCP.
  • Для відстеження підключень MySQL і gRPC, а також перевірки надійності з’єднання з точки зору швидкості Retrans і RTT.

Більшість користувачів вважають, що Tproxy спрощує їх робочий процес та дозволяє виконувати складний аналіз мережі без необхідності змінювати програму чи саму мережу. Інструмент можна завантажити з GitHub.

NetworkMiner

NetworkMiner – це засіб криміналістичного аналізу мереж. Він аналізує мережу пасивно та має графічний інтерфейс для аналізу, що дозволяє відображати зображення та інші передані файли.

(Зображення:)

Основні можливості NetworkMiner:

  • Підтримка IPv6.
  • Аналіз файлів PCAP.
  • Вилучення сертифікатів X.509 з трафіку, зашифрованого SSL.
  • Pcap-over-IP.
  • Працює з різними типами трафіку, такими як FTP, TFTP, HTTP, SMB, SMB2, SMTP, POP3 і ін.
  • Визначення відбитків ОС.
  • Гео IP локалізація.
  • Підтримка сценаріїв командного рядка.

Зауважте, що деякі функції доступні лише в комерційній версії.

Fiddler

На відміну від пасивних мережевих сніферів, Fiddler знаходиться між вашим пристроєм та зовнішнім світом, тож потребує налаштування. Це безкоштовний інструмент, що має довгу історію, і він чудовий для аналізу HTTP/HTTPS трафіку.

(Зображення:)

Можливості Fiddler:

  • Маніпуляція сеансом: редагування HTTP-заголовків і даних сеансу.
  • Тестування безпеки: імітація атак “людина посередині”, розшифрування HTTPS.
  • Тестування продуктивності: аналіз часу завантаження сторінки та виявлення вузьких місць.

Документація Fiddler є якісною та рекомендована для ознайомлення.

WinDump

Якщо вам потрібна простота tcpdump у Windows, використовуйте WinDump. Після встановлення він працює з командного рядка, вводячи “tcpdump”, як і в Linux.

WinDump — це двійковий файл, що запускається без встановлення, якщо є реалізація бібліотеки Pcap (рекомендовано npcap, оскільки winpcap не розробляється).

BruteShark

BruteShark є ефективним інструментом аналізу мережі для обробки та перевірки трафіку, наприклад, файлів PCAP, і захоплення безпосередньо з мережевих інтерфейсів.

Інструмент може реконструювати сесії TCP, створювати мережеві карти, витягувати хеші паролів, перетворювати їх на формат Hashcat для офлайн атак.

Основна мета проєкту – допомогти мережевим адміністраторам і спеціалістам з безпеки в аналізі мережевого трафіку та виявленні вразливостей.

Доступні дві версії BruteShark: програма з графічним інтерфейсом для Windows і інструмент командного рядка для Linux та Windows. Деякі компоненти рішення можна використовувати окремо для аналізу трафіку на Windows і Linux.

(Зображення:)

BruteShark також виконує видобування DNS-запитів, вирізання файлів, видобування викликів VoIP (SIP, RTP), створення діаграм мережі для користувачів та вузлів, вилучення хешів автентифікації (NTLM, HTTP-Digest, CRAM-MD5, Kerberos і ін.), а також отримання та кодування паролів та імен користувачів.

Проєкт розроблено на .Net Standard та .Net Core для кросплатформної підтримки. Він має трирівневу архітектуру з рівнями PL, BLL та DAL. DAL (рівень доступу до даних) зчитує необроблені файли PCAP за допомогою WinPcap, libpcap і SharpPcap. BLL (рівень бізнес-логіки) аналізує мережеву інформацію, а PL використовує наскрізний проєкт та посилається на рівні BLL та DAL.

OmniPeek

Для великих мереж з великим трафіком, OmniPeek може бути корисним.

Це інструмент для аналізу продуктивності, аналітики та судової експертизи для аналізу мереж, особливо коли потрібні низькорівневі можливості та комплексні інформаційні панелі.

(Зображення: Джерело: sniffwifi.com)

Capsa

Для користувачів Windows є Capsa. Він має три версії: безкоштовна, стандартна та корпоративна.

(Зображення:)

Безкоштовна версія підтримує понад 300 протоколів і має сповіщення. Стандартна версія підтримує понад 1000 протоколів і дозволяє аналізувати розмови та реконструювати потоки пакетів. Загалом, це хороший варіант для Windows.

EtherApe

Якщо ви шукаєте потужну візуалізацію та відкритий код, EtherApe – це хороший вибір. Двійкові файли доступні лише для кількох дистрибутивів Linux, але вихідний код доступний на SourceForge та GitHub, і ви можете зібрати інструмент самостійно.

(Зображення:)

Основні переваги EtherApe:

  • Багатовузловий моніторинг з кольоровим кодуванням.
  • Підтримка форматів пакетів: ETH_II, 802.2, 803.3, IP, IPv6, ARP, X25L3, REVARP, ATALK, AARP, IPX, VINES, TRAIN, LOOP, VLAN і багато інших.
  • Зчитування даних в режимі реального часу з мережі або з файлу tcpdump.
  • Підтримка роздільної здатності імен.
  • Оновлений графічний інтерфейс з використанням GTK3.

CommView

Для тих, хто використовує виключно Windows і потребує пріоритетної підтримки, CommView — це надійний інструмент. Це потужний аналізатор мережевого трафіку з розширеними функціями, такими як аналіз VoIP та віддалене відстеження.

(Зображення:)

Інструмент підтримує експорт даних у різні формати, які використовуються кількома відкритими та пропрієтарними форматами, такими як Sniffer®, EtherPeek™, AiroPeek™, Observer®, NetMon, Wireshark/Tcpdump, Wireshark/pcapng та шістнадцяткові дампи.

Wifi Explorer

Останнім у списку є Wifi Explorer, що має безкоштовну версію для Windows та стандартну для Windows та macOS. Якщо вам потрібно аналізувати тільки Wi-Fi, Wifi Explorer спростить ваше життя.

Це добре розроблений та багатофункціональний інструмент для роботи безпосередньо з Wi-Fi.

(Зображення:)

Спеціальна згадка: не можна залишити поза увагою ексклюзивний аналізатор мережі для macOS – Little Snitch. Він має вбудований брандмауер, що дозволяє миттєво контролювати весь трафік.

Що далі?

Вивчіть програмне забезпечення для моніторингу мережі для кращої видимості інфраструктури. Якщо ви будуєте кар’єру у сфері мереж та безпеки, перегляньте деякі з найкращих онлайн-курсів тут.