Разработка стенда для обучения студентов системам обнаружения вторжений (Александр Лакиза, OSEDUCONF-2025)
Материал из 0x1.tv
- Докладчик
- Александр Лакиза
В докладе рассматривается процесс создания стенда для моделирования сети с использованием системы симуляции GNS3 для обучения системам обнаружения вторжений.
Кратко рассмотрены системы моделирования сети.
В качестве инструментов выбраны GNS3, Mikrotik CHR, Debian 12, Snort.
Содержание
Видео
Презентация
Thesis
Интернет с момента своего создания в 1969 году в виде ARPANET значительно изменился. Изначально он использовался лишь для связи институтов и военными, но на сегодняшний день доступ к сети Интернет занимает ключевое место в жизни человека и деятельности предприятий. Затронуты практически все сферы деятельности человека: торговля, медицина, банковское дело, связь с государственными органами, обучение.
Однако, вскоре после появления интернета в массах, злоумышленники стали искать способы использования цифровизации в своих целях. Будь то спортивный интерес, жажда наживы или нанесение ущерба конкуренту. На данный момент взломы также приобрели политический характер, в частности, с целью шпионажа, манифестаций, нанесения ущерба (а именно, уничтожение данных).
Эти примеры подчёркивают, что, несмотря на давнюю историю развития информационной безопасности, присутствует острая необходимость в квалифицированных кадрах. Специалист получает квалификацию по большей части посредством практического применения знаний. В реальной сети, которая находится в эксплуатации, проводить эксперименты и обучение является дурным тоном, а в некоторых случаях и просто запрещено из соображений безопасности. Поэтому важным этапом в обучении или исследовании новых технологий является создание различных моделей сети в целом или отдельных её участков.
На данный момент создано достаточно много систем симуляции сети[1].
На данный момент популярными являются:
- Cisco packet tracer;
- EVE-NG;
- GNS3.
Каждая из названных систем симуляции сети имеет свои преимущества и недостатки. Так, Cisco packet tracer и EVE-NG проприетарные, Cisco packet tracer поддерживает только оборудование Cisco, но у обеих хорошая поддержка. GNS3, в свою очередь, — полностью свободный продукт. Однако, он имеет свои технические недостатки и слабую поддержку, что характерно для некоммерческих продуктов.
Так как GNS3 относится к свободному ПО и обладает обширными возможностями по виртуализации, было принято решение использовать его в создании стенда. Дополнительным преимуществом является возможность собрать простую сеть на любом современном компьютере и проводить локальные эксперименты, что освобождает вычислительные ресурсы на серверах учебного заведения.
Для стенда использовался персональный компьютер с операционной системой debian 12 и графической оболочкой KDE. Установка проводилась согласно [https://docs.gns3.com/docs/getting-started/installation/linux/ официальной инструкции. Из исходных кодов были собраны ubridge и vpcs.
Ubridge — приложение для создания мостов между различными средами передачи данных. Например, ethernet – wifi, ethernet – UDP туннель. В GNS3 используется в том числе для организации связи между виртуальными устройствами.
VPCS — симулятор виртуального персонального компьютера. Представляет из себя приложение в котором реализован базовый функционал компьютеров. Например, возможность назначить IP адрес, запустить пинг, трассировку, проверить DNS.
После установки системы симуляции была создана модель сети. Сеть состоит из маршрутизатора, двух коммутаторов, четырёх виртуальных ПК, одной IDS и одного web сервера. Модель сети представлена на рисунке:
В качестве маршрутизатора был выбран Mikrotik Cloud Hosted Router — образ операционной системы RouterOS для серверов виртуализации. В качестве ОС для IDS и WEB-сервера — debian 12.
Рассмотрим настройку Mikrotik. На нём создано 4 физических интерфейса. Один — для доступа в интернет, второй для первой локальной сети, третий — для второй, а четвёртый для web сервера. Были назначены адреса на физические интерфейсы, созданы пулы адресов для dhcp, настроена работа DNS и NTP, создан сервер dhcp.
Настроены экземпляры VPCS на получение адреса по dhcp с помощью команды: ip dhcp
Существенным этапом создания стенда является настройка систем на базе debian 12. Инсталляция необходимых пакетов для работы на debian 12 проведена с использованием утилит создания сценариев для автоматизации задач ansible-playbook. В качестве web-сервера установлен nginx из репозитория.
В качестве свободной IDS установлен Snort путём сборки из исходных кодов с адаптациями под debian 12.
Так как данная IDS является NIDS, то этот сервер будет являться также маршрутизатором. Была включена маршрутизация в линуксе, добавив net.ipv4.ip_forward=1 в конец файла /etc/sysctl.conf. После чего для проверки работы системы использовали правило:
alert icmp any any -> $HOME_NET any (msg:"ICMP detected!"; sid:10000001; rev:001;)
Для проверки корректности конфигурации snort используем:
sudo snort -T -c /etc/snort/snort.conf
Если конфигурация корректна, то можем запускать систему:
sudo snort -A console -i ens4 -u snort -g snort -c /etc/snort/snort.conf
Запускаем пинг извне сети на защищаемый хост:
ping 172.16.0.1
В терминале стали появляться записи вида:
01/10-12:42:08.317350 [**] [1:10000001:1] ICMP detected! [**] [Priority: 0] {ICMP} 192.168.122.1 -> 172.16.0.1
Таким образом, система функционирует и захватывает пакеты. Следовательно, создание корректно функционирующего стенда можно считать завершённым.