
Открытый декларативный язык для моделирования киберрисков. Создавайте байесовские модели риска, такие как 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 (Risk as Code — Риск как код): предположения о рисках и соответствии становятся версионированными, проверяемыми артефактами, которые могут быть валидированы и выполнены единообразно в разных командах и инструментах.
Специалисты по кибербезопасности, комплаенсу и управлению рисками часто сталкиваются с одними и теми же практическими проблемами:
CRML решает эту проблему, стандартизируя описание моделей киберрисков и их входов/выходов, чтобы разные движки и организации могли обмениваться и выполнять одну и ту же модель с четкой валидацией и прослеживаемостью.
Качественные методы (красный/желтый/зеленый, «высокий/средний/низкий», оценки зрелости) полезны для коммуникации и расстановки приоритетов, но часто дают сбой, когда требуется:
Следующая эволюция — это количественное управление рисками: рассмотрение киберриска как оцениваемого распределения результатов, основанного на явных предположениях и данных, вычисляемого повторяемыми методами. Но количественные подходы масштабируются только тогда, когда модели стандартизированы — чтобы их можно было валидировать, проверять, повторно использовать и выполнять в различных инструментах и командах.
Цель CRML — стать этим стандартом: он делает модель переносимой, предположения явными, а результаты воспроизводимыми.
Представьте недалекое будущее, в котором CRML так же привычен для работы с рисками, как IaC для инфраструктуры:
В этом мире киберриск становится воспроизводимым, сопоставимым и автоматизируемым в разных командах, при этом сохраняя методологическое разнообразие.
См. Общая архитектура: wiki/Concepts/Architecture.md
Типичная организация может хранить CRML вместе с кодом обнаружения и инфраструктуры:
risk/models/ — сценарии и портфели в CRMLrisk/catalogs/ — версионированные каталоги средств защиты + атак (внутренние или внешние)risk/mappings/ — сопоставления телеметрии/средств защиты/угроз с владельцами и историей измененийcrml-lang validate на каждом PR; ночная задача запускает crml simulate и публикует дашбордыПример фрагмента (иллюстративный):
crml_scenario: "1.0"
meta:
name: "ransomware-baseline"
description: "Простая модель риска программ-вымогателей"
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
# Опционально, средства защиты, ориентированные на угрозы (позиция организации обычно относится к портфелям/оценкам)
controls:
- id: "org:iam.mfa"
effectiveness_against_threat: 0.35