Skip to content

og-mason/GhostSec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SecMonLite (GhostSec)

Лёгкий инструмент для мониторинга безопасности, отслеживающий изменения файлов, сетевые подключения и подозрительные процессы на системах Linux и macOS. Отправляет уведомления через Telegram бота и логирует события в файл.

CI License: MIT

Возможности

  • Мониторинг файлов: Отслеживает изменения в заданных файлах с помощью SHA-256 хэшей.
  • Мониторинг сети: Обнаруживает подозрительные подключения к публичным IP-адресам.
  • Мониторинг процессов: Идентифицирует подозрительные процессы по заданным правилам (имя, родитель, командная строка, регулярные выражения).
  • Уведомления: Отправляет алерты через Telegram и записывает события в лог-файл.
  • Гибкая конфигурация: Правила мониторинга задаются в файле rules.json.
  • Тестирование: Полное покрытие тестами с использованием pytest.

Требования

  • Python 3.10 или выше
  • Права root (для мониторинга процессов)
  • Поддерживаемые ОС: Linux, macOS
  • Зависимости, указанные в GhostSec/requirements.txt

Примечание: Используйте HTTPS для Telegram API, чтобы обеспечить безопасность передачи данных.

Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/inorisojiu/GhostSec.git
  2. Установите зависимости:

    pip install -r requirements.txt

Настройка

  1. Создайте файл .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 чата для уведомлений.
  2. Отредактируйте settings.json, если нужно изменить настройки (например, путь к лог-файлу или интервал мониторинга)

  3. Настройте правила мониторинга в 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