AI-CyberLogAgent
Описание
Интеллектуальная агентная система "Wavescan" для анализа логов в области кибербезопасности, предназначенная для выявления угроз, аномалий и инцидентов в автономном режиме
Языки
- Python53,3%
- Vue37,5%
- JavaScript6,5%
- CSS1,2%
- Lua1%
- Dockerfile0,4%
- Остальные0,1%
Wavescan
Описание
Wavescan - интеллектуальная агентная система для анализа логов в области кибербезопасности, предназначенная для выявления угроз, аномалий и инцидентов в автономном режиме.
Система разворачивается локально в инфраструктуре компании, что обеспечивает полный контроль над данными и соответствует требованиям безопасности. Wavescan интегрируется с существующими источниками логов (SIEM, серверы, приложения, сетевые устройства) через Push API или загрузку файлов, не требуя кардинальных изменений в текущей архитектуре.
В основе решения лежит комбинация классических методов анализа (YARA, Sigma правила) и современных технологий искусственного интеллекта. Система не просто обнаруживает подозрительные события, а проводит многоуровневый анализ с использованием LLM, сопоставляет инциденты с базой знаний MITRE ATT&CK и формирует структурированные отчёты с объяснениями, уровнем риска и рекомендациями.
Wavescan выступает как «умный помощник» специалиста по информационной безопасности, снижая нагрузку на команду и ускоряя реакцию на инциденты.
Wavescan — это не просто SIEM, а AI-powered SOC-аналитик, который не только находит угрозы, но и объясняет их, используя многоэтапный анализ и знания MITRE ATT&CK.
Сравнение с аналогами
| Критерий | Wavescan | Splunk | ELK Stack | Datadog Security Monitoring |
|---|---|---|---|---|
| Тип системы | AI-powered SOC аналитик | Классический SIEM | Log management + SIEM | Cloud SIEM |
| AI-анализ логов | ✅ Глубокий (LLM) | ⚠️ Ограниченный | ❌ Нет (в основном rules) | ⚠️ Частично |
| Контекстное понимание | ✅ Да (explainable AI) | ⚠️ Ограничено | ❌ Нет | ⚠️ Частично |
| Двухэтапный AI-пайплайн | ✅ Да (LLM → MITRE → LLM) | ❌ Нет | ❌ Нет | ❌ Нет |
| MITRE ATT&CK интеграция | ✅ Автоматическая + в анализе | ⚠️ Есть, но вручную | ⚠️ Через плагины | ⚠️ Есть |
| Автоматические отчеты | ✅ С объяснениями и рекомендациями | ⚠️ Частично | ❌ Нет | ⚠️ Частично |
| AI-ассистент (чат) | ✅ Да | ❌ Нет | ❌ Нет | ❌ Нет |
| Скорость внедрения | ✅ Быстрая | ❌ Долго | ⚠️ Средняя | ✅ Быстрая |
| On-Premise | ✅ Да | ✅ Да | ✅ Да | ❌ Нет (облако) |
| Сложность настройки | ✅ Низкая | ❌ Высокая | ❌ Высокая | ⚠️ Средняя |
| Требования к квалификации | ✅ Низкие (за счет AI) | ❌ Высокие | ❌ Высокие | ⚠️ Средние |
| Стоимость внедрения | Низкая | Высокая | Средняя | Высокая |
Преимущества
- Быстрый старт: разворачивается за несколько часов и легко интегрируется в существующую инфраструктуру без сложной настройки.
- Локальная работа: все данные остаются внутри компании — это критически важно для организаций с высокими требованиями к безопасности.
- Глубокий контекстный анализ: LLM не просто фиксирует событие, а объясняет его: что произошло, почему это опасно и какие последствия возможны.
- Интеграция с MITRE ATT&CK: автоматическое сопоставление инцидентов с тактиками и техниками атакующих, что упрощает расследование и реагирование.
- Снижение нагрузки на специалистов: автоматизация анализа логов и генерации отчетов экономит часы ручной работы.
- Масштабируемость: подходит как для небольших команд, так и для крупных инфраструктур с большим потоком логов.
- Удобный пользовательский интерфейс: чат с ИИ, фильтрация инцидентов, история отчетов и push-уведомления делают работу комфортной и быстрой.
Функционал
- Автономный анализ логов
- Загрузка логов вручную для анализа
- Диалог с ИИ-ассистентом по кибербезопасности
- Формирование подробных отчетов
- Оценка уровня критичности инцидентов
- Ведение статистики
- Хранение истории отчетов
- Система уведомлений
Пайплайн работы системы
-
Получение логов
Система принимает логи от внешнего источника через Push API или загрузку файлов.
-
Первичная обработка
Очистка и нормализация логов
-
Первичный анализ
Передача логов в языковую модель со специализированным промптом для выявления аномалий и подозрительных паттернов.
-
Обогащение данных
Сопоставление результатов анализа с базой MITRE для определение тактик и техник атак.
-
Финальный анализ
Повторная обработка с учетом обогащенного контекста:
- определение типа угрозы
- оценка уровня серьезности
- формирование объяснений
-
Генерация отчета
Создание структурированного отчета с:
- описанием инцидента
- уровнем риска
- рекомендациями
-
Сохранение данных
Отчет сохраняется в базе данных.
-
Уведомление пользователям
Система отправляет уведомление о новом инциденте.
Начало работы
- Клонируем репозиторий
- Создаем файл
в папке.envна основеlog_ai_agentи вносим туда свои переменные для:.env.example
- базы данных
- бэкенда
- фронтенда
- GigaChat
- Переходим в папку
- Запускаем докер
Ждем приблизительно 5 минут, пока прогрузится весь пайплайн
- Переходим на сайт (порт указывается в
).env
Готово!
Для выключения докера пишем
Регистрация пользователя
- Для подключения к консоли пишем (название контейнера указывается в
(по умолчанию - cyberlog-backend), команду нужно писать в корневой папке).env
- Регистрируем нового пользователя
Интерфейс




Структура репозитория
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 (Название уровня серьезности)