CRML icon

CRML

CRMLは、サイバーリスクモデリング向けのオープンソース宣言型言語です。YAMLまたはJSONで定量的リスクモデルを定義・検証・交換でき、複数のシミュレーションエンジンに対応します。

CRML

概要

CRML(Cyber Risk Modeling Language)は、サイバーリスクモデリング向けのオープンソース宣言型言語です。YAML または JSON でサイバーリスクモデルを表現するよう設計されており、シナリオ、テレメトリのマッピング、シミュレーションパイプライン、依存関係、出力要件を明示的に記述できます。

このプロジェクトは、定量化されたサイバーリスク分析をチーム横断でより再現可能かつ監査可能にする手段として CRML を位置づけています。Risk as Code のアプローチを支援し、仮定、マッピング、モデル出力をスプレッドシートや独自ツールに閉じ込めず、バージョン管理と検証の対象にします。

主な機能

宣言的なモデル定義

スプレッドシートやスライドに仮定を分散させるのではなく、YAML または JSON 形式でシナリオ、テレメトリのマッピング、シミュレーションパイプライン、依存関係、出力要件を記述できます。

Risk as Code ワークフロー

リスクに関する仮定をバージョン管理された成果物として扱い、チームやツールをまたいで一貫してレビュー、検証、実行できます。

制御効果のモデリング

ディフェンス・イン・デプスなどの制御をモデル化し、静的なコントロール一覧に限定せず、リスクをどのように低減するかを定量化できます。

定量的リスクのパラメータ化

中央値ベースのパラメータ化、多通貨対応の自動変換、損失データからの自動キャリブレーションを用いて、定量モデルを構築できます。

厳格な検証

シミュレーション前に JSON Schema でモデルを検証し、構造上のエラーを早期に検出できます。

実装非依存の実行

同じ CRML ドキュメントを複数の準拠エンジンで実行できるため、モデルを特定のシミュレーション実装から切り離せます。

一般的なユースケース

  • Git 上のバージョン管理されたリスクモデル

    CRML を使って、サイバーリスクのシナリオ、仮定、出力を、他の運用コードと並べてソース管理できるレビュー可能な形式で定義します。

  • 定量的な制御分析

    セキュリティ制御が期待される結果にどう影響するかを理解したいときに、制御効果とディフェンス・イン・デプスの仮定をモデル化します。

  • ポータブルなエンジンワークフロー

    FAIR スタイルのモンテカルロワークフロー、Bayesian または QBER エンジン、その他の準拠ランタイム間で同じモデルを交換し、ソースモデルを書き直さずに利用します。

  • シミュレーション前の検証

    モデル構造をシミュレーション実行前に検証し、マッピング、パラメータ、出力の問題をワークフローの早い段階で検出します。

  • カタログ駆動のモデル保守

    リスク、制御、脅威のカタログをモデルロジックとは別にバージョン管理し、フレームワークの変更をモデル全体の再構築ではなくマッピング更新で処理します。

Pros and Cons

Pros

  • サイバーリスクモデルを構造化された人間可読な形式で定義できます。
  • モデル作成と交換に YAML と JSON の両方をサポートしています。
  • シミュレーション前にモデルの問題を検出できるスキーマ検証を備えています。
  • モデルをエンジン非依存に保てるため、モデルロジックとランタイム実装を分離しやすくなります。
  • 制御効果、中央値ベースのパラメータ、多通貨モデリングなど、実務的な定量リスク要件をカバーしています。

Cons

  • リポジトリではプロジェクトはドラフト段階で活発に開発中とされており、API や動作が変更される可能性があります。
  • 対応ワークフローは準拠したシミュレーションエンジンに依存するため、CRML 自体は完全なリスクプラットフォームではなくモデリング言語です。

FAQ

CRMLは何に使われますか?

CRMLは、YAMLまたはJSONでサイバーリスクモデルを記述するための宣言型言語です。リポジトリには、CLI用の `crml-engine` と、検証およびシミュレーション用のブラウザUIである CRML Studio も含まれています。

CRMLはどのようなリスクモデルをサポートできますか?

ソースでは、CRMLはエンジン非依存であり、FAIRスタイルのモンテカルロエンジン、Bayesian/QBERモデル、その他の準拠したシミュレーションエンジンを含む、さまざまな定量化アプローチに対応すると説明されています。

このリポジトリではどのようなパッケージが提供されていますか?

リポジトリによると、`crml-lang` は言語/仕様モデル、スキーマ検証、YAML I/O を提供し、`crml-engine` は参照ランタイムと `crml` CLI を提供します。Web UI は `web/` 配下にあり、CRML Studio と説明されています。

どのようにインストールしますか?

リポジトリの案内では、CLI が必要な場合は `crml-engine` を、言語ライブラリだけが必要な場合は `crml-lang` をインストールするよう案内しています。

CRMLは本番利用に十分安定していますか?

プロジェクトページでは、コードベースは活発に開発中で予告なく変更される可能性があるとされており、最新の作業中の内容については `crml-dev-1.3` ブランチを参照するよう案内しています。

Quick Facts

カテゴリ
Developer Tool
主な用途
サイバーリスクモデリング
形式
YAML, JSON
パッケージ
`crml-lang`, `crml-engine`
プロジェクトの状態
ドラフト / 活発に開発中
ソースドメイン
github.com
CRML - AI Tool, Features, Use Cases & Alternatives | UStack