Перетворіть свій робочий процес Wireshark за допомогою Brim у Linux

Wireshark визнаний провідним інструментом для аналізу мережевого трафіку. Проте, із збільшенням обсягу захоплених даних, його продуктивність може суттєво знижуватися. Brim пропонує ефективне рішення цієї проблеми, що здатне оптимізувати ваш робочий процес з Wireshark.

Wireshark – потужний інструмент, але…

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

Однак, незважаючи на всі переваги Wireshark, існує проблема. Файли захоплення мережевих даних (мережеві трасування або PCAP) можуть швидко стати надто великими. Це особливо актуально при дослідженні складних або спорадичних проблем, або ж у великих та активних мережах.

Зі збільшенням розміру PCAP файлу, Wireshark починає працювати повільніше. Завантаження навіть великого трасування (понад 1 ГБ) може зайняти стільки часу, що здається, ніби програма зависла.

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

Brim вирішує ці проблеми, виступаючи як інтерактивний препроцесор та інтерфейс для Wireshark. Коли ви потребуєте детального аналізу, який надає Wireshark, Brim миттєво відкриває його для вас, саме на потрібних пакетах.

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

Встановлення Brim

Brim є відносно новим інструментом, тому він ще не включений до репозиторіїв більшості дистрибутивів Linux. Однак, на сторінці завантажень Brim доступні пакети DEB і RPM, що спрощує встановлення на Ubuntu або Fedora.

Для інших дистрибутивів, ви можете завантажити вихідний код з GitHub та самостійно зібрати програму.

Brim використовує zq, інструмент командного рядка для Zeek логів, тому вам також знадобиться ZIP-файл з бінарними файлами zq.

Встановлення Brim на Ubuntu

Користувачам Ubuntu необхідно завантажити DEB-пакет та ZIP-файл zq для Linux. Подвійне натискання на DEB-пакет відкриє його в Ubuntu Software. Ліцензію Brim помилково позначено як «Власницька», хоча вона використовує BSD 3-Clause License.

Натисніть «Встановити».

Після завершення встановлення, двічі клікніть на ZIP-файл zq, щоб відкрити його за допомогою Archive Manager. В ZIP-файлі буде один каталог. Перетягніть його з Archive Manager до потрібної директорії на вашому комп’ютері, наприклад, до директорії “Завантаження”.

Для створення директорії для бінарних файлів zq виконайте:

sudo mkdir /opt/zeek

Скопіюйте бінарні файли з розпакованого каталогу до створеної директорії. Замініть шлях та ім’я вашого розпакованого каталогу в наступній команді:

sudo cp Downloads/zq-v0.20.0.linux-amd64/* /opt/Zeek

Необхідно додати цю директорію до системної змінної PATH. Для цього відредагуйте файл BASHRC:

sudo gedit .bashrc

Відкриється редактор gedit. Прокрутіть файл до кінця та додайте наступний рядок:

export PATH=$PATH:/opt/zeek

Збережіть зміни та закрийте редактор.

Встановлення Brim на Fedora

Для встановлення Brim на Fedora, завантажте RPM-пакет (замість DEB) та виконайте аналогічні кроки, як при встановленні на Ubuntu.

Цікаво, що в Fedora файл RPM правильно ідентифікується як ліцензія з відкритим кодом, а не пропрієтарна.

Запуск Brim

Натисніть «Показати програми» на панелі док або натисніть Super+A. Введіть «brim» в поле пошуку та натисніть на значок Brim, коли він з’явиться.

Brim запуститься та відобразить основне вікно. Ви можете натиснути “Вибрати файли”, щоб відкрити файловий менеджер, або перетягнути PCAP файл в область, позначену червоною рамкою.

Brim використовує вкладений інтерфейс, дозволяючи відкривати кілька вкладок одночасно. Щоб відкрити нову вкладку, натисніть на знак плюс (+) у верхній частині вікна та виберіть інший PCAP файл.

Основи Brim

Brim завантажує та індексує обраний файл. Індексація є однією з причин швидкодії Brim. Основне вікно містить гістограму обсягів пакетів в часі та список мережевих “потоків”.

PCAP файл містить послідовність мережевих пакетів для багатьох мережевих з’єднань. Пакети для різних з’єднань перемішуються, оскільки декілька з них можуть бути відкриті одночасно. Пакети для кожної “розмови” мережі переплітаються з пакетами інших розмов.

Wireshark показує мережевий потік пакет за пакетом, в той час як Brim використовує поняття “потоків”. Потік – це повний мережевий обмін між двома пристроями. Кожен тип потоку класифікується, кодується кольором та позначається типом. Ви побачите потоки з позначками “dns”, “ssh”, “https”, “ssl” та інші.

Якщо ви прокрутите екран підсумку потоку вліво або вправо, ви побачите багато додаткових стовпців. Ви також можете налаштувати часовий проміжок, щоб відображати лише потрібну вам частину інформації. Нижче наведено кілька способів перегляду даних:

Натисніть на панель гістограми, щоб збільшити відображення мережевої активності в ній.
Натисніть та перетягніть, щоб виділити діапазон гістограми та збільшити масштаб. Brim відобразить дані лише з виділеної області.
Ви також можете задати точні часові проміжки в полях “Дата” та “Час”.

Brim може відображати дві бічні панелі: одну зліва та одну справа. Їх можна приховати або відобразити. На лівій панелі відображається історія пошуку та список відкритих PCAP, які називаються пробілами. Натисніть Ctrl+[ щоб ввімкнути або вимкнути ліву панель.

Права панель відображає детальну інформацію про виділений потік. Натисніть Ctrl+] щоб ввімкнути або вимкнути праву панель.

Натисніть “Conn” у списку “UID Correlation”, щоб відкрити діаграму підключень для виділеного потоку.

У головному вікні ви також можете виділити потік та натиснути на іконку Wireshark. Це запустить Wireshark з відображеними пакетами для виділеного потоку.

Відкриється Wireshark, показуючи потрібні пакети.

Фільтрація в Brim

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

Наприклад, на зображенні нижче ми клацнули правою кнопкою миші по полю “dns”. Потім ми оберемо “Фільтр = значення” з контекстного меню.

Після цього відбудеться наступне:

Текст _path = “dns” додасться до рядка пошуку.
Цей фільтр буде застосовано до PCAP-файлу, показуючи лише потоки DNS.
Текст фільтра також буде додано до історії пошуку на лівій панелі.

Використовуючи цей самий метод, ми можемо додати додаткові умови до пошукового запиту. Натиснемо правою кнопкою миші на поле IP-адреси (що містить “192.168.1.26”) в колонці “Id.orig_h” та оберемо “Фільтр = значення” з контекстного меню.

Це додасть ще одну умову, як умову AND. Відображення тепер відфільтроване для показу потоків DNS, що виходять з IP-адреси 192.168.1.26.

Нова умова фільтра додається до історії пошуку на лівій панелі. Ви можете перемикатися між пошуками, натискаючи елементи у списку історії пошуку.

IP-адреса призначення для більшості наших відфільтрованих даних – 81.139.56.100. Щоб побачити, які потоки DNS були надіслані на інші IP-адреси, ми натискаємо правою кнопкою миші на “81.139.56.100” у колонці “Id_resp_h” та обираємо “Фільтр != значення” з контекстного меню.

Тільки один потік DNS, що походить з 192.168.1.26, не був відправлений на 81.139.56.100, і ми знайшли його, не вводячи нічого безпосередньо для створення фільтра.

Закріплення умов фільтра

Коли ми натискаємо правою кнопкою миші на потік “HTTP” та обираємо “Фільтр = значення”, в панелі підсумків будуть відображені тільки HTTP потоки. Після цього ми можемо натиснути іконку Pin біля умови фільтра HTTP.

Умова HTTP тепер зафіксована на місці, і будь-які інші фільтри чи пошукові терміни будуть застосовані з умовою HTTP, що передує їм.

Якщо ми введемо “GET” в рядку пошуку, пошук буде обмежено тільки тими потоками, які вже були відфільтровані закріпленою умовою. Ви можете закріпити стільки умов, скільки вам потрібно.

Щоб шукати пакети POST в HTTP потоках, ми очистимо рядок пошуку, введемо “POST” та натиснемо Enter.

Прокручування в бік показує ідентифікатор віддаленого хоста.

Усі пошукові запити та фільтри додаються до списку “Історія”. Щоб повторно застосувати фільтр, просто натисніть на нього.

Ви також можете шукати віддаленого хоста за його назвою.

Редагування пошукових запитів

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

Наприклад, ми знаємо, що в PCAP файлі має бути хоча б один потік SSH, оскільки ми використовували rsync для пересилання файлів на інший комп’ютер, але ми його не бачимо.

Тому ми натискаємо правою кнопкою миші на іншому потоці, обираємо “Фільтр = значення” з контекстного меню, та редагуємо рядок пошуку так, щоб він замість “dns” показував “ssh”.

Натискаємо Enter, щоб виконати пошук потоків SSH та знаходимо лише один.

Натискання Ctrl+] відкриває праву панель, де відображаються деталі цього потоку. Якщо під час потоку був переданий файл, то відобразяться його MD5, SHA1 та SHA256 хеші.

Натисніть правою кнопкою миші на будь-який з хешів та оберіть “VirusTotal Lookup” з контекстного меню, щоб відкрити ваш браузер на сайті VirusTotal та передати хеш для перевірки.

VirusTotal зберігає хеші відомих шкідливих програм та інших небезпечних файлів. Якщо ви не впевнені в безпечності файлу, це простий спосіб перевірити його, навіть якщо у вас більше немає доступу до нього.

Якщо файл безпечний, ви побачите екран, зображений нижче.

Ідеальне доповнення до Wireshark

Brim робить роботу з Wireshark швидшою та зручнішою, дозволяючи працювати з дуже великими файлами захоплення пакетів. Спробуйте його вже сьогодні!