
# Використання графів знань ШІ для об’єднання контролів безпеки, політик та доказів

У швидко змінюваному світі безпеки SaaS команди працюють із десятками стандартів — [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [PCI‑DSS](https://www.pcisecuritystandards.org/pci_security/), [GDPR](https://gdpr.eu/), а також галузевими специфічними вимогами — і одночасно обробляють безкінечні запити безпеки від потенційних клієнтів, аудиторів та партнерів. Масивний обсяг перекриваючихся контролів, дубльованих політик та розкиданих доказів створює **проблему знань‑силосів**, що коштує і часу, і грошей.

Виходить **граф знань, підкріплений ШІ**. Перетворюючи різнорідні артефакти відповідності у живу, запитувану мережу, організації можуть автоматично знаходити потрібний контроль, підбирати точний доказ і генерувати правильні відповіді на анкети за секунди. Ця стаття покаже, що це таке, які технічні блоки потрібні і як практично вбудувати граф у платформу Procurize.

---

## Чому традиційні підходи не працюють

| Проблема | Традиційний метод | Схований витрат |
|----------|-------------------|-----------------|
| Відображення контролів | Ручні електронні таблиці | Години дублювання щоквартально |
| Пошук доказів | Пошук у папках + конвенції імен | Пропущені документи, розбіжності версій |
| Узгодженість між стандартами | Окремі чек‑лісти для кожного стандарту | Непослідовні відповіді, недоліки аудиту |
| Масштабування на нові стандарти | Копіювання‑вставка існуючих політик | Людські помилки, порушення простежуваності |

Навіть при наявності потужних сховищ документів відсутність **семантичних зв’язків** змушує команди щораз відповідати на одне й те ж питання трохи по‑різному для кожного стандарту. Це створює неефективний цикл зворотного зв’язку, який уповільнює укладання угод і підриває довіру.

---

## Що таке граф знань, підкріплений ШІ?

Граф знань – це **графова модель даних**, у якій сутності (вузли) пов’язані між собою відношеннями (ребрами). У контексті відповідності вузли можуть представляти:

* **Контролі безпеки** (наприклад, “Шифрування даних у спокої”)
* **Документи політик** (наприклад, “Політика збереження даних v3.2”)
* **Артефакти доказів** (наприклад, “Логи ротації ключів AWS KMS”)
* **Регуляторні вимоги** (наприклад, “PCI‑DSS Вимога 3.4”)

ШІ додає два критичні шари:

1. **Витяг та зв’язок сутностей** – великі мовні моделі (LLM) сканують текст політик, файли конфігурацій та журнали аудиту, автоматично створюючи вузли і пропонуючи зв’язки.
2. **Семантичне міркування** – графові нейронні мережі (GNN) виводять відсутні зв’язки, виявляють протиріччя та пропонують оновлення при зміні стандартів.

В результаті отримуємо **живу мапу**, яка розвивається з кожним новим політиком або доказом, забезпечуючи миттєві, контекстно‑залежні відповіді.

---

## Огляд ключової архітектури

Нижче – схематичний Mermaid‑діаграм високого рівня механізму відповідності, підкріпленого графом знань, у Procurize.

```mermaid
graph LR
    A["Raw Source Files"] -->|LLM Extraction| B["Entity Extraction Service"]
    B --> C["Graph Ingestion Layer"]
    C --> D["Neo4j Knowledge Graph"]
    D --> E["Semantic Reasoning Engine"]
    E --> F["Query API"]
    F --> G["Procurize UI"]
    G --> H["Automated Questionnaire Generator"]
    style D fill:#e8f4ff,stroke:#005b96,stroke-width:2px
    style E fill:#f0fff0,stroke:#2a7d2a,stroke-width:2px
```

* **Raw Source Files** – Політики, конфігурації як код, архіви журналів та попередні відповіді на анкети.  
* **Entity Extraction Service** – Конвеєр на базі LLM, який позначає контролі, посилання та докази.  
* **Graph Ingestion Layer** – Перетворює витягнуті сутності у вузли та ребра, забезпечуючи версіонування.  
* **Neo4j Knowledge Graph** – Обрано за його ACID‑гарантії та нативну мову запитів Cypher.  
* **Semantic Reasoning Engine** – Застосовує GNN‑моделі для пропозицій відсутніх зв’язків і сповіщень про конфлікти.  
* **Query API** – Надає GraphQL‑кінцеві точки для пошуку в реальному часі.  
* **Procurize UI** – Компонент інтерфейсу, який візуалізує пов’язані контролі та докази під час складання відповідей.  
* **Automated Questionnaire Generator** – Споживає результати запитів і автоматично заповнює анкети безпеки.

---

## Покроковий посібник з впровадження

### 1. Інвентаризація всіх артефактів відповідності

Почніть з каталогізації кожного джерела:

| Тип артефакту | Типове розташування | Приклад |
|---------------|----------------------|---------|
| Політики | Confluence, Git | `security/policies/data-retention.md` |
| Матриця контролів | Excel, Smartsheet | `SOC2_controls.xlsx` |
| Докази | S3 bucket, локальний диск | `evidence/aws/kms-rotation-2024.pdf` |
| Попередні анкети | Procurize, Drive | `questionnaires/2023-aws-vendor.csv` |

Метадані (власник, дата останнього перегляду, версія) критичні для подальшого зв’язування.

### 2. Розгортання сервісу витягу сутностей

1. **Виберіть LLM** – OpenAI GPT‑4o, Anthropic Claude 3 або локальна модель LLaMA.  
2. **Інженерія підказок** – Створіть підказки, які повертають JSON з полями: `entity_type`, `name`, `source_file`, `confidence`.  
3. **Запуск за розкладом** – Використовуйте Airflow або Prefect для нічного оброблення нових/оновлених файлів.

> **Порада:** Застосовуйте *словник сутностей*, попередньо заповнений стандартними назвами контролів (наприклад, “Access Control – Least Privilege”) – це підвищить точність витягу.

### 3. Завантаження у Neo4j

```cypher
UNWIND $entities AS e
MERGE (n:Entity {uid: e.id})
SET n.type = e.type,
    n.name = e.name,
    n.source = e.source,
    n.confidence = e.confidence,
    n.last_seen = timestamp()
```

Створюємо зв’язки «на льоту»:

```cypher
MATCH (c:Entity {type:'Control', name:e.control_name}),
      (p:Entity {type:'Policy', name:e.policy_name})
MERGE (c)-[:IMPLEMENTED_BY]->(p)
```

### 4. Додавання семантичного міркування

* Навчіть **Графову нейронну мережу** на маркованому підмножині, де зв’язки відомі.  
* Використовуйте модель для прогнозування ребер типу `EVIDENCE_FOR`, `ALIGNED_WITH` або `CONFLICTS_WITH`.  
* Плануйте нічний процес, який позначає прогнози високої впевненості для ручної перевірки.

### 5. Виставлення Query API

```graphql
query ControlsForRequirement($reqId: ID!) {
  requirement(id: $reqId) {
    name
    implements {
      ... on Control {
        name
        policies { name }
        evidence { name url }
      }
    }
  }
}
```

Тепер UI може **автодоповнювати** поля анкети, підтягуваючи потрібний контроль і прикріплені докази.

### 6. Інтеграція з конструктором анкет Procurize

1. Додайте кнопку **«Пошук у графі знань»** поруч із кожним полем відповіді.  
2. При натисканні UI надсилає ідентифікатор вимоги до GraphQL‑API.  
3. Результати заповнюють текстове поле відповіді та автоматично додають PDF‑докази.  
4. Команди можуть редагувати або додавати коментарі, але базовий набір генерується за секунди.

---

## Реальні переваги

| Показник | До впровадження графу | Після впровадження графу |
|----------|----------------------|--------------------------|
| Середній час відповіді на анкету | 7 днів | 1,2 дня |
| Час ручного пошуку доказу (на відповідь) | 45 хв | 3 хв |
| Кількість дублювальних політик між стандартами | 12 файлів | 3 файли |
| Рівень виявлення недоліків у аудиті | 8 % | 2 % |

Середня SaaS‑компанія повідомила про **70 % скорочення** циклу розгляду безпеки після запуску графу, що призвело до швидшого закриття угод і зріст довіри партнерів.

---

## Кращі практики та підводні камені

| Краща практика | Чому це важливо |
|----------------|-----------------|
| **Версійовані вузли** – додавайте поля `valid_from` / `valid_to` до кожного вузла. | Забезпечує історичний аудит і відповідність ретроактивним змінам регуляцій. |
| **Людина в циклі** – позначайте ребра з низькою впевненістю для ручної перевірки. | Запобігає «галюцинаціям» ШІ, які можуть призвести до неправильних відповідей. |
| **Контроль доступу до графу** – використовуйте ролі (RBAC) у Neo4j. | Гарантує, що лише уповноважені особи бачать чутливі докази. |
| **Безперервне навчання** – повертайте виправлені зв’язки в навчальний набір GNN. | Поступово підвищує якість прогнозів. |

**Типові підводні камені**

* **Залежність лише від LLM‑витягу** – PDF‑файли часто містять таблиці, які LLM інтерпретують неправильно; підкріплюйте їх OCR‑парсерами та правил‑базованими екстракторами.  
* **Перевантаження графу** – неконтрольоване створення вузлів призводить до падіння продуктивності. Встановіть правила чистки застарілих артефактів.  
* **Відсутність управління** – без чіткої моделі власності даних граф може стати «чорним ящиком». Призначте роль **стeward** (куратор) відповідності.

---

## Майбутні напрямки

1. **Федеративні графи між організаціями** – обмін анонімізованими мапінгами контроль‑доказ, зберігаючи конфіденційність даних.  
2. **Авто‑оновлення за регуляціями** – імпорт офіційних ревізій стандартів (наприклад, ISO 27001:2025) та пропозиції оновлень політик через механізм міркування.  
3. **Інтерфейс природної мови** – дозволити аналітикам вводити «Покажи всі докази для контролів шифрування, які задовольняють GDPR статтю 32», і отримувати миттєвий результат.

Розглядаючи відповідність як **мережеву задачу знань**, організації отримують новий рівень гнучкості, точності та впевненості у кожній безпековій анкеті, що їм доводиться заповнювати.

---

## Дивіться також

- [NIST Cybersecurity Framework – Mapping to ISO & SOC 2](https://www.nist.gov/cybersecurity-framework)  
- [Graph Neural Networks for Knowledge Graph Completion (arXiv)](https://arxiv.org/abs/2003.00764)