
Linguaggio dichiarativo open-source per la modellazione del rischio informatico. Costruisci modelli di rischio bayesiani come QBER, motori Monte Carlo FAIR e piattaforme di quantificazione del rischio aziendale. Disponibile su PyPI.
Stato: Bozza. Questo progetto è in fase di sviluppo intenso e può cambiare senza preavviso. Accogliamo con favore input, segnalazioni e contributi. ⚠️ ATTENZIONE Questo codice è attualmente in fase di sviluppo sul ramo
crml-dev-1.3. Per l'ultimo lavoro in corso e la fonte della verità, vedere: https://github.com/Faux16/crml/tree/crml-dev-1.3
Versione: 1.2
Mantenuto da: Zeron Research Labs e CyberSec Consulting LLC
Supportato da:
CRML è un linguaggio di modellazione del rischio cyber aperto, dichiarativo, agnostico rispetto al motore e agnostico rispetto al framework di controllo/attacco. Fornisce un formato YAML/JSON per descrivere modelli di rischio cyber, mappature di telemetria, pipeline di simulazione, dipendenze e requisiti di output, senza obbligarti a un metodo di quantificazione specifico, motore di simulazione o catalogo di controlli/minacce.
CRML abilita RaC (Risk as Code): le ipotesi di rischio e conformità diventano artefatti versionati e revisionabili che possono essere validati ed eseguiti in modo coerente tra team e strumenti.
I professionisti della sicurezza informatica, conformità e gestione del rischio affrontano spesso gli stessi problemi pratici:
CRML affronta questo problema standardizzando la descrizione dei modelli di rischio cyber e dei loro input/output, in modo che diversi motori e organizzazioni possano scambiare ed eseguire lo stesso modello con una validazione e tracciabilità chiara.
I metodi qualitativi (rosso/ambra/verde, "alto/medio/basso", punteggi di maturità) sono utili per la comunicazione e la prioritizzazione, ma tendono a fallire quando è necessario:
La prossima evoluzione è la gestione quantificata del rischio: trattare il rischio cyber come una distribuzione stimabile di risultati, basata su ipotesi e dati espliciti, e calcolata con metodi ripetibili. Ma gli approcci quantificati scalano solo quando i modelli sono standardizzati — così possono essere validati, revisionati, riutilizzati ed eseguiti tra strumenti e team.
L'obiettivo di CRML è essere questo standard: rende il modello portabile, le ipotesi esplicite e i risultati riproducibili.
Immagina un futuro prossimo in cui CRML è normale per il lavoro sul rischio quanto lo IaC per l'infrastruttura:
In quel mondo, il rischio cyber diventa riproducibile, confrontabile e automatizzabile tra team — pur consentendo la diversità metodologica.
Vedi Architettura Generale: wiki/Concepts/Architecture.md
Un'organizzazione tipica potrebbe tenere CRML insieme al codice di rilevamento e infrastruttura:
risk/models/ — scenari e portafogli in CRMLrisk/catalogs/ — cataloghi di controlli + attacchi versionati (interni o esterni)risk/mappings/ — mappature di telemetria/controllo/minacce con proprietà e cronologia delle modifichecrml-lang validate su ogni PR; un job notturno esegue crml simulate e pubblica dashboardEsempio di snippet (illustrativo):
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