Агент для расследования инцидентов безопасности: инструменты, корреляция в SIEM и память
Собираем агента-помощника для SOC шаг за шагом: инструменты для алертов, корреляция логов в SIEM, проверка репутации IP, внутренний контекст и память диалога, а решение остаётся за аналитиком.
Агент для расследования инцидентов безопасности хорош ровно настолько, насколько хороши доказательства, до которых он может дотянуться. Комната TryHackMe о создании агентов, средней сложности, показывает это на примере SOC-ассистента для вымышленного ритейлера NorthStar Fashion, добавляя по одной возможности за раз. Комната находится по адресу tryhackme.com/room/agentbuilding, и всё описанное ниже предназначено для обучения и практики защиты.
Какую задачу решает агент
Аналитику, получившему алерт, приходится собирать факты из множества мест. Алерт сообщает одно, в SIEM лежат связанные логи, у IP-адреса может быть плохая репутация где-то ещё, а документы компании объясняют, как выглядит норма. Сшивать всё это вручную долго, и повторять приходится для каждого алерта.
Агент из этой комнаты берёт рутину на себя. Он начинает с алерта безопасности, собирает относящиеся к нему доказательства, ищет связанные логи в SIEM и проверяет внешний контекст, например репутацию IP. Затем он читает внутреннюю информацию организации и сводит всё в обоснованный вердикт, который проверяет инженер. Само решение остаётся за человеком.
Чему вы научитесь
К концу комнаты вы сможете:
- построить агента для расследований по письменному описанию архитектуры
- подключить инструменты, которые получают алерты и запрашивают логи SIEM
- связывать доказательства по учётной записи, IP-адресу, устройству, типу события и времени
- добавлять в кейс внешний и внутренний контекст
- использовать память диалога, чтобы уточняющие вопросы не запускали расследование заново
- выдавать подкреплённые доказательствами вердикты, оставляя последнее слово за аналитиком
Устройство лаборатории
Среда даёт доступ к ИИ-модели через собственный ИИ-сервис TryHackMe. Вспомогательный модуль thm_ai.py уже лежит в проекте. Он отвечает за общение с сервисом и использует временный токен, выданный лаборатории. Вам не нужно самим возиться с провайдером модели, учётными данными или токенами. Модуль служит единственной точкой связи между кодом расследования и моделью, так что логика агента отделена от инфраструктуры за ней.
Как растёт агент
Каждое задание добавляет одну возможность, и к концу агент умеет сочетать рассуждения модели с разрешёнными действиями, алертами SIEM, корреляцией логов, репутацией IP, контекстом организации и историей диалога. Последовательность по комнате выглядит так:
Task 3 → Define the agent behaviour and connect to the AI
Task 4 → Execute approved alert capabilities
Task 5 → Correlate alerts with SIEM logs
Task 6 → Add external and organisation context
Task 7 → Continue investigations across follow-up questions
Несколько деталей сборки стоит запомнить.
Подключение к модели. Сначала идут инструкции и поведение агента, затем метод, который отправляет сообщение в ИИ-сервис. В ответе есть поле со сгенерированным текстом ассистента, который ваш код читает и передаёт дальше.
Разрешённые возможности для алертов. Инструменты позволяют агенту выводить список алертов и получать один полный алерт по его ID. Список поддерживает постраничный вывод, и параметр запроса задаёт, сколько алертов пропустить. На этом раннем этапе агент не может получить из SIEM алерт вроде ALT-051, потому что поиск по логам ещё не добавлен.
Корреляция логов. Эндпоинт поиска SIEM принимает POST-запрос. Условия можно объединять логическими операторами, и AND требует, чтобы оба условия совпали в одной и той же записи лога. Упражнение показывает, как работает сужение. Поиск по учётной записи одного пользователя возвращает много логов. Добавление IP-адреса источника сокращает набор, а добавление устройства сокращает его ещё раз. Каждое дополнительное условие превращает шумный список в плотную, хорошо обоснованную картину.
Внешний и организационный контекст. Ещё две возможности расширяют обзор агента. check_ip_abuse проверяет, не замечен ли адрес раньше во вредоносной активности. search_org_details ищет по внутренним документам NorthStar Fashion, чтобы агент знал, что для этой компании считается нормой.
Память. Последнее дополнение — история диалога, которую хранит ИИ-сервис TryHackMe и которую код может получить отдельным методом. Поскольку историю держит сервис, агенту не нужен отдельный чекпоинтер LangGraph, чтобы помнить разговор. Аналитик может задать уточняющий вопрос, не повторяя всё расследование.
Готовый агент живёт в одном файле, который постепенно собирается на протяжении всей комнаты.
Почему такая архитектура работает
Несколько решений делают агента надёжным, а не просто эффектным:
- Он использует только разрешённые возможности. Модель не может действовать за пределами подключённых вами инструментов.
- Вердикты опираются на доказательства, которые можно проследить до конкретных логов, учётных записей, IP-адресов, устройств и временных меток.
- Внешние данные о репутации и внутренние документы дают контекст, которого нет в одних только логах.
- Память сохраняет непрерывность расследования, что важно, когда анализ требует больше одного вопроса.
- За итоговое решение по безопасности отвечает человек.
Такое сочетание инструментов, контекста, памяти и проверки человеком — разумный шаблон для любого проекта автоматизации SOC, будь то тренировка в лаборатории или система для продакшена.