Локальный L1-аналитик SOC: 0 ложных эскалаций на синтетике и 39 из 100 в реальном потоке
Автор открытого проекта kezekshi выложил локального ИИ-помощника для дежурных центра киберзащиты, который на синтетике не ошибался, а на 100 живых алертах зря поднял 39, и разобрал причины разрыва.

Разработчик опубликовал рядом обе цифры: 55 верных вердиктов из 55 на тестовом наборе и 39 ложных эскалаций из 100 на реальном потоке. Это готовая инструкция, как проверять любого ИИ-помощника до того, как доверить ему работу.
SOC (центр мониторинга безопасности, где дежурные разбирают оповещения о возможных атаках) тонет в однотипных алертах (автоматических сигналах системы защиты). Облачные языковые модели туда часто нельзя пускать: логи не должны покидать периметр компании. Автор kezekshi (по-казахски «дежурный») собрал помощника первой линии, который работает на ноутбуке и ничего не отправляет наружу. Код лежит на GitHub, веса на Hugging Face.
В основе дообученная Gemma 4 E2B под лицензией Apache 2.0. Дообучение здесь означает обучение модели на собственных примерах под узкую задачу. Модель получает один алерт как пакет доказательств E1…En, а на выходе выдаёт JSON (структурированный ответ, который читает программа).
В ответе шесть частей:
- вердикт из четырёх классов;
- краткое описание;
- утверждения со ссылками на номера доказательств;
- техники MITRE ATT&CK (справочник приёмов атакующих);
- чего не хватает;
- что проверить дальше.
Ссылки нужны, чтобы вывод проверял код, а не человек на слово.
Что понадобится для запуска?
- Ноутбук с 8 ГБ видеопамяти.
- Ollama, программа для запуска моделей на своём компьютере.
- Около 4,9 ГБ под веса v6 в формате GGUF (файл модели для локального запуска).
- Доступ к Wazuh только на чтение: контур работает поверх него.
- Свои размеченные алерты, если хотите дообучать. Датасет автор не открыл, порядок сборки описан в docs/dataset.md.
Как повторить контур по шагам?
- Поставьте веса v6 в Ollama. По словам автора, это делается одной командой, она есть в руководстве оператора в репозитории.
- Отсейте шум до модели. Белый список и правила против инъекций в логах решают исход детерминированно. Изменения в автозапуске или защитной службе из белого списка выпадают и всё равно уходят выше.
- Подавайте модели один алерт как пакет доказательств с номерами E1, E2 и далее.
- Собирайте схему ответа под каждый алерт: разрешены только номера доказательств этого алерта и кандидаты MITRE из локального индекса.
- Добавьте в промпт правила там, где модель путается. Пример правила автора:
Согласие приложению, выдача прав или новый метод MFA без подтверждения в пакете: вердикт не ниже suspicious.
- Держите памятку правил как страховку поверх ответа модели.
- Отключите режим размышления: автор пишет, что у дообученной модели он вредит.
- Запустите теневой прогон на своём реальном потоке, прежде чем верить тестовым цифрам.
На 3000 алертах стенда 98,1% решилось без модели и только 1,9% ушло в неё. По оценке автора, это примерно в 50 раз меньше вызовов при тех же решениях об авто-закрытии.
Пришла попытка входа по SSH (удалённый вход на сервер) под несуществующей учётной записью. Модель v6 ответила false_positive, то есть ложная тревога. Памятка правил выдала suspicious, и алерт ушёл человеку.
Где автор ошибся и что исправил?
На реальном потоке модель завышала тяжесть на частых правилах, которых не было в синтетике (сгенерированных учебных примерах). Речь о контроле целостности реестра (правила 751, 752, 750) и rootcheck 510. Автор дообучил её на 215 реальных безвредных кейсах стенда и проверил на 100 отложенных алертах.
Добавленные трудные негативы, то есть безобидные события с видом атаки, расширили набор с 8 до 22 кейсов. Ложных эскалаций на нём осталось 0, полнота (recall, доля пойманных атак) не просела. Шестая версия выросла до 3546 примеров, но на незнакомых типах 9 из 20 карточек не прошли проверку. Причина оказалась простой: модель писала имя поля ev1 вместо номера E1.
- Подсказка меняет ответ. Когда в индексе появился кандидат T1555.004, версия v5.1 описала штатное чтение Credential Manager процессом Outlook как «массовый сбор учётных данных».
- Оговорка в промпте «кандидаты не означают атаку» снизила полноту с 20/20 до 18/20, и автор её убрал.
- Короткие триггеры нельзя искать как подстроки: tor срабатывал на слове monitor.
- Схема гарантирует, что номер доказательства существует, но не гарантирует, что он подходит к утверждению.
Чего эти цифры не доказывают?
Полнота на реальных атаках не измерена: в реальном наборе только шум, а 20/20 получено на пяти семействах атак. 63 из 100 реальных кейсов совпадают с обучением с точностью до цифр. Вне совпадений вердикт на прежней схеме был 34 из 37.
Эталон шума задал один аналитик, а не дежурная смена. Поэтому контур работает в режиме assist: сам закрывает только детерминированный шум, остальное смотрит человек. Перед публикацией весов автор 306 раз проверил, не выдаёт ли модель имена машин стенда, и они не появились. Запоминание при этом полностью не исключено.
Что делать с этим прямо сейчас, по ролям
Автору Дзена: если вы тестируете нейросети в статьях, показывайте и тестовый результат, и результат на живых задачах. Такой разрыв читатель ценит больше красивой цифры.
Маркетологу: перенесите приём «сначала правила, потом модель» на свою рутину. Сортировку заявок или отзывов закрывайте шаблонами, а модель зовите только на спорные случаи.
Предпринимателю в РФ и СНГ: модель локальная, данные не уходят наружу, веса открыты. Облачные варианты из доступных в РФ, YandexGPT и GigaChat, для логов внутри периметра не подходят по той же причине, по которой автор от них отказался.
На мой взгляд, главная ценность разбора не в 55 из 55, а в честном списке ограничений. Я бы начинал любой проект с ИИ с белого списка и теневого прогона, а дообучение оставлял на потом. Оговорка: это проверенная разгрузка от шума и черновик карточки, но не автономный решатель эскалаций.
Следующий шаг автор назвал сам: управляемые атаки на стенде и их разбор дежурным через скрипт eval/recall_eval.py. Только он покажет настоящую полноту. До этого контур остаётся помощником, а решение принимает человек.
Проверяйте нейросети на своих задачах
В dzen.guru разбираем, как тестировать ИИ на реальной работе, а не на демо-примерах
Перейти в dzen.guru
Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Airbnb пообещала ИИ-агента для путешествий в 2027 году: вместо чата экран с картами
Airbnb в письме акционерам по итогам третьего квартала 2026 года пообещала запустить в первой половине 2027-го ИИ-агента для планирования и бронирования…

Симулятор гидроразрыва пласта помогает добывать нефть, но точность прогноза не раскрыта
Отраслевой аналитик Антон Соколов разобрал по открытым материалам «КиберГРП» и «РН-ГРИД», российские симуляторы гидроразрыва, и показал, как инженер проверяет…

$10 млн на тренажёр для роботов с ИИ: Physicl собрал 10 000 виртуальных 3D-сред
Стартап Physicl привлёк 10 млн долларов на 3D-симуляции для обучения роботов с ИИ в момент, когда разработчиков не устраивает ни отдача от обучения на видео,…
Комментарии