docs: enter demo freeze housekeeping
This commit is contained in:
@@ -155,6 +155,6 @@ Rollback-critical данные:
|
||||
- `docs/OPERATOR_GUIDE_RU.md`
|
||||
- `docs/INSTALL_RU.md`
|
||||
- `docs/ARCHITECTURE_RU.md`
|
||||
- `docs/DETMIR_THREAT_MODEL_RU.md`
|
||||
- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
|
||||
- `docs/THREAT_MODEL_RU.md`
|
||||
- `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
|
||||
- `adk-rust/RUNBOOK.md`
|
||||
|
||||
@@ -147,8 +147,8 @@ AWatch-rus не заявляется как сертифицированная
|
||||
|
||||
## 9. Связанные документы
|
||||
|
||||
- `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md`
|
||||
- `docs/DETMIR_THREAT_MODEL_RU.md`
|
||||
- `docs/UNIFIED_OPERATING_MODEL_RU.md`
|
||||
- `docs/THREAT_MODEL_RU.md`
|
||||
- `docs/ADMIN_GUIDE_RU.md`
|
||||
- `docs/OPERATOR_GUIDE_RU.md`
|
||||
- `docs/GRAFANA_DASHBOARDS_RU.md`
|
||||
|
||||
@@ -134,5 +134,5 @@ AWatch-rus помогает контролировать и расследова
|
||||
|
||||
- `docs/ADMIN_GUIDE_RU.md`
|
||||
- `docs/GRAFANA_DASHBOARDS_RU.md`
|
||||
- `docs/DETMIR_THREAT_MODEL_RU.md`
|
||||
- `docs/THREAT_MODEL_RU.md`
|
||||
- `docs/dlp-security-functional-spec-ru.md`
|
||||
|
||||
@@ -114,4 +114,4 @@ AWatch-rus
|
||||
|
||||
- `docs/THIRD_PARTY_LICENSES_RU.md`
|
||||
- `docs/REGISTRY_CHECKLIST_RU.md`
|
||||
- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
|
||||
- `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
|
||||
|
||||
@@ -38,8 +38,8 @@
|
||||
|
||||
## 4. Документация
|
||||
|
||||
- [x] Модель угроз: `docs/DETMIR_THREAT_MODEL_RU.md`.
|
||||
- [x] Позиционирование: `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`.
|
||||
- [x] Модель угроз: `docs/THREAT_MODEL_RU.md`.
|
||||
- [x] Позиционирование: `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`.
|
||||
- [x] Руководство администратора: `docs/ADMIN_GUIDE_RU.md`.
|
||||
- [x] Руководство оператора: `docs/OPERATOR_GUIDE_RU.md`.
|
||||
- [x] Установка: `docs/INSTALL_RU.md`.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Дата фиксации: `2026-06-03`.
|
||||
|
||||
Документ фиксирует audit-facing решение по классу подачи AWatch-rus.
|
||||
Он дополняет `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`.
|
||||
Он дополняет `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`.
|
||||
|
||||
## 1. Рекомендованный класс
|
||||
|
||||
|
||||
@@ -50,8 +50,8 @@ git grep -n -E 'SHARKON2025|10\.10\.10|dm\.iri|/home/igor|/root' -- \
|
||||
```text
|
||||
adk-rust/crates/verify-innosetup-installer/src/main.rs:260: let root = std::path::Path::new("/tmp/root");
|
||||
docs/ARCHITECTURE_RU.md:116:- canonical path/root allowlist;
|
||||
docs/DETMIR_THREAT_MODEL_RU.md:168:- canonical path/root allowlist;
|
||||
docs/DETMIR_THREAT_MODEL_RU.md:223:| T05 | Прямая выдача файлов по path traversal | Canonical path/root allowlist, no raw path route. |
|
||||
docs/THREAT_MODEL_RU.md:168:- canonical path/root allowlist;
|
||||
docs/THREAT_MODEL_RU.md:223:| T05 | Прямая выдача файлов по path traversal | Canonical path/root allowlist, no raw path route. |
|
||||
proxmox/tsj_guardian_bot.py:960: base_pat += r"|lxc-usernsexec.*(/var/lib/lxc/" + guest_pat + r"/rootfs|/run/lxc/)"
|
||||
```
|
||||
|
||||
|
||||
@@ -0,0 +1,179 @@
|
||||
# Risk Narrative
|
||||
|
||||
Risk Narrative в AWatch-rus - это управленческое объяснение текущего риска на
|
||||
основе уже существующих сигналов продукта. Слой отвечает на четыре вопроса:
|
||||
|
||||
- что происходит;
|
||||
- насколько это рискованно;
|
||||
- почему система так считает;
|
||||
- что делать дальше.
|
||||
|
||||
Risk Narrative не является ML-прогнозом, LLM-выводом, SIEM, DLP или
|
||||
автоматическим подтверждением нарушения. Это rule-based decision-support слой
|
||||
для Pilot v1.
|
||||
|
||||
## API
|
||||
|
||||
Endpoint:
|
||||
|
||||
```http
|
||||
GET /api/risk/narrative
|
||||
```
|
||||
|
||||
Поддерживаемые параметры зависят от текущего контракта портала:
|
||||
|
||||
- `date`;
|
||||
- `department`;
|
||||
- `role`;
|
||||
- `module`.
|
||||
|
||||
Employee-level детализация не добавляется, пока нет отдельной безопасной модели
|
||||
доступа и приемочного контракта.
|
||||
|
||||
## Модель ответа
|
||||
|
||||
Ответ содержит:
|
||||
|
||||
- `risk_level` - уровень риска: `low`, `guarded`, `medium`, `high`,
|
||||
`critical`;
|
||||
- `risk_score` - числовая оценка 0-100;
|
||||
- `title` - короткий управленческий заголовок;
|
||||
- `summary` - объяснение ситуации простым языком;
|
||||
- `why` - причины расчета;
|
||||
- `evidence` - подтверждающие сигналы;
|
||||
- `recommended_actions` - ручные действия для ответственных ролей;
|
||||
- `limitations` - ограничения интерпретации.
|
||||
|
||||
Пример:
|
||||
|
||||
```json
|
||||
{
|
||||
"risk_level": "medium",
|
||||
"risk_score": 62,
|
||||
"title": "Умеренный рост операционного риска",
|
||||
"summary": "Активность подразделения снизилась при росте удаленных сессий и частичных пробелах покрытия.",
|
||||
"why": [
|
||||
"Индекс активности ниже среднего по подразделениям",
|
||||
"UEBA score повышен",
|
||||
"Покрытие агентов ниже целевого уровня"
|
||||
],
|
||||
"evidence": [
|
||||
{
|
||||
"source": "workforce_kpi",
|
||||
"label": "Индекс активности",
|
||||
"value": "74%",
|
||||
"severity": "medium"
|
||||
}
|
||||
],
|
||||
"recommended_actions": [
|
||||
"Проверить подразделения с низким покрытием данных",
|
||||
"Передать security-события в контур ИБ для анализа"
|
||||
],
|
||||
"limitations": [
|
||||
"pfSense находится в contract_only режиме",
|
||||
"Risk Narrative не является ML-прогнозом"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Rule-Based Scoring
|
||||
|
||||
Модель детерминированная. Она использует только текущие агрегированные сигналы
|
||||
и не обучается на данных заказчика.
|
||||
|
||||
Уровни:
|
||||
|
||||
| Диапазон | Уровень | Интерпретация |
|
||||
| --- | --- | --- |
|
||||
| `0-24` | `low` | Существенных отклонений нет |
|
||||
| `25-49` | `guarded` | Есть ранние признаки риска |
|
||||
| `50-74` | `medium` | Нужна ручная проверка причин |
|
||||
| `75-89` | `high` | Требуется приоритетная проверка |
|
||||
| `90-100` | `critical` | Нужна срочная ручная проверка |
|
||||
|
||||
Сигналы:
|
||||
|
||||
- сниженный Workforce KPI;
|
||||
- низкое доверие к KPI;
|
||||
- низкое покрытие агентами;
|
||||
- повышенный UEBA severity;
|
||||
- наличие кандидатов на проверку;
|
||||
- высокая связь security-событий и активности;
|
||||
- пропуски данных;
|
||||
- активность вне рабочего времени;
|
||||
- рост удаленных сессий;
|
||||
- `contract_only` ограничение pfSense.
|
||||
|
||||
## Evidence
|
||||
|
||||
`evidence` нужен, чтобы руководитель, ИБ и эксплуатация видели не только итоговый
|
||||
уровень риска, но и источники вывода.
|
||||
|
||||
Типовые источники:
|
||||
|
||||
- `workforce_kpi`;
|
||||
- `kpi_explainability`;
|
||||
- `ueba`;
|
||||
- `coverage`;
|
||||
- `risk_heatmap`;
|
||||
- `security_correlation`;
|
||||
- `incident_candidates`;
|
||||
- `pfsense_contract`.
|
||||
|
||||
Evidence не должен содержать реальные ФИО, логины, IP-адреса, hostname или
|
||||
сырые события безопасности в demo-режиме.
|
||||
|
||||
## Роли
|
||||
|
||||
| Роль | Видимость |
|
||||
| --- | --- |
|
||||
| `executive` | Управленческий риск, причины, действия без технической детализации |
|
||||
| `manager` | Workforce-риск и действия по подразделению |
|
||||
| `security` | ИБ-релевантные причины, кандидаты и correlation indicators |
|
||||
| `forensics` | Контекст расследования и evidence package |
|
||||
| `admin` | Состояние источников, покрытие и технические ограничения |
|
||||
|
||||
Серверные role gates остаются обязательными. Скрытие блоков в HTML не считается
|
||||
достаточной защитой.
|
||||
|
||||
## UI и Markdown
|
||||
|
||||
В Executive view портал показывает блок:
|
||||
|
||||
```text
|
||||
Риск-нарратив
|
||||
```
|
||||
|
||||
В Markdown-отчете используется раздел:
|
||||
|
||||
```markdown
|
||||
## Риск-нарратив
|
||||
```
|
||||
|
||||
Раздел должен быть понятен руководителю без знаний ИБ: сначала вывод, затем
|
||||
причины, затем действия и ограничения.
|
||||
|
||||
## Как показывать заказчику
|
||||
|
||||
Рекомендуемый порядок для demo:
|
||||
|
||||
1. Открыть Executive view.
|
||||
2. Показать `Риск-нарратив`: уровень, score и краткое summary.
|
||||
3. Показать `Почему`: какие факторы подняли риск.
|
||||
4. Показать `Evidence`: какие сигналы подтверждают вывод.
|
||||
5. Показать `Рекомендуемые действия`.
|
||||
6. Перейти в Security или Forensics только после управленческого вывода.
|
||||
|
||||
Важно: не заявлять, что Risk Narrative сам подтверждает нарушение. Он
|
||||
приоритизирует ручную проверку.
|
||||
|
||||
## Ограничения Pilot v1
|
||||
|
||||
- Нет ML, LLM и predictive analytics.
|
||||
- Нет auto-remediation.
|
||||
- Нет полноценного SIEM/DLP claim.
|
||||
- pfSense readiness является `contract_only`, если ingestion отдельно не
|
||||
включен и не прошел приемку.
|
||||
- Качество вывода зависит от свежести источников, покрытия агентов и полноты
|
||||
данных.
|
||||
- В demo-режиме используются только обезличенные данные.
|
||||
@@ -21,16 +21,16 @@ baseline, demo pack, registry readiness package, enterprise deployment package
|
||||
генерируемый отчет теперь начинается с `# AWatch-rus оперативный отчет`, а
|
||||
headline, KPI label и CLI help используют публичное название AWatch-rus.
|
||||
|
||||
Главные остаточные gaps:
|
||||
Закрытые housekeeping gaps Demo Freeze v1:
|
||||
|
||||
- TASK_001-TASK_004 получили явные секции `Выполнение` с артефактами,
|
||||
проверками и ограничениями.
|
||||
- Для Risk Narrative создан отдельный документ `docs/RISK_NARRATIVE_RU.md`.
|
||||
- Добавлен browser-level conformance smoke с Playwright и screenshots runtime
|
||||
artifacts.
|
||||
|
||||
Оставшиеся acceptance gaps:
|
||||
|
||||
- TASK_001-TASK_004 не имеют явной секции `Выполнение`, хотя артефакты по ним
|
||||
в коде и документации присутствуют.
|
||||
- Для Risk Narrative нет отдельного `docs/RISK_NARRATIVE_RU.md`; функциональность
|
||||
подтверждена кодом, OpenAPI, TypeScript, UI и Markdown, но документация
|
||||
распределена по связанным материалам.
|
||||
- Portal verification в TASK_011 выполнен через код, статические UI-маркеры и
|
||||
production smoke; отдельный полноценный Playwright visual run не входил в
|
||||
обязательный список команд TASK_011.
|
||||
- Полная production-приемка требует live validation на стенде заказчика:
|
||||
доступность, TLS/reverse proxy, источники данных, backup/restore и ownership
|
||||
действий.
|
||||
|
||||
+3
-3
@@ -194,9 +194,9 @@ Grafana/portal-аналитику, Telegram-оповещения, runbook automa
|
||||
|
||||
Уже есть сильная база:
|
||||
|
||||
- `docs/DETMIR_THREAT_MODEL_RU.md`;
|
||||
- `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md`;
|
||||
- `docs/DETMIR_PORTAL_GUI_PLAN_RU.md`;
|
||||
- `docs/THREAT_MODEL_RU.md`;
|
||||
- `docs/UNIFIED_OPERATING_MODEL_RU.md`;
|
||||
- `docs/PORTAL_GUI_PLAN_RU.md`;
|
||||
- `docs/dlp-security-functional-spec-ru.md`;
|
||||
- `docs/dlp-gap-analysis.md`;
|
||||
- `docs/GRAFANA_DASHBOARDS_RU.md`;
|
||||
@@ -314,7 +314,7 @@
|
||||
|
||||
## 12. Связанные документы
|
||||
|
||||
- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
|
||||
- `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
|
||||
- `docs/ADMIN_GUIDE_RU.md`
|
||||
- `docs/OPERATOR_GUIDE_RU.md`
|
||||
- `docs/INSTALL_RU.md`
|
||||
@@ -322,8 +322,8 @@
|
||||
- `docs/OWNERSHIP_RU.md`
|
||||
- `docs/THIRD_PARTY_LICENSES_RU.md`
|
||||
- `docs/REGISTRY_CHECKLIST_RU.md`
|
||||
- `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md`
|
||||
- `docs/DETMIR_PORTAL_GUI_PLAN_RU.md`
|
||||
- `docs/UNIFIED_OPERATING_MODEL_RU.md`
|
||||
- `docs/PORTAL_GUI_PLAN_RU.md`
|
||||
- `docs/dlp-security-functional-spec-ru.md`
|
||||
- `docs/dlp-gap-analysis.md`
|
||||
- `docs/dlp-production-plan-windows-10-19.md`
|
||||
@@ -8,12 +8,12 @@
|
||||
|
||||
Если старые документы расходятся с этим файлом по адресам или runtime-ролям, для текущей эксплуатации приоритет у этого файла.
|
||||
|
||||
Связанная security-основа: `docs/DETMIR_THREAT_MODEL_RU.md` фиксирует текущую
|
||||
Связанная security-основа: `docs/THREAT_MODEL_RU.md` фиксирует текущую
|
||||
операционную модель угроз. Это рабочая модель для платформы операционного
|
||||
контроля и технического аудита, а не формальная сертификационная модель ФСТЭК.
|
||||
|
||||
Связанное продуктовое позиционирование:
|
||||
`docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` фиксирует безопасный
|
||||
`docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` фиксирует безопасный
|
||||
заход для реестра российского ПО: AWatch-rus как платформа операционного контроля и
|
||||
управления ИТ-инфраструктурой, с ориентиром на класс `09.10`, без заявления
|
||||
сертифицированной DLP/SIEM/EDR/XDR/СЗИ.
|
||||
@@ -422,8 +422,8 @@ Telegram bot `DetMirAuto` обязан покрывать:
|
||||
| `SECURITY.md` | security findings по risky фазам |
|
||||
| `UAT.md` | операторская приемка |
|
||||
| `docs/runbook.md` | живая эксплуатация |
|
||||
| `docs/DETMIR_THREAT_MODEL_RU.md` | рабочая модель угроз и границы security-позиционирования |
|
||||
| `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` | стратегия позиционирования для реестра российского ПО |
|
||||
| `docs/THREAT_MODEL_RU.md` | рабочая модель угроз и границы security-позиционирования |
|
||||
| `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` | стратегия позиционирования для реестра российского ПО |
|
||||
| `docs/ADMIN_GUIDE_RU.md` | руководство администратора |
|
||||
| `docs/OPERATOR_GUIDE_RU.md` | руководство оператора |
|
||||
| `docs/INSTALL_RU.md` | установка и первичная проверка |
|
||||
@@ -22,7 +22,7 @@
|
||||
Система не является полноценной DLP-платформой enterprise-класса с нативной аутентификацией, RBAC, аппаратной изоляцией и криптографической подписью политик. Это важно учитывать при ИБ-оценке.
|
||||
|
||||
Текущая модель угроз для всего контура AWatch-rus зафиксирована отдельно:
|
||||
`docs/DETMIR_THREAT_MODEL_RU.md`. В ней DLP-функции рассматриваются как часть
|
||||
`docs/THREAT_MODEL_RU.md`. В ней DLP-функции рассматриваются как часть
|
||||
платформы операционного контроля и технического аудита, а не как заявление о
|
||||
сертифицированной DLP/СЗИ.
|
||||
|
||||
@@ -604,7 +604,7 @@ python3 scripts/dlp-admin-cli.py cases list --limit 50
|
||||
|
||||
## 21. Связанные документы
|
||||
|
||||
- `docs/DETMIR_THREAT_MODEL_RU.md`
|
||||
- `docs/THREAT_MODEL_RU.md`
|
||||
- `docs/dlp-policy-engine.md`
|
||||
- `docs/dlp-integrations.md`
|
||||
- `docs/dlp-enforcement.md`
|
||||
|
||||
@@ -22,3 +22,44 @@ AWatch-rus.
|
||||
|
||||
Pilot v1 можно показывать заказчику с понятным списком готовых возможностей,
|
||||
ограничений и smoke-проверок.
|
||||
|
||||
---
|
||||
|
||||
## Выполнение
|
||||
|
||||
Статус: выполнено как часть Pilot v1 freeze.
|
||||
|
||||
Что закреплено:
|
||||
|
||||
- роли `executive`, `manager`, `security`, `forensics`, `admin`;
|
||||
- серверные role gates для Pilot v1 API;
|
||||
- Executive, Workforce, Security и Forensics portal views;
|
||||
- Pilot v1 acceptance/evidence документация;
|
||||
- demo/runbook слой для контролируемого показа;
|
||||
- browser-level conformance smoke для ключевых представлений.
|
||||
|
||||
Ключевые артефакты:
|
||||
|
||||
- `docs/PILOT_V1_RU.md`;
|
||||
- `docs/PILOT_V1_ACCEPTANCE_CHECKLIST_RU.md`;
|
||||
- `docs/PILOT_V1_EVIDENCE_RU.md`;
|
||||
- `docs/PILOT_VALIDATION_CHECKLIST_RU.md`;
|
||||
- `docs/DEMO_RUNBOOK_RU.md`;
|
||||
- `docs/BROWSER_CONFORMANCE_RU.md`;
|
||||
- `scripts/detmir-portal-tabs-smoke.mjs`;
|
||||
- `scripts/browser-conformance-smoke.mjs`;
|
||||
- `scripts/pilot-validation-smoke.mjs`.
|
||||
|
||||
Проверки:
|
||||
|
||||
- `node scripts/pilot-validation-smoke.mjs`;
|
||||
- `node scripts/detmir-portal-tabs-smoke.mjs` на локальном портале;
|
||||
- `node scripts/browser-conformance-smoke.mjs` на локальном портале;
|
||||
- `git diff --check`.
|
||||
|
||||
Известные ограничения:
|
||||
|
||||
- production acceptance требует отдельной live-проверки на стенде заказчика;
|
||||
- screenshots из `artifacts/browser-smoke/` являются runtime artifacts и не
|
||||
коммитятся;
|
||||
- новые collectors и новая функциональность в freeze-фазе не добавляются.
|
||||
|
||||
@@ -381,3 +381,72 @@ Smoke должен проверять:
|
||||
7. Результаты команд проверки.
|
||||
8. Результат smoke.
|
||||
9. Известные ограничения
|
||||
|
||||
---
|
||||
|
||||
## Выполнение
|
||||
|
||||
Статус: выполнено для Pilot v1 production-hardening слоя портала.
|
||||
|
||||
Краткое описание:
|
||||
|
||||
- добавлены production endpoints `/healthz`, `/readyz`, `/version`, `/metrics`;
|
||||
- добавлены request id / correlation id headers;
|
||||
- добавлены structured JSON HTTP logs;
|
||||
- добавлены bounded query/body limits для тяжелых API;
|
||||
- добавлена валидация production-конфигурации;
|
||||
- role gates сохранены и проверяются smoke;
|
||||
- pfSense остается `contract_only`, без заявления ingestion/SIEM.
|
||||
|
||||
Ключевые файлы:
|
||||
|
||||
- `adk-rust/crates/detmir-portal/src/production/`;
|
||||
- `adk-rust/crates/detmir-portal/src/main.rs`;
|
||||
- `docs/PRODUCTION_READINESS_RU.md`;
|
||||
- `scripts/awatch-production-hardening-smoke.mjs`.
|
||||
|
||||
Endpoints:
|
||||
|
||||
- `GET /healthz`;
|
||||
- `GET /readyz`;
|
||||
- `GET /version`;
|
||||
- `GET /metrics`;
|
||||
- защищенные Pilot v1 API: `/api/reports`, `/api/executive`,
|
||||
`/api/workforce`, `/api/security`, `/api/forensics`, `/api/ueba`,
|
||||
`/api/pfsense`, `/api/workforce/kpi/explain`.
|
||||
|
||||
Лимиты и защита:
|
||||
|
||||
- max request body size;
|
||||
- max/default page size;
|
||||
- max report date range;
|
||||
- request timeout и slow request logging threshold;
|
||||
- отказ `400` для слишком большого `page_size` или диапазона отчета;
|
||||
- отказ `413` для слишком большого body;
|
||||
- отказ `403` по role gate.
|
||||
|
||||
Метрики:
|
||||
|
||||
- `awatch_http_requests_total`;
|
||||
- `awatch_http_request_duration_seconds`;
|
||||
- `awatch_reports_generated_total`;
|
||||
- `awatch_ingestion_records_total`;
|
||||
- `awatch_ingestion_rejected_total`;
|
||||
- `awatch_role_denied_total`;
|
||||
- `awatch_readyz_status`.
|
||||
|
||||
Проверки:
|
||||
|
||||
- `cargo fmt --all --check`;
|
||||
- `cargo clippy --all-targets --all-features -- -D warnings`;
|
||||
- `cargo test --all`;
|
||||
- `cargo build --release`;
|
||||
- `AWATCH_PORTAL_SMOKE_URL=http://127.0.0.1:8720 node scripts/awatch-production-hardening-smoke.mjs`;
|
||||
- `git diff --check`.
|
||||
|
||||
Известные ограничения:
|
||||
|
||||
- production-hardening smoke не заменяет live acceptance;
|
||||
- `/readyz` отражает только реально настроенные зависимости;
|
||||
- contract-only интеграции не считаются работающими сборщиками;
|
||||
- freeze-фаза допускает только исправление дефектов и уточнение документации.
|
||||
|
||||
@@ -309,4 +309,72 @@ docs/EXPLAINABLE_KPI_RU.md
|
||||
5. Добавленные UI-блоки.
|
||||
6. Добавленные тесты.
|
||||
7. Результаты проверок.
|
||||
8. Известные ограничения.
|
||||
8. Известные ограничения.
|
||||
|
||||
---
|
||||
|
||||
## Выполнение
|
||||
|
||||
Статус: выполнено для Pilot v1.
|
||||
|
||||
Краткое описание:
|
||||
|
||||
- добавлен explainability-контракт Workforce KPI;
|
||||
- добавлен endpoint `GET /api/workforce/kpi/explain`;
|
||||
- добавлена детерминированная rule-based модель факторов;
|
||||
- добавлен confidence level `high` / `medium` / `low`;
|
||||
- UI показывает блок `Почему такой индекс активности?`;
|
||||
- Markdown-отчет содержит explainability-раздел;
|
||||
- OpenAPI и TypeScript contracts включают explain model;
|
||||
- employee-level детализация не добавлена без отдельного безопасного контракта.
|
||||
|
||||
Ключевые файлы:
|
||||
|
||||
- `adk-rust/crates/detmir-portal/src/workforce_kpi_explain.rs`;
|
||||
- `adk-rust/crates/detmir-portal/src/static/app.js`;
|
||||
- `adk-rust/crates/detmir-portal/src/contracts/openapi.json`;
|
||||
- `adk-rust/crates/detmir-portal/src/contracts/typescript.d.ts`;
|
||||
- `docs/EXPLAINABLE_KPI_RU.md`.
|
||||
|
||||
API endpoint:
|
||||
|
||||
- `GET /api/workforce/kpi/explain`.
|
||||
|
||||
Модель explainability:
|
||||
|
||||
- `kpi_score`;
|
||||
- `confidence`;
|
||||
- `coverage`;
|
||||
- `factors`;
|
||||
- `top_applications`;
|
||||
- `warnings`;
|
||||
- `recommendations`.
|
||||
|
||||
Минимальные факторы:
|
||||
|
||||
- `productive_activity`;
|
||||
- `business_app_usage`;
|
||||
- `idle_time`;
|
||||
- `afterhours_activity`;
|
||||
- `remote_session_activity`;
|
||||
- `data_coverage`;
|
||||
- `missing_data`;
|
||||
- `trend_change`.
|
||||
|
||||
Проверки:
|
||||
|
||||
- unit tests для explainability-модели и confidence;
|
||||
- role-filtering smoke;
|
||||
- markdown/report smoke;
|
||||
- `cargo fmt --all --check`;
|
||||
- `cargo clippy --all-targets --all-features -- -D warnings`;
|
||||
- `cargo test --all`;
|
||||
- `cargo build --release`;
|
||||
- portal smoke.
|
||||
|
||||
Известные ограничения:
|
||||
|
||||
- не используется ML, LLM или predictive scoring;
|
||||
- KPI не является HR-дисциплинарной оценкой;
|
||||
- персональная explainability-модель в Pilot v1 не включена;
|
||||
- качество объяснения зависит от свежести и полноты источников.
|
||||
|
||||
@@ -278,4 +278,82 @@ docs/RISK_NARRATIVE_RU.md
|
||||
6. Обновления report/OpenAPI/TypeScript.
|
||||
7. Добавленные тесты.
|
||||
8. Результаты fmt/clippy/test/build/smoke.
|
||||
9. Известные ограничения.
|
||||
9. Известные ограничения.
|
||||
|
||||
---
|
||||
|
||||
## Выполнение
|
||||
|
||||
Статус: выполнено для Pilot v1.
|
||||
|
||||
Краткое описание:
|
||||
|
||||
- добавлен rule-based Risk Narrative layer;
|
||||
- добавлен endpoint `GET /api/risk/narrative`;
|
||||
- risk score связывает Workforce KPI, Explainable KPI, UEBA, coverage,
|
||||
security correlation, incident candidates и pfSense `contract_only`
|
||||
limitation;
|
||||
- Executive UI показывает блок `Риск-нарратив`;
|
||||
- Security UI проверяет ИБ-релевантную связь рисков и активности;
|
||||
- Markdown-отчет содержит раздел `## Риск-нарратив`;
|
||||
- OpenAPI и TypeScript contracts обновлены;
|
||||
- создана отдельная документация `docs/RISK_NARRATIVE_RU.md`.
|
||||
|
||||
Ключевые файлы:
|
||||
|
||||
- `adk-rust/crates/detmir-portal/src/risk_narrative.rs`;
|
||||
- `adk-rust/crates/detmir-portal/src/static/app.js`;
|
||||
- `adk-rust/crates/detmir-portal/src/contracts/openapi.json`;
|
||||
- `adk-rust/crates/detmir-portal/src/contracts/typescript.d.ts`;
|
||||
- `docs/RISK_NARRATIVE_RU.md`;
|
||||
- `scripts/browser-conformance-smoke.mjs`;
|
||||
- `scripts/detmir-portal-tabs-smoke.mjs`.
|
||||
|
||||
Risk scoring rules:
|
||||
|
||||
- `0-24` - `low`;
|
||||
- `25-49` - `guarded`;
|
||||
- `50-74` - `medium`;
|
||||
- `75-89` - `high`;
|
||||
- `90-100` - `critical`.
|
||||
|
||||
Сигналы:
|
||||
|
||||
- low Workforce KPI;
|
||||
- low KPI confidence;
|
||||
- low agent coverage;
|
||||
- increased UEBA severity;
|
||||
- incident candidates count;
|
||||
- high security correlation;
|
||||
- missing data;
|
||||
- afterhours/remote activity;
|
||||
- pfSense `contract_only` limitation.
|
||||
|
||||
UI-блоки:
|
||||
|
||||
- Executive: `Риск-нарратив`, `Почему`, `Подтверждения`, `Дальше`,
|
||||
`Ограничения`;
|
||||
- Security: `Связь рисков и активности`, `Требует проверки`,
|
||||
`Рекомендуемые действия ИБ`;
|
||||
- Forensics: расследования, timeline, материалы расследования и аудит.
|
||||
|
||||
Проверки:
|
||||
|
||||
- unit tests для risk narrative scenarios;
|
||||
- OpenAPI/TypeScript contract smoke;
|
||||
- `node scripts/browser-conformance-smoke.mjs`;
|
||||
- `node scripts/detmir-portal-tabs-smoke.mjs`;
|
||||
- `cargo fmt --all --check`;
|
||||
- `cargo clippy --all-targets --all-features -- -D warnings`;
|
||||
- `cargo test --all`;
|
||||
- `cargo build --release`;
|
||||
- `git diff --check`.
|
||||
|
||||
Известные ограничения:
|
||||
|
||||
- Risk Narrative не является ML/LLM/predictive analytics;
|
||||
- Risk Narrative не подтверждает нарушение без ручной проверки;
|
||||
- нет auto-remediation;
|
||||
- pfSense не заявляется как ingestion/SIEM, пока это не пройдет отдельную
|
||||
приемку;
|
||||
- live customer-stand validation остается отдельным шагом Demo Freeze v1.
|
||||
|
||||
+1
-1
@@ -539,7 +539,7 @@ detmir-win-shell
|
||||
|
||||
Канонический документ:
|
||||
|
||||
- `docs/DETMIR_POWERSHELL_MCP_REMOTE_RU.md`
|
||||
- `docs/POWERSHELL_MCP_REMOTE_RU.md`
|
||||
|
||||
Правило:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Ты — виртуальный помощник технической поддержки DetMir.
|
||||
Ты — виртуальный помощник технической поддержки AWatch-rus.
|
||||
|
||||
Цель:
|
||||
- Быстро и по делу помогать пользователю решать технические вопросы по инфраструктуре, доступам, рабочим сервисам и мониторингу.
|
||||
|
||||
Reference in New Issue
Block a user