laya-argus
Локальный классификатор инцидентов для ARGUS — SIEM/SOC с открытым кодом (AGPL-3.0). Это дообученная Laya (System One, типизированные решения), которая заменяет облачный Jev. Учится на разметке аналитиков ИБ и DevOps-инженеров.
Здесь живёт ML-часть проекта: решения, вопросы и разметка, план, а позже веса, скрипты
обучения и отчёты замеров. Со стороны ARGUS лежат движок, форма закрытия с ответом человека,
выгрузка датасета и замеры (engine dataset export / engine dataset eval,
k1dory/argus#64).
Статус: весов пока нет. Разметка только начинает копиться (форма закрытия с ответом человека и закрытие вслепую — k1dory/argus#13). Первый замер без обучения — когда наберётся ≈ 100 слепых меток, дообучение — от ≈ 300.
Модель не пишет текст. Она отвечает на фиксированные вопросы по инциденту:
- исход (
malicious/benign_authorized/false_positive); - нужна ли эскалация;
- критичность и срочность;
- тактика и техника MITRE ATT&CK;
- для DevOps — причина и действие.
Ответ — распределение вероятностей. После калибровки температуры по нему выбирается маршрут: высокая уверенность — автозакрытие, средняя — подсказка дежурному, низкая — человеку.
| Файл | О чём |
|---|---|
| DECISIONS.md | Принятые решения и почему |
| DATA.md | Вопросы, разметка, источники данных, объёмы, докрутка |
| COST.md | Сколько стоит и как сэкономить и ускориться |
| ROADMAP.md | Этапы с оценками и зависимостями |
Данные
Датасет не публикуется: в нём реальные инциденты конкретной инфраструктуры. Здесь
описаны только его формат (argus-dataset/v1, JSONL), вопросы и порядок разбиения:
group_idисходного случая;- train/holdout по группе;
- замер только по слепой части holdout.
Правильный ответ даёт человек. Ответы облачных моделей (Jev) используются только для сравнения и не попадают на вход Laya. Инциденты с ПДн в облако не отправляются.
Протокол
laya-serve и Jev говорят на одном протоколе POST /v1/systemone
({state, model, questions} → answers с probabilities). Поэтому в ARGUS один клиент,
а модель выбирается окружением: ARGUS_LAYA_ENDPOINT / ARGUS_JEV_*.
Ревизия модели обязательна. В поле model ответа laya-serve для ARGUS должен отдавать
версию или хеш чекпойнта (например, argus-v1@<sha>), а не имя бэкенда. Upstream возвращает
laya-rl-agent для любого чекпойнта, и ARGUS такие ответы отклоняет: замеры разделяются по
ревизии, а смену чекпойнта за константой не видно
(k1dory/argus#86).
Источники
- TypeSafe: https://docs.typesafe.ai (models, confidence, system-one)
- Laya: https://github.com/NandhaKishorM/laya, https://huggingface.co/convaiinnovations
- ARGUS: https://github.com/k1dory/argus
Model tree for k1dory/laya-argus
Base model
convaiinnovations/laya-typed-decisions