mcpField
C
Crml Code

Crml Code

本地服务
github.com/Faux16开发工具4033 周前更新

关于 Crml Code

CRML 是一种用 YAML 或 JSON 描述可移植网络风险模型的声明式语言,面向安全、合规和风险团队。它支持验证、审阅及跨不同模拟引擎执行;项目仍为草案,处于积极开发中。

主要功能

  1. 01用 YAML 和 JSON 描述模型
  2. 02基于 Schema 的验证
  3. 03参考模拟运行时与命令行工具
  4. 04控制有效性及纵深防御建模
  5. 05货币支持与损失数据校准
  6. 06浏览器版 CRML Studio

适用场景

  1. 01对网络风险假设进行版本管理和审阅
  2. 02在模拟前验证模型
  3. 03在不同量化引擎间复用模型
  4. 04比较控制措施投入方案

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

CRML — 网络风险建模语言


CRML - CRML 是一种用于将网络风险编写为代码的声明式语言 | Product Hunt

crml-lang crml-engine Python 3.9+ License: MIT

状态: 草案。本项目正在大力开发中,可能随时变更,恕不另行通知。 欢迎提出意见、反馈问题和贡献代码。 ⚠️ WARNING 此代码库目前正在 crml-dev-1.3 branch 上开发。有关最新的开发中版本和权威信息,请参阅: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 IO
  • crml-engine:参考运行时 + crml CLI(依赖 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

打开 http://localhost:3000

截图

模拟

验证器

文档

请参阅 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。