
# Կոնտինուալ քաղաքականության շեղման հայտնաբերում AI‑ով իրական ժամանակի հարցնաշարքի ճշգրտության համար

## Ներածություն  

ԱՆվտանգության հարցնաշարերը, համաձայնության աուդիտները և մատակարարների գնահատումները են B2B SaaS էկո‑սիստեմում اعتمادի հիմնաշարերը: Բայց **ստատիկ բնույթը** գերամաչափի հարցնաշարների ավտոմատացման գործիքների ստեղծում է թաքված ռիսկ՝ պատասխանները կարող են շափվել հենց երբ քաղաքականությունը փոխվում է, նոր կարգավորում կմեկնարկի կամ ներքին վերահսկումի փոփոխություն տեղի ունենա:  

**Քաղաքականության շեղում** — փաստաթղթային քաղաքականությունների և կազմակերպության իրական վիճակի միջև տարբերությունը — լուռ համապատասխանության մեխանիկ է: Ժամանակակից ձեռնամուխ գրադարանային հարաչությունները գտնում են շեղումը միայն հետագա խրոջի կամ անհաջող աուդիտի դեպքերում, ինչը հանգեցնում է թանկ ծախսերի վերականգնման ցիկլին:

Պիտի **Շարունակական քաղաքականության շեղման հայտնաբերում (CPDD)**, AI‑ընկերեցված նույնիչ, որը գտնվում է Procurize հարթակի գրկում: CPDD-ը մշտապես հետևում է յուրաքանչյուր քաղաքականության աղբյուրին, դասավորում փոփոխությունները միավորված գիտելիքի գրաֆի մեջ և իրական ժամանակում թողնում է ազդակների սիգնալները հարցնաշարքի ձևանմուշների վրա: Դրա արդյունքում ստացվում են **միշտ նոր, աուդիտային-պետք պատրաստ պատասխաններ**՝ առանց ավարտական ձեռնամուխ վերա‑վերլուծության ամենափակ քառորդին:

Այս հոդվածում մենք կներկայացնենք․

1. Պատմություն, թե որոնք են քաղաքականության շեղման ազդեցությունները հարցնաշարքի ճշգրտության համար։  
2. CPDD-ի ճարտարապետության նկարագրություն՝ տվյալների ներմուծում, գիտելիքի‑գրաֆի համաժամեցում և AI‑համակարգված ազդակների վերլուծություն։  
3. CPDD-ի ինտեգրում Procurize-ի ընթացիկ աշխատանքային հոսքում (արտադրության հանձնարարություն, մեկնաբանություն, ապացույցների կապ)։  
4. Հետազոտական իրականացման ուղեցույց՝ լրիվ Mermaid‐դիագրամով և օրինակային կոդի հատվածներով։  
5. Գործնական առավելություններ, չափանիշներով և լավագույն պրակտիկների խորհուրդները՝ թիմի CPDD ներդրումների համար։

---

## 1. Ինչու՞ քաղաքականության շեղումը հանդիսանում է կրիտիկական բացասարություն  

| Նշան | Երեշի պատճառ | Աշխատանքային ազդեցություն |
|------|----------------|-----------------------------|
| **Ժամկետանց անվտանգության կառույցներ** հարցնաշարքի պատասխաններում | Քաղաքականությունները թարմացվում են կենտրոնական ռեպոզիտորիայում, բայց չեն प्रतिबिंबի հարցնաշարքի ձևանմուշում | Անհաջող աուդիտներ, կորած պայմանագրեր |
| **Կանոնակարգի անհամապատասխանություն** | Նոր կանոնակարգ հրապարակված է, բայց համաձայնության մատրիցը չի թարմացված | Տուգաններ, իրավական խնդիրներ |
| **Ապահովագրության անհամապատասխանություն** | Ապահովագրության փաստաթղթեր (օրինակ՝ սկանների հաշվետվություններ) հնացած են, բայց դեռ նշվում են որպես ներկա | Պատվիրչելիի վնաս |
| **Ձեռքագրված վերագործարկումների աճ** | Թեմաները ժամեր ծախսում են «ինչ է փոխվել» որոնելու համար քաղաքականություն տարբերակի բարձրացումըանից հետո | Արտադողականության կորուստ |

**Ստատիստիկորեն**, Gartner‑ը կանխատեսում է, որ 2026 թվականի վերևում **30 % ձեռնարկություններին կհանդիպի առնվազն մեկ համաձայնության խախտում, որը առաջացած է հնացած քաղաքականության փաստաթղթերուի պատճառով**: Ֆակտորների ընթացիկ արժեքը չէ միայն խախտման ծախսերը, այլ նաև **ժամանակը, որն օգտագործվում է հարցնաշարքի պատասխանների հետագա սինքրոնիզացման համար**:

Շարունակական հայտնաբերումները հեռացնում են *հետագա* մոդելը: Շեղումներն ուղղելով **դրանց տեղի է** CPDD‑ը ապահովում է՝

- **Զրո‑Հպակ Պատասխանների Թարմացում** – ինքնաբար թարմացնում է պատասխանները, երբ հիմնվող վերլուծությունը փոխվում է:  
- **Պրոակտիվ ռիսկի գնահատում** – անմիջապես վերահաշվում է վստահության գնահատականները մտադիր բաժինների համար:  
- **Աուդիտ‑հենսա ամբողջականություն** – յուրաքանչյուր շեղման իրադարձություն գրանցվում է հետագնական աղբյուրի հետ, այսպես բավարարելով կարգավորիչների “որ, ինչ, երբ, թե ինչու” պահանջներին:

---

## 2. CPDD-ի ճարտարապետության ընդհանուր պտույտ  

Որոշված է բարձր մակարդակի ներկայացում CPDD ռեժիմի Procurize-ում․  

```mermaid
graph LR
    subgraph "Source Ingestion"
        A["Քաղաքականության ռեպոզիտորիա (GitOps)"] 
        B["Կանոնակարգի աղբյուր (RSS/JSON)"]
        C["Ապահովագրության պահարանը (S3/Blob)"]
        D["Փոխանակման լոգեր (AuditDB)"]
    end

    subgraph "Core Engine"
        E["Քաղաքականության նորմալիզատոր"] 
        F["Գիտելիքի գրաֆ (Neo4j)"]
        G["Շեղման հայտնաբերիչ (LLM + GNN)"]
        H["Ազդման վերլուծիչ"]
        I["Ավտո‑Առաջարկությունների համակարգ"]
    end

    subgraph "Platform Integration"
        J["Հարցնաշարքի ծառայություն"]
        K["Աշխատանքների տեղադրում"]
        L["Մեկնաբանություն & վերանայել UI"]
        M["Աուդիտ‑հրավերների ծառայություն"]
    end

    A --> E
    B --> E
    C --> E
    D --> E
    E --> F
    F --> G
    G --> H
    H --> I
    I --> J
    J --> K
    K --> L
    H --> M
```

**Կանգնի բաղադրիչների բացատրությունը**

1. **Source Ingestion** – Հավաքում է տվյալներ բազմազան աղբյուրներից՝ Git‑բեկված քաղաքականության ռեպոզիտորից (IaC‑առաջակ), կանոնակարգի տեղեկատվական աղբյուրներից (օրինակ՝ NIST, GDPR), ապաուճսքների գրացուցակներից և CI/CD պիպլինների փոփոխության լոգերից:

2. **Policy Normalizer** – Տրանսֆորմում է տարբերակված քաղաքականության փաստաթղթեր (Markdown, YAML, PDF) **կոնոնական ձևաչափ** (JSON‑LD) հարմարեցնելու համար գրաֆում բեռնման: Արդյունքում, մետադաշտերը՝ տարբերակ, ուժի ամսաթիվ և պատասխանատու սեփականատեր, դուրս են բերվում:

3. **Knowledge Graph (Neo4j)** – Պահպանում է քաղաքականություններ, վերահսկողություն, ապաուճսքներ և կանոնակարգի հատկություններ որպես **գագաթներ** և **հարաբերություններ** (օրինակ՝ *«կատարում է»*, *«պահանջում է»*, *«ազդում է»*): Այս գրաֆը համատեղակի սեմանտիկայի միակ ճշգրիտ աղբյուրն է:

4. **Drift Detector** – Ուլախ մոդել․  
   - **LLM**-ը վերլուցում է բնական‑լեզու փոփոխությունների նկարագրությունները և նշում է սեմանտիկ շեղում:  
   - **Graph Neural Network (GNN)**-ը հաշվարկում է կառուցվածքային շեղում՝ համեմատելով գագաթների ներգոյանների տարբերակները:

5. **Impact Analyzer** – Անցնում է գրաֆը, ինչը օգնում է գտնել ուղղված հարցնաշարքի միավորները, ապաուճսքների հղումները և ռիսկի վաճարականները, որոնք ազդում են առած փոփոխությունից:

6. **Auto‑Suggest Engine** – Վերագործրում է կազմված **Retrieval‑Augmented Generation (RAG)**՝ առաջարկելով թարմացնել հարցնաշարքի պատասխանները, ապավանշող հղումները և ռիսկի գնահատականները:

7. **Platform Integration** – Աւարտում է առաջարկումները Հարցնաշարքի ծառայությանը, ստեղծում է հանձնարարություններ, ցուցադրում մեկնաբանություններ UI-ում և գրանցում ամբողջ սպանողը Աուդիտ‑հրավերների համակարգում:

---

## 3. CPDD-ի գործոէրիկություն՝ սկիզբ‑սքիզբ  

### Քայլ 1. Ներմուծման ծածկի  
Մոկուր, մի ծրագրավորողը միացնում է նոր քաղաքականության ֆայլ `access_logging.yaml` GitOps‑պოლիս ռեպոզիտորիում: Ռեպոզիտորիայի webhook-ը ծանուցում է Procurize‑ի ներմուծման ծառայությանը:

### Քայլ 2. Նորմալիզացիա և գրաֆի թարմացում  
Policy Normalizer-ը դուրս է բերում․  

```yaml
policy_id: "POL-00123"
title: "Մուտքի լոգագրման պահանջներ"
effective_date: "2025-10-15"
controls:
  - id: "CTRL-LOG-01"
    description: "Բոլոր արտակարգ մուտքերը պետք է լինեն լոգագրված 12 ամիս"
    evidence: "logging_config.json"
```

Այս գագաթները ներածվում են Neo4j‑ում, կապելով նոր տվյալները արդեն գոյություն ունեցող `CTRL-LOG-01` գագաթին:

### Քայլ 3. Շեղման հայտնաբերություն  
GNN‑ը համեմատում է `CTRL-LOG-01`‑ի ներգոյանները նախ և նո տարբերակների միջև: LLM‑ը վերլուծում է commit‑հաղորդագրությունը՝ “Լոգների պահպանումը 6 ամիսը փոխարինվում է 12 ամսով”: Երկու մոդելները համաձայնեն՝ **սեմանտիկ շեղում** տեղի ունեցավ:

### Քայլ 4. Ազդման վերլուծություն  
Գրաֆ‑պաշտպանությունը գտնում է․  

- Հարցնաշար `Q‑001` («Ինչքան ժամանակ են պահում արտակարգ մուտքի լոգերը») մեջ պատասխանը դեռ «6 ամիս»:  
- Ապահովագրության տարր `E‑LOG‑CONFIG` (կոնֆիգուրացիոն ֆայլ) դեռ՝ `retention: 6m`:

### Քայլ 5. Ավտո‑Առաջարկություն և հանձնարարություն  
Auto‑Suggest Engine-ը առաջարկում է․  

- **Պատասխանի թարմացում**՝ “Մենք պահում ենք արտակարգ մուտքի լոգերը **12 ամիս**”:  
- **Ապահովագրության թարմացում**՝ ավելացնել նոր `logging_config.json`‑ը՝ արդիական պահումով:  
- **Ռիսկի գնահատականի ղեկավարում**՝ վստահությունն 0.84-ից 0.96:

Ստեղծվում է գործարկել՝ պատասխանವಾದի համար՝ 24 ժամում:

### Քայլ 6. Անձեռնուժի վերանայում և հաստատում  
Ապահովագրության մշտականը վերանայում է UI‑ում, հավաստիացնում է մեկնումը և ավտոմատ կերպով թարմացնում հարցնաշարքի տարբերակը: Աուդիտ‑հրավերը գրանցում է շեղման իրադարձությունը, առաջարկված փոփոխությունը և հաստատման գործողությունը:

### Քայլ 7. Շարունակական փուլ  
Եթե սահմանադրական մարմինն նոր NIST‑կրկնագիր հրատարակում է, նույն ընթացքը կրկին կատարվում է, ապահովելով, որ հարցնաշարերը երբեք չեն լինի աղքատված:

---

## 4. իրականացման ուղեցույց  

### 4.1. Ներմուծման խումբի կարգավորումը  

```goat
pipeline:
  - name: git_poll
    type: webhook
    repo: "git@github.com:company/policies.git"
    branch: "main"
  - name: regulator_feed
    type: http_poll
    url: "https://api.regulators.io/v1/updates"
    schedule: "hourly"
  - name: evidence_sync
    type: s3_sync
    bucket: "company-evidence"
    prefix: "compliance/"
```

### 4.2. Նորմալիզատորի օրինակ (Python)

```python
import yaml, json, hashlib
from pathlib import Path

def load_policy(file_path: Path):
    raw = yaml.safe_load(file_path.read_text())
    # canonical conversion
    canon = {
        "id": raw["policy_id"],
        "title": raw["title"],
        "effective": raw["effective_date"],
        "controls": [
            {
                "id": c["id"],
                "desc": c["description"],
                "evidence": c["evidence"]
            } for c in raw.get("controls", [])
        ],
        "checksum": hashlib.sha256(file_path.read_bytes()).hexdigest()
    }
    return canon

def upsert_to_neo4j(policy_json):
    # pseudo‑code, assumes a Neo4j driver instance `graph`
    graph.run("""
        MERGE (p:Policy {id: $id})
        SET p.title = $title,
            p.effective = $effective,
            p.checksum = $checksum
        WITH p
        UNWIND $controls AS ctrl
        MERGE (c:Control {id: ctrl.id})
        SET c.desc = ctrl.desc
        MERGE (p)-[:IMPLIES]->(c)
        MERGE (c)-[:EVIDENCE]->(:Evidence {path: ctrl.evidence})
    """, **policy_json)
```

### 4.3. Շեղման հայտնաբերիչ (համատեղ մոդել)

```python
from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch
import torch_geometric.nn as geom_nn

# LLM for textual drift
tokenizer = AutoTokenizer.from_pretrained("google/flan-t5-base")
model = AutoModelForSequenceClassification.from_pretrained("flan-t5-base-finetuned-drift")

def textual_drift(commit_msg: str) -> bool:
    inputs = tokenizer(commit_msg, return_tensors="pt")
    logits = model(**inputs).logits
    prob = torch.softmax(logits, dim=-1)[0,1].item()   # index 1 = drift
    return prob > 0.7

# GNN for structural drift
class DriftGNN(geom_nn.MessagePassing):
    # simplified example
    ...

def structural_drift(old_emb, new_emb) -> bool:
    distance = torch.norm(old_emb - new_emb)
    return distance > 0.5
```

### 4.4. Ազդման վերլուծիչ (Cypher)

```cypher
MATCH (c:Control {id: $control_id})-[:EVIDENCE]->(e:Evidence)
MATCH (q:Questionnaire)-[:ASKS]->(c)
RETURN q.title AS questionnaire, q.id AS qid, e.path AS outdated_evidence
```

### 4.5. Ավտո‑Առաջարկությունների համակարգ՝ RAG‑ի միջոցով  

```python
from langchain import OpenAI, RetrievalQA

vector_store = ...   # embeddings of existing answers
qa = RetrievalQA.from_chain_type(
    llm=OpenAI(model="gpt-4o-mini"),
    retriever=vector_store.as_retriever()
)

def suggest_update(question_id: str, new_control: dict):
    context = qa.run(f"Current answer for {question_id}")
    prompt = f"""The control "{new_control['id']}" changed its description to:
    "{new_control['desc']}". Update the answer accordingly and reference the new evidence "{new_control['evidence']}". Provide the revised answer in plain text."""
    return llm(prompt)
```

### 4.6. Գործատուի ստեղծում (REST)

```http
POST /api/v1/tasks
Content-Type: application/json

{
  "title": "Update questionnaire answer for Access Logging",
  "assignee": "compliance_owner@example.com",
  "due_in_hours": 24,
  "payload": {
    "question_id": "Q-001",
    "suggested_answer": "...",
    "evidence_path": "logging_config.json"
  }
}
```

---

## 5. առավելություններ և չափանիշներ  

| Ցույց | Նախկին CPDD | CPDD‑ի հետո (միջին) | Նվազեցում |
|------|--------------|----------------------|-----------|
| **Հարցնաշարքի կատարողական ժամանակը** | 7 օր | 1,5 օր | 78 % արագություն |
| **Ձեռքագրված շեղման ստուգման աշխատաժամանակ** | 12 ժամ/ամիս | 2 ժամ/ամիս | 83 % հոգեկան բեռը |
| **Աուդիտ‑պատասխանատվության վստահության գնահատում** | 0,71 | 0,94 | +0,23 |
| **Կանոնակարգային խախտումների դեպքներ** | 3/տարուստ | 0/տարուստ | 100 % նվազեցում |

### Լավագույն պրակտիկների ցուցակ  

1. **Արագագծում յուրաքանչյուր քաղաքականություն** – օգտագործեք Git‑ը՝ ստորագրված commit‑երով:  
2. **Կոնկրետ կանոնակարգային աղբյուրների միացում** – բաժանորդագրություն ստացեք պաշտոնական RSS/JSON endpoint‑ներին:  
3. **Սաֆիատ կերպարների սահմանում** – յուրաքանչյուր քաղաքականության հանգափի համար նշանակեք պատասխանատու անձ:  
4. **Շեղման սեմաստիկ threshold‑ների կարգավորում** – կարգավորեք LLM‑ի վստահությունը և GNN‑ի հեռավորության սահմանի արժեքը՝ ՝ հաղորդի աղբեթիները նվազեցնելու համար:  
5. **CI/CD-ի հետ ինտեգրում** – վերաբերվեք քաղաքականության փոփոխությունները որպես առաջին կարգի քայլեր:  
6. **Աուդիտ‑լոգերի մոնիտորինգ** – համոզվեք, որ յուրաքանչյուր շեղման իրադարձություն աշխատում է անփոփոխ և մշակվող:

---

## 6. իրականակազմ case‑study (Procurize հաճախորդ X)  

**Նմանք** – Հաճախորդ X, միջին‑սարքային SaaS մատակարար, կառավարում էր 120 անվտանգության հարցնաշար 30 մատակարարների համար: Հետո նրանք ծավալում էին 5‑օրյա միջին ժամանակը քաղաքականության թարմացումից և հարցնաշարքի համաժամեցումից:

**Ինտեգրումը** – ներդրեց CPDD‑ը մասնավորված Procurize‑ի օրինակին: Ներմուծեց քաղաքականությունները GitHub‑ի ռեպոզիտորից, միացրեց EU‑րդի կանոնակարգական աղբյուրը և թույլեցավ ավտո‑առաջարկում հարցնաշարքի պատասխանների թարմացման համար:

**Արդյունքները (3‑իր շրջան)**  

- **Ժամանակի կատարողականը** նվազեցվեց 5 օրվա-ից 0,8 օրվա:  
- **Համաձայնության թիմի ժամուտն** խնայվեց 15 ժամ/ամիս:  
- **Զրո աուդիտային անկյունայրեր**՝ աղբեթի հետ կապված քաղաքականության հնացած լինելը:

Հաճախորդը ընդգծեց **աուդիտ‑հրավերների տեսանելիությունը** որպես առավելագույնը, որը բավարարեց **ISO 27001**‑ի «փաստագրային փոփոխությունների գրանցման» պահանջին:

---

## 7. ապագա բարելավումներ  

1. **Զրո‑ճշտություն ապացույցի միջոցով** – ապացուցի իսկականությունը հաստատել առանց տվյալների բացահայտման:  
2. **Ֆեդերատիվ ուսուցում տարբեր կառավարչությունների միջև** – શેરել շեղման հայտնաբերման մոդելներ՝ տվյալների գաղտնիքը պահելով:  
3. **Շեղման կանխատեսում** – օգտագործել ժամանակային-շարք մոդելներ՝ կանխել ապագա կանոնակարգման փոփոխությունները:  
4. **Ձայնային վերանայում** – թույլատրի համաձայնության սեփականատերերին ընդունել առաջարկները գvoice‑հխաբով՝ անվտանգ կերպով:

---

## Եզրակացություն  

Շարունակական քաղաքականության շեղման հայտնաբերում փոխում է համաձայնության լանդշաֆտը՝ **реակտիվ ռիսկ‑կախարդությունից պրոակտիվ ապահովմանը**: AI‑սենսորների սեմանտիկ վերլուծության, գրաֆ‑հիմած ազդակների տարածման և հարմարացման հարթակային ինտեգրերմամբ, Procurize‑ը ապահովում է, որ յուրաքանչյուր անվտանգության հարցնաշարի պատասխանը իրական վիճակի ճշգրիտ արձագանքն է:

CPDD‑ի ընդունումը չեմպիոնացնում **ձեռքագրված աշխատանքի նվազեցումը**, **աճում ապահովությունը** և **պատրաստ է ապագա կանոնակարգային փոփոխությունների նկատմամբ**:

*Պատրաստ եք ազատել քաղաքականության շեղումը ձեր հարցնաշարքի աշխատանքային համակարգից?* Կապ հաստատեք Procurize‑ի թիմին և փորձարկեք համաձայնության ավտոմատացման նոր ուղիները։