Инновационная архитектура для обработки неструктурированных текстов в кибербезопасности
Проблема обработки больших потоков неструктурированного текста
В мире кибербезопасности разработчики часто сталкиваются с необходимостью обработки больших объемов неструктурированного текста. В этом контексте они обычно выбирают один из двух подходов: использование детерминированных методов или прямую подачу сырых данных в языковые модели (LLM). Первый подход, хотя и быстрый, не способен уловить новые паттерны, которые не были заранее описаны. Второй подход, в свою очередь, сталкивается с проблемами высокой стоимости и медленной обработки больших объемов данных.Два пути — один граф
Однако, зачем выбирать что-то одно? Мы решили объединить гибкость LLM и надежность сигнатурных движков, создав асинхронный граф для автоматизации первой линии SOC. Этот проект был реализован в рамках практикума УрФУ, где основная задача заключалась в классификации инцидентов по базе MITRE.Архитектура пайплайна
Архитектурная схема нашего пайплайна выглядит следующим образом:Устройство графа
В отличие от большинства решений, которые представляют собой линейные цепочки, наш граф имеет более сложную структуру. Он состоит из нескольких узлов, каждый из которых выполняет свою задачу:Визуализация графа
Граф перехода состояний демонстрирует две параллельные ветки: одна для анализа с использованием LLM, другая для детерминированного сканирования. Это позволяет эффективно использовать ресурсы и ускорить обработку данных.AI-ядро: Agent 1, Agent 2 и Agent 3
В AI-ядре Agent 1 отвечает за группировку логов и выделение событий, таких как выполнение команд или неудачные попытки аутентификации. Agent 2, использующий RAG (Retrieval-Augmented Generation), осуществляет гибридный поиск по базе MITRE ATT&CK, обеспечивая более точную классификацию аномалий. Agent 3 собирает результаты и формирует отчет.Гибридный поиск
Гибридный поиск включает в себя векторный и BM25 подходы, что позволяет улучшить качество совпадений. Векторный поиск хорошо находит семантические совпадения, в то время как BM25 фокусируется на точных технических идентификаторах. Это сочетание позволяет значительно повысить точность классификации.Детерминированная ветка: YARA и Sigma
В рамках детерминированной ветки мы реализовали 8 правил YARA и 9 правил Sigma. Эти правила позволяют анализировать текстовые логи, используя синтаксис, адаптированный для работы с текстом. YARA работает как обертка над yara-python, а Sigma использует YAML для описания условий.Автогенерация правил
Когда RAG находит технику без покрытия в YARA, Agent 3 запускает автогенератор, который создает правило на основе описания техники и логов. Это позволяет постоянно обновлять и улучшать набор правил, обеспечивая актуальность системы.Метрики и производительность
На тестовом датасете, состоящем из 850 строк логов, были получены следующие метрики:Синтетический датасет
Для тестирования был создан синтетический датасет на основе фреймворка Atomic Red Team, который покрывает более 88 техник MITRE. Это позволило проверить работоспособность пайплайна на потоковых данных.Заключение
Проект продемонстрировал, что идея работает, хотя и требует значительных ресурсов. Он не заменяет традиционные SOC-процессы, а дополняет их, обеспечивая дополнительный уровень детекции для сценариев, где сигнатур еще нет. Архитектура LangGraph с гибридным RAG и детерминированным движком имеет потенциал для применения в других областях, таких как модерация контента или анализ отзывов. Весь код проекта доступен на GitHub, что позволяет другим разработчикам использовать и адаптировать его под свои нужды.
Источник:
Хабр: Машинное обучение