Лёгкий инструмент для мониторинга безопасности, отслеживающий изменения файлов, сетевые подключения и подозрительные процессы на системах Linux и macOS. Отправляет уведомления через Telegram бота и логирует события в файл.
- Мониторинг файлов: Отслеживает изменения в заданных файлах с помощью SHA-256 хэшей.
- Мониторинг сети: Обнаруживает подозрительные подключения к публичным IP-адресам.
- Мониторинг процессов: Идентифицирует подозрительные процессы по заданным правилам (имя, родитель, командная строка, регулярные выражения).
- Уведомления: Отправляет алерты через Telegram и записывает события в лог-файл.
- Гибкая конфигурация: Правила мониторинга задаются в файле rules.json.
- Тестирование: Полное покрытие тестами с использованием
pytest.
- Python 3.10 или выше
- Права root (для мониторинга процессов)
- Поддерживаемые ОС: Linux, macOS
- Зависимости, указанные в GhostSec/requirements.txt
Примечание: Используйте HTTPS для Telegram API, чтобы обеспечить безопасность передачи данных.
-
Клонируйте репозиторий:
git clone https://github.com/inorisojiu/GhostSec.git
-
Установите зависимости:
pip install -r requirements.txt
-
Создайте файл
.envдля хранения чувствительных данных:echo "TELEGRAM_TOKEN=your_telegram_bot_token" >> .env echo "TELEGRAM_CHAT_ID=your_telegram_chat_id" >> .env
- Замените
your_telegram_bot_tokenна токен вашего Telegram-бота. - Замените
your_telegram_chat_idна ID чата для уведомлений.
- Замените
-
Отредактируйте settings.json, если нужно изменить настройки (например, путь к лог-файлу или интервал мониторинга)
-
Настройте правила мониторинга в rules.json
Запустите приложение (требуются права root для мониторинга процессов):
sudo python3 agent/main.py- Логи сохраняются в
secmon.log(путь задаётся вsettings.json). - Уведомления отправляются в Telegram, если настроен
.env.
Для запуска тестов используйте pytest:
pytest test/Все 28 тестов проверяют функциональность модулей:
- alerter.py: Отправка уведомлений через Telegram и логирование.
- file_monitor.py: Вычисление хэшей и мониторинг файлов.
- network_monitor.py: Проверка сетевых подключений.
- process_monitor.py: Обнаружение подозрительных процессов.
- rule_engine.py: Загрузка и применение правил.
Для проверки покрытия тестами:
pip install pytest-cov
pytest --cov=agent test/Исследователь: inorisojiu
Для вопросов, багов и предложений - создавайте issue или pull request