
# Policy as Code találkozik az AI‑val: Automatikus Compliance‑as‑Code generálás a kérdőívválaszokhoz

A gyorsan változó SaaS világában a **biztonsági kérdőívek** és **megfelelőségi auditok** minden új szerződés kapujaivá váltak. A csapatok rengeteg órát töltenek a szabályzatok megtalálásával, a jogi zsargon egyszerű angolra fordításával, és a válaszok kézi másolásával a szállítói portálokba. Az eredmény egy szűk kereszt, amely lassítja az értékesítési ciklusokat és emberi hibákat idéz elő.

Itt lép a színre a **Policy‑as‑Code (PaC)**—az a gyakorlat, amelyben a biztonsági és megfelelőségi ellenőrzéseket verziókezelhető, gép‑olvasható formátumokban (YAML, JSON, HCL stb.) definiálják. Ugyanakkor a **Large Language Models (LLM‑ek)** olyan szintre fejlődtek, hogy képesek megérteni összetett szabályozási nyelvezetet, szintetizálni bizonyítékokat, és olyan természetes nyelvű válaszokat generálni, amelyek kielégítik az auditorok elvárásait. Amikor ez a két paradigma találkozik, egy új képesség jön létre: a **Automated Compliance‑as‑Code (CaaC)**, amely kérésre *generál* kérdőívválaszokat, nyomon követhető bizonyítékokkal együtt.

Ebben a cikkben:

1. Ismertetjük a Policy‑as‑Code alapfogalmait és azt, miért fontos a biztonsági kérdőívek számára.  
2. Bemutatjuk, hogyan lehet egy LLM‑et összekapcsolni egy PaC tárolóval, hogy **dinamikus, audit‑kész válaszokat** állítson elő.  
3. Egy gyakorlati megvalósítást vezetünk be a **Procurize** platform példáján keresztül.  
4. Kiemeljük a legjobb gyakorlatokat, biztonsági szempontokat és a rendszer megbízhatóságának fenntartásának módjait.

> **TL;DR** – A szabályzatok kódolásával, API‑n keresztüli kiaknázásával és egy finomhangolt LLM‑nek a szabályzatok kérdőívválaszokra való lefordításával a szervezetek a válaszidőt napokról másodpercekre csökkenthetik, miközben megőrzik a megfelelőség integritását.

## 1. A Policy‑as‑Code felemelkedése

### 1.1 Mi a Policy‑as‑Code?

| Hagyományos szabályzatkezelés | Policy‑as‑Code megközelítés |
|------------------------------|------------------------------|
| PDF‑ek, Word dokumentumok, táblázatok | Deklaratív fájlok (YAML/JSON) tárolva Git‑ben |
| Kézi verziókövetés | Git commitok, pull‑request review‑k |
| Alkalmi terjesztés | Automatizált CI/CD pipeline‑ok |
| Nehéz kereshető szöveg | Strukturált mezők, kereshető indexek |

Mivel a szabályzatok egy **egyetlen igazságforrásban** (single source of truth) élnek, minden változás egy automatizált pipeline‑t indít, amely ellenőrzi a szintaxist, futtat egység‑teszteket, és frissíti a downstream rendszereket (pl. CI/CD biztonsági kapukat, megfelelőségi műszerfalakat).

### 1.2 Miért érinti közvetlenül a kérdőíveket a PaC

A biztonsági kérdőívek általában olyan állításokat kérnek, mint például:

> “Írja le, hogyan védi az adatok nyugalmi állapotát, és adjon bizonyítékot a titkosítási kulcsok forgatásáról.”

Ha a mögöttes szabályzat kódként van definiálva:

```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"
```

Egy eszköz **kivonhatja** a releváns mezőket, természetes nyelvre formázhatja őket, és csatolhatja a hivatkozott bizonyítékfájlt – mindezt anélkül, hogy egy embernek egyetlen szót is be kellene gépelnie.

## 2. A Nagy Nyelvi Modellek mint fordító motor

### 2.1 Kódtól a természetes nyelvig

Az LLM‑ek kiválóak a **szöveggenerálásban**, de a hallucinációk elkerülése érdekében megbízható kontextusra van szükségük. Ha a modellnek **strukturált szabályzat adatot** és egy **kérdés sablont** adunk, determinisztikus leképezést hozunk létre.

**Prompt minta** (egyszerűsített):

```
You are a compliance assistant. Convert the following policy fragment into a concise answer for the question: "<question>". Provide any referenced evidence IDs.
Policy:
<YAML block>
```

Amikor az LLM megkapja ezt a kontextust, nem találgat; **tükrözi** a tárolóban már létező adatokat.

### 2.2 Finomhangolás a domén pontosságáért

Egy általános LLM (pl. GPT‑4) hatalmas tudással rendelkezik, de még így is előfordulhat, hogy homályos megfogalmazásokat ad. **Finomhangolás** révén egy válogatott korábbi kérdőívválaszok és belső stílus útmutatók gyűjteményén, elérjük:

- **Következetes hangnem** (formális, kockázat‑tudatos).  
- **Megfelelőségi specifikus terminológia** (pl. „SOC 2” – látogassa meg [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), „ISO 27001” – látogassa meg [ISO 27001](https://www.iso.org/standard/27001) / [ISO/IEC 27001 Information Security Management](https://www.iso.org/isoiec-27001-information-security.html)).  
- **Csökkentett token használat**, ami alacsonyabb költséget eredményez az inferenciánál.

### 2.3 Biztonsági korlátok és a Retrieval Augmented Generation (RAG)

1. **A Retriever lekéri a pontos szabályzat részletet a PaC tárolóból.**  
2. **A Generator (LLM) megkapja mind a részletet, mind a kérdést.**  
3. **A Post‑processor ellenőrzi, hogy minden hivatkozott bizonyíték‑azonosító létezik-e a bizonyíték tárolóban.**

Ha eltérés észlelhető, a rendszer automatikusan jelzi a választ emberi áttekintésre.

## 3. Vég‑végig Munkafolyamat a Procurize‑on

```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
```

### Step‑by‑step walkthrough

| Lépés | Művelet | Technológia |
|------|----------|------------|
| **1** | A biztonsági csapat frissíti a szabályzat fájlt a Git‑ben. | Git, CI pipeline |
| **2** | A változásérzékelő újraindexeli a szabályzatot. | Webhook, Elasticsearch |
| **3** | Amikor egy szállítói kérdőív érkezik, a UI megjeleníti a releváns kérdést. | Procurize Dashboard |
| **4** | A Retriever lekérdezi az indexet a megfelelő szabályzat részekre. | RAG Retrieval |
| **5** | Az LLM megkapja a részletet + kérdés promptot, és elkészíti a válaszvázlatot. | OpenAI / Azure OpenAI |
| **6** | Az Answer Formatter hozzáadja a markdownot, csatolja a bizonyíték linkeket, és formázza a célportál számára. | Node.js microservice |
| **7** | A biztonsági tulajdonos felülvizsgálja a választ (opcionális, automatikusan jóváhagyható a biztonsági pontszám alapján). | UI Review Modal |
| **8** | A végleges válasz benyújtásra kerül a szállítói portálra; egy változtathatatlan audit log rögzíti a származási információt. | Procurement API, Blockchain‑ish log |
| **9** | Az egész ciklus **10 másodperc alatt** befejeződhet egy tipikus kérdés esetén, ami éles ellentét a 2‑4 órával, amit egy emberi elemzőnek a szabályzat megtalálására, megírására és ellenőrzésére szükséges. | – |

## 4. Saját CaaC Pipeline felépítése

Az alábbiakban gyakorlati útmutató található azok számára, akik szeretnék megismételni ezt a mintát.

### 4.1 Definiáljon egy szabályzat sémát

Kezdje egy **JSON Schema**-val, amely lefedi a szükséges mezőket:

```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"]
}
```

Ellenőrizze minden szabályzat fájlt egy CI lépés (pl. `ajv-cli`) segítségével.

### 4.2 Állítsa be a lekérdezést

- Indexelje a YAML/JSON fájlokat az **Elasticsearch** vagy **OpenSearch** segítségével.  
- Használjon **BM25** vagy **sűrű vektor beágyazásokat** (Sentence‑Transformer segítségével) a szemantikai egyezéshez.

### 4.3 Finomhangolja az LLM‑et

1. Exportálja a történeti kérdőív‑válasz párokat (beleértve a bizonyíték‑azonosítókat).  
2. Alakítsa át a **prompt‑completion** formátumra, amelyet a LLM‑szolgáltatója megkövetel.  
3. Futtassa a **supervised fine‑tuning**‑et (OpenAI `v1/fine-tunes`, Azure `deployment`).  
4. Értékelje **BLEU**‑val és, ami még fontosabb, **emberi validációval** a szabályozói megfelelőség szempontjából.

### 4.4 Valósítsa meg a biztonsági korlátokat

- **Bizonyossági pontszám:** Visszakapott token‑valószínűségeket használja; csak 0,9‑nél nagyobb értékkel automatikusan engedélyezzük.  
- **Bizonyíték ellenőrzés:** A post‑processor ellenőrzi, hogy minden hivatkozott bizonyíték‑azonosító létezik‑e a bizonyíték tárolóban (SQL/NoSQL).  
- **Prompt befecskésző (injection) védelem:** Minden felhasználói szöveget tisztítsa meg, mielőtt a promptba illeszti.

### 4.5 Integrálja a Procurize‑szal

A Procurize már kínál webhook csapókat a bejövő kérdőívekhez. Csatolja ezeket egy **szerver nélküli függvényhez** (AWS Lambda, Azure Functions), amely a 3. szakaszban leírt munkafolyamatot futtatja.

## 5. Előnyök, kockázatok és mitigációk

| Előny | Magyarázat |
|------|------------|
| **Sebesség** | Válaszok másodpercek alatt generálódnak, drámaian felgyorsítva az értékesítési ciklusok időtartamát. |
| **Következetesség** | Azonos szabályzat forrás garantálja az egységes megfogalmazást az összes szállítónál. |
| **Nyomon követhetőség** | Minden válasz egy policy‑ID‑hez és bizonyíték hash‑hez kapcsolódik, ami az auditorok számára megfelel. |
| **Skálázhatóság** | Egy politikaváltozás azonnal minden függő kérdésre kihatással van. |

| Kockázat | Mitigáció |
|----------|-----------|
| **Hallucináció** | RAG használata; kötelező az evidenciák ellenőrzése a publikálás előtt. |
| **Elavult bizonyíték** | Automatikus frissesség‑ellenőrzés (pl. cron‑feladat, amely >30 napos bizonyítékokat jelzi). |
| **Hozzáférés‑kontroll** | A policy‑repo IAM‑alapú védelme; csak engedélyezett szerepkörök tudnak commit‑ot küldeni. |
| **Modell‑drift** | Rendszeres újratestelés friss tesztkészletekkel. |

## 6. Valódi világ hatása – Egy gyors esettanulmány

**Cég:** SyncCloud (közép‑méretű SaaS adat‑analitikai platform)  
**Kezdeti állapot:** Átlagos kérdőív‑átvágás 4 nap, 30 % manuális újrafeldolgozás a megfogalmazási inkonzisztenciák miatt.  
**CaaC‑után:** Átlagos átvágás 15 perc, 0 % újrafeldolgozás, audit‑logok 100 % nyomon követhetőséget mutattak.  
**Kulcsfontosságú mérőszámok:**  

- **Idő megtakarítás:** ~2 óra/elemző/hét.  
- **Ügylet sebesség:** 12 % növekedés a lezárt‑nyert üzletekben.  
- **Megfelelőségi pontszám:** A külső auditok során “közepes”‑ről “magas”‑ra emelkedett.

A transzformációt 150 szabályzat dokumentum Policy‑as‑Code‑ra konvertálásával, egy 6 B paraméteres LLM‑nek a 2 000 korábbi válaszra történő finomhangolásával, valamint a pipeline integrálásával a Procurize kérdőív‑UI‑jába érték el.

## 7. Jövőbeli irányok

1. **Zero‑Trust bizonyíték‑kezelés** – A CaaC kombinálása blockchain‑notarizációval az unverzálható bizonyíték‑származásért.  
2. **Többnyelvű támogatás** – A finomhangolás kiterjesztése jogi fordításokra a **GDPR** – lásd [GDPR](https://gdpr.eu/), **CCPA** – lásd [CCPA](https://oag.ca.gov/privacy/ccpa) és **CPRA** – lásd [CPRA](https://thecpra.org/), valamint a feltörekvő adat‑szovjet szabályokra.  
3. **Ön‑javító szabályzatok** – Reinforcement learning alkalmazása, ahol a modell visszajelzéseket kap az auditoroktól, és automatikusan javaslatokat ad a szabályzat fejlesztésére.  

Ezek az innovációk a CaaC‑t egy **termelékenységi eszközből** egy **stratégiai megfelelőségi motorra** emelik, amely előre formálja a biztonsági álláspontot.

## 8. Induló ellenőrzőlista

- [ ] Definiáljon és verziókezeljen egy Policy‑as‑Code séma.  
- [ ] Töltse fel a meglévő szabályzatokat és bizonyíték‑metaadatokat a tárolóba.  
- [ ] Állítsa be a lekérdezési indexet (Elasticsearch/OpenSearch).  
- [ ] Gyűjtsön historikus Q&A adatot, és finomhangolja az LLM‑et.  
- [ ] Építsen egy biztonság‑pontszámú & evidencia‑ellenőrző wrapper‑t.  
- [ ] Integrálja a pipeline‑t a kérdőív‑platformmal (pl. Procurize).  
- [ ] Vezessen pilot‑projektet egy alacsony kockázatú szállítói kérdésen, és iteráljon.  

Ezekkel a lépésekkel szervezete a **reaktív manuális erőfeszítést** egy **proaktív, AI‑vezérelt megfelelőségi automatizációvá** alakíthatja.

### Hivatkozások gyakori keretrendszerekre és szabványokra (gyors eléréshez)

- **SOC 2** – [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2)  
- **ISO 27001** – [ISO 27001](https://www.iso.org/standard/27001) & [ISO/IEC 27001 Information Security Management](https://www.iso.org/isoiec-27001-information-security.html)  
- **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/)  
- **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)