EagleEye - система IDS на основе хоста и мониторинга сети
Этот проект требует большой доработки для готовности к использованию, так как это мой дипломный проект, поэтому он не удобен для пользователя, только для опытных пользователей, бета-версия, и я опубликовал/сделал его только в образовательных целях!

- EagleEye состоит из двух частей:
- Клиент (написан на Golang)
- Назначение: Захватывать каждый пакет на устройстве и извлекать важные детали известных протоколов, затем отправлять все собранные данные мастеру, если он онлайн!
- Использование: Должен быть установлен на каждом устройстве, которое вы хотите мониторить (например, устройства сотрудников для компаний).
- Мастер: (написан на Python и Bootstrap)
- Назначение: Получать каждый пакет, отправленный клиентами, отображать его в организованном виде в таблице мониторинга GUI, отображать информацию о подключенных устройствах, такую как текущий системный пользователь/информация о системе, сравнивать захваченные данные с уже написанными моделями угроз и, наконец, предупреждать пользователя мастера о возможных угрозах безопасности в сети, как это сделала бы типичная IDS-система!
- Использование: Должен работать на сервере в той же сети, что и клиенты (например, на сервере, управляемом IT-отделом или командой синего хакерства для компании).
Для получения дополнительной информации вам нужно будет почитать о (С)истемах (О)бнаружения (В)торжений и их типах. Я рекомендую руководство NIST.
Скриншоты
Основной GUI


Таблица мониторинга
Обратите внимание, кнопки в таблице дают вам возможность экспортировать таблицу в форматы (CSV, Excel, PDF), копировать данные таблицы в буфер обмена и распечатывать данные таблицы, если хотите.
Поиск по таблице мониторинга
Простой поиск
Детальный поиск
Как видите, поиск здесь дает возможность искать любой элемент, представленный в таблице.
Таблица подключенных устройств
При подключении нового клиента к мастеру
Информация о каждом клиенте
Обратите внимание: таблица обновляется автоматически каждые 5 секунд или при обновлении страницы!
Таблица угроз
Когда обнаружены угрозы
Подробности о любых возможных обнаруженных угрозах + ссылка по клику


Уведомление на рабочем столе об угрозах
Обратите внимание: таблица обновляется автоматически каждые 5 секунд или при обновлении страницы!
Инструкции по установке
Клиент
Требования
- В настоящее время поддерживает только систему Windows (из-за данных, получаемых из реестра; необходимо изменить это).
- Следующие инструкции
Инструкции по установке
- Убедитесь, что у вас установлен Golang.
- Установите библиотеку gopacket с помощью команды:
go get github.com/google/gopacket
- Загрузите и установите npcap отсюда.
- Измените следующие переменные в коде в соответствии с вашими потребностями:
- Строка 57: Измените переменную url на текущий URL мастера
- Строка 59: Измените переменную device на сетевой интерфейс, который вы будете прослушивать; для Windows вам понадобится эта статья!
- Строка 66: Измените переменную filter на желаемый фильтр захвата сетевых пакетов или оставьте пустым (если хотите захватывать все пакеты). Синтаксис фильтра — bpf, который используется в поиске Wireshark; вы можете изучить его по этому руководству. Я также оставил несколько примеров в комментариях, если кто-то захочет их использовать.
- В CMD перейдите в каталог клиента, конечно.
- Теперь вы можете запустить клиент как скрипт с помощью этой команды:
go run main.go
- Чтобы скомпилировать/собрать его, вы можете использовать следующую команду:
go build -o client.exe main.go, возможно, вам понадобится это руководство.
- Если вы все это сделали, идите, живите жизнью, чувак 😆 (Шучу)
Мастер
Требования
- Любая ОС.
- Следующие инструкции; это намного проще, чем клиент, не волнуйтесь LOL!
Инструкции по установке
- Убедитесь, что у вас установлен Python 3 (версия 3.5 и выше) и pip.
- В CMD перейдите в папку мастера, затем установите зависимости с помощью команды:
pip install -r requirements.txt или python -m pip install -r requirements.txt
- Если вы работаете в Windows и цветной вывод в CMD для вас важен, выполните эту команду:
pip install -r coloring-requirements.txt или python -m pip install -r coloring-requirements.txt
- Теперь несколько переменных для изменения в соответствии с вашими потребностями 😆
- Строка 21: Измените переменную host_port на порт, на котором вы хотите обслуживать (По умолчанию:8000)
- Строка 23: Измените переменную serve_localhost на True, если вы хотите запустить мастер только на локальном хосте (По умолчанию:True)
- Строка 24: Измените переменную view_browser на True, если вы хотите, чтобы мастер автоматически открывал обслуживающий URL в браузере (По умолчанию:True)
- Теперь вы можете запустить мастер с помощью
python interface.py
- Получайте удовольствие :)