
Linguagem declarativa de código aberto para modelagem de risco cibernético. Construa modelos de risco bayesianos como QBER, mecanismos de Monte Carlo FAIR e plataformas empresariais de quantificação de risco. Disponível no PyPI.
Status: Rascunho. Este projeto está em desenvolvimento intenso e pode mudar sem aviso. Recebemos sugestões, issues e contribuições. ⚠️ AVISO Este código-fonte está atualmente sendo desenvolvido no branch
crml-dev-1.3. Para o trabalho em andamento mais recente e a fonte da verdade, consulte: https://github.com/Faux16/crml/tree/crml-dev-1.3
Versão: 1.2
Mantido por: Zeron Research Labs e CyberSec Consulting LLC
Apoiado por:
A CRML é uma Linguagem de Modelagem de Risco Cibernético aberta, declarativa, independente de motor e independente de frameworks de Controle/Ataque. Ela fornece um formato YAML/JSON para descrever modelos de risco cibernético, mapeamentos de telemetria, pipelines de simulação, dependências e requisitos de saída — sem forçar você a adotar um método de quantificação, um motor de simulação ou um catálogo de controles de segurança/ameaças específico.
A CRML viabiliza RaC (Risk as Code): premissas de risco e conformidade tornam-se artefatos versionados e revisáveis, que podem ser validados e executados de forma consistente entre equipes e ferramentas.
Profissionais de segurança cibernética, conformidade e gestão de riscos frequentemente enfrentam os mesmos problemas práticos:
A CRML resolve isso padronizando a descrição dos modelos de risco cibernético e suas entradas/saídas, de modo que diferentes motores e organizações possam trocar e executar o mesmo modelo com validação e rastreabilidade claras.
Métodos qualitativos (vermelho/âmbar/verde, “alto/médio/baixo”, pontuações de maturidade) são úteis para comunicação e priorização, mas tendem a falhar quando você precisa:
A próxima evolução é a gestão de risco quantificada: tratar o risco cibernético como uma distribuição estimável de resultados, fundamentada em premissas e dados explícitos, e calculada por métodos repetíveis. Mas abordagens quantificadas só escalam quando os modelos são padronizados — para que possam ser validados, revisados, reutilizados e executados entre ferramentas e equipes.
O objetivo da CRML é ser esse padrão: tornar o modelo portátil, as premissas explícitas e os resultados reproduzíveis.
Imagine um futuro próximo em que a CRML seja tão normal para o trabalho de risco quanto IaC é para infraestrutura:
Nesse mundo, o risco cibernético torna-se reproduzível, comparável e automatizável entre equipes — ao mesmo tempo em que permite diversidade metodológica.
Consulte a Arquitetura Geral: wiki/Concepts/Architecture.md
Uma organização típica pode manter a CRML junto ao código de detecção e infraestrutura:
risk/models/ — cenários e portfólios em CRMLrisk/catalogs/ — catálogos versionados de controles + ataques (internos ou externos)risk/mappings/ — mapeamentos de telemetria/controles/ameaças com responsáveis e histórico de alteraçõescrml-lang validate em cada PR; um job noturno executa crml simulate e publica dashboardsExemplo de trecho (ilustrativo):
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
Este repositório disponibiliza dois pacotes Python e uma interface web: