6 семак / 14 лаба
.docxМинистерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
Настройка и использование системы обнаружения вторжений (Zeek)
Отчет по лабораторной работе №14
по дисциплине «Защита информации в компьютерных сетях»
Студент гр. 711-2
_______ А. А. Калинин
_______Е. П. Толстолес
______.2024
Руководитель
Преподаватель каф. КИБЭВС
_______ К. И. Цимбалов
______.2024
Томск 2024
Введение
Цель работы состоит в изучении основных возможностей Zeek для проведения анализа сетевого трафика, анализа журналов Zeek, а также использовании утилит и инструментов в практических примерах для кастомизации логов в условиях реальной сетевой инфраструктуры.
Задачи:
Изучить теоретический материал;
Запустить и настроить экземпляр Zeek, используя утилиту ZeekControl;
Обработать файлы захвата с использованием системы Zeek;
Генерировать и анализировать сетевой трафик с помощью Zeek;
Генерировать лог-файлы Zeek;
Использовать инструменты терминала системы Linux в сочетании с утилитой zeek-cut для изменения вывода данных из лог-файла для дальнейшего анализа;
Использовать инструменты и команды Linux для обработки текстовых файлов;
Применять скрипты командной оболочки Linux и скриптовый язык AWK;
Объединять AWK с утилитой zeek-cut для того, чтобы форматировать/изменять файлы журналов;
Написать и защитить отчёт о проделанной работе.
1 Ход работы
После установки и первоочередной настройки виртуальной машины, запустим LXTerminal, перейдем в директорию Zeek и запутим утилиту ZeekControl (рисунок 1.1).
Рисунок 1.1 – Запуск утилиты ZeekControl
Далее инициируем систему Zeek. Запуск, остановка и возобновление работы Zeek изображены на рисунках 1.2 – 1.3.
Рисунок 1.2 – Запуск, остановка Zeek и вывод текущего статуса
Рисунок 1.3 – Возобновление работы Zeek
Проверка статуса процесса Zeek представлена на рисунке 1.4.
Рисунок 1.4 - Статус процесса Zeek
Далее используем возможности Zeek для анализа сетевого трафика. Перейдем в директорию Zeek-Labs, запустим анализ файла pcap в автономном режиме и откроем лог-файл в целях проверки наличия признаков атаки типа brute-force (рисунок 1.5).
Рисунок 1.5 - Анализ файла pcap и вывод результата
Затем откроем программу MiniEdit, загрузим топологию (рисунок 1.6) перейдем в директорию Zeek-Topologies и откроем топологию «Topology.mn» (рисунок 1.7).
Рисунок 1.7 - Выбор директории Zeek-Topologies
Откроем терминал виртуальной машины zeek2 и перейдем в директорию TCP-Traffic, запустим захват сетевого трафика в реальном времени на интерфейсе zeek2-eth0, а результаты сохраним в файле ntraffic.pcap (рисунок 1.8).
Рисунок 1.8 – Запуск захвата сетевого трафика
Далее сгенерируем трафик на виртуальной машине zeek1 (рисунок 1.9). А после остановим захват трафика в виртуальной машине zeek2 (рисунок 1.10).
Рисунок 1.9 – Генерация трафика
Рисунок 1.10 - Остановка захвата сетевого трафика
Проанализируем захваченный трафик. Для этого в терминале виртуальной машины Zeek_Master перейдем в директорию TCP-Traffic и просмотрим список всех файлов данной директории, находим файл файл ntraffic.pcap (рисунок 1.11), а затем запускаем анализ захвата в оффлайн режиме и выводим сгенерированные лог-файлы (рисунок 1.12).
Рисунок 1.12 – Анализ захвата файла ntraffic.pcap
Выведем содержимое лог-файла conn.log (рисунок 1.13).
Рисунок 1.13 – Содержимое файла conn.log
Выполним обработку файла smallFlows.pcap из директории Zeek-Labs/TCP-Traffic. Сгенерированные лог-файлы после обработки представлены на рисунке 1.14.
Рисунок 1.14 – Просмотр сгенерированных лог-файлов после обработки файла захвата smallFlows.pcap
Выполним парсинг лог-файла conn.log с использованием cat, head с параметром и без (рисунки 1.15 – 1.17).
Рисунок 1.15 – Результат парсинга с cat
Рисунок 1.16 – Результат парсинга с head без параметра
Рисунок 1.17 – Результат парсинга с head с параметром
Вывод данных, полученных с помощью утилиты zeek-cut в текстовый файл представлен на рисунке 1.18, верхних 10 строк нового файла output.txt представлен на рисунке 1.19, а экспорт файла в формате csv на рисунке 1.20 и верхних строк файла output.csv на рисунке 1.21.
Рисунок 1.18 – Вывод данных
Рисунок 1.19 – Вывод первых 10 значений
Рисунок 1.20 – Вывод результата выполнения zeek-cut в файл output.txt
Рисунок 1.21 – Вывод значений первых 10 строк файла output.csv
Далее запустим виртуальную машину Zeek_Master, затем программу LXTerminal, и запустим систему Zeek. После перейдем в директорию Zeek-Labs, создадим файл сценария lab2script.sh (рисунок 1.22).
Рисунок 1.22 – Запуск системы Zeek и создание файла сценария lab2script.sh
Затем запишем в файл lab2script.sh новый сценарий (рисунок 2.23), после чего запустим скрипт (рисунок 2.24).
Рисунок 2.23 – Запись нового сценария
Рисунок 2.24 – Запуск скрипта
Затем перейдем в директорию рабочего пространства лабораторных работ, для просмотра файлов директории TCP-Traffic (рисунок 2.25).
Рисунок 2.25 – Файлы директории
Допустим имеется следующая задача: необходимо вывести 10 IP адресов источников, генерирующих наибольшее количество сетевых пакетов. Расположить адреса в порядке убывания количества пакетов. Сначала перепишем сценарий обработки файла захвата smallFlows.pcap так, как представлено на рисунке 2.26, а после сохраним его и запустим (рисунок 2.27).
Рисунок 2.26 – Изменения в файле lab2script.sh
Рисунок 2.27 – Результат выполнения сценария
Следующая задача: Необходимо вывести 10 портов назначения, которые получили больше всего сетевых пакетов. Расположить в порядке убывания. Сначала обратимся к столбцу id.resp_p, потому что он содержит значения портов назначения захваченных сетевых пакетов. Необходимо изменить файл lab2script.sh, а затем запустить его (рисунки 2.28 – 2.29).
Рисунок 2.28 – Новые изменения в файле
Рисунок 2.29 – Результат выполнения сценария
Следующая задача: необходимо вывести число подключений для каждой сетевой службы. Для этого обратимся к столбцу service, изменим тот же сценарий и запустим его (рисунки 2.30 – 2.31).
Рисунок 2.30 – Изменение содержимого в файле lab2script.sh
Рисунок 2.31 – Результат выполнения сценария
Следующая задача: необходимо вывести все браузеры, используемые хостами, в анализируемом сетевом трафике, в отдельный файл. Чтобы решить ее изменим содержимое файла lab2script.sh, как показано на рисунке 2.32, а затем запустим его и отобразим содержимое файла browser.txt (рисунок 2.33).
Рисунок 2.32 – Изменение содержимого в файле lab2script.sh
Рисунок 2.33 – Содержимое файла browser.txt
Следующая задача: нужно найти IP-адреса источника и назначения всех сеансов связи TCP и UDP, которые длились более одной минуты. Открываем, меняем содержимое файла lab2script.sh и запускаем сценарий (рисунки 2.34 – 2.35).
Рисунок 2.34 – Изменение содержимого в файле lab2script.sh
Рисунок 2.35 – Результат выполнения сценария
Следующая задача: необходимо вывести 10 IP-адресов источников, сгенерировавших наибольший объём сетевого трафика (в байтах). Расположить адреса в порядке убывания объема трафика. Для решения этой задачи используем предварительно подготовленный AWK сценарий под названием lab3_sec3-2.awk (рисунок 2.36). Затем введем команду для парсинга лог-файла conn.log по заданным параметрам с помощью утилиты zeek-cut и применения AWK сценария lab3_sec3-2.awk (рисунок 2.37).
Рисунок 2.36 – Подготовленный AWK сценарий lab3_sec3-2.awk
Рисунок 2.37 – Команда для вывода IP-адреса источника и числа байт
Последняя задача: необходимо обнаружить IP-адреса веб-серверов, запущенных на нестандартизированных портах. Сначала обратимся столбцу service, чтобы зафиксировать пакеты протокола HTTP. Далее в текстовом редакторе nano откроем и изменим сценарий lab2script.sh, как показано на рисунке 2.38, а после запустим его (рисунок 2.39).
Рисунок 2.38 – Изменение содержимого файла lab2script.sh
Рисунок 2.39 – Результат выполнения сценария
Заключение
В результате выполнения данной лабораторной работы были изучены основные возможности Zeek для проведения анализа сетевого трафика, анализа журналов Zeek, а также использованы утилиты и инструменты в практических примерах для кастомизации логов в условиях реальной сетевой инфраструктуры. Поставленные задачи были выполнены без затруднений.
Отчет составлен согласно ОС ТУСУР 2021.