Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
crml — 开源声明式网络风险建模语言。可用于构建如QBER、FAIR蒙特卡洛引擎等贝叶斯风险模型,以及企业风险量化平台。可在PyPI上获取。 | Kitploit
工具/GitHubGitHub/faux16/crml
漏洞分析威胁情报论文与研究学习与教育
GitHubfaux16/crml

crml

开源声明式网络风险建模语言。可用于构建如QBER、FAIR蒙特卡洛引擎等贝叶斯风险模型,以及企业风险量化平台。可在PyPI上获取。

查看仓库网站
371035个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CRML — 网络风险建模语言(Cyber Risk Modeling Language)


CRML - CRML is a declaritive language for writing cyberrisk as code | Product Hunt

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

状态: 草案。本项目正处于大量开发阶段,可能随时变更。 欢迎提交意见、问题和贡献。 ⚠️ 警告 该代码库目前正在 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 解决什么)

网络安全、合规和风险管理专业人员常常面临相同的实际问题:

  • 风险模型被锁定在电子表格、幻灯片或专有工具中,难以审查、审计、复现和自动化。
  • 控制有效性及“纵深防御”假设的记录不一致,导致不同分析师、不同季度的结果各异。
  • 威胁和控制框架(如 ATT&CK、CIS、NIST、ISO、SCF、内部目录)随时间变化;缺乏一致的机器可读格式;映射关系脆弱且很少进行版本管理。
  • 量化引擎各不相同(FAIR 风格的蒙特卡洛、贝叶斯/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 并发布仪表板

示例片段(说明性):

root@kitploit:~
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

本仓库提供两个 Python 包和一个 Web UI:

  • crml-lang:语言/规范模型 + 模式验证 + YAML 输入输出
  • crml-engine:参考运行时 + crml 命令行界面(依赖 crml-lang)
  • web/:CRML Studio — 用于验证和仿真的浏览器 UI(Next.js)

安装

如果你需要命令行界面:

root@kitploit:~
pip install crml-engine

如果你只需要语言库:

root@kitploit:~
pip install crml-lang
# 或启用 SCF 支持:
pip install "crml-lang[scf]"

快速开始(命令行)

root@kitploit:~
crml-lang validate examples/scenarios/qber-enterprise.yaml
crml simulate examples/scenarios/data-breach-simple.yaml --runs 10000

# 从 Excel 导入 SCF 目录
crml-lang scf-import-catalog path/to/SCF_2025.xlsx scf-catalog.yaml

快速开始(Python)

加载并验证:

root@kitploit:~
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)

运行仿真:

root@kitploit:~
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/ 中。

本地运行:

root@kitploit:~
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

下载工具