Игорь Градов
Игорь Градов
5 мин
ai

Локальный L1-аналитик SOC: 0 ложных эскалаций на синтетике и 39 из 100 в реальном потоке

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

Локальный L1-аналитик SOC: 0 ложных эскалаций на синтетике и 39 из 100 в реальном потоке
Почему это важно

Разработчик опубликовал рядом обе цифры: 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.

Как повторить контур по шагам?

  1. Поставьте веса v6 в Ollama. По словам автора, это делается одной командой, она есть в руководстве оператора в репозитории.
  2. Отсейте шум до модели. Белый список и правила против инъекций в логах решают исход детерминированно. Изменения в автозапуске или защитной службе из белого списка выпадают и всё равно уходят выше.
  3. Подавайте модели один алерт как пакет доказательств с номерами E1, E2 и далее.
  4. Собирайте схему ответа под каждый алерт: разрешены только номера доказательств этого алерта и кандидаты MITRE из локального индекса.
  5. Добавьте в промпт правила там, где модель путается. Пример правила автора:
Согласие приложению, выдача прав или новый метод MFA без подтверждения в пакете: вердикт не ниже suspicious.
  1. Держите памятку правил как страховку поверх ответа модели.
  2. Отключите режим размышления: автор пишет, что у дообученной модели он вредит.
  3. Запустите теневой прогон на своём реальном потоке, прежде чем верить тестовым цифрам.

На 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, для логов внутри периметра не подходят по той же причине, по которой автор от них отказался.

Совет редакции dzen.guru

На мой взгляд, главная ценность разбора не в 55 из 55, а в честном списке ограничений. Я бы начинал любой проект с ИИ с белого списка и теневого прогона, а дообучение оставлял на потом. Оговорка: это проверенная разгрузка от шума и черновик карточки, но не автономный решатель эскалаций.

Следующий шаг автор назвал сам: управляемые атаки на стенде и их разбор дежурным через скрипт eval/recall_eval.py. Только он покажет настоящую полноту. До этого контур остаётся помощником, а решение принимает человек.

Проверяйте нейросети на своих задачах

В dzen.guru разбираем, как тестировать ИИ на реальной работе, а не на демо-примерах

Перейти в dzen.guru
Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

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

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

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

5 мин
Симулятор гидроразрыва пласта помогает добывать нефть, но точность прогноза не раскрыта
ai

Симулятор гидроразрыва пласта помогает добывать нефть, но точность прогноза не раскрыта

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

5 мин
$10 млн на тренажёр для роботов с ИИ: Physicl собрал 10 000 виртуальных 3D-сред
ai

$10 млн на тренажёр для роботов с ИИ: Physicl собрал 10 000 виртуальных 3D-сред

Стартап Physicl привлёк 10 млн долларов на 3D-симуляции для обучения роботов с ИИ в момент, когда разработчиков не устраивает ни отдача от обучения на видео,…

5 мин