
# Politikos kaip kodas susitinka su AI: Automatinis Atitikties‑kaip‑Kodo Generavimas Klausimyno Atsakymams

Sparčiai besikeičiančiame SaaS pasaulyje **saugumo klausimynai** ir **atitikties auditai** tapo durų sargais kiekvienai naujai sutartiai. Komandos praleidžia begales valandų ieškodamos politikų, verčia teisinį žargoną į paprastą anglų kalbą ir rankiniu būdu kopijuoja atsakymus į tiekėjų portalus. Rezultatas – susiaurėjimas, sulėtina pardavimų ciklus ir sukelia žmogaus klaidas.

Ateina **Politikos kaip kodas (PaC)** – praktika, kai saugumo ir atitikties kontrolės apibrėžiamos versijomis valdomais, mašinoms skaitomais formatais (YAML, JSON, HCL ir kt.). Tuo pat metu **Dideli kalbos modeliai (LLM)** subrendo iki lygio, kai jie gali suprasti sudėtingą reguliacinę kalbą, sintezuoti įrodymus ir generuoti natūralios kalbos atsakymus, tenkinančius auditorius. Kai šios dvi paradigmos susitinka, atsiranda nauja galimybė: **Automatinis Atitikties‑kaip‑Kodas (CaaC)**, kuris gali *generuoti* klausimyno atsakymus pagal poreikį, kartu su sekamais įrodymais.

Šiame straipsnyje mes:
1. Paaiškinti pagrindines Politikos kaip Kodo sąvokas ir kodėl jos svarbios saugumo klausimynams.  
2. Parodyti, kaip LLM galima integruoti į PaC saugyklą, kad sukurtų **dinamiškus, auditui paruoštus atsakymus**.  
3. Peržvelgti praktišką įgyvendinimą naudojant **Procurize** platformą kaip pavyzdį.  
4. Pabrėžti geriausią praktiką, saugumo apsvarstymus ir būdus išlaikyti sistemą patikimą.  

> **TL;DR** – Koduojant politiką, ją pateikiant per API ir leidžiant smulkiai pritaikytam LLM versti šias politikas į klausimyno atsakymus, organizacijos gali sumažinti atsakymo laiką nuo dienų iki sekundžių, išlaikydamos atitikties integralumą.

---

## 1. Politikos kaip kodo augimas

### 1.1 Kas yra Politika kaip kodas?

| Tradicinis politikos tvarkymas | Politikos kaip kodo požiūris |
|----------------------------|--------------------------|
| PDF, Word dokumentai, skaičiuoklės | Declarative files (YAML/JSON) stored in Git |
| Rankinis versijų sekimas | Git commits, pull‑request reviews |
| Neplanuotas paskirstymas | Automated CI/CD pipelines |
| Sunku ieškoti teksto | Structured fields, searchable indexes |

Kadangi politikos yra **vienintelis tiesos šaltinis**, bet koks pakeitimas sukelia automatizuotą konvejnerį, kuris tikrina sintaksę, vykdo vienetinius testus ir atnaujina nukreiptas sistemas (pvz., CI/CD saugumo vartus, atitikties prietaisų skydelius).

### 1.2 Kodėl PaC tiesiogiai veikia klausimynus

> „Apibūdinkite, kaip apsaugote duomenis ramybės būsenoje ir pateikite įrodymus apie šifravimo raktų rotaciją.“

Jei pagrindinė politika apibrėžta kaip kodas:

```yaml
controls:
  data-at-rest:
    encryption: true
    algorithm: "AES‑256-GCM"
    key_rotation:
      interval_days: 90
      procedure: "Automated rotation via KMS"
evidence:
  - type: "config"
    source: "aws:kms:key-rotation"
    last_verified: "2025-09-30"
```

Įrankis gali **išgauti** susijusius laukus, formatuoti juos į natūralų kalbos tekstą ir pridėti nuorodą į įrodymo failą – viskas be žmogaus parašyto žodžio.

## 2. Dideli kalbos modeliai kaip vertimo variklis

### 2.1 Iš kodo į natūralią kalbą

LLM puikiai veikia **teksto generavime**, tačiau jiems reikia patikimo konteksto, kad išvengtų halucinacijų. Pateikdami modeliui **struktūruotą politikos duomenų paketą** ir **klausimo šabloną**, sukuriame deterministinį susiejimą.

Pavyzdinis užklausos šablonas (supaprastintas):

```
Jūs esate atitikties asistentas. Konvertuokite toliau pateiktą politikos fragmentą į glaustą atsakymą į klausimą: "<question>". Pateikite bet kuriuos nuorodų įrodymų ID.
Policy:
<YAML block>
```

Kai LLM gauna šį kontekstą, jis ne spėlioja; jis **atspindi** duomenis, kurie jau yra saugykloje.

### 2.2 Smulkių nuostatų tikslinimas domeno tikslumui

Bendras LLM (pvz., GPT‑4) turi didžiulę žinių bazę, bet vis tiek gali generuoti neaiškias frazes. **Smulkiu pritaikymu** pagal atrinktą istorinių klausimyno atsakymų ir vidinių stiliaus vadovų korpusą, mes pasiekiame:
- Nuosekli tonacija (formali, rizikos sąmoninga).  
- Atitikties specifinė terminologija (pvz., „SOC 2“ – žr. [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), „ISO 27001“ – žr. [ISO 27001](https://www.iso.org/standard/27001) & [ISO/IEC 27001 Information Security Management](https://www.iso.org/isoiec-27001-information-security.html)).  
- Sumažintas tokenų naudojimas, mažinantis inferencijos kaštus.

### 2.3 Apsaugos mechanizmai ir Retrieval Augmented Generation (RAG)

Siekiant padidinti patikimumą, mes sujungiame LLM generavimą su **RAG**:

1. Retriever iš PaC saugyklos ištrauktą tikslią politikos iškarpą.  
2. Generatorius (LLM) gauna tiek iškarpą, tiek klausimą.  
3. Po‑procesorius patikrina, ar visi cituoti įrodymų ID egzistuoja įrodymų saugykloje.  
4. Jei aptinkamas neatitikimas, sistema automatiškai žymi atsakymą peržiūrai žmogaus.

## 3. Galutinė darbo eiga Procurize platformoje

```mermaid
flowchart TD
    A["Policy‑as‑Code Repository (Git)"] --> B["Change Detection Service"]
    B --> C["Policy Indexer (Elasticsearch)"]
    C --> D["Retriever (RAG)"]
    D --> E["LLM Engine (Fine‑tuned)"]
    E --> F["Answer Formatter"]
    F --> G["Questionnaire UI (Procurize)"]
    G --> H["Human Review & Publish"]
    H --> I["Audit Log & Traceability"]
    I --> A
```

Žemiau pateikiamas aukšto lygio peržiūra, kaip Procurize sujungia PaC ir LLM, kad pateiktų **realaus laiko, automatiškai generuojamus klausimyno atsakymus**.

| Žingsnis | Veiksmas | Technologija |
|----------|----------|--------------|
| **1** | Komanda atnaujina politikos failą Git. | Git, CI pipeline |
| **2** | Keitimo aptikimo paslauga suaktyvina politikos reindeksavimą. | Webhook, Elasticsearch |
| **3** | Kai gaunamas tiekėjo klausimynas, UI rodo atitinkamą klausimą. | Procurize Dashboard |
| **4** | Retriever užklausia indeksą dėl atitinkamų politikos fragmentų. | RAG Retrieval |
| **5** | LLM gauna fragmentą + klausimą ir generuoja juodraštį. | OpenAI / Azure OpenAI |
| **6** | Answer Formatter prideda markdown, įrašo įrodymų nuorodas, formatuoja portalui. | Node.js microservice |
| **7** | Saugumo savininkas peržiūri atsakymą (galimas auto‑patvirtinimas pagal pasitikėjimo balą). | UI Review Modal |
| **8** | Galutinis atsakymas siunčiamas į tiekėjo portalą; nesugriaunamas audito žurnalas fiksuoja kilmę. | Procurement API, Blockchain‑like log |
| **9** | Įvykis grįžta į Git, užbaigiant ciklą. | – |

Visas ciklas gali užtrukti **mažiau nei 10 sekundžių** tipiniam klausimui, o tai ryškus kontrastas su 2‑4 valandomis, kurias žmogaus analitikas praleidžia ieškodamas politikos, ruošdamas atsakymą ir patikrinantį.

## 4. Kaip sukurti savo CaaC konvejerį

Žemiau pateikiama praktinė vadovas komandų, norinčių atkartoti šį modelį.

### 4.1 Apibrėžti politikos schemą

Pradėkite nuo **JSON Schema**, kuri apibrėžia privalomus laukus:

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Compliance Control",
  "type": "object",
  "properties": {
    "id": { "type": "string" },
    "category": { "type": "string" },
    "description": { "type": "string" },
    "evidence": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": { "type": "string" },
          "source": { "type": "string" },
          "last_verified": { "type": "string", "format": "date" }
        },
        "required": ["type", "source"]
      }
    }
  },
  "required": ["id", "category", "description"]
}
```

CI žingsnyje patikrinkite kiekvieną politikos failą naudojant, pvz., `ajv-cli`.

### 4.2 Nustatyti išgavimą (Retrieval)

- Indeksuoti YAML/JSON failus į **Elasticsearch** arba **OpenSearch**.  
- Naudoti **BM25** arba **tankias vektorių įterpimo** (per Sentence‑Transformer) semantiniam atitikimui.

### 4.3 Smulkiai pritaikyti LLM

1. Eksportuoti istorines klausimyno klausimų‑atsakymų poras (įskaitant įrodymų ID).  
2. Konvertuoti į užklausos‑atsakymo formatą, kurio reikalauja jūsų LLM tiekėjas.  
3. Vykdyti **prižiūrimą smulkinį pritaikymą** (OpenAI `v1/fine-tunes`, Azure `deployment`).  
4. Įvertinti naudojant **BLEU** ir, svarbiausia, **žmogaus validaciją** reguliavimo atitikties požiūriu.

### 4.4 Įgyvendinti apsaugos mechanizmus

- **Pasitikėjimo balų skaičiavimas**: grąžinti top‑k tokenų tikimybės; automatiškai patvirtinti tik jei balas > 0.9.  
- **Įrodymų tikrinimas**: po‑procesorius tikrina, ar kiekvienas cituotas `source` egzistuoja įrodymų saugykloje (SQL/NoSQL).  
- **Užklausos įterpimo apsauga**: valyti bet kokį naudotojo pateiktą tekstą prieš sujungimą.

### 4.5 Integruoti su Procurize

Procurize jau siūlo webhook pakabukas įeinančiam klausimynui. Prijunkite juos prie **serverless funkcijos** (AWS Lambda, Azure Functions), kuri vykdo konvejerį aprašytą 3 skirsnyje.

## 5. Privalumai, rizikos ir sprendimo priemonės

### Privalumai

| Privalumas | Paaiškinimas |
|------------|---------------|
| Greitis | Atsakymai sugeneruojami per sekundes, dramatiškai sumažinant pardavimų ciklo vėlavimą. |
| Nuoseklumas | Vienas politikos šaltinis garantuoja vienodą formuluotę visiems tiekėjams. |
| Sekamumas | Kiekvienas atsakymas susietas su politikos ID ir įrodymo maišu, patenkinant auditorius. |
| Mastelio galimybė | Vienas politikos pakeitimas akimirksniu platinamas į visus laukiančius klausimynus. |

### Rizikos

| Rizika | Mitigacija |
|--------|------------|
| Halucinacija | Naudoti RAG; reikalauti įrodymų patikrinimo prieš publikavimą. |
| Pasenę įrodymai | Automatizuoti įrodymų šviežumo patikrinimus (pvz., cron darbas, žymintis >30 dienų senus artefaktus). |
| Priėjimo kontrolė | Laikyti politikos saugyklą po IAM; tik įgalioti vaidmenys gali atlikti pakeitimus. |
| Modelio nuokrypis | Periodiškai iš naujo įvertinti smulkiai pritaikytą modelį naudojant šviežius testų duomenis. |

## 6. Realios aplinkos poveikis – greita atvejo analizė

**Įmonė:** SyncCloud (vidutinio dydžio SaaS duomenų analizės platforma)  
**Prieš CaaC:** Vidutinis klausimyno atsakymo laikas – 4 dienos, 30 % rankinio perdirbimo dėl formuluotės neatitikimų.  
**Po CaaC:** Vidutinis atsakymo laikas – 15 minučių, 0 % perdirbimo, audito žurnaluose rodoma 100 % sekamumas.  
**Pagrindiniai rodikliai:**
- **Išsaugotas laikas:** ~2 valandos per analitikas per savaitę.  
- **Sandorio greitis:** 12 % padidėjimas uždarytų galimybių.  
- **Atitikties įvertinimas:** pakelta nuo „vidutinio“ iki „aukšto“ trečiųjų šalių įvertinimuose.

## 7. Ateities kryptys

- **Nulinio pasitikėjimo įrodymų valdymas** – sujungti CaaC su blokų grandinės notarizacija, kad įrodymų kilmė būtų nekeičiama.  
- **Daugelio jurisdikcijų kalbos palaikymas** – išplėsti smulkinį pritaikymą, kad įtrauktų teisinių vertimų **GDPR** – žr. [GDPR](https://gdpr.eu/), **CCPA** – žr. [CCPA](https://oag.ca.gov/privacy/ccpa) ir **CPRA** – žr. [CPRA](https://thecpra.org/), bei kylančias duomenų suvereniteto įstatymus.  
- **Savarūpų politikų kūrimas** – naudoti stiprinimo mokymą, kai modelis gauna auditorių grįžtamąjį ryšį ir automatiškai siūlo politikos patobulinimus.

### Nuorodos į įprastus įrenginius ir standartus (greitai pasiekiamos)

- **SOC 2** – [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2)  
- **ISO 27001** – [ISO 27001](https://www.iso.org/standard/27001)  
- **GDPR** – [GDPR](https://gdpr.eu/)  
- **HIPAA** – [HIPAA](https://www.hhs.gov/hipaa/index.html)  
- **NIST CSF** – [NIST CSF](https://www.nist.gov/cyberframework)  
- **DPAs** – [DPAs](https://www.dpocentre.com/what-is-a-dpa-and-why-do-you-need-one/)  
- **Cloud Security Alliance STAR** – [Cloud Security Alliance STAR](https://cloudsecurityalliance.org/star/)  
- **PCI‑DSS** – [PCI‑DSS](https://www.pcisecuritystandards.org/pci_security/)  
- **CCPA** – [CCPA](https://oag.ca.gov/privacy/ccpa)  
- **CPRA** – [CPRA](https://thecpra.org/)  
- **Gartner Security Automation Trends** – [Gartner Security Automation Trends](https://www.gartner.com/en/documents/5202463)  
- **Gartner Sales Cycle Benchmarks** – [Gartner Sales Cycle Benchmarks](https://www.gartner.com/en/sales)  
- **MITRE AI Security** – [MITRE AI Security](https://www.mitre.org/)  
- **EU AI Act Compliance** – [EU AI Act Compliance](https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai)  
- **SLAs** – [SLAs](https://www.ibm.com/think/topics/service-level-agreement)  
- **NYDFS** – [NYDFS](https://www.dfs.ny.gov/industry_guidance/cybersecurity)  
- **DORA** – [DORA](https://www.eiopa.europa.eu/digital-operational-resilience-act-dora_en)  
- **BBB Trust Seal** – [BBB Trust Seal](https://www.bbb.org/)  
- **Google Trust & Safety** – [Google Trust & Safety](https://safety.google/)  
- **FedRAMP** – [FedRAMP](https://www.fedramp.gov/)  
- **CISA Cybersecurity Best Practices** – [CISA Cybersecurity Best Practices](https://www.cisa.gov/topics/cybersecurity-best-practices)  
- **EU Cloud Code of Conduct** – [EU Cloud Code of Conduct](https://eucoc.cloud/en/home)