Введение
В области кибербезопасности понимание и выявление подозрительной сетевой активности имеет решающее значение для поддержания безопасной и устойчивой сетевой инфраструктуры. Этот учебник проведет вас через процесс использования Wireshark, мощного анализатора сетевых протоколов, для обнаружения и анализа потенциальных угроз в вашей сетевой среде.
Установка и настройка Wireshark
Что такое Wireshark?
Wireshark — это мощный анализатор сетевых протоколов с открытым исходным кодом, который позволяет захватывать и инспектировать данные, передаваемые по сети в режиме реального времени. Специалисты по безопасности используют его для:
- Мониторинга сетевого трафика
- Устранения проблем с сетью
- Обнаружения подозрительной активности
- Анализа деталей протоколов
- Выявления потенциальных угроз безопасности
Установка Wireshark
Давайте начнем с установки Wireshark в нашей системе Ubuntu. Откройте терминал и выполните следующие команды:
sudo apt update
sudo apt install -y wireshark
Во время установки вам будет предложено, должны ли пользователи, не являющиеся суперпользователями, иметь возможность захватывать пакеты. Выберите «Да» для удобства в этой лабораторной среде.
Установка может занять несколько минут. После завершения вы должны увидеть вывод, указывающий на то, что Wireshark был успешно установлен.
Настройка прав доступа пользователей
Чтобы захватывать пакеты, не запуская Wireshark от имени root, нам нужно добавить нашего пользователя в группу wireshark:
sudo usermod -a -G wireshark $USER
Чтобы изменения вступили в силу, нам нужно выйти из системы и снова войти, но для этой лабораторной работы мы можем применить изменения немедленно с помощью следующей команды:
newgrp wireshark
Проверка установки
Давайте проверим, что Wireshark был установлен правильно:
wireshark --version
Вы должны увидеть вывод, аналогичный следующему:
Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)
Copyright 1998-2022 Gerald Combs <gerald@wireshark.org> and contributors.
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiled (64-bit) with Qt 5.15.3, with libpcap, with POSIX capabilities
(Linux), with libnl 3, with Lua 5.2.4, with GLib 2.72.1, with zlib 1.2.11,
with Snappy, with libpcap 1.10.1, with GNUTLS 3.7.3, with Gcrypt 1.9.4.
Запуск Wireshark
Теперь давайте запустим Wireshark с графическим интерфейсом:
wireshark &
Приложение Wireshark откроется в новом окне. Вы увидите основной интерфейс со списком сетевых интерфейсов, доступных для захвата пакетов.
Уделите немного времени, чтобы ознакомиться с пользовательским интерфейсом Wireshark:
- В верхней части отображаются доступные сетевые интерфейсы.
- В средней части (в настоящее время пустой) будут отображаться захваченные пакеты.
- Панель фильтра вверху позволяет фильтровать отображаемые пакеты.
- Различные меню и панели инструментов предоставляют дополнительные функции.
На следующем шаге мы узнаем, как захватывать сетевой трафик с помощью Wireshark.
Захват сетевого трафика с помощью Wireshark
Понимание сетевых интерфейсов
Прежде чем мы сможем захватывать сетевой трафик, нам нужно понять, какой сетевой интерфейс следует отслеживать. В типичной системе у вас может быть несколько интерфейсов:
eth0илиens33: Ethernet (проводное) соединениеwlan0: Wi-Fi соединениеlo: Loopback интерфейс (локальный трафик)
Давайте проверим доступные сетевые интерфейсы в нашей системе:
ip a
Эта команда отобразит все сетевые интерфейсы. Найдите интерфейсы, такие как eth0, ens33 или другие сетевые интерфейсы (точное имя зависит от конфигурации вашей системы).
Генерация тестового сетевого трафика
Чтобы убедиться, что у нас есть какой-то сетевой трафик для анализа, давайте сгенерируем некоторый базовый HTTP-трафик, сделав несколько веб-запросов:
## Create a directory to save our captures
mkdir -p ~/wireshark_lab
## Generate some HTTP traffic
curl -s http://example.com > /dev/null
curl -s http://google.com > /dev/null
Захват трафика в Wireshark
Теперь давайте захватим некоторый сетевой трафик с помощью Wireshark:
- Если Wireshark еще не запущен, запустите его:
wireshark &
В главном окне Wireshark найдите свой основной сетевой интерфейс (вероятно,
eth0илиens33- используйте интерфейс, который вы определили ранее с помощью командыip a).Дважды щелкните по сетевому интерфейсу, чтобы начать захват пакетов.
Вы увидите, как пакеты начинают появляться в главном окне по мере их захвата:
- Верхняя панель показывает список пакетов.
- Средняя панель показывает детали выбранного пакета.
- Нижняя панель показывает необработанные данные выбранного пакета в шестнадцатеричном формате и ASCII.
Давайте сгенерируем еще немного сетевого трафика, пока Wireshark выполняет захват:
## Open a new terminal window and execute:
ping -c 5 google.com
Вернитесь в Wireshark, и вы должны увидеть пакеты ICMP ping, появляющиеся в захвате.
Чтобы остановить захват, нажмите красную кнопку в виде квадрата на панели инструментов или перейдите в
Capture>Stop.
Сохранение захваченного трафика
Теперь, когда мы захватили некоторый сетевой трафик, давайте сохраним его для дальнейшего анализа:
В Wireshark перейдите в
File>Saveили нажмитеCtrl+S.Перейдите в каталог
~/wireshark_lab, который мы создали ранее.Назовите свой файл
basic_capture.pcapngи нажмитеSave.
## Verify that the capture file was saved
ls -la ~/wireshark_lab/
Вы должны увидеть свой файл basic_capture.pcapng в выводе.
Открытие сохраненного захвата
Давайте потренируемся в открытии нашего сохраненного файла захвата:
В Wireshark перейдите в
File>Openили нажмитеCtrl+O.Перейдите к
~/wireshark_lab/basic_capture.pcapngи откройте его.
Захваченные пакеты теперь должны отображаться в Wireshark, готовые к анализу.
На следующем шаге мы узнаем, как фильтровать и анализировать этот захваченный трафик для выявления конкретных типов сетевой активности.
Анализ сетевого трафика с использованием базовых фильтров
Понимание фильтров отображения Wireshark
Фильтры отображения Wireshark позволяют просматривать только пакеты, соответствующие определенным критериям. Это необходимо при анализе больших захватов пакетов для поиска релевантной информации.
Базовый синтаксис для фильтров отображения Wireshark:
protocol.field == value
Например:
ip.addr == 192.168.1.1- Отображает пакеты с этим IP-адресомtcp.port == 80- Отображает пакеты с TCP-портом 80http- Отображает все HTTP-пакеты
Применение базовых фильтров отображения
Давайте попрактикуемся в применении некоторых базовых фильтров к нашему захваченному трафику:
- Убедитесь, что Wireshark открыт с нашим ранее сохраненным файлом захвата. Если нет, откройте его:
wireshark ~/wireshark_lab/basic_capture.pcapng &
Найдите панель фильтра в верхней части списка пакетов (когда она пуста, на ней написано «Применить фильтр отображения...»).
Давайте отфильтруем трафик DNS. Введите следующее в строке фильтра:
dns
- Нажмите Enter или щелкните синюю кнопку со стрелкой, чтобы применить фильтр.
Теперь вы должны видеть только пакеты DNS в отображении. Это запросы и ответы разрешения доменных имен.
- Теперь давайте попробуем отфильтровать трафик HTTP:
http
Примените фильтр и наблюдайте за пакетами HTTP.
- Давайте отфильтруем трафик по определенному IP-адресу. Сначала определите IP-адрес в вашем захвате, посмотрев на столбцы источника или назначения. Затем примените фильтр, например:
ip.addr == [replace_with_an_ip_from_your_capture]
Например: ip.addr == 93.184.216.34 (если вы видите трафик на example.com)
Комбинирование фильтров
Вы можете комбинировать фильтры, используя логические операторы:
&&илиandдля операции AND||илиorдля операции OR!илиnotдля операции NOT
Давайте попробуем комбинированный фильтр:
http && ip.addr == [replace_with_an_ip_from_your_capture]
Это покажет трафик HTTP только в/из указанного IP-адреса.
Создание простого фильтра для трафика TCP
Давайте создадим и сохраним фильтр для трафика TCP:
- В строке фильтра введите:
tcp
Примените фильтр. Вы должны увидеть только пакеты TCP.
Давайте сохраним этот фильтр для дальнейшего использования. Нажмите кнопку «+» в правой части строки фильтра.
В появившемся диалоговом окне введите:
- Имя фильтра:
TCP Traffic - Строка фильтра:
tcp
- Имя фильтра:
Нажмите «Save», чтобы сохранить этот фильтр.
Анализ иерархии протоколов
Wireshark предоставляет полезную визуализацию протоколов в вашем захвате:
Перейдите в
Statistics>Protocol Hierarchy.Это показывает разбивку протоколов по процентам и количеству пакетов.
Закройте это окно после завершения просмотра.
Сохранение отфильтрованных результатов
Давайте сохраним отфильтрованное представление нашего захвата:
Примените фильтр по вашему выбору (например,
httpилиdns).Перейдите в
File>Export Specified Packets.Убедитесь, что в разделе «Packet Range» выбрано «Displayed».
Перейдите в
~/wireshark_lab/и сохраните какfiltered_capture.pcapng.Убедитесь, что файл был сохранен:
ls -la ~/wireshark_lab/
Вы должны увидеть как исходный, так и отфильтрованный файлы захвата.
На следующем шаге мы будем использовать эти методы фильтрации для выявления подозрительной сетевой активности.
Выявление подозрительной сетевой активности
Общие признаки подозрительной сетевой активности
При анализе сетевого трафика в целях безопасности определенные шаблоны и поведение могут указывать на подозрительную или вредоносную деятельность:
- Необычное использование портов: Трафик на необычных портах или известных портах вредоносных программ
- Чрезмерные DNS-запросы: Может указывать на DNS-туннелирование или утечку данных
- Незашифрованные учетные данные: Пароли, отправленные в открытом тексте
- Сканирование портов: Несколько попыток подключения к разным портам
- Необычные шаблоны данных: Кодированные в Base64 полезные нагрузки или зашифрованный трафик, где это не ожидается
- Попытки подключения к известным вредоносным IP-адресам: Трафик в/из заблокированных адресов
Моделирование подозрительной активности
В учебных целях давайте смоделируем некоторую подозрительную сетевую активность, которую мы можем обнаружить с помощью Wireshark:
## Create a directory for our security analysis
mkdir -p ~/wireshark_lab/security_analysis
## Simulate a port scan (limited to a few ports for demonstration)
nmap -p 80,443,22,21,25 scanme.nmap.org > ~/wireshark_lab/security_analysis/scan_results.txt 2>&1
Примечание: Команда nmap выше выполняет сканирование общих портов сервера scanme.nmap.org, который специально настроен для тестирования nmap.
Захват и анализ подозрительного трафика
- Запустите новый захват Wireshark на вашем основном сетевом интерфейсе:
wireshark &
В Wireshark дважды щелкните по вашему основному сетевому интерфейсу, чтобы начать захват.
В отдельном терминале выполните команду моделирования:
## Simulate another port scan while capturing
nmap -p 80,443,22,21,25 scanme.nmap.org > /dev/null 2>&1
После завершения команды остановите захват Wireshark, нажав красную кнопку в виде квадрата.
Сохраните этот захват как
suspicious_traffic.pcapngв каталоге~/wireshark_lab/security_analysis/.
Обнаружение сканирования портов
Сканирование портов — это распространенный метод разведки, используемый злоумышленниками для обнаружения служб, работающих в системе. Давайте определим активность сканирования портов в нашем захвате:
- Примените фильтр, чтобы увидеть попытки подключения к разным портам:
tcp.flags.syn == 1 && tcp.flags.ack == 0
Этот фильтр показывает пакеты TCP SYN, которые используются для инициирования соединений. Большое количество этих пакетов на разные порты на одном и том же хосте указывает на сканирование портов.
- Чтобы сосредоточиться на трафике, связанном с нашим сканированием nmap, вы можете добавить фильтр для целевого домена:
tcp.flags.syn == 1 && tcp.flags.ack == 0 && ip.addr contains scanme.nmap.org
Создание отчета об анализе безопасности
Давайте задокументируем наши выводы в простом отчете об анализе безопасности:
## Create a report file
nano ~/wireshark_lab/security_analysis/security_report.txt
Добавьте следующее содержимое в файл:
Security Analysis Report
=======================
Date: [Current Date]
Findings:
1. Port Scanning Activity Detected
- Source: [Your IP address]
- Target: scanme.nmap.org
- Targeted Ports: 80, 443, 22, 21, 25
- Evidence: TCP SYN packets to multiple ports
2. Analysis Method:
- Used Wireshark to capture network traffic
- Applied filter: tcp.flags.syn == 1 && tcp.flags.ack == 0
- Identified pattern of systematic connection attempts
3. Recommended Actions:
- Monitor for unauthorized scanning activities
- Implement firewall rules to limit outbound scanning
- Consider implementing network intrusion detection systems
Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите из nano с помощью Ctrl+X.
Создание пользовательского фильтра для подозрительной активности
Давайте создадим пользовательский фильтр для обнаружения потенциальных проблем безопасности:
- В Wireshark введите следующий фильтр:
(tcp.flags.syn == 1 && tcp.flags.ack == 0) || (dns.qry.type == 1 && dns.qry.name contains "suspicious") || (http.request && ip.addr == 192.168.0.1)
Этот сложный фильтр ищет:
- Активность сканирования портов (пакеты SYN без ACK)
- DNS-запросы для доменов, содержащих «suspicious»
- HTTP-запросы в/из IP-адреса 192.168.0.1
Сохраните этот фильтр:
- Нажмите кнопку «+» в правой части строки фильтра
- Имя:
Security Monitoring - Строка фильтра: (вставьте фильтр выше)
- Нажмите «Save»
Экспортируйте эту конфигурацию фильтра для дальнейшего использования:
## First, open your Wireshark profile directory to find the saved filters
ls -la ~/.config/wireshark/
Подведение итогов вашего анализа безопасности
Давайте проверим наши артефакты анализа безопасности:
## List all the files we've created
ls -la ~/wireshark_lab/security_analysis/
Вы должны увидеть:
scan_results.txt- Вывод из нашего сканирования nmapsuspicious_traffic.pcapng- Захват Wireshark подозрительной активностиsecurity_report.txt- Наш отчет об анализе
Эти файлы представляют собой базовый рабочий процесс анализа кибербезопасности:
- Захват подозрительного трафика
- Анализ трафика с использованием соответствующих фильтров
- Документирование результатов и рекомендаций
В реальной среде безопасности вы будете продолжать совершенствовать свои методы обнаружения, создавать более сложные фильтры и интегрировать анализ Wireshark с другими инструментами безопасности для комплексного обнаружения угроз и реагирования на них.
Резюме
В этой лабораторной работе вы получили практический опыт работы с Wireshark, мощным анализатором сетевых протоколов, широко используемым в кибербезопасности. Вы узнали, как:
- Установить и настроить Wireshark в Ubuntu
- Захватывать сетевой трафик с различных интерфейсов
- Применять фильтры для анализа конкретных типов сетевого трафика
- Выявлять потенциально подозрительную деятельность, такую как сканирование портов
- Документировать свои выводы в отчете об анализе безопасности
Эти навыки составляют основу анализа сетевого трафика для целей кибербезопасности. Понимая, как эффективно использовать Wireshark, вы можете отслеживать сетевой трафик, обнаруживать аномалии и выявлять потенциальные угрозы безопасности, прежде чем они нанесут значительный ущерб.
Продолжая свой путь в кибербезопасности, вы можете развивать эти основы, изучая более продвинутые методы фильтрации, разрабатывая пользовательские правила обнаружения и интегрируя Wireshark с другими инструментами безопасности для создания комплексных решений мониторинга сети.


