UStackUStack
CRML (Cyber Risk Modeling Language) favicon

CRML (Cyber Risk Modeling Language)

CRML 是一种开源的声明式语言(YAML/JSON 格式),旨在标准化网络风险模型的描述,使其独立于特定的执行引擎,并支持“风险即代码”(Risk as Code, RaC)的原则。

CRML (Cyber Risk Modeling Language)

什么是 CRML (Cyber Risk Modeling Language)?

什么是 CRML (Cyber Risk Modeling Language)?

CRML,即网络风险建模语言,是一个开源的声明式规范,旨在解决现代网络风险量化中普遍存在的碎片化和不一致性问题。它提供了一种标准化的 YAML/JSON 格式,用于定义复杂的网络风险模型,包括遥测映射、模拟管道、控制依赖关系和所需的输出。CRML 的核心理念是实现风险即代码(Risk as Code, RaC),将风险和合规性假设转化为可版本控制、可审查和可执行的工件,从而能够在不同的团队和工具之间保持一致的验证。

该语言充当了一个抽象层,将模型定义执行引擎分离。这意味着组织不再受限于专有工具或特定的量化方法论,例如 FAIR 蒙特卡洛引擎或贝叶斯/QBER 方法。通过标准化模型描述,CRML 确保了用明确假设定义的相同风险情景能够在各种兼容的模拟平台上可靠地执行,从而极大地提高了可审计性、可再现性以及基于量化结果证明安全投资合理性的能力。

关键特性

CRML 旨在为定量网络风险管理带来严谨性和标准化:

  • 独立于引擎的设计: 可与任何遵循 CRML 规范的模拟引擎无缝协作,包括支持 FAIR 风格蒙特卡洛、贝叶斯方法或精算模型的引擎。
  • 声明式 YAML/JSON 格式: 模型使用人类可读的 YAML 或 JSON 描述,易于阅读、审查、版本控制(通过 Git)和审计。
  • 控制有效性建模: 允许用户明确量化安全控制(包括复杂的纵深防御场景)如何降低总体风险敞口。
  • 基于中位数的参数化: 通过允许直接指定常见分布(如对数正态分布)的中位数值,简化了输入过程。
  • 严格验证: 纳入 JSON Schema 验证,在模拟开始之前捕获模型定义中的结构和逻辑错误,从而节省时间和防止结果出现偏差。
  • 多币种支持: 通过支持不同货币之间的自动转换,便于全球风险建模。
  • 自动校准: 具有根据提供的损失数据自动校准分布的机制。

如何使用 CRML (Cyber Risk Modeling Language)

开始使用 CRML 涉及使用声明式规范定义风险模型结构。工作流程通常遵循以下步骤:

  1. 定义模型结构: 创建一个 CRML 文件(通常是 YAML 格式),概述风险情景。这包括定义威胁事件、损失事件频率、损失事件幅度以及它们之间的关系。
  2. 映射控制和假设: 明确定义范围内的安全控制,并根据 CRML 规范量化其有效性(例如,使用降低因子或概率修正因子)。
  3. 指定模拟要求: 详细说明所需的输出、验证检查以及任何特定的模拟参数(如蒙特卡洛运行次数或贝叶斯先验值)。
  4. 使用兼容引擎执行: 将标准化的 CRML 文件输入到兼容的模拟引擎中(例如,自定义的 FAIR 引擎或贝叶斯求解器)。由于模型是标准化的,引擎确切地知道如何解释输入并运行计算。
  5. 审查和版本控制: 由于模型现在是一个版本化的工件(类似于基础设施即代码),它可以被跟踪在源代码管理中,由同行审查,并用作风险决策的可审计证据。

用例

对于正在从定性风险评估转向严谨、可辩护的量化的组织来说,CRML 是无价的:

  1. 证明安全支出合理性: 量化实施特定控制措施(例如,MFA 推广)所实现的预期年度损失(ALE)降低情况,以便向高管层或董事会申请预算。
  2. 企业风险汇总: 标准化跨不同业务部门或地理区域的风险模型,以便能够与企业级财务目标进行一致的汇总和比较网络风险敞口。
  3. 供应商风险管理: 为关键的第三方供应商创建标准化的、机器可读的风险画像,从而能够根据内部基准自动比较其安全态势。
  4. 审计和合规可追溯性: 生成不可变的、带版本的记录,明确地将最终风险数字与其计算中使用的确切假设、控制映射和数据联系起来,以满足严格的审计要求。
  5. 建模纵深防御: 精确模拟多重重叠控制措施来缓解单一威胁的复杂安全架构,确保风险降低不会被重复计算。

常见问题 (FAQ)

问:CRML 是专有的,还是我可以使用任何工具来使用它? 答:CRML 是一种开源的声明式语言。它有意设计为独立于引擎。任何实现了 CRML 规范的模拟平台都可以处理和执行以该格式定义的模型。

问:CRML 与 FAIR 等既定框架之间有什么关系? 答:CRML 旨在描述可能使用 FAIR 原理或其他方法论执行的模型。它标准化了风险情景的输入结构,允许您在标准化的、可移植的文件格式中使用 FAIR 概念(如威胁事件频率和损失幅度)。

问:该项目是否稳定到可以用于生产环境? 答:该项目目前正在大力开发中(如存储库中所述)。虽然核心概念是稳健的,但用户应关注开发分支(crml-dev-1.3),并准备好在项目达到稳定的主要版本之前可能出现的破坏性更改。

问:CRML 如何帮助解决不一致的控制文档问题? 答:通过强制将控制有效性和纵深防御假设纳入结构化的 YAML/JSON 定义中,CRML 消除了对不一致的电子表格或叙述性文档的依赖。每位分析师都使用相同的机器可读定义,确保控制对最终风险计算的影响方式保持一致。

问:我在哪里可以找到官方文档或示例? 答:该项目维护文档,通常通过 MkDocs 生成,并在存储库结构中包含示例,以演示如何定义各种风险情景和控制映射。

Alternatives

Devin favicon

Devin

Devin 是一个 AI 编码代理和软件工程师,帮助开发者更快地构建更好的软件。

imgcook favicon

imgcook

imgcook 是一款智能工具,只需单击一下即可将设计稿转换为高质量、可投入生产的代码。

Radian favicon

Radian

Radian 是一个开源的 React 和 Tailwind CSS 设计与开发库,旨在提供高品质、可复用的组件、动画和区块,帮助开发者构建现代网页应用。它强调速度、可扩展性和简洁性,是团队加快开发流程同时保持设计一致性的理想选择。该库支持设计到代码的无缝同步,方便将 Figma 等设计工具中的更改快速反映到代码中,确保像素级的精确度,减少手动调整时间。其模块化架构和高质量基础组件使开发者可以快速组装稳健的应用,无需牺牲灵活性或质量。无论是从零开始构建新项目,还是优化现有项目,Radian 都提供丰富的组件、动画和设计区块,满足多样化的开发需求。其开源特性鼓励社区贡献和持续改进,是现代网页开发的未来解决方案。

SkillKit favicon

SkillKit

SkillKit 提供了一套通用的技能集,允许开发人员编写一次代码指令,并将其部署到 32 种不同的 AI 编码代理上,从而确保一致性和广泛的兼容性。

腾讯扣叮 favicon

腾讯扣叮

腾讯扣叮是一个集成了多种编程工具和资源的平台,旨在帮助开发者提升编程技能和项目管理能力。

CodeSandbox favicon

CodeSandbox

CodeSandbox 是一个云开发平台,使开发人员能够从任何设备以创纪录的时间编写、协作和交付任何规模的项目。

CRML (Cyber Risk Modeling Language) | UStack