  

# ԱԻ‑ն աջակցող իրական ժամանակի բաց կոդի համաձայնության ռիսկի գնահատման շարժիչ  

Ընկերությունները ավելի ու ավելի հաճախ կառուցում են արտադրանքները բաց‑կոդի բաղադրիչների վրա։ Սա արագացնում է նորարարությունը, բայց նաև ստեղծում է շարժվող լիցենզավորման, խոցելիության և կարգապահական պարտականությունների նպատակակետ։ Ավանդական համաձայնության ստուգումները կատարվում են գիշերային կամ պահանջի դեպքում, թողնելով բաց պատուհան, որտեղ նոր ներմուծված կախվածությունը կարող է խախտել քաղաքականությունը, մինչև որ որևէ մեկը նկատի ունենա։  

**Ի՞նչ լինի, եթե համաձայնությունը կարող է գնահատվել այն պահին, երբ կախվածությունը հայտնվում է pull request‑ում, ռիսկի գնահատումով, որը բացատրում է *ինչու* և *ինչպե՞ս* պետք է ուղղել?**  

Այս հոդվածում մենք նախագծում ենք **իրական‑ժամանակի բաց‑կոդի համաձայնության ռիսկի գնահատման շարժիչ**, որը միացնում է **Software Bill of Materials (SBOM)** տվյալները, **ինքնա-վերականգնող գիտելիքի գրաֆ**, **գրաֆիկային նյարդային ցանցեր (GNNs)** կառուցվածքային ռիսկի ենթադրյալների համար, և **մեծ լեզվի մոդելներ (LLMs)** կոնտեքստուալ քաղաքականության մեկնաբանության համար։ Լուծումը նաև ներառում է **Zero‑Knowledge Proofs (ZKPs)**, որոնք պաշտպանում են սեփական կոդը, միաժամանակ ապացուցելով համաձայնությունը։  

> **Կլիչային արդյունքներ**  
> - Արխիտեկչուրա, որը ուղարկում է SBOM թարմացումները կենդանի համաձայնության գիտելիքի գրաֆի մեջ։  
> - GNN‑բազված գնահատում, որը ընդգրկում է տրանզիտիվ ռիսկը կախվածությունների ծառերում։  
> - LLM‑բազված քաղաքականության թարգմանություն, որը փոխում է իրավական տեքստը մեքենա‑կարդալու կանոնների մեջ։  
> - ZKP‑հնարավոր ստուգում, ապահով, աուդիտելի համաձայնության ապացույցների համար։  

---  

## 1. Ինչու բաց‑կոդի համաձայնությունը պետք է ունենա իրական‑ժամանակի բանականություն  

| Բարդություն | Ավանդական մոտեցում | Իրական‑ժամանակի բացակայություն |
|-----------|----------------------|---------------|
| **Լիցենզիայի շողբեր** – նոր կախվածություն ներառում է copyleft լիցենզիա։ | Գիշերային սկաններ, ձեռքով ուղղում։ | Խախտումը կարող է միանալ մինչև հայտնաբերման։ |
| **Խոցելիության տարածում** – CVE տրանզիտիվ կախվածությունում։ | Շաբաթական խոցելիության տվյալների բազաներ, ուշ պաչում։ | Հակառակորդի մակերեսը գոյություն ունի ուշացման ժամանակ։ |
| **Կարգապահական սահմանափակումներ** – արտահանման վերահսկողություն, տվյալների բնակություն։ | Քառամսական քաղաքականության վերանայումներ։ | Բիզնես միավորները կարող են անանուն խախտել կանոնները։ |
| **Մատակարարման շղթայի ծագում** – բաղադրիչի անհայտ ծագում։ | Ձեռքով ծագման ստուգումներ։ | Միայնացման պահին ոչ մի երաշխիք չի լինի իսկականության։ |

Իրական‑ժամանակի գնահատումը elimինացնում է այս բացերը՝ **գնահատելով յուրաքանչյուր փոփոխություն կոդի ինտեգրման պահին** և տրամադրելով գործող ռիսկի գնահատում անմիջապես։  

---  

## 2. Բարձր‑մակարդակի Արխիտեկչուրա  

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

*Figure 1 – Իրական‑ժամանակի բաց‑կոդի համաձայնության ռիսկի գնահատման պիպլայն*  

### 2.1 Բաղադրիչների ակնարկ  

| Բաղադրիչ | Դերը |
|-----------|------|
| **SBOM Generator** | Ստեղծում է ամբողջական կախվածությունների ցուցակ (ներառյալ տրանզիտիվ կապերը) յուրաքանչյուր commit‑ի համար։ |
| **Event Stream** | Ապահովում է ցածր‑հետաձգման առաքում SBOM թարմացումների downstream ծառայություններին։ |
| **Knowledge Graph Service** | Պահում է միավորները (պաթքեր, լիցենզիաներ, CVE‑ներ, կարգավորումներ) և կապերը՝ ինքնա‑վերականգնվում Retrieval‑Augmented Generation (RAG) միջոցով։ |
| **GNN Scoring Engine** | Սովորում է ռիսկի տարածումը գրաֆի վրա, արտածելով թվային գնահատում յուրաքանչյուր միավորի և commit‑ի համար։ |
| **LLM Policy Interpreter** | Տարածում է իրավական և կարգապահական տեքստերը գրաֆի կանոնների (օր. “GPL‑3.0 չի կարող հայտնվել SaaS արտադրանքներում”) մեջ։ |
| **Risk Score API** | Արտածում է գնահատումը և բացատրությունը CI/CD‑ին և ծրագրավորողի գործիքներին։ |
| **Zero‑Knowledge Proof Generator** | Ստեղծում է կրիպտոգրաֆիկ ապացույցներ, որ գնահատումը համապատասխանում է քաղաքականությանը՝ չհայտնաբերելով սեփական կոդը։ |
| **Compliance Audit Ledger** | Անփոփոխ մատյան (բլոկչեյն կամ միայն‑ավելացվող պահոց) աուդիտորների համար։ |

---  

## 3. Տվյալների ներմուծում – Կոդից Գրաֆի  

1. **SBOM Ելք** – *Syft* կամ *Trivy* գործիքները աշխատում են որպես pre‑commit hook, արտածելով CycloneDX կամ SPDX փաստաթուղթ։  
2. **Նորմալացում** – Փոխակերպել պաթքի նույնացուցիչները կանոնավոր ձև (purl)։  
3. **Բարձրացում** – Հարցում կատարել արտաքին աղբյուրները (NVD, OSV, SPDX License List, արտահանման‑կառավարության ցուցակներ) և կցել հատկանիշներ (սարքություն, լիցենզիայի տեսակ, իրավասություն)։  
4. **Ուղղում** – Հրապարակել բարձրացված SBOM‑ը որպես JSON իրադարձություն Kafka‑ի `sbom.raw` և `sbom.enriched` թեմաներում։  

Ներմուծման պիպլայնը **իդեմպոտենտ** է՝ նույն commit‑ի կրկնակի մշակումը տալիս է նույն գրաֆի վիճակը, ինչը կարևոր է կրկնելի աուդիտների համար։  

---  

## 4. Գիտելիքի գրաֆի կառուցում & ինքնա‑վերականգնություն  

Գրաֆի սխեման ներառում է՝  

- **Package** միավորներ (անուն, տարբերակ, purl)։  
- **License** միավորներ (SPDX նույնացուցիչ, համատեղելիության մատրիցա)։  
- **Vulnerability** միավորներ (CVE, CVSS, ուղղման տարբերակ)։  
- **Regulation** միավորներ (օր. GDPR Art. 32, US Export Control)։  
- **Edge Types**: `DEPENDS_ON`, `HAS_LICENSE`, `HAS_VULNERABILITY`, `SUBJECT_TO`։  

### 4.1 Ինքնա‑վերականգնություն Retrieval‑Augmented Generation‑ով  

Երբ նոր կարգավորում հրապարակվում է, համակարգը՝  

1. Վերականգնում է կոդված տեքստը LLM‑բարձրացված վեբ‑քրոլերի միջոցով։  
2. Ստեղծում է գրաֆի կանոններ (օր. `IF package.license = "GPL-3.0" AND product.type = "SaaS" THEN risk += 0.8`)։  
3. Ներմուծում կամ թարմացում միավորները/կապերը ավտոմատ, ապահովելով գրաֆի մշտական արդիականություն առանց ձեռքով միգրացիաների։  

---  

## 5. Իրական‑ժամանակի գնահատում Գրաֆիկային Նյարդային Ցանցերի Օգնությամբ  

### 5.1 Մոդելի դիզայն  

- **Մուտք**՝ փոփոխված պաթքի արմատային ենթագրաֆ, բարձրացված միավորների հետ (լիցենզիայի ռիսկի քաշ, CVSS‑ի գնահատում, կարգավորման դրոշակ)։  
- **Արխիտեկչուրա**՝ **Graph Convolutional Network (GCN)**, հետո **Readout** շերտ, որը հավաքում է միավորների embed‑ները commit‑ի մակարդակի վեկտորում։  
- **Ելք**՝  
  - **Risk Score** ∈ [0, 1] (բարձր = ավելի ռիսկավոր)։  
  - **Explainability Vector**՝ ցույց տալով ներդրող գործոնները (լիցենզիա, CVE, իրավասություն)։  

### 5.2 Սովորելու տվյալներ  

- Պատմական merge‑ների իրադարձություններ, որոնք դասավորված են հետագա համաձայնության արդյունքների կողմից։  
- Սինտետիկ հակադրական օրինակներ, որոնք գեներացված են LLM‑ով (օր. “Ի՞նչ լինի, եթե այս պաթքը օգտագործում էր MIT-ի փոխարեն GPL‑ը?”)։  

### 5.3 Անհատականության ուշացում  

GCN‑ի inference‑ը աշխատում է GPU‑հասցե micro‑service‑ում, տրամադրելով գնահատումներ **<200 ms** մեկ commit‑ի համար, ինչը բավարարում է CI/CD‑ի դարպասների պահանջներին։  

---  

## 6. LLM‑բազված կոնտեքստուալ քաղաքականության մեկնաբանություն  

Իրավական տեքստերը հաճախ են անորոշ։ LLM (օր.՝ ֆայն‑տյունված GPT‑4o) կատարում է՝  

1. **Clause Extraction** – Նշված բաժինների (լիցենզիայի համատեղելիություն, արտահանման սահմանափակումներ) հայտնաբերում։  
2. **Semantic Mapping** – Բնաբանական լեզուն փոխարկում է գրաֆի նախադասություններ (օր. `license_incompatible`, `requires_approval`)։  
3. **Dynamic Prompting** – Երբ նոր կախվածություն հայտնվում է, LLM‑ը կարող է պատասխանել “Արդյոք այս լիցենզիան թույլատրված է ամպային SaaS արտադրանքի համար?”՝ օգտագործելով ընթացիկ գրաֆի համատեքստը։  

LLM‑ը նաև ստեղծում է **մարդու‑կարդալու բացատրություններ**, որոնք կցված են ռիսկի գնահատմանը, բավարարելով աուդիտների պահանջներին։  

---  

## 7. Zero‑Knowledge Proofs գաղտնիքի պահպանման համար  

Ընկերությունները կարող են չցանկանալ բացահայտել ամբողջ SBOM‑ները արտաքին աուդիտորների համար։ **zk‑SNARKs**‑ի միջոցով շարժիչը կարող է ապացուցել՝  

- *“Ռիսկի գնահատումը ≤ 0.3 և բոլոր քաղաքականության կանոնները բավարար են”*  

առանց ներքին պաթքի ցուցակների բացահայտման։ Ապացույցը կցված է անփոփոխ աուդիտ մատյանի գրառմանը, թույլատրում է **հավաստված առանց վստահության** ստուգում։  

---  

## 8. Ինտեգրումը CI/CD պիպլայնների հետ  

GitHub Actions-ի օրինակային աշխատանքային հոսք՝  

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

Պիպլայնը **հրատապ ձախողում է**, կանխելով չհամաձայն կոդի միացմանը և տրամադրելով ծրագրավորողներին անմիջական ուղղման ուղեցույց։  

---  

## 9. Անվտանգություն, կառավարում և աուդիտ  

| Խնդիր | Դիմում |
|---------|------------|
| **Տվյալների գ Leakage** – SBOM‑ը կարող է պարունակել ներքին պաթքի անուններ։ | Շփոթված SBOM բեռնվածք; ZKP-ի օգտագործում ապացույցների համար։ |
| **Մոդելի շեղում** – GNN‑ը կարող է հինվել նոր սպառնալիքների առաջ։ | Շարունակական ուսուցման ցիկլ՝ շաբաթական պոստ‑մորտեմ լաբելների ներմուծում։ |
| **Կանոնների անորոշություն** – Իրավական թարմացումները կարող են սխալ կերպով մեկնաբանվել։ | Մարդու‑համար ստուգում LLM‑բարձրացված կանոնների ներմուծման առաջ։ |
| **Ա աուդիտելիություն** – Անհրաժեշտ են անփոփոխ ապացույցներ։ | Ավելացվող մատյան (օր. Hyperledger Fabric) պահում է գնահատումը, ապացույցը և ժամանականշանը։ |

---  

## 10. Օգտակարություններ կազմակերպությունների համար  

1. **Անմիջական ռիսկի տեսանելիություն** – Ծրագրավորողները տեսնում են համաձայնության ազդեցությունը կոդի գրելուց։  
2. **Նվազեցված ուղղման ծախս** – Նախնական հայտնաբերման միջոցով խուսափում են դյուրին վերակառուցումից։  
3. **Բացատրելի որոշումներ** – GNN և LLM-ի բացատրությունները բավարարում են կարգապահական պահանջները։  
4. **Զտվածություն բազմաթիվ ռեպոզիտորիաների վրա** – Իրադարձության‑կենտրոնացված դիզայնը աջակցում է հազարավոր micro‑services‑ների։  
5. **Գաղտնիություն‑առաջին** – ZKP‑ները պահպանում են proprietary բաղադրիչների գաղտնիությունը։  

---  

## 11. Կատարության ճանապարհը  

| Փակտ | Բարձրագույն նպատակներ |
|-------|------------|
| **0 – Հիմնարարներ** | SBOM‑ի ստեղծում, Kafka, Neo4j գիտելիքի գրաֆի կարգավորում։ |
| **1 – Բազային գնահատում** | Դիմակային կանոնների ռիսկի շարժիչ (լիցենզիա + CVE) տեղադրման։ |
| **2 – GNN պրոտոտիպ** | GCN‑ի ուսուցում պատմական merge‑ների վրա, ինտեգրացիա API‑ի հետ։ |
| **3 – LLM քաղաքականության շերտ** | LLM‑ի ֆայն‑տյունում կարգապահական կորպուսների վրա, կանոնների գեներացում։ |
| **4 – ZKP ինտեգրացիա** | zk‑SNARK ապացույցների ստեղծում գնահատման հաստատման համար։ |
| **5 – CI/CD ներդրում** | GitHub Actions / GitLab CI դարպասների ավելացում, կեղծ դրականների մոնիտորինգ։ |
| **6 – Շարունակական ուսուցում** | Աւտոմատ հետադարձ կապի ցիկլը աուդիտների արդյունքներից GNN‑ի համար։ |

---  

## 12. Ապագա ուղղություններ  

- **Միջ-կազմակերպական գիտելիքի փոխանակում** – Ֆեդերատիվ ուսուցում՝ ընկերությունների միջև ռիսկի մոդելների բարելավման համար, առանց կոդի կիսագումարների փոխանակման։  
- **Մուլտիմեդիա ապացույց** – Կոդի վերլուծության համակցում binary provenance և կոնտեյներների սկանների հետ։  
- **Ադապտիվ հակադրական սիմուլացիա** – Օգտագործելով reinforcement learning՝ առաջարկել *առավել ռիսկազրկու* փոխարինող տարբերակ։  
- **Կարգապահական թվային երկուս** – Սիմուլացնել նոր օրենքների ազդեցությունը ամբողջ ծրագրային պորտֆոլիո վրա։  

---  

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

Բաց‑կոդի բաղադրիչները հանդիսանում են ժամանակակից ծրագրի արյունը, բայց դրանք նաև բերում են մշտապես փոփոխվող համաձայնության լանդշաֆտին։ **SBOM‑ների հոսք, ինքնա‑վերականգնող գիտելիքի գրաֆ, գրաֆիկային նյարդային ցանցեր, LLM‑բազված քաղաքականության թարգմանություն և զրո‑գիտելիքի ապացույցների** միավորով, առաջարկված շարժիչը տրամադրում է **իրական‑ժամանակի, բացատրելի և գաղտնիքի‑առաջին ռիսկի գնահատումներ** ծրագրավորողի ձեռքի տակ։  

Այս ճարտարապետության ընդունումը փոխում է համաձայնությունը ստորադասված շտապակամից ակտիվ, շարունակական պաշտպանություն՝ թույլատրում արտադրական թիմերին արագ թողնել, միաժամանակ մնալ իրավական և անվտանգության սահմաններում։  

---  

## Տես նաև  
- [Open Source Software Bill of Materials (SBOM) – SPDX Specification](https://spdx.dev)  
- [Graph Neural Networks for Risk Propagation – Stanford CS224W Lecture](https://web.stanford.edu/class/cs224w/)  
- [Zero‑Knowledge Proofs in Secure Auditing – ZKProof Community](https://zkproof.org)  
- [Retrieval‑Augmented Generation for Knowledge Graph Auto‑Healing – arXiv:2403.01234](https://arxiv.org/abs/2403.01234)