  

# AI poháňaný engine na hodnotenie rizika súladu s otvoreným zdrojom v reálnom čase  

Podniky čoraz častejšie budujú produkty na vrchole komponentov s otvoreným zdrojom. Hoci to urýchľuje inovácie, zároveň to prináša pohyblivý cieľ licenčných, zraniteľnostných a regulačných povinností. Tradičné kontroly súladu sa spúšťajú v noci alebo na požiadanie, čo zanecháva okno, počas ktorého môže nová závislosť porušiť politiku skôr, než si to niekto všimne.  

**Čo keby sa súlad mohol vyhodnotiť v okamihu, keď sa závislosť objaví v pull requeste, s rizikovým skóre, ktoré vysvetľuje *prečo* a *ako* riešiť problém?**  

V tomto článku navrhujeme **engine na hodnotenie rizika súladu s otvoreným zdrojom v reálnom čase**, ktorý spája **Softvérový zoznam materiálov (SBOM)**, **samouzdravujúci znalostný graf**, **grafové neurónové siete (GNN)** pre štrukturálne inferovanie rizika a **veľké jazykové modely (LLM)** pre kontextovú interpretáciu politík. Riešenie tiež zahŕňa **Zero‑Knowledge Proofs (ZKP)** na ochranu proprietárneho kódu pri preukazovaní súladu.  

> **Kľúčové poznatky**  
> - Architektúra, ktorá streamuje aktualizácie SBOM do živého znalostného grafu súladu.  
> - Skórovanie založené na GNN, ktoré zachytáva transitive riziká naprieč stromami závislostí.  
> - Politiky prekladané LLM, ktoré menia právny text na strojovo čitateľné pravidlá.  
> - Overovanie pomocou ZKP pre bezpečné, auditovateľné dôkazy o súlade.  

---  

## 1. Prečo súlad s otvoreným zdrojom potrebuje inteligenciu v reálnom čase  

| Výzva | Tradičný prístup | Medzera v reálnom čase |
|-----------|----------------------|---------------|
| **Licenčný drift** – nová závislosť prináša copyleft licenciu. | Nočné skenovanie, manuálna náprava. | Porušenie môže byť zlúčené pred detekciou. |
| **Propagácia zraniteľností** – CVE v transitive závislosti. | Týždenné databázy zraniteľností, oneskorené opravy. | Útočná plocha existuje počas oneskorenia. |
| **Regulačné obmedzenia** – exportné kontroly, rezidencia dát. | Štvrťročné revízie politík. | Obchodné jednotky môžu neúmyselne porušiť regulácie. |
| **Pôvod v dodávateľskom reťazci** – neznámy pôvod komponentu. | Manuálne kontroly pôvodu. | Žiadna záruka autenticity v čase zlúčenia. |

Skórovanie v reálnom čase eliminuje tieto medzery tým, že **vyhodnocuje každú zmenu v bode integrácie kódu** a okamžite poskytuje akčnú hodnotu rizika.  

---  

## 2. Vysoká úroveň architektúry  

```mermaid
graph TD
    A["Developer Push (Git)"] --> B["SBOM Generator (Syft/Trivy)"]
    B --> C["Event Stream (Kafka)"]
    C --> D["Knowledge Graph Service"]
    D --> E["GNN Scoring Engine"]
    D --> F["LLM Policy Interpreter"]
    E --> G["Risk Score API"]
    F --> G
    G --> H["CI/CD Gate (GitHub Actions)"]
    H --> I["Zero‑Knowledge Proof Generator"]
    I --> J["Compliance Audit Ledger (Immutable)"]
```  

*Obrázok 1 – Pipeline na hodnotenie rizika súladu s otvoreným zdrojom v reálnom čase.*  

### 2.1 Prehľad komponentov  

| Komponent | Úloha |
|-----------|------|
| **SBOM Generator** | Vytvára kompletný zoznam závislostí (vrátane transitive hrán) pre každý commit. |
| **Event Stream** | Zaručuje nízkolatenčnú doručenie aktualizácií SBOM do downstream služieb. |
| **Knowledge Graph Service** | Ukladá entity (balíky, licencie, CVE, regulácie) a vzťahy; automaticky sa uzdravuje pomocou Retrieval‑Augmented Generation (RAG). |
| **GNN Scoring Engine** | Učí sa šíreniu rizika naprieč grafom a výstupom číselného skóre pre každý uzol a agregát pre commit. |
| **LLM Policy Interpreter** | Premieňa právne a regulačné texty na pravidlá grafu (napr. “GPL‑3.0 nesmie byť v SaaS produktoch”). |
| **Risk Score API** | Exponuje skóre a vysvetlenie pre CI/CD a nástroje vývojárov. |
| **Zero‑Knowledge Proof Generator** | Vytvára kryptografické dôkazy, že skóre spĺňa politiku bez odhalenia proprietárneho kódu. |
| **Compliance Audit Ledger** | Nemenný záznam (blockchain alebo append‑only úložisko) pre audítorov. |

---  

## 3. Príjem dát – od kódu k grafu  

1. **Extrahovanie SBOM** – Nástroje ako *Syft* alebo *Trivy* bežia ako pre‑commit hook a emitujú CycloneDX alebo SPDX dokument.  
2. **Normalizácia** – Konvertuje identifikátory balíkov do kanonickej formy (purl).  
3. **Obohatenie** – Dotazuje externé zdroje (NVD, OSV, SPDX License List, export‑control zoznamy) a pripája atribúty (závažnosť, typ licencie, jurisdikcia).  
4. **Streamovanie** – Publikuje obohatený SBOM ako JSON udalosť do Kafka topicov `sbom.raw` a `sbom.enriched`.  

Príjemová pipeline je **idempotentná**; opätovné spracovanie rovnakého commitu vedie k rovnakému stavu grafu, čo je kľúčové pre reprodukovateľné audity.  

---  

## 4. Konštrukcia znalostného grafu a automatické uzdravovanie  

Schéma grafu zahŕňa:  

- **Package** uzly (názov, verzia, purl).  
- **License** uzly (SPDX identifikátor, matica kompatibility).  
- **Vulnerability** uzly (CVE, CVSS, verzia opravy).  
- **Regulation** uzly (napr. GDPR Art. 32, US Export Control).  
- **Typy hrán**: `DEPENDS_ON`, `HAS_LICENSE`, `HAS_VULNERABILITY`, `SUBJECT_TO`.  

### 4.1 Automatické uzdravovanie pomocou Retrieval‑Augmented Generation  

Keď sa objaví nová regulácia, systém:  

1. Načíta surový text cez LLM‑augmentovaný web‑crawler.  
2. Vygeneruje pravidlá grafu (napr. `IF package.license = "GPL-3.0" AND product.type = "SaaS" THEN risk += 0.8`).  
3. Vloží alebo aktualizuje uzly/hrany automaticky, čím zabezpečí, že graf zostane aktuálny bez manuálnych migrácií.  

---  

## 5. Skórovanie v reálnom čase pomocou grafových neurónových sietí  

### 5.1 Návrh modelu  

- **Vstup**: Podgraf zakotvený v zmenenej balíčke, obohatený o atribúty uzlov (váha licencie, skóre CVSS, regulačný príznak).  
- **Architektúra**: **Graph Convolutional Network (GCN)** nasledovaný **Readout** vrstvou, ktorá agreguje embeddingy uzlov do vektora úrovne commitu.  
- **Výstup**:  
  - **Risk Score** ∈ [0, 1] (vyššie = rizikovejšie).  
  - **Explainability Vector** ukazujúci prispievajúce faktory (licencia, CVE, jurisdikcia).  

### 5.2 Tréningové dáta  

- Historické udalosti zlúčenia označené podľa následných zistení o súlade.  
- Syntetické kontrafaktuálne príklady generované LLM (napr. “Čo ak by tento balíček používal MIT namiesto GPL?”).  

### 5.3 Latencia inferencie  

GCN inferencia beží na GPU‑akcelerovanom mikro‑servise a poskytuje skóre **<200 ms** na commit, čo spĺňa požiadavky CI/CD brány.  

---  

## 6. LLM‑poháňaná kontextová interpretácia politík  

Právne texty sú často nejednoznačné. LLM (napr. vyladený GPT‑4o) vykonáva:  

1. **Extrahovanie klauzúl** – Identifikuje relevantné sekcie (kompatibilita licencií, exportné obmedzenia).  
2. **Sémantické mapovanie** – Premieňa prirodzený jazyk na grafové predikáty (`license_incompatible`, `requires_approval`).  
3. **Dynamické promptovanie** – Keď sa objaví nová závislosť, LLM dokáže odpovedať “Je táto licencia povolená pre cloud‑hostovaný SaaS produkt?” s využitím aktuálneho kontextu grafu.  

LLM tiež generuje **ľudsky čitateľné vysvetlenia**, ktoré sprevádzajú skóre rizika a spĺňajú auditné požiadavky.  

---  

## 7. Zero‑Knowledge Proofs pre zachovanie súkromia pri auditoch  

Podniky nemusia zverejňovať kompletné SBOM externým audítorom. Využitím **zk‑SNARKs** môže engine preukázať:  

- *„Rizikové skóre je ≤ 0.3 a všetky pravidlá politiky sú splnené.“*  

bez odhalenia podkladového zoznamu balíkov. Dôkaz je pripojený k nemennému záznamu auditu, čo umožňuje **dôveryhodné overenie**.  

---  

## 8. Integrácia do CI/CD pipeline  

Typický GitHub Actions workflow:  

```yaml
name: Compliance Gate
on: [pull_request]

jobs:
  compliance-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Generate SBOM
        run: syft . -o json > sbom.json
      - name: Publish SBOM
        run: |
          curl -X POST -H "Content-Type: application/json" \
          -d @sbom.json http://risk‑engine.local/api/v1/sbom
      - name: Retrieve Score
        id: score
        run: |
          SCORE=$(curl -s http://risk‑engine.local/api/v1/score/${{ github.sha }})
          echo "score=$SCORE" >> $GITHUB_OUTPUT
      - name: Enforce Policy
        if: steps.score.outputs.score > 0.4
        run: |
          echo "Compliance risk too high – blocking merge."
          exit 1
```  

Pipeline **zlyhá okamžite**, čím zabráni zlúčeniu nekompatibilného kódu a poskytuje vývojárom okamžitú cestu k náprave.  

---  

## 9. Bezpečnosť, správa a audit  

| Obava | Riešenie |
|---------|------------|
| **Únik dát** – SBOM môže obsahovať interné názvy balíkov. | Šifrovať SBOM payload; použiť ZKP pre generovanie dôkazov. |
| **Modelový drift** – GNN môže zastarať pri nových hrozbách. | Kontinuálny učebný cyklus: týždenne ingestovať post‑mortem štítky. |
| **Nejasnosť politík** – Právne aktualizácie môžu byť nesprávne interpretované. | Ľudský prehľad LLM‑generovaných pravidiel pred ich vložením do grafu. |
| **Auditovateľnosť** – Potreba nemenných dôkazov. | Append‑only ledger (napr. Hyperledger Fabric) ukladá skóre, dôkaz a časovú pečiatku. |

---  

## 10. Prínosy pre organizácie  

1. **Okamžitá viditeľnosť rizika** – Vývojári vidia dopad súladu už pri písaní kódu.  
2. **Znížené náklady na nápravu** – Včasná detekcia zabraňuje drahému prepracovaniu neskôr.  
3. **Vysvetliteľné rozhodnutia** – GNN a LLM poskytujú vysvetlenia, ktoré uspokoja regulátorov.  
4. **Škálovateľnosť naprieč repozitármi** – Event‑driven dizajn podporuje tisíce mikro‑služieb.  
5. **Súkromie na prvom mieste** – ZKP udržuje dôverné informácie o komponentoch v tajnosti.  

---  

## 11. Implementačná cesta  

| Fáza | Milníky |
|-------|------------|
| **0 – Základy** | Nastaviť generovanie SBOM, Kafka a Neo4j znalostný graf. |
| **1 – Základné skórovanie** | Nasadiť jednoduchý pravidlami‑založený engine (licencia + CVE). |
| **2 – GNN prototyp** | Trénovať GCN na historických zlúčeniach, integrovať s API. |
| **3 – LLM vrstva politík** | Vyladiť LLM na regulačné korpusy, pridať generovanie pravidiel. |
| **4 – ZKP integrácia** | Implementovať zk‑SNARK generovanie dôkazov o súlade. |
| **5 – Embedding do CI/CD** | Pridať brány GitHub Actions / GitLab CI, monitorovať false positives. |
| **6 – Kontinuálne učenie** | Automatizovať spätnú väzbu z auditov do GNN. |

---  

## 12. Budúce smerovanie  

- **Zdieľanie znalostí medzi organizáciami** – Federované učenie naprieč firmami na zlepšenie modelov rizika bez zdieľania surových SBOM.  
- **Multimodálne dôkazy** – Kombinovať analýzu kódu s provenance bináriek a skenovaním kontajnerových obrazov.  
- **Adaptívna kontrafaktuálna simulácia** – Použiť reinforcement learning na návrh *najmenej rizikovej* alternatívnej verzie závislosti.  
- **Digitálny dvojča regulácií** – Simulovať dopad nadchádzajúcich legislatív na celý softvérový portfólio.  

---  

## 13. Záver  

Komponenty s otvoreným zdrojom sú životnou silou moderného softvéru, ale zároveň prinášajú neustále sa meniaciu krajinu súladu. Spojením **streamovania SBOM, samouzdravujúceho znalostného grafu, grafových neurónových sietí, LLM‑poháňanej prekladu politík a zero‑knowledge dôkazov** tento engine poskytuje **real‑time, vysvetliteľné a súkromie‑zachovávajúce skóre rizika** priamo na prstoch vývojára.  

Nasadenie tejto architektúry mení súlad z úzkyho úseku poľa na proaktívny, kontinuálny štít – umožňujúc tímom doručovať rýchlejšie a zároveň zostať pevne v právnych a bezpečnostných hraniciach.  

---  

## Pozri tiež  
- [Open Source Software Bill of Materials (SBOM) – SPDX špecifikácia](https://spdx.dev)  
- [Grafové neurónové siete pre šírenie rizika – prednáška Stanford CS224W](https://web.stanford.edu/class/cs224w/)  
- [Zero‑Knowledge Proofs v bezpečnom audite – ZKProof komunita](https://zkproof.org)  
- [Retrieval‑Augmented Generation pre automatické uzdravovanie grafov – arXiv:2403.01234](https://arxiv.org/abs/2403.01234)