
# Движок контекстных рекомендаций доказательств для автоматизированных вопросов безопасности

**TL;DR** – Движок контекстно‑aware рекомендаций доказательств (CERE) объединяет крупные языковые модели (LLM) с постоянно обновляемым графом знаний, чтобы предоставлять аудиторам и командам безопасности именно тот кусок доказательства, который им нужен — в нужный момент. Результат — сокращение ручного времени поиска на 60‑80 %, повышение точности ответов и рабочий процесс соблюдения требований, масштабируемый под скорость современной разработки SaaS.

---  

## 1. Почему движок рекомендаций — недостающая связь

Опросники по безопасности, проверки готовности к [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), аудиты [ISO 27001](https://www.iso.org/standard/27001), оценки рисков поставщиков — все они имеют одну общую проблему: **поиск нужного доказательства**. Команды обычно поддерживают разросшееся хранилище политик, аудиторских отчётов, снапшотов конфигураций и сторонних аттестаций. Когда приходит опросник, аналитик по соответствию должен:

1. **Проанализировать вопрос** (часто на естественном языке, иногда с отраслевым жаргоном).  
2. **Определить домен контроля** (например, «Управление доступом», «Сохранение данных»).  
3. **Пройтись по репозиторию** в поисках документов, удовлетворяющих контролю.  
4. **Скопировать‑вставить или переписать** ответ, добавив контекстные примечания.

Даже при использовании продвинутых поисковых средств, цикл вручную может занимать несколько часов на каждый опросник, особенно когда доказательства разбросаны по нескольким облачным аккаунтам, системам тикетов и устаревшим файловым хранилищам. Ошибки в этом процессе вызывают усталость от соблюдения требований и могут привести к пропуску сроков или неточным ответам — что дорого обойдётся быстрорастущему SaaS‑бизнесу.

**CERE** решает задачу: движок автоматически выводит наиболее релевантные доказательства сразу после ввода вопроса, используя сочетание семантического понимания (LLM) и реляционного вывода (обход графа знаний).

---  

## 2. Основные архитектурные столпы

CERE построен на трёх тесно связанных уровнях:

| Уровень | Ответственность | Ключевые технологии |
|---------|-----------------|----------------------|
| **Семантический слой намерений** | Преобразует сырой текст опросника в структурированное намерение (семейство контролей, уровень риска, тип требуемого артефакта). | Prompt‑engineered LLM (например, Claude‑3, GPT‑4o) + Retrieval‑Augmented Generation (RAG) |
| **Динамический граф знаний (DKG)** | Хранит сущности (документы, контролы, активы) и их отношения, постоянно обновляется из исходных систем. | Neo4j/JanusGraph, GraphQL API, конвейеры Change‑Data‑Capture (CDC) |
| **Движок рекомендаций** | Выполняет запросы к графу, основанные на намерении, ранжирует кандидаты‑доказательства и возвращает краткую рекомендацию с оценкой уверенности. | Graph Neural Network (GNN) для оценки релевантности, цикл reinforcement‑learning для учёта обратной связи |

Ниже представлена диаграмма Mermaid, визуализирующая поток данных.

```mermaid
flowchart LR
    A["Пользователь отправляет вопрос в опроснике"]
    B["LLM разбирает намерение\n(Контроль, Риск, ТипАртефакта)"]
    C["Поиск в DKG по намерению"]
    D["Оценка релевантности GNN"]
    E["Топ‑K элементов доказательства"]
    F["UI показывает рекомендацию\nс оценкой уверенности"]
    G["Обратная связь пользователя (принять/отклонить)"]
    H["RL‑цикл обновляет веса GNN"]
    A --> B --> C --> D --> E --> F
    F --> G --> H --> D
```

*Все подписи узлов заключены в двойные кавычки, как требуется.*

---  

## 3. От текста к намерению: Prompt‑engineered LLM

Первый шаг — *понимание* вопроса. Тщательно составленный запрос извлекает три сигнала:

1. **Идентификатор контроля** — например, «ISO 27001 A.9.2.3 – Управление паролями».  
2. **Категория доказательства** — например, «Политический документ», «Экспорт конфигурации», «Журнал аудита».  
3. **Контекст риска** — «Высокий риск, внешний доступ».

Пример запроса (коротко, ради безопасности):

```
You are a compliance analyst. Return a JSON object with the fields:
{
  "control": "<standard ID and title>",
  "evidence_type": "<policy|config|log|report>",
  "risk_tier": "<low|medium|high>"
}
Question: {question}
```

Вывод LLM проверяется по схеме, затем передаётся в конструктор запросов DKG.

---  

## 4. Динамический граф знаний (DKG)

### 4.1 Модель сущностей

| Сущность | Атрибуты | Отношения |
|----------|----------|-----------|
| **Документ** | `doc_id`, `title`, `type`, `source_system`, `last_modified` | `PROVIDES` → `Control` |
| **Контроль** | `standard_id`, `title`, `domain` | `REQUIRES` → `Evidence_Type` |
| **Актив** | `asset_id`, `cloud_provider`, `environment` | `HOSTS` → `Document` |
| **Пользователь** | `user_id`, `role` | `INTERACTS_WITH` → `Document` |

### 4.2 Синхронизация в реальном времени

Procurize уже интегрирован с SaaS‑инструментами вроде GitHub, Confluence, ServiceNow и API облачных провайдеров. Микросервис на базе CDC отслеживает события CRUD и обновляет граф с задержкой в субсекунды, сохраняя **аудируемость** (каждое ребро хранит `source_event_id`).

---  

## 5. Путь рекомендаций через граф

1. **Выбор якорного узла** — идентификатор `control` из намерения становится стартовым узлом.  
2. **Расширение пути** — поиск в ширину (BFS) по ребрам `PROVIDES`, ограниченный типом `evidence_type`, полученным от LLM.  
3. **Извлечение признаков** — для каждого кандидата формируется вектор из:
   - Текстового сходства (эмбеддинг той же LLM).  
   - Свежести (`last_modified`).  
   - Частоты использования (как часто документ упоминался в прошлых опросниках).  
4. **Оценка релевантности** — GNN агрегирует признаки узлов и ребер, выдавая оценку `s ∈ [0,1]`.  
5. **Ранжирование и уверенность** — топ‑K документов сортируются по `s`; движок также выводит процент уверенности (например, «85 % уверены, что эта политика удовлетворяет запрос»).

---  

## 6. Человек‑в‑цикл: обратная связь

Идеальная рекомендация сразу не появляется. CERE фиксирует решение **принять/отклонить** и любой свободный комментарий. Эти данные питают цикл обучения с подкреплением (RL), который периодически дообучает политику сети GNN, согласовывая её с субъективными предпочтениями организации.

RL‑конвейер запускается каждую ночь:

```mermaid
stateDiagram-v2
    [*] --> CollectFeedback
    CollectFeedback --> UpdateRewards
    UpdateRewards --> TrainGNN
    TrainGNN --> DeployModel
    DeployModel --> [*]
```

---  

## 7. Интеграция с Procurize

Procurize уже предоставляет **Unified Questionnaire Hub**, где пользователи могут назначать задачи, комментировать и прикреплять доказательства. CERE подключается как **умный виджет поля**:

- При нажатии *«Добавить доказательство»* виджет запускает конвейер LLM → DKG.  
- Рекомендованные документы выводятся в виде кликабельных карточек, каждая с кнопкой **«Вставить цитату»**, которая автоматически генерирует markdown‑ссылку, отформатированную под опросник.  
- В мульти‑тенантных средах движок соблюдает **разделение данных по арендаторам** — граф каждого клиента изолирован, обеспечивая конфиденциальность, но при этом позволяет кросс‑тенантное обучение в приватной манере (через федеративное усреднение весов GNN).

---  

## 8. Оцифрованные выгоды

| Показатель | База (ручная) | С CERE |
|------------|----------------|---------|
| **Среднее время поиска доказательства** | 15 минут на вопрос | 2‑3 минуты |
| **Точность ответов (процент прохождения аудита)** | 87 % | 95 % |
| **Удовлетворённость команды (NPS)** | 32 | 68 |
| **Сокращение бэклога по соответствию** | 4 недели | 1 неделя |

Пилотный проект в средневзвешенном финтехе (≈200 сотрудников) показал **сокращение времени обработки опросников на 72 %** и **уменьшение количества ревизий на 30 %** уже в первый месяц.

---  

## 9. Проблемы и способы их решения

| Проблема | Решение |
|----------|---------|
| **Холодный старт для новых контролей** — отсутствие исторических ссылок. | Заполнить граф шаблонами стандартных политик, затем использовать перенос обучения от схожих контролей. |
| **Конфиденциальность данных между арендаторами** — риски утечки при совместном обучении. | Применять **федеративное обучение**: каждый арендатор обучает локально, а в агрегат передаются только изменения весов модели. |
| **Галлюцинации LLM** — неправильные идентификаторы контролей. | Проверять вывод LLM против **канонического реестра контролей** (ISO, SOC, NIST) до выполнения запроса к графу. |
| **Дрейф графа** — устаревшие связи после миграций в облаке. | CDC‑конвейеры с гарантией **eventual consistency** и периодические проверки здоровья графа. |

---  

## 10. План развития

1. **Мультимодальный поиск доказательств** — включить скриншоты, схемы конфигураций и видеоруководства с использованием визуальных LLM.  
2. **Прогностический регуляторный радар** — интегрировать поток новостей о нормативных изменениях (например, поправки к GDPR) для проактивного обогащения DKG предстоящими изменениями контролей.  
3. **Dashboard объяснимого ИИ** — визуализировать, почему документ получил свою оценку уверенности (трассировка пути, вклады признаков).  
4. **Самовосстанавливающийся граф** — автоматически обнаруживать «осиротевшие» узлы и сопоставлять их с помощью AI‑решения по разрешению сущностей.

---  

## 11. Заключение

**Движок контекстных рекомендаций доказательств** преобразует трудоёмкое искусство ответов на вопросы безопасности в управляемый, практически мгновенный процесс. Совмещение семантического парсинга LLM, живого графа знаний и ранжирования на основе GNN обеспечивает предоставление нужного доказательства в нужный момент, с измеримыми преимуществами в скорости, точности и уверенности соответствия. По мере того как SaaS‑организации продолжают расти, такая интеллектуальная поддержка перестаёт быть «хорошей идеей» и становится краеугольным камнем надёжной, готовой к аудиту операционной модели.