  

# موتور امتیازدهی ریسک انطباق منبع باز زمان واقعی با هوش مصنوعی  

سازمان‌ها به‌طور فزاینده‌ای محصولات خود را بر پایه مؤلفه‌های منبع باز می‌سازند. اگرچه این کار نوآوری را سرعت می‌بخشد، اما هدفی متغیر از الزامات مجوز، آسیب‌پذیری و انطباق قانونی را نیز معرفی می‌کند. بررسی‌های سنتی انطباق به‌صورت شبانه یا بر‑تقاضا اجرا می‌شوند و یک بازه زمانی باقی می‌گذارند که در آن یک وابستگی جدید می‌تواند قبل از اینکه کسی متوجه شود، سیاست را نقض کند.  

**اگر انطباق می‌توانست در همان لحظه‌ای که یک وابستگی در یک درخواست کشش (pull request) وارد می‌شود، ارزیابی شود، با امتیاز ریسکی که *چرا* و *چگونه* رفع آن را توضیح می‌دهد، چه می‌شد؟**  

در این مقاله، یک **موتور امتیازدهی ریسک انطباق منبع باز زمان واقعی** را طراحی می‌کنیم که داده‌های **صورت‌حساب نرم‌افزاری (SBOM)**، یک **گراف دانش خودبهبود**، **شبکه‌های عصبی گرافی (GNN)** برای استنتاج ریسک ساختاری، و **مدل‌های زبانی بزرگ (LLM)** برای تفسیر سیاست‌های متنی را ترکیب می‌کند. این راه‌حل همچنین **اثبات‌های صفر دانشی (ZKP)** را برای محافظت از کد مالکیتی در حالی که انطباق را ثابت می‌کند، به کار می‌گیرد.  

> **نکات کلیدی**  
> - معماری که به‌روزرسانی‌های SBOM را به‌صورت جریان به گراف دانش انطباق زنده می‌فرستد.  
> - امتیازدهی مبتنی بر GNN که ریسک انتقالی را در درخت‌های وابستگی capture می‌کند.  
> - ترجمه سیاست توسط LLM که متن قانونی را به قواعد قابل‌خواندن توسط ماشین تبدیل می‌کند.  
> - تأیید با ZKP برای شواهد انطباق امن و قابل حسابرسی.  

## ۱. چرا انطباق منبع باز به هوش زمان واقعی نیاز دارد  

| چالش | رویکرد سنتی | فاصله زمان واقعی |
|-----------|----------------------|---------------|
| **لغزش مجوز** – یک وابستگی جدید یک مجوز کپی‌لب را معرفی می‌کند. | اسکن‌های شبانه، رفع دستی. | ممکن است تخلف قبل از شناسایی ادغام شود. |
| **انتشار آسیب‌پذیری** – CVE در یک وابستگی انتقالی. | پایگاه‌های داده آسیب‌پذیری هفتگی، اصلاح با تأخیر. | سطح حمله در طول تأخیر وجود دارد. |
| **قیدهای قانونی** – کنترل‌های صادراتی، محل داده. | بازبینی‌های فصلی سیاست. | واحدهای تجاری ممکن است به‌طور ناخواسته قوانین را نقض کنند. |
| **منشأ زنجیره تأمین** – منبع نامشخص یک مؤلفه. | بررسی‌های دستی منشأ. | هیچ تضمینی برای اصالت در زمان ادغام وجود ندارد. |

امتیازدهی زمان واقعی این خلاها را با **ارزیابی هر تغییر در نقطه یکپارچه‌سازی کد** و ارائه یک امتیاز ریسک قابل اقدام به‌صورت فوری، از بین می‌برد.  

## ۲. معماری سطح بالا  

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

*شکل ۱ – خط لوله امتیازدهی ریسک انطباق منبع باز زمان واقعی.*  

### ۲.۱ مرور اجزا  

| اجزا | نقش |
|-----------|------|
| **ژنراتور SBOM** | فهرست کامل وابستگی‌ها (شامل لبه‌های انتقالی) را برای هر تعهد تولید می‌کند. |
| **جریان رویداد** | تحویل کم‌تاخیر به‌روزرسانی‌های SBOM به سرویس‌های پایین‌دست را تضمین می‌کند. |
| **سرویس گراف دانش** | موجودیت‌ها (پکیج‌ها، مجوزها، CVEها، قوانین) و روابط را ذخیره می‌کند؛ به‌صورت خودکار با تولید افزوده بازیابی (RAG) بهبود می‌یابد. |
| **موتور امتیازدهی GNN** | انتشار ریسک در گراف را یاد می‌گیرد و امتیاز عددی برای هر گره و مجموع برای تعهد ارائه می‌دهد. |
| **مفسر سیاست LLM** | متون قانونی و نظارتی را به قواعد گرافی تبدیل می‌کند (مثلاً «GPL‑3.0 نمی‌تواند در محصولات SaaS ظاهر شود»). |
| **API امتیاز ریسک** | امتیاز و توضیح را به CI/CD و ابزارهای توسعه‌دهنده ارائه می‌دهد. |
| **ژنراتور اثبات صفر دانشی** | اثبات‌های رمزنگاری‌ای ایجاد می‌کند که امتیاز با سیاست مطابقت دارد بدون افشای کد مالکیتی. |
| **دفتر حسابرسی انطباق** | لاگ غیرقابل تغییر (بلاکچین یا ذخیره‌سازی افزایشی) برای حسابرسان. |

## ۳. استخراج داده – از کد به گراف  

1. **استخراج SBOM** – ابزارهایی مانند *Syft* یا *Trivy* به‌عنوان یک هوک پیش‌تعهد (pre‑commit) اجرا می‌شوند و یک سند CycloneDX یا SPDX تولید می‌کنند.  
2. **نرمال‌سازی** – شناسه‌های بسته را به فرم کاننیکال (purl) تبدیل می‌کند.  
3. **تقویت** – منابع خارجی (NVD، OSV، فهرست مجوز SPDX، فهرست‌های کنترل صادرات) را پرس‌وجو می‌کند و ویژگی‌ها (شدت، نوع مجوز، حوزه قضایی) را پیوست می‌کند.  
4. **جریان‌سازی** – SBOM تقویت‌شده را به‌صورت یک رویداد JSON به موضوعات Kafka `sbom.raw` و `sbom.enriched` منتشر می‌کند.  

خط لوله استخراج **ایدِمپوتنت** است؛ پردازش مجدد همان تعهد همان وضعیت گراف را تولید می‌کند که برای حسابرسی‌های قابل تکرار حیاتی است.  

## ۴. ساخت گراف دانش و خودبهبودی  

طرح گراف شامل موارد زیر است:  

- **گره‌های بسته** (نام، نسخه، purl).  
- **گره‌های مجوز** (شناسه SPDX، ماتریس سازگاری).  
- **گره‌های آسیب‌پذیری** (CVE، CVSS، نسخه اصلاحی).  
- **گره‌های مقررات** (مثلاً GDPR ماده ۳۲، کنترل صادرات ایالات متحده).  
- **انواع یال‌ها**: `DEPENDS_ON`، `HAS_LICENSE`، `HAS_VULNERABILITY`، `SUBJECT_TO`.  

### ۴.۱ خودبهبودی با تولید افزوده بازیابی  

زمانی که یک مقررات جدید منتشر می‌شود، سیستم:  

1. متن اصلی را از طریق یک خزنده وب تقویت‌شده با LLM بازیابی می‌کند.  
2. قوانین گرافی تولید می‌کند (مثلاً `IF package.license = "GPL-3.0" AND product.type = "SaaS" THEN risk += 0.8`).  
3. گره‌ها/یال‌ها را به‌صورت خودکار وارد یا به‌روزرسانی می‌کند، به‌طوری که گراف بدون مهاجرت‌های دستی به‌روز بماند.  

## ۵. امتیازدهی زمان واقعی با استفاده از شبکه‌های عصبی گرافی  

### ۵.۱ طراحی مدل  

- **ورودی**: زیرگرافی که ریشه آن بسته تغییر یافته است، با ویژگی‌های گره (وزن ریسک مجوز، امتیاز CVSS، پرچم قانونی) تقویت شده.  
- **معماری**: یک **شبکه همگرایی گرافی (GCN)** به‌دنبال یک لایه **خواندن (Readout)** که تعبیه‌های گره‌ها را به یک بردار سطح تعهد تجمیع می‌کند.  
- **خروجی**:  
  - **امتیاز ریسک** ∈ [0, 1] (بالا = ریسک بیشتر).  
  - **بردار توضیح‌پذیری** که عوامل مؤثر (مجوز، CVE، حوزه قضایی) را نشان می‌دهد.  

### ۵.۲ داده‌های آموزشی  

- رویدادهای ادغام تاریخی که توسط نتایج پس‌ازمرگ انطباق برچسب‌گذاری شده‌اند.  
- مثال‌های مصنوعی متقابل که توسط LLM تولید شده‌اند (مثلاً «اگر این بسته به جای GPL از MIT استفاده می‌کرد چه می‌شد؟»).  

### ۵.۳ تاخیر استنتاج  

استنتاج GCN بر روی یک میکروسرویس شتاب‌دار با GPU اجرا می‌شود و امتیازها را در **کمتر از ۲۰۰ میلی‌ثانیه** برای هر تعهد ارائه می‌دهد که به‌خوبی در محدوده الزامات دروازه CI/CD قرار دارد.  

## ۶. تفسیر سیاست متنی مبتنی بر مدل زبانی بزرگ  

متون قانونی اغلب مبهم هستند. LLM (مثلاً یک GPT‑4o تنظیم‌دقیق) انجام می‌دهد:  

1. **استخراج بند** – بخش‌های مرتبط (سازگاری مجوز، محدودیت‌های صادرات) را شناسایی می‌کند.  
2. **نقشه‌برداری معنایی** – زبان طبیعی را به پیش‌شرط‌های گرافی تبدیل می‌کند (`license_incompatible`، `requires_approval`).  
3. **پرسش‌پذیری پویا** – هنگامی که یک وابستگی جدید ظاهر می‌شود، LLM می‌تواند به سؤال «آیا این مجوز برای یک محصول SaaS میزبانی‌شده در ابر مجاز است؟» با استفاده از زمینه گراف فعلی پاسخ دهد.  

LLM همچنین **توضیحات قابل‌خواندن برای انسان** تولید می‌کند که همراه با امتیاز ریسک ارائه می‌شود و نیازهای حسابرسی را برآورده می‌کند.  

## ۷. اثبات‌های صفر دانشی برای حسابرسی حفظ حریم خصوصی  

سازمان‌ها ممکن است نخواهند تمام SBOMها را به حسابرسان خارجی نشان دهند. با بهره‌گیری از **zk‑SNARKs**، موتور می‌تواند ثابت کند:  

- *«امتیاز ریسک ≤ 0.3 است و تمام قوانین سیاست برآورده شده‌اند.»*  

بدون افشای فهرست بسته‌های زیرین. این اثبات به ورودی دفتر حسابرسی غیرقابل تغییر پیوست می‌شود و **تأیید بدون اعتماد** را امکان‌پذیر می‌سازد.  

## ۸. ادغام با خطوط لوله 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
```  

خط لوله **به‌سرعت شکست می‌خورد**، مانع ادغام کد غیرمنطبق می‌شود و مسیر رفع فوری برای توسعه‌دهندگان فراهم می‌کند.  

## ۹. امنیت، حاکمیت و حسابرسی  

| نگرانی | کاهش/پیشنهاد |
|---------|------------|
| **نشت داده** – SBOM ممکن است شامل نام‌های بسته داخلی باشد. | بارگذاری SBOM را رمزنگاری کنید؛ از ZKP برای تولید اثبات استفاده کنید. |
| **لغزش مدل** – GNN ممکن است با ظهور تهدیدهای جدید منسوخ شود. | حلقه یادگیری مستمر: برچسب‌های پس‌ازمرگ را به‌صورت هفتگی وارد کنید. |
| **ابهام سیاست** – به‌روزرسانی‌های قانونی ممکن است به‌درستی تفسیر نشوند. | بازبینی انسانی قوانین تولید شده توسط LLM قبل از وارد کردن به گراف. |
| **قابلیت حسابرسی** – نیاز به شواهد غیرقابل تغییر. | دفتر حسابرسی افزایشی (مثلاً Hyperledger Fabric) امتیاز، اثبات و زمان‌مهر را ذخیره می‌کند. |

## ۱۰. مزایا برای سازمان‌ها  

1. **دید فوری ریسک** – توسعه‌دهندگان تأثیر انطباق را هنگام نوشتن کد می‌بینند.  
2. **کاهش هزینه رفع** – شناسایی زودهنگام از بازطراحی پرهزینه در آینده جلوگیری می‌کند.  
3. **تصمیمات قابل توضیح** – توضیحات GNN و LLM نیازهای ناظران را برآورده می‌کند.  
4. **قابلیت مقیاس‌پذیری در سراسر مخازن** – طراحی مبتنی بر رویداد از هزاران میکروسرویس پشتیبانی می‌کند.  
5. **حفظ حریم خصوصی در اولویت** – ZKP جزئیات مؤلفه‌های مالکیتی را محرمانه نگه می‌دارد.  

## ۱۱. نقشه راه پیاده‌سازی  

| فاز | نقاط عطف |
|-------|------------|
| **۰ – پایه‌ها** | راه‌اندازی تولید SBOM، Kafka و گراف دانش Neo4j. |
| **۱ – امتیازدهی پایه** | استقرار یک موتور ریسک ساده مبتنی بر قوانین (مجوز + CVE). |
| **۲ – نمونه اولیه GNN** | آموزش یک GCN بر روی ادغام‌های تاریخی، ادغام با API. |
| **۳ – لایه سیاست LLM** | تنظیم دقیق یک LLM بر روی مجموعه‌های قانونی، افزودن تولید قوانین. |
| **۴ – ادغام ZKP** | پیاده‌سازی تولید اثبات zk‑SNARK برای تأیید امتیاز. |
| **۵ – ادغام CI/CD** | افزودن دروازه‌های GitHub Actions / GitLab CI، نظارت بر مثبت‌های کاذب. |
| **۶ – یادگیری مستمر** | خودکارسازی حلقه بازخورد از نتایج حسابرسی به GNN. |

## ۱۲. جهت‌گیری‌های آینده  

- **به‌اشتراک‌گذاری دانش بین‌سازمانی** – یادگیری فدرال بین شرکت‌ها برای بهبود مدل‌های ریسک بدون به‌اشتراک‌گذاری SBOMهای خام.  
- **شواهد چندوجهی** – ترکیب تحلیل کد با منشأ باینری و اسکن تصویر کانتینر.  
- **شبیه‌سازی متقابل تطبیقی** – استفاده از یادگیری تقویتی برای پیشنهاد نسخه وابستگی *کم‌ریسک‌ترین*.  
- **دوقلوی دیجیتال قانونی** – شبیه‌سازی تأثیر قوانین آینده بر کل پرتفوی نرم‌افزاری.  

## ۱۳. نتیجه‌گیری  

مؤلفه‌های منبع باز خون زندگی نرم‌افزارهای مدرن هستند، اما آن‌ها نیز یک چشم‌انداز انطباق به‌طور مداوم در حال تغییر را به همراه دارند. با **ادغام جریان SBOM، گراف دانش خودبهبود، شبکه‌های عصبی گرافی، ترجمه سیاست توسط LLM و اثبات‌های صفر دانشی**، موتور پیشنهادی **امتیازهای ریسک زمان واقعی، قابل توضیح و حفظ حریم خصوصی** را مستقیماً در دسترس توسعه‌دهندگان ارائه می‌دهد.  

پذیرش این معماری، انطباق را از یک گلوگاه پایین‌دست **به یک حفاظ پیشگیرانه و مستمر** تبدیل می‌کند—به تیم‌های محصول امکان می‌دهد سریع‌تر تحویل دهند در حالی که به‌طور محکم در چارچوب‌های قانونی و امنیتی باقی می‌مانند.  

## منابع مرتبط  
- [اسناد فاکتور نرم‌افزار منبع باز (SBOM) – مشخصات SPDX](https://spdx.dev)  
- [شبکه‌های عصبی گرافی برای انتشار ریسک – درس Stanford CS224W](https://web.stanford.edu/class/cs224w/)  
- [اثبات‌های صفر دانشی در حسابرسی امن – جامعه ZKProof](https://zkproof.org)  
- [تولید افزوده بازیابی برای خودبهبودی گراف دانش – arXiv:2403.01234](https://arxiv.org/abs/2403.01234)