AI-CyberLogAgent

0

Описание

Интеллектуальная агентная система "Wavescan" для анализа логов в области кибербезопасности, предназначенная для выявления угроз, аномалий и инцидентов в автономном режиме

Языки

  • Python53,3%
  • Vue37,5%
  • JavaScript6,5%
  • CSS1,2%
  • Lua1%
  • Dockerfile0,4%
  • Остальные0,1%
README.md

Wavescan

Wavescan

Описание

Wavescan - интеллектуальная агентная система для анализа логов в области кибербезопасности, предназначенная для выявления угроз, аномалий и инцидентов в автономном режиме.

Система разворачивается локально в инфраструктуре компании, что обеспечивает полный контроль над данными и соответствует требованиям безопасности. Wavescan интегрируется с существующими источниками логов (SIEM, серверы, приложения, сетевые устройства) через Push API или загрузку файлов, не требуя кардинальных изменений в текущей архитектуре.

В основе решения лежит комбинация классических методов анализа (YARA, Sigma правила) и современных технологий искусственного интеллекта. Система не просто обнаруживает подозрительные события, а проводит многоуровневый анализ с использованием LLM, сопоставляет инциденты с базой знаний MITRE ATT&CK и формирует структурированные отчёты с объяснениями, уровнем риска и рекомендациями.

Wavescan выступает как «умный помощник» специалиста по информационной безопасности, снижая нагрузку на команду и ускоряя реакцию на инциденты.

Wavescan — это не просто SIEM, а AI-powered SOC-аналитик, который не только находит угрозы, но и объясняет их, используя многоэтапный анализ и знания MITRE ATT&CK.

Сравнение с аналогами

КритерийWavescanSplunkELK StackDatadog Security Monitoring
Тип системыAI-powered SOC аналитикКлассический SIEMLog management + SIEMCloud SIEM
AI-анализ логов✅ Глубокий (LLM)⚠️ Ограниченный❌ Нет (в основном rules)⚠️ Частично
Контекстное понимание✅ Да (explainable AI)⚠️ Ограничено❌ Нет⚠️ Частично
Двухэтапный AI-пайплайн✅ Да (LLM → MITRE → LLM)❌ Нет❌ Нет❌ Нет
MITRE ATT&CK интеграция✅ Автоматическая + в анализе⚠️ Есть, но вручную⚠️ Через плагины⚠️ Есть
Автоматические отчеты✅ С объяснениями и рекомендациями⚠️ Частично❌ Нет⚠️ Частично
AI-ассистент (чат)✅ Да❌ Нет❌ Нет❌ Нет
Скорость внедрения✅ Быстрая❌ Долго⚠️ Средняя✅ Быстрая
On-Premise✅ Да✅ Да✅ Да❌ Нет (облако)
Сложность настройки✅ Низкая❌ Высокая❌ Высокая⚠️ Средняя
Требования к квалификации✅ Низкие (за счет AI)❌ Высокие❌ Высокие⚠️ Средние
Стоимость внедренияНизкаяВысокаяСредняяВысокая

Преимущества

  • Быстрый старт: разворачивается за несколько часов и легко интегрируется в существующую инфраструктуру без сложной настройки.
  • Локальная работа: все данные остаются внутри компании — это критически важно для организаций с высокими требованиями к безопасности.
  • Глубокий контекстный анализ: LLM не просто фиксирует событие, а объясняет его: что произошло, почему это опасно и какие последствия возможны.
  • Интеграция с MITRE ATT&CK: автоматическое сопоставление инцидентов с тактиками и техниками атакующих, что упрощает расследование и реагирование.
  • Снижение нагрузки на специалистов: автоматизация анализа логов и генерации отчетов экономит часы ручной работы.
  • Масштабируемость: подходит как для небольших команд, так и для крупных инфраструктур с большим потоком логов.
  • Удобный пользовательский интерфейс: чат с ИИ, фильтрация инцидентов, история отчетов и push-уведомления делают работу комфортной и быстрой.

Функционал

  • Автономный анализ логов
  • Загрузка логов вручную для анализа
  • Диалог с ИИ-ассистентом по кибербезопасности
  • Формирование подробных отчетов
  • Оценка уровня критичности инцидентов
  • Ведение статистики
  • Хранение истории отчетов
  • Система уведомлений

Пайплайн работы системы

  1. Получение логов

    Система принимает логи от внешнего источника через Push API или загрузку файлов.

  2. Первичная обработка

    Очистка и нормализация логов

  3. Первичный анализ

    Передача логов в языковую модель со специализированным промптом для выявления аномалий и подозрительных паттернов.

  4. Обогащение данных

    Сопоставление результатов анализа с базой MITRE для определение тактик и техник атак.

  5. Финальный анализ

    Повторная обработка с учетом обогащенного контекста:

    • определение типа угрозы
    • оценка уровня серьезности
    • формирование объяснений
  6. Генерация отчета

    Создание структурированного отчета с:

    • описанием инцидента
    • уровнем риска
    • рекомендациями
  7. Сохранение данных

    Отчет сохраняется в базе данных.

  8. Уведомление пользователям

    Система отправляет уведомление о новом инциденте.

Начало работы

  1. Клонируем репозиторий
  1. Создаем файл
    .env
    в папке
    log_ai_agent
    на основе
    .env.example
    и вносим туда свои переменные для:
  • базы данных
  • бэкенда
  • фронтенда
  • GigaChat
  1. Переходим в папку
  1. Запускаем докер

Ждем приблизительно 5 минут, пока прогрузится весь пайплайн

  1. Переходим на сайт (порт указывается в
    .env
    )

Готово!

Для выключения докера пишем

Регистрация пользователя

  1. Для подключения к консоли пишем (название контейнера указывается в
    .env
    (по умолчанию - cyberlog-backend), команду нужно писать в корневой папке)
  1. Регистрируем нового пользователя

Интерфейс

Страница авторизации

Чат с ассистентом

История отчетов

Статистика инцидентов

Структура репозитория

AI-CyberLogAgent/ └── log_ai_agent # Проект ├── ai_agent_v2 # Агент ├── config # Конфигурация для консоли администратора ├── pipeline # Получение и обработка логов ├── site # Веб-интерфейс ├── src # Файлы для документации ├── vector # Первичная обработка логов ├── .env.example # Пример файла переменных окружения ├── app.py # Главный файл сервиса ├── docker-compose.yml # Конфигурация инфраструктуры проекта ├── Dockerfile # Конфигурация back-end контейнера └── init-db.sql # Скрипт инициализации базы данных ├── .gitignore ├── FUNCTIONAL_SPECIFICATION.md # Текущее функциональное задание ├── README.md # Документация ├── pyproject.toml # Конфигурация проекта Python └── uv.lock # Зафиксированные зависимости

Схема БД

Таблица Users

  • user_id: integer (Уникальный идентификатор пользователя, автоинкремент)
  • login: text (Логин пользователя)
  • password_hash: text (Хэш пароля)

Таблица Messages

  • message_id: integer (Уникальный идентификатор сообщения, автоинкремент)
  • user_id: integer (Внешний ключ на Users, идентификатор пользователя)
  • role: text (Роль отправителя сообщения)
  • content: text (Содержимое сообщения)
  • created_at: timestamp with time zone (Дата и время создания сообщения)

Таблица ActionTypes

  • action_type_id: integer (Уникальный идентификатор типа действия, автоинкремент)
  • name: text (Название типа действия)

Таблица AgentLogs

  • agent_log_id: integer (Уникальный идентификатор лога агента, автоинкремент)
  • action_type_id: integer (Внешний ключ на ActionTypes, тип действия)
  • description: text (Описание действия агента)
  • date: timestamp with time zone (Дата и время выполнения действия)

Таблица UserLogs

  • user_log_id: integer (Уникальный идентификатор лога пользователя, автоинкремент)
  • action_type_id: integer (Внешний ключ на ActionTypes, тип действия)
  • description: text (Описание действия агента)
  • date: timestamp with time zone (Дата и время выполнения действия)

Таблица Logs

  • log_id: integer (Уникальный идентификатор лога, автоинкремент)
  • file_content: text (Содержимое файла лога)
  • date: timestamp with time zone (Дата и время создания лога)

Таблица Reports

  • report_id: integer (Уникальный идентификатор отчета, автоинкремент)
  • description: text (Описание инцидента)
  • log_id: integer (Внешний ключ на Logs, связанный лог)
  • threat_type_id: integer (Внешний ключ на ThreatTypes, тип угрозы)
  • created_at: timestamp with time zone (Дата и время создания отчета)
  • severity_level_id (Внешний ключ на SeverityLevels, уровень серьезности)

Таблица ThreatTypes

  • threat_type_id: integer (Уникальный идентификатор типа угрозы, автоинкремент)
  • name: text (Название типа угрозы)

Таблица SeverityLevels

  • severity_level_id (Уникальный идентификатор уровня серьезности, автоинкремент)
  • name: text (Название уровня серьезности)