
# Detectarea continuă a devierii politici cu AI pentru acuratețea chestionarelor în timp real

## Introducere  

Chestionarele de securitate, auditurile de conformitate și evaluările furnizorilor reprezintă coloana vertebrală a încrederii în ecosistemul B2B SaaS. Totuși, **natura statică** a majorității instrumentelor de automatizare a chestionarelor creează un risc ascuns: răspunsurile pe care le generează pot deveni învechite în momentul în care o politică se modifică, se publică o reglementare nouă sau se actualizează un control intern.  

**Devierea politicii** – discrepanța dintre politicile documentate și starea reală a organizației – este un ucigaș silențios al conformității. Revizuirile manuale tradiționale detectează devierea doar după o încălcare sau un audit eșuat, implicând cicluri costisitoare de remediere.

Intră în scenă **Detectarea Continuă a Devierei Politicii (CPDD)**, un motor alimentat de AI care se află în inima platformei Procurize. CPDD monitorizează continuu fiecare sursă de politică, mapă schimbările pe un grafic de cunoștințe unificat și propagă semnalele de impact către șabloanele de chestionare în timp real. Rezultatul este **răspunsuri mereu proaspete, pregătite pentru audit**, fără a necesita o revalidare manuală completă la fiecare trimestru.

În acest articol vom:

1. Explica de ce devierea politicii este importantă pentru acuratețea chestionarelor.  
2. Prezentă arhitectura CPDD, acoperind ingestia datelor, sincronizarea graficului de cunoștințe și analiza impactului bazată pe AI.  
3. Arăta cum CPDD se integrează cu fluxul de lucru existent în Procurize (atribuirea sarcinilor, comentarii și legarea probelor).  
4. Oferi un ghid concret de implementare, cu diagramă Mermaid și fragmente de cod exemplu.  
5. Discuta beneficiile cuantificabile și sfaturi de bune practici pentru echipele care adoptă CPDD.

---

## 1. De ce devierea politicii este o vulnerabilitate critică  

| Simptom | Cauză principală | Impact asupra afacerii |
|---------|-------------------|------------------------|
| **Controale de securitate învechite** în răspunsurile la chestionare | Politicile actualizate în depozitul central, dar ne-reflecționate în șablonul de chestionar | Auditurile eșuate, pierderi de afaceri |
| **Neconcordanță reglementară** | Reglementare nouă publicată, dar matricea de conformitate neactualizată | Amenzi, expunere legală |
| **Inconsecvență a probelor** | Artefacte de probă (ex.: rapoarte de scanare) învechite, dar încă citate ca actuale | Daune de reputație |
| **Creștere a muncii manuale** | Echipele petrec ore căutând „ce s‑a schimbat?” după o modificare a versiunii politicii | Pierdere de productivitate |

**Statistic**, Gartner prevede că până în 2026 **30 % din întreprinderi vor experimenta cel puțin o încălcare a conformității cauzată de documentație de politică învechită**. Costul ascuns nu este doar încălcarea în sine, ci și **timpul petrecut pentru reconcilierea răspunsurilor la chestionare ulterior**.

Detectarea continuă elimină paradigma *după‑fapt*. Prin expunerea devierii **în timp real**, CPDD permite:

- **Actualizare automată a răspunsurilor** – actualizează răspunsurile când controlul de bază se modifică.  
- **Scoring de risc proactiv** – recalculează instantaneu scorurile de încredere pentru secțiunile de chestionar afectate.  
- **Integritatea șinului de audit** – fiecare eveniment de deviere este înregistrat cu proveniență clară, satisfăcând cerințele regulatorilor pentru „cine, ce, când, de ce”.

---

## 2. Prezentare generală a arhitecturii CPDD  

Mai jos este o reprezentare la nivel înalt a motorului CPDD în cadrul Procurize.  

```mermaid
graph LR
    subgraph "Source Ingestion"
        A["Policy Repo (GitOps)"] 
        B["Regulatory Feed (RSS/JSON)"]
        C["Evidence Store (S3/Blob)"]
        D["Change Logs (AuditDB)"]
    end

    subgraph "Core Engine"
        E["Policy Normalizer"] 
        F["Knowledge Graph (Neo4j)"]
        G["Drift Detector (LLM + GNN)"]
        H["Impact Analyzer"]
        I["Auto‑Suggest Engine"]
    end

    subgraph "Platform Integration"
        J["Questionnaire Service"]
        K["Task Assignment"]
        L["Comment & Review UI"]
        M["Audit Trail Service"]
    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
```

**Componente cheie explicate**

1. **Ingestia surselor** – Extrage date din multiple origini: depozit de politici gestionat prin Git, fluxuri regulatorii (ex.: NIST, GDPR), depozite de probe și jurnalele de schimbări din CI/CD existente.

2. **Normalizatorul de politici** – Transformă documentele de politică omogene (Markdown, YAML, PDF) în **formatul canonic** (JSON‑LD) potrivit pentru încărcarea în grafic. Extrage, de asemenea, metadate precum versiune, dată de intrare în vigoare și proprietar responsabil.

3. **Graficul de cunoștințe (Neo4j)** – Stochează politici, controale, probe și clauze regulamentare ca **noduri** și **relații** (ex.: *„implementează”*, *„solicită”*, *„afectează”*). Acest grafic este singura sursă de adevăr pentru semantica conformității.

4. **Detectorul de deviere** – Model hibrid:
   - **LLM** analizează descrierile schimbărilor în limbaj natural și semnalează deviere semantică.
   - **GNN** (Graph Neural Network) calculează deviere structurală comparând încorporările nodurilor între versiuni.

5. **Analizatorul de impact** – Parcurge graficul pentru a identifica elementele de chestionar, probele și scorurile de risc afectate de devierea detectată.

6. **Motorul de sugestii automate** – Generează actualizări recomandate pentru răspunsurile la chestionare, legături de probe și scoruri de risc utilizând **Retrieval‑Augmented Generation (RAG)**.

7. **Integrarea în platformă** – Propulsează sugestiile către Serviciul de Chestionare, creează sarcini pentru responsabili, expune comentarii în UI și înregistrează totul în Serviciul de șir de audit.

---

## 3. CPDD în acțiune: flux end‑to‑end  

### Pasul 1: Declanșare ingestie  
Un dezvoltator îmbină un nou fișier de politică `access_logging.yaml` în depozitul GitOps. Webhook‑ul depozitului notifică Serviciul de ingestie al Procurize.

### Pasul 2: Normalizare și actualizare grafic  
Normalizatorul extrage:

```yaml
policy_id: "POL-00123"
title: "Access Logging Requirements"
effective_date: "2025-10-15"
controls:
  - id: "CTRL-LOG-01"
    description: "All privileged access must be logged for 12 months"
    evidence: "logging_config.json"
```

Aceste noduri sunt upsertate în Neo4j, legându‑se de nodul existent `CTRL-LOG-01`.

### Pasul 3: Detectarea devierii  
GNN compară încorporarea nodului `CTRL-LOG-01` înainte și după îmbinare. Mesajul de commit este parsat de LLM: „Extinde retenția jurnalului de la 6 luni la 12 luni”. Ambele modele sunt de acord că a avut loc **deviere semantică**.

### Pasul 4: Analiza impactului  
Traversarea graficului găsește:

- Itemul de chestionar **Q‑001** („Cât timp păstrați jurnalele de acces privilegiat?”) răspuns curent: „6 luni”.
- Artefactul de probă **E‑LOG‑CONFIG** (fișier de configurare) încă face referire la `retention: 6m`.

### Pasul 5: Sugestie automată și creare sarcină  
Motorul de sugestii propune:

- **Actualizare răspuns**: „Păstrăm jurnalele de acces privilegiat pentru **12 luni**.”
- **Actualizare probă**: Atașează `logging_config.json` actualizat cu noua retenție.
- **Ajustare scor de risc**: Crește încrederea de la 0.84 la 0.96.

Se creează o sarcină pentru proprietarul de conformitate cu termen de 24 ore.

### Pasul 6: Revizuire umană și commit  
Proprietarul revizuiește sugestia în UI, aprobă, iar versiunea chestionarului se actualizează automat. Șirul de audit înregistrează evenimentul de deviere, schimbările propuse și acțiunea de aprobare.

### Pasul 7: Buclă continuă  
Dacă un regulator publică un nou control NIST care înlocuiește cerința curentă de jurnalizare, același ciclu se repetă, asigurând că chestionarul nu devine niciodată neconform.

---

## 4. Ghid de implementare  

### 4.1. Configurarea pipeline‑ului de ingestie  

```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. Exemplu de normalizator (Python)

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

def load_policy(file_path: Path):
    raw = yaml.safe_load(file_path.read_text())
    # conversie canonică
    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‑cod, presupune un driver Neo4j `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. Detector de deviere (model hibrid)

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

# LLM pentru deviere textuală
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 pentru deviere structurală
class DriftGNN(geom_nn.MessagePassing):
    # exemplu simplificat
    ...

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

### 4.4. Interogare Analizator impact (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. Sugestie automată prin RAG

```python
from langchain import OpenAI, RetrievalQA

vector_store = ...   # încorporări ale răspunsurilor existente
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"""Controlul "{new_control['id']}" și-a schimbat descrierea în:
    "{new_control['desc']}". Actualizează răspunsul în consecință și referă noua probă "{new_control['evidence']}". Furnizează răspunsul revizuit în text simplu."""
    return llm(prompt)
```

### 4.6. Creare sarcină (REST)

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

{
  "title": "Actualizează răspunsul la chestionarul pentru Logging de acces",
  "assignee": "compliance_owner@example.com",
  "due_in_hours": 24,
  "payload": {
    "question_id": "Q-001",
    "suggested_answer": "...",
    "evidence_path": "logging_config.json"
  }
}
```

---

## 5. Beneficii și Metrici  

| Metrică | Înainte de CPDD | După CPDD (medie) | Îmbunătățire |
|---------|------------------|--------------------|---------------|
| **Timp de finalizare a chestionarului** | 7 zile | 1,5 zile | -78 % |
| **Efort manual de revizuire a devierii** | 12 h / lună | 2 h / lună | -83 % |
| **Scor de încredere pregătit pentru audit** | 0,71 | 0,94 | +0,23 |
| **Incidente de încălcare a reglementărilor** | 3 / an | 0 / an | -100 % |

### Checklist bune practici  

1. **Versionează fiecare politică** – Folosește Git cu commit‑uri semnate.  
2. **Aliniază fluxurile regulatorii** – Abonează‑te la RSS/JSON oficiale.  
3. **Definește clar proprietarii** – Leagă fiecare nod de politică de o persoană responsabilă.  
4. **Stabilește praguri de deviere** – Calibrează încrederea LLM și distanța GNN pentru a evita zgomotul.  
5. **Integrează cu CI/CD** – Tratează schimbările de politică ca artefacte de primă clasă.  
6. **Monitorizează jurnalele de audit** – Asigură‑te că fiecare eveniment de deviere este imuabil și căutabil.

---

## 6. Studiu de caz real (Client Procurize X)

**Context** – Clientul X, un furnizor SaaS de dimensiune medie, gestiona 120 de chestionare de securitate pentru 30 de furnizori. Înregistrau o întârziere medie de 5 zile între actualizările de politică și revizuirile de chestionar.

**Implementare** – A instalat CPDD în cadrul instanței Procurize existente. A integrat politicile dintr-un repo GitHub, a conectat fluxul regulator al UE și a activat sugestiile automate pentru actualizări de răspuns.

**Rezultate (pilot 3 luni)**  

- **Timpul de finalizare** a scăzut de la 5 zile la 0,8 zile.  
- **Ore economisite echipei de conformitate**: 15 h pe lună.  
- **Nicio constatare de audit** legată de conținutul învechit al chestionarelor.  

Clientul a evidențiat **vizibilitatea șirului de audit** ca cea mai valoroasă funcționalitate, satisfăcând cerința **[ISO 27001](https://www.iso.org/standard/27001)** de „documentare a probelor de schimbare”.

---

## 7. Îmbunătățiri viitoare  

1. **Integrare Zero‑Knowledge Proof** – Validarea autenticității probelor fără expunerea datelor brute.  
2. **Învățare federată între chiriași** – Partajarea modelelor de detectare a devierii păstrând confidențialitatea datelor.  
3. **Previziune predictivă a devierii politicii** – Modele de serie temporală pentru a anticipa modificările regulatorii.  
4. **Revizuire prin voce** – Permite proprietarilor de conformitate să aprobe sugestiile prin comenzi vocale securizate.

---

## Concluzie  

Detectarea continuă a devierii politicii transformă peisajul conformității din **reacție la incidente** în **asigurare proactivă**. Prin îmbinarea analizei semantice bazate pe AI, propagării impactului prin graficuri și integrării fluide în platformă, Procurize garantează că fiecare răspuns la chestionarul de securitate reflectă starea actuală a organizației.

Adoptarea CPDD nu numai că **reduce semnificativ munca manuală** și **crește încrederea în audit**, ci și **pregătește conformitatea** pentru valul neîncetat de schimbări regulatorii.

*Ești gata să elimini devierea politicii din fluxul tău de chestionare?* Contactează echipa Procurize și experimentează noua generație de automatizare a conformității.