
Карта атак в сфере кибербезопасности с геолокацией (GeoIP), которая отслеживает syslog и анализирует IP-адреса и номера портов для визуализации атакующих в реальном времени.
У меня сейчас не так много времени в жизни, чтобы поддерживать этот проект. Я взялся за эту задачу как за способ изучить JavaScript и улучшить уже имеющиеся знания Python. Я уверен, что мог бы сделать многое иначе в своей реализации, и меня не обидят конструктивные замечания от тех, кто скачает и просмотрит мой код. Я знаю, что многому научился, работая над этим, и надеюсь, что сообщество open source продолжит меня учить :)
ПРИМЕЧАНИЕ: Поскольку я не поддерживаю этот проект, некоторые функции, вероятно, не работают «из коробки», например, карта, скорее всего, не отобразится, потому что я не плачу за легитимный ключ MapBox API. Чтобы это исправить, вам, вероятно, придётся создать собственный аккаунт MapBox и использовать свой ключ.
Этот визуализатор карты GeoIP-атак был разработан для отображения сетевых атак на вашу организацию в реальном времени. Сервер данных отслеживает файл syslog и извлекает исходный IP, IP назначения, исходный порт и порт назначения. Протоколы определяются по распространённым портам, а визуализации различаются по цвету в зависимости от типа протокола. НАЖМИТЕ ЗДЕСЬ для демонстрационного видео. Этот проект был бы невозможен без Сэма Каппеллы (Sam Cappella), который создал визуализатор сетевого трафика для соревнований по киберзащите на конкурсе Palmetto Cyber Defense Competition 2015 года. В основном я использовал его код как справочный материал, но я позаимствовал несколько функций при создании сервера отображения и визуальных аспектов веб-приложения. Также хочу особо поблагодарить Дилана Мадисетти за советы по некоторым аспектам моей реализации.
Эта программа полностью полагается на syslog, и поскольку все устройства форматируют логи по-разному, вам потребуется настроить функцию(и) разбора логов. Если ваша организация использует систему управления информацией и событиями безопасности (SIEM), она, вероятно, может нормализовать логи, что сэкономит вам массу времени на написание регулярных выражений.
Если вы найдёте какие-либо ошибки или баги, пожалуйста, сообщите мне. Вопросы и отзывы также приветствуются и могут быть отправлены на [email protected] или через открытие issue в этом репозитории.
Протестировано на Ubuntu 16.04 LTS.
Клонируйте приложение:
git clone https://github.com/matthewclarkmay/geoip-attack-map.git
Установите системные зависимости:
sudo apt install python3-pip redis-server
Установите Python-зависимости:
cd geoip-attack-map
sudo pip3 install -U -r requirements.txt
Запустите Redis Server:
redis-server
Настройте базу данных сервера данных:
cd DataServerDB
./db-dl.sh
cd ..
Запустите сервер данных:
cd DataServer
sudo python3 DataServer.py
Запустите скрипт генерации syslog внутри каталога DataServer:
Откройте новую вкладку терминала (Ctrl+Shift+T в Ubuntu).
./syslog-gen.py
./syslog-gen.sh
Настройте сервер карты атак, распакуйте флаги в нужное место:
Откройте новую вкладку терминала (Ctrl+Shift+T в Ubuntu).
cd AttackMapServer/
unzip static/flags.zip
Запустите сервер карты атак:
sudo python3 AttackMapServer.py
Откройте сервер карты атак в браузере:
Для доступа через браузер на другом компьютере используйте внешний IP машины, на которой запущен AttackMapServer.
Отредактируйте IP-адрес в файле "/static/map.js" в каталоге "AttackMapServer". С:
var webSock = new WebSocket("ws:/127.0.0.1:8888/websocket");
На, например:
var webSock = new WebSocket("ws:/192.168.1.100:8888/websocket");
Перезапустите сервер карты атак:
sudo python3 AttackMapServer.py
На другом компьютере укажите браузеру на:
http://192.168.1.100:8888/