
لغة تعريفية مفتوحة المصدر لنمذجة المخاطر السيبرانية. أنشئ نماذج مخاطر بايزية مثل QBER ومحركات FAIR لمونت كارلو ومنصات قياس المخاطر على مستوى المؤسسات. متاحة على PyPI.
الحالة: مسودة. هذا المشروع قيد التطوير المكثف وقد يتغير دون إشعار. نرحب بمدخلاتكم وملاحظاتكم ومساهماتكم. ⚠️ تحذير يتم حاليًا تطوير قاعدة الأكواد هذه على فرع
crml-dev-1.3. لأحدث الأعمال قيد التنفيذ والمصدر المرجعي، انظر: https://github.com/Faux16/crml/tree/crml-dev-1.3
الإصدار: 1.2
تتم الصيانة بواسطة: Zeron Research Labs وCyberSec Consulting LLC
بدعم من:
CRML هي لغة نمذجة مخاطر سيبرانية مفتوحة وتصريحية، غير مرتبطة بمحرك معين وغير مرتبطة بإطار تحكم / هجوم معين. توفر تنسيق YAML/JSON لوصف نماذج المخاطر السيبرانية، وتعيينات التليمترية، وخطوط أنابيب المحاكاة، والتبعيات، ومتطلبات المخرجات — دون إجبارك على طريقة تكميم محددة، أو محرك محاكاة، أو كتالوج ضوابط أمان / تهديدات محدد.
تمكّن CRML مفهوم RaC (المخاطر كرمز): تصبح افتراضات المخاطر والامتثال أصولًا مُدارة بالإصدارات وقابلة للمراجعة، يمكن التحقق منها وتنفيذها بشكل متسق عبر الفرق والأدوات.
غالبًا ما يواجه متخصصو الأمن السيبراني والامتثال وإدارة المخاطر نفس المشكلات العملية:
تعالج CRML هذا من خلال توحيد وصف نماذج المخاطر السيبرانية ومدخلاتها/مخرجاتها، بحيث يمكن للمحركات والمؤسسات المختلفة تبادل وتنفيذ النموذج نفسه مع تحقق وتتبع واضحين.
الأساليب النوعية (أحمر/كهرماني/أخضر، «مرتفع/متوسط/منخفض»، درجات النضج) مفيدة للتواصل وتحديد الأولويات، لكنها تميل إلى الانهيار عندما تحتاج إلى:
التطور التالي هو إدارة المخاطر الكمية: التعامل مع المخاطر السيبرانية كتوزيع قابل للتقدير للنتائج، يرتكز على افتراضات وبيانات صريحة، ويُحسب بطرق قابلة للتكرار. لكن الأساليب الكمية لا تتوسع إلا عندما تكون النماذج موحّدة — بحيث يمكن التحقق منها ومراجعتها وإعادة استخدامها وتنفيذها عبر الأدوات والفرق.
هدف CRML هو أن تكون هذا المعيار: فهي تجعل النموذج محمولًا، والافتراضات صريحة، والنتائج قابلة لإعادة الإنتاج.
تخيل مستقبلًا قريبًا تكون فيه CRML أمرًا طبيعيًا في أعمال المخاطر كما هو الحال مع IaC في البنية التحتية:
في ذلك العالم، تصبح المخاطر السيبرانية قابلة لإعادة الإنتاج والمقارنة والأتمتة عبر الفرق — مع السماح في الوقت نفسه بالتنوع المنهجي.
انظر البنية العامة: wiki/Concepts/Architecture.md
قد تحتفظ مؤسسة نموذجية بـ CRML بجانب كود الكشف والبنية التحتية:
risk/models/ — السيناريوهات والمحافظ بصيغة CRMLrisk/catalogs/ — كتالوجات الضوابط + الهجمات المُدارة بالإصدارات (داخلية أو خارجية)risk/mappings/ — تعيينات التليمترية/الضوابط/التهديدات مع الملكية وسجل التغييراتcrml-lang validate عند كل طلب سحب؛ وتشغّل مهمة ليلية أمر crml simulate وتنشر لوحات المعلوماتمقتطف مثال (توضيحي):
crml_scenario: "1.0"
meta:
name: "ransomware-baseline"
description: "A simple ransomware risk model"
scenario:
frequency:
basis: per_organization_per_year
model: poisson
parameters:
lambda: 0.15
severity:
model: lognormal
parameters:
median: "250 000"
currency: USD
sigma: 1.2
# Optional, threat-centric controls (org posture typically belongs in portfolios/assessments)
controls:
- id: "org:iam.mfa"
effectiveness_against_threat: 0.35
يضم هذا المستودع حزمتي Python وواجهة ويب:
crml-lang: نماذج اللغة/المواصفات + التحقق من المخطط + إدخال/إخراج YAMLcrml-engine: بيئة التشغيل المرجعية + واجهة سطر الأوامر crml (تعتمد على crml-lang)web/: CRML Studio — واجهة متصفح للتحقق والمحاكاة (Next.js)إذا كنت تريد واجهة سطر الأوامر:
pip install crml-engine
إذا كنت تريد مكتبة اللغة فقط:
pip install crml-lang
# or with SCF support:
pip install "crml-lang[scf]"
crml-lang validate examples/scenarios/qber-enterprise.yaml
crml simulate examples/scenarios/data-breach-simple.yaml --runs 10000
# Import SCF Catalog from Excel
crml-lang scf-import-catalog path/to/SCF_2025.xlsx scf-catalog.yaml
التحميل والتحقق:
from crml_lang import CRScenario, validate
scenario = CRScenario.load_from_yaml("examples/scenarios/data-breach-simple.yaml")
report = validate("examples/scenarios/data-breach-simple.yaml", source_kind="path")
print(report.ok)
تشغيل محاكاة:
from crml_engine.runtime import run_simulation
result = run_simulation("examples/scenarios/data-breach-simple.yaml", n_runs=10000)
print(result.metrics.eal)
crml_lang/ — حزمة اللغة/المواصفاتcrml_engine/ — حزمة المحرك المرجعيweb/ — واجهة ويب (Next.js)examples/ — نماذج YAML مثال لـ CRML وإعدادات أسعار الصرف (FX)wiki/ — مصدر التوثيق (MkDocs)يقع CRML Studio في web/.
شغّله محليًا:
pip install crml-engine
cd web
npm install
npm run dev


انظر المستندات في wiki/ (ابدأ من wiki/Home.md).
قواعد قابلية التشغيل البيني مع OSCAL والتعيين: wiki/Guides/OSCAL.md.
دليل تكامل SCF والتعيين: wiki/Guides/SCF.md.
أنواع المستندات الحالية:
crml_scenario: "1.0" مع scenario: في المستوى الأعلىcrml_portfolio: "1.0" مع portfolio: في المستوى الأعلىترخيص MIT — انظر LICENSE.