关于 Crml Code
CRML 是一种用 YAML 或 JSON 描述可移植网络风险模型的声明式语言,面向安全、合规和风险团队。它支持验证、审阅及跨不同模拟引擎执行;项目仍为草案,处于积极开发中。
主要功能
- 01用 YAML 和 JSON 描述模型
- 02基于 Schema 的验证
- 03参考模拟运行时与命令行工具
- 04控制有效性及纵深防御建模
- 05货币支持与损失数据校准
- 06浏览器版 CRML Studio
适用场景
- 01对网络风险假设进行版本管理和审阅
- 02在模拟前验证模型
- 03在不同量化引擎间复用模型
- 04比较控制措施投入方案
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
CRML — 网络风险建模语言
状态: 草案。本项目正在大力开发中,可能随时变更,恕不另行通知。 欢迎提出意见、反馈问题和贡献代码。 ⚠️ WARNING 此代码库目前正在
crml-dev-1.3branch 上开发。有关最新的开发中版本和权威信息,请参阅:https://github.com/Faux16/crml/tree/crml-dev-1.3
版本: 1.2
维护方: Zeron Research Labs 和 CyberSec Consulting LLC
支持方:
- 社区贡献者和早期采用者
CRML 是一种开放的、声明式的、与引擎无关且与控制 / 攻击框架无关的网络风险建模语言。 它提供 YAML/JSON 格式,用于描述网络风险模型、遥测映射、模拟流水线、依赖关系和输出要求,而不强制使用特定的量化方法、模拟引擎或安全控制 / 威胁目录。
CRML 支持 RaC(风险即代码):风险和合规假设将成为有版本管理、可审查的制品,可在不同团队和工具中得到一致的验证和执行。
问题陈述(CRML 要解决的问题)
网络安全、合规和风险管理专业人士经常面临相同的实际问题:
- 风险模型被锁定在电子表格、演示文稿或专有工具中,难以审查、审计、复现和自动化。
- 控制有效性和“纵深防御”假设的记录方式不一致,导致结果因分析师和季度而异。
- 威胁和控制框架(例如 ATT&CK、CIS、NIST、ISO、SCF、内部目录)会随时间变化;它们未提供一致的机器可读格式;映射脆弱,且很少进行版本管理。
- 量化引擎各不相同(FAIR 风格的 Monte Carlo、Bayesian/QBER、精算模型、内部平台),导致重写和重新诠释的成本高昂。
- 可供审计的证据支离破碎:很难证明“建模了什么、使用了哪些参数和数据,以及生成了哪些输出”。
CRML 通过标准化网络风险模型及其输入 / 输出的描述来解决这些问题,使不同的引擎和组织能够交换并执行同一模型,同时提供清晰的验证和可追溯性。
为什么定性评估还不够
定性方法(红/黄/绿、“高/中/低”、成熟度评分)有助于沟通和确定优先级,但在以下情况下往往难以奏效:
- 通过比较投资前后的预期风险,为安全支出(或新的安全产品)提供合理依据
- 在各业务部门、供应商或不同时期之间一致地比较风险
- 展示控制措施带来的可衡量风险降低(而不只是“安全态势有所改善”)
- 将网络风险与企业风险、保险和财务规划联系起来
- 提供可重复、满足审计要求的证据,说明“这个数字是如何计算出来的”
下一阶段是量化风险管理:将网络风险视为可估算的结果分布,以明确的假设和数据为依据,并通过可重复的方法计算。 但只有模型标准化,量化方法才能大规模应用,这样才能跨工具和团队进行验证、审查、复用和执行。
CRML 的目标就是成为这一标准:让模型具有可移植性、假设明确、结果可复现。
主要功能
- 控制有效性建模 — 量化控制措施如何降低风险(包括纵深防御)
- 基于中位数的参数化 — 直接为对数正态分布指定中位数
- 多币种支持 — 支持跨币种建模并自动换算
- 自动校准 — 根据损失数据校准分布
- 严格验证 — 通过 JSON Schema 验证,在模拟前发现错误
- 不依赖具体实现 — 可与任何兼容的模拟引擎配合使用
- 易读的 YAML — 易于阅读、审查和审计
愿景(CRML 成为标准的世界)
设想在不久的将来,CRML 对风险管理而言就像 IaC 对基础设施一样普遍:
- 安全架构师通过更新 CRML 文档提出新的控制计划;变更在 Git 中接受同行审查,差异一目了然。
- GRC 和审计团队可以将每项指标追溯到经过验证且有版本记录的模型(输入、假设、映射和输出)。
- 不同的量化引擎(供应商平台、内部 FAIR 蒙特卡洛、贝叶斯 QBER、保险精算模型)都使用相同的 CRML 文档。
- 框架变更通过更新目录/映射(同样有版本记录)来处理,而不必重写模型逻辑。
- 组织可以与合作伙伴、保险公司和监管机构交换模型,而无需发送电子表格或屏幕截图。
- 网络安全主管机构可以用 CRML 发布年度威胁态势报告,以编码比叙述性 PDF 更丰富的信息(假设、分布、依赖关系、控制基线和映射),同时受益于业界提交的更标准化、机器可读的数据。
在这样的世界里,网络风险可以跨团队复现、比较并自动化处理,同时仍允许方法多样化。
参见总体架构:wiki/Concepts/Architecture.md
简短示例(“标准化 CRML”的样子)
典型组织可能会将 CRML 与检测和基础设施代码一同保存:
risk/models/— CRML 中的场景和投资组合risk/catalogs/— 有版本记录的控制措施和攻击目录(内部或外部)risk/mappings/— 包含责任归属和变更历史的遥测/控制/威胁映射- CI 会在每个 PR 上运行
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 包和一个 Web UI:
crml-lang:语言/规范模型 + 模式验证 + YAML IOcrml-engine:参考运行时 +crmlCLI(依赖crml-lang)web/:CRML Studio — 用于验证和模拟的浏览器 UI(Next.js)
安装
如果需要 CLI:
pip install crml-engine
如果只需要语言库:
pip install crml-lang
# or with SCF support:
pip install "crml-lang[scf]"
快速入门(CLI)
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
快速入门(Python)
加载并验证:
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/— Web UI(Next.js)examples/— CRML YAML 模型和 FX 配置示例wiki/— 文档源文件(MkDocs)
CRML Studio
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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。