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 Monte Carlo 引擎或貝葉斯/QBER 方法。通過標準化模型描述,CRML 確保了使用明確假設定義的相同風險情景,可以在各種符合規範的模擬平台上可靠地執行,從而極大地提高了可審計性、可重現性以及基於量化結果證明安全投資合理性的能力。

主要功能

CRML 專為為量化網路風險管理帶來嚴謹性和標準化而設計:

  • 獨立於引擎的設計 (Engine-Agnostic Design): 可與任何遵循 CRML 規範的模擬引擎無縫協作,包括支持 FAIR 風格蒙地卡羅 (Monte Carlo)、貝葉斯方法或精算模型的引擎。
  • 宣告式 YAML/JSON 格式: 模型使用人類可讀的 YAML 或 JSON 進行描述,易於閱讀、審核、版本控制(通過 Git)和稽核。
  • 控制有效性建模: 允許用戶明確量化安全控制(包括複雜的縱深防禦情景)如何降低整體風險暴露。
  • 中位數參數化 (Median-Based Parameterization): 通過允許直接指定常見分佈(如對數常態分佈)的中位數值,簡化了輸入過程。
  • 嚴格驗證: 整合了 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 生成,並在存儲庫結構中包含示例,以演示如何定義各種風險情景和控制對映。

CRML (Cyber Risk Modeling Language) | UStack