
تنفيذ لإطار عمل FAIR CRQ
منصة مفتوحة المصدر محلية لتقييم المخاطر السيبرانية الكمية باستخدام إطار عمل FAIR v3.1 (التحليل العاملي لمخاطر المعلومات). قم بنمذجة التهديدات، تشغيل محاكاة مونت كارلو، قياس فعالية الضوابط، وإدارة محافظ المخاطر — كل ذلك من متصفحك، بدون حساب سحابي.
LM = PLM + SLEF × SLEM

| المتطلب | الإصدار | ملاحظات |
|---|---|---|
| Node.js | 22.5 أو أحدث | يستخدم الوحدة المضمنة node:sqlite التي تم تقديمها في v22.5 |
| npm | يأتي مع Node.js | لا حاجة لتثبيت منفصل |
brew install nodenvm install 22 && nvm use 22winget install OpenJS.NodeJS# استنساخ المستودع
git clone https://github.com/iiamit/CyberQRM.git
cd CyberQRM
# تشغيل المثبت (يتحقق من إصدار Node، يثبت جميع التبعيات، ينزل بيانات ATT&CK)
chmod +x install.sh
./install.sh
REM استنساخ المستودع (Git Bash, PowerShell, أو أي طرفية)
git clone https://github.com/iiamit/CyberQRM.git
cd CyberQRM
REM تشغيل المثبت (انقر نقرًا مزدوجًا أو شغّل من طرفية)
install.bat
سوف يقوم المثبت بما يلي:
npm للجذر والخلفية والواجهة الأماميةbackend/data/ لقاعدة بيانات SQLite./start.sh
يؤدي هذا إلى فتح نافذتين طرفيتين (أو عمليات خلفية على Linux بدون سطح مكتب) — واحدة لواجهة API الخلفية وواحدة لخادم التطوير الأمامي — ثم فتح المتصفح تلقائيًا.
start.bat
سيتم فتح نافذتي وحدة تحكم (الخلفية والواجهة الأمامية). سيفتح المتصفح تلقائيًا بعد 5 ثوانٍ.
بمجرد التشغيل، يمكن الوصول إلى التطبيق على:
| الخدمة | الرابط |
|---|---|
| الواجهة الأمامية | http://localhost:5173 |
| واجهة API الخلفية | http://localhost:3001 |
إذا كان المنفذ 5173 مشغولاً بالفعل، فسيقوم Vite بالتبديل تلقائيًا إلى 5174.
يقوم CyberQRM بتنفيذ منهجية FAIR v3.1 في أربع خطوات:
تقييم الأصول متعدد الأساسات — قم بتفعيل "متقدم: استخدام أسس تقييم متعددة" في خطوة قيمة الأصل لتحديد توزيعات منفصلة لكل بُعد قيمة. تقوم المحاكاة بجمع جميع الأساسات في كل تكرار.
الخسارة الأولية والثانوية — قم بتفعيل "متقدم: تقسيم إلى خسارة أولية وثانوية" في خطوة أثر الخسارة لنمذجة التكاليف المباشرة الأولية والتكاليف الثانوية التي يفرضها أصحاب المصلحة (الغرامات، الضرر السمعة، الخسارة التنافسية) مع احتمالية SLEF شرطية. جميع المبالغ بالدولار الأمريكي المطلق.
MITRE ATT&CK — في خطوات TEF والضعف، افتح متصفح التقنيات للتصفية حسب التكتيك، البحث بالاسم أو المعرف، واختيار التقنيات ذات الصلة. تقترح المنصة نطاقات TEF بناءً على مستويات الانتشار في العالم الحقيقي (مأخوذة من مشاهدات Red Canary / CTID) ونطاقات الضعف بناءً على عدد تخفيفات ATT&CK التي قمت بتطبيقها.
يتم إنشاء قاعدة البيانات تلقائيًا في التشغيل الأول (backend/data/cyberqrm.db). جميع البيانات تبقى على جهازك المحلي.
CyberQRM/
├── backend/ # Express.js + TypeScript API
│ ├── src/
│ │ ├── index.ts # نقطة دخول الخادم (المنفذ 3001)
│ │ ├── db/ # محول SQLite، المخطط والترحيلات
│ │ ├── routes/ # نقاط نهاية REST (السيناريوهات، الضوابط، المحافظ، ATT&CK)
│ │ ├── services/ # منطق الأعمال، محرك مونت كارلو وخدمة ATT&CK
│ │ ├── data/ # attack-prevalence.json (بيانات مستوى TEF المجمعة)
│ │ └── middleware/ # معالجة الأخطاء
│ └── data/ # قاعدة بيانات SQLite + ملف ATT&CK STIX (منشأ تلقائيًا)
├── frontend/ # React 18 + Vite + TypeScript
│ └── src/
│ ├── pages/ # لوحة التحكم، السيناريوهات، الضوابط، المحافظ
│ ├── components/ # الرسوم البيانية، النماذج، العناصر الأولية لواجهة المستخدم
│ │ └── forms/ # ScenarioForm، AttackTechniqueSelector،
│ │ # ValuationBasisList، PrimarySecondaryLossForm
│ ├── store/ # إدارة الحالة باستخدام Zustand
│ └── utils/ # عميل API، التنسيق، مولد التقارير
├── shared/ # أنواع TypeScript المشتركة (نموذج بيانات FAIR)
├── install.sh # مثبت macOS/Linux
├── install.bat # مثبت Windows
├── start.sh # مشغل macOS/Linux
└── start.bat # مشغل Windows
للعمل على الكود مع إعادة التحميل التلقائي:
# تثبيت التبعيات (إذا لم يتم ذلك مسبقًا)
./install.sh # macOS/Linux
install.bat # Windows
# بدء كلتا الخدمتين مع إعادة التحميل الحي
npm run dev # من جذر المشروع (يتطلب npm-run-all)
# أو بدء كل منهما بشكل منفرد
npm run dev:backend
npm run dev:frontend
لبناء حزمة إنتاج:
npm run build
# ثم تشغيل الخلفية المترجمة:
cd backend && npm start
# خدمة frontend/dist مع أي خادم ملفات ثابت
المساهمات مرحب بها. يرجى فتح مشكلة أولاً لمناقشة التغييرات الهامة.
git checkout -b feature/your-feature)MIT — انظر LICENSE للحصول على التفاصيل.
ينفذ هذا المشروع نموذج FAIR™ (Factor Analysis of Information Risk). FAIR هي علامة تجارية لمعهد FAIR.
ATT&CK® هي علامة تجارية مسجلة لشركة MITRE Corporation. يتم استخدام محتوى ATT&CK بموجب شروط استخدام ATT&CK.
| فحص الصحة | http://localhost:3001/api/health |
| الطبقة | التقنية |
|---|
| إطار الواجهة الأمامية | React 18، TypeScript، Vite |
| التصميم | Tailwind CSS |
| إدارة الحالة | Zustand، TanStack React Query |
| الرسوم البيانية | Recharts |
| إطار الخلفية | Express.js، TypeScript |
| قاعدة البيانات | SQLite عبر وحدة Node.js المضمنة node:sqlite |
| التحقق | Zod |
| استخبارات التهديدات | MITRE ATT&CK للمؤسسات (STIX 2.1) |