
CRML
Zeron Research Labs / CyberSec Consulting LLC · Programmation
CRML (Cyber Risk Modeling Language) est un langage ouvert et déclaratif pour décrire des modèles de cyberrisque en YAML ou JSON, maintenu par Zeron Research Labs et CyberSec Consulting LLC. Au lieu d'enfermer les hypothèses de risque dans des feuilles de calcul ou dans l'outil d'un seul fournisseur, il vous laisse définir le modèle, ses correspondances de télémétrie et ses sorties sous forme de fichiers relisibles, puis les exécuter avec le moteur de quantification du cyberrisque que vous utilisez déjà. En tant qu'outil de risque open source, il est livré comme bibliothèque de risque Python, si bien que les équipes qui traitent le risque as code peuvent valider, versionner et reproduire leurs chiffres comme n'importe quelle autre configuration.

À propos de CRML
Qu'est-ce que CRML
CRML est un langage pour écrire des modèles de cyberrisque, pas pour les calculer. Cette distinction compte. Le format décrit les scénarios, les entrées, les hypothèses de contrôle et les sorties attendues, tandis que le calcul réel reste dans le moteur de votre choix, qu'il s'agisse d'un montage Monte Carlo de type FAIR, d'une approche bayésienne ou QBER, ou d'une plateforme interne. Comme un modèle de risque déclaratif n'est que du texte, il peut vivre dans Git, passer par une relecture et être relancé des mois plus tard avec le même résultat.
C'est l'idée du risque as code. Quand les hypothèses de conformité et de sécurité deviennent des artefacts versionnés, auditeurs et analystes voient ce qui a été modélisé, quels paramètres ont été utilisés et quelles données ont alimenté le résultat. Loin d'une présentation que personne ne peut reproduire.
Alors, à qui cela s'adresse-t-il ? Surtout aux équipes qui traitent déjà la configuration comme du code. Un modèle de risque déclaratif ne vaut le coup que si vous le gardez sous contrôle de version. Sinon, laissez tomber.
La principale limite aujourd'hui, c'est la maturité. Le projet se décrit lui-même comme un brouillon en plein développement, donc le format et l'outillage peuvent changer d'une version à l'autre, et quiconque construit dessus doit s'attendre à des évolutions. Cela a un coût réel. La portée reste néanmoins étroite et l'idée centrale tient.
Pour commencer
- Installez Python 3, puis ajoutez les paquets depuis PyPI avec
pip install crml-langetpip install crml-engine. - Rédigez un document de scénario en YAML ou JSON décrivant votre modèle de risque, vos correspondances de télémétrie et vos exigences de sortie.
- Validez-le contre le schéma JSON fourni, par exemple en chargeant le fichier via l'aide
validatedecrml-lang. - Regroupez un portefeuille si plusieurs scénarios partagent des packs communs, ce qui produit un seul artefact autonome.
- Remettez le plan à votre moteur de quantification, ou utilisez l'étape de pipeline déterministe de
crml-enginepour l'exécuter.
Informations sur le produit
Aperçu des tarifs, des plateformes compatibles et des performances de CRML.
Idéal pour
Les utilisateurs, tâches et cas d'usage où cet outil convient le mieux.
Utilisateurs
- Analystes en cyberrisque et en sécurité qui ont besoin de modèles capables de survivre à une relecture
- Équipes conformité et audit qui doivent montrer comment un chiffre a été produit
- Gestionnaires de risque à l'esprit d'ingénieur qui utilisent déjà Python
Tâches
- Documenter un scénario de risque pour que deux analystes obtiennent le même résultat
- Comparer le risque entre unités métier ou fournisseurs
- Cartographier des référentiels de menaces et de contrôles comme ATT&CK, CIS ou NIST
- Justifier une dépense de sécurité en modélisant le risque avec et sans un contrôle
Cas d'usage
- Faire sortir les modèles de risque des feuilles de calcul et des présentations vers le contrôle de version, où les changements sont relus comme du code.
- Exécuter le même modèle sur différents moteurs de quantification sans le réécrire à chaque fois.
- Produire des preuves prêtes pour l'audit à la demande, puisque la description de ce qui a été modélisé vit à côté du modèle lui-même.
Fonctionnalités clés
Descriptions de modèle indépendantes du moteur
CRML ne vous impose pas de méthode de quantification. Vous décrivez le modèle en YAML ou JSON, et un montage Monte Carlo FAIR, un moteur bayésien ou QBER, ou votre propre plateforme lisent le même fichier. Changer de moteur cesse donc d'être un projet de réécriture. Sacrée différence. C'est la douleur pratique qu'il a été conçu pour supprimer.
Flux de travail risque as code
Tout l'objectif est de transformer les hypothèses de risque en artefacts versionnés et relisibles. Comme les modèles sont du texte brut, ils s'intègrent à Git, aux pull requests et à la CI, si bien qu'un analyste voit exactement ce qui a changé et pourquoi. Pour les équipes qui vivent déjà dans la relecture de code, c'est la maison naturelle du travail de risque. Fini les chiffres mystérieux.
Validation de schéma et modèles typés
Le paquet crml-lang fournit des modèles Pydantic, un schéma JSON intégré et un validateur structuré. Vous obtenez un succès ou un échec clair avant toute exécution, ce qui repère les paramètres mal formés tôt plutôt qu'après une simulation gâchée. Les rapports de validation disent ce qui a cassé, pas seulement que quelque chose a cassé.
Regroupement de portefeuille
Quand plusieurs scénarios partagent des packs référencés, bundle_portfolio les fond en un seul artefact autonome. Le regroupement peut lire depuis le disque ou directement depuis des modèles en mémoire, donc il fonctionne aussi dans un pipeline sans système de fichiers. Le résultat est un objet unique que vous pouvez archiver ou transmettre à une autre équipe.
Pipeline de moteur déterministe
Le paquet complémentaire crml-engine inclut une étape de planification qui transforme un portefeuille en plan de pipeline déterministe. Il sépare la phase « quoi exécuter » de celle « exécuter », ce qui rend la sortie reproductible et plus facile à déboguer quand les chiffres semblent faux.
Souplesse des référentiels et catalogues
Les référentiels de menaces et de contrôles comme ATT&CK, CIS, NIST, ISO et SCF, plus les catalogues internes, peuvent être décrits sans vous enfermer dans l'un d'eux. Comme ces référentiels évoluent avec le temps, garder la correspondance dans un format versionné évite que les mises à jour cassent votre modèle en silence.
Avantages et inconvénients
Avantages
- Open source sous licence MIT, donc aucun coût de licence et un schéma inspectable.
- Une conception indépendante du moteur, si bien que votre modèle n'est pas lié à l'outil de quantification d'un seul fournisseur.
- Des modèles YAML et JSON en texte brut qui s'intègrent proprement à Git, à la relecture et à l'automatisation.
- La validation de schéma fournie et les modèles Python typés repèrent les erreurs avant qu'une simulation tourne.
- La version actuelle s'installe depuis PyPI sous les noms `crml-lang` et `crml-engine` pour Python 3.
Inconvénients
- Le projet se qualifie lui-même de brouillon en plein développement, donc le format et les paquets peuvent changer d'une version à l'autre.
- C'est une spécification et une bibliothèque, pas un produit fini, donc vous écrirez du code et du YAML au lieu de cliquer dans une interface.
- Pas de service cloud ni de tableau de bord graphique autonome, ce qui l'écarte pour les équipes qui veulent une application prête à l'emploi.
Questions fréquentes
Il vous donne une façon standard d'écrire des modèles de cyberrisque, leurs entrées et leurs sorties attendues. Le langage gère la description et la validation, tandis qu'un moteur distinct assure la quantification proprement dite.
Contenus associés
Découvrez des outils, des compétences et des articles liés à CRML.
Alternatives à CRML
Base Code
Base44 (Wix) · Programmation · ProductivitéBase Code est un environnement de développement cloud partagé signé Base44. Votre équipe décrit des modifications sur un dépôt GitHub dans le chat, les vérifie en aperçu et les renvoie sous forme de pull requests.
Google EmbeddingGemma 2
Google DeepMind · Rédaction · Image · ProgrammationGoogle EmbeddingGemma 2 est un modèle ouvert de 740 millions de paramètres qui transforme texte, code, images, audio et images vidéo en vecteurs d'un même espace de 768 dimensions, sur un téléphone ou un ordinateur portable.
GitGlow
GitGlow · Programmation · ProductivitéGitGlow est un client Git de bureau qui place votre code et les modifications de vos agents IA dans une même revue, pour savoir ce qui quitte votre machine avant de livrer.
