CRML

CRML

Zeron Research Labs / CyberSec Consulting LLC · 코딩

CRML(Cyber Risk Modeling Language)은 사이버 리스크 모델을 YAML 또는 JSON으로 기술하는 개방형 선언적 언어이며, Zeron Research Labs와 CyberSec Consulting LLC가 유지한다. 리스크 가정을 스프레드시트나 단일 벤더 도구 안에 가두는 대신, 모델과 텔레메트리 매핑, 출력을 검토 가능한 파일로 정의하고 이미 쓰고 있는 사이버 리스크 정량화 엔진으로 실행하게 한다. 오픈소스 리스크 도구로서 Python 리스크 라이브러리 형태로 제공되므로, 리스크를 코드로 다루는 팀은 다른 어떤 설정과 마찬가지로 숫자를 검증하고 버전 관리하며 재현할 수 있다.

CRML 미리보기

CRML 소개

CRML이란 무엇인가

CRML은 사이버 리스크 모델을 적어 두기 위한 언어이지, 계산하기 위한 언어가 아니다. 이 구분은 중요하다. 이 형식은 시나리오, 입력, 통제 가정, 예상 출력을 기술하고, 실제 계산은 선택한 엔진에 남는다. FAIR 방식의 몬테카를로 구성이든, 베이즈나 QBER 접근이든, 사내 플랫폼이든 상관없다. 선언적 리스크 모델은 그저 텍스트이므로 Git에 둘 수 있고, 검토를 거치고, 몇 달 뒤에도 같은 결과로 다시 실행할 수 있다.

이것이 코드로서의 리스크라는 발상이다. 컴플라이언스와 보안 가정이 버전 관리되는 산출물이 되면, 감사인과 분석가는 무엇을 모델링했고 어떤 파라미터를 썼으며 어떤 데이터가 결과를 뒷받침했는지 볼 수 있다. 아무도 재현할 수 없는 슬라이드 자료와는 큰 차이다.

그러면 이건 누구를 위한 것인가. 주로 설정을 이미 코드로 다루는 팀을 위한 것이다. 선언적 리스크 모델은 버전 관리에 넣어 둘 때만 값을 한다. 아니면 그냥 넘기면 된다.

지금 가장 큰 한계는 성숙도다. 이 프로젝트는 스스로를 활발히 개발 중인 초안이라고 부르므로 형식과 도구가 버전 사이에서 바뀔 수 있고, 그 위에 무언가를 만드는 사람은 변화를 각오해야 한다. 이는 실제 비용이다. 그래도 범위는 좁고 핵심 발상은 버틴다.

시작하기

  1. Python 3를 설치한 뒤 PyPI에서 pip install crml-lang과 pip install crml-engine으로 패키지를 추가한다.
  2. 리스크 모델, 텔레메트리 매핑, 출력 요건을 기술한 시나리오 문서를 YAML이나 JSON으로 작성한다.
  3. 함께 제공되는 JSON 스키마로 검증한다. 예를 들어 crml-lang의 validate 헬퍼로 파일을 불러오면 된다.
  4. 여러 시나리오가 공유 pack을 참조하면 포트폴리오를 묶어 자족적인 산출물 하나를 만든다.
  5. 계획을 정량화 엔진에 넘기거나 crml-engine의 결정적 파이프라인 단계로 실행한다.

제품 정보

CRML의 요금, 지원 플랫폼, 성능을 한눈에 확인해 보세요.

무료 플랜예
유료 플랜$0
플랫폼Python 3 (OS independent)
개발사Zeron Research Labs / CyberSec Consulting LLC
카테고리코딩
출시일Nov 2025
최근 업데이트Dec 2025
웹사이트 방문 수649.3M
웹사이트 글로벌 순위50
API 제공 여부예

추천 대상

이 도구가 가장 잘 맞는 사용자, 작업, 상황입니다.

사용자

  • 검토를 견디는 모델이 필요한 사이버 리스크·보안 분석가
  • 어떤 숫자가 어떻게 나왔는지 보여야 하는 컴플라이언스·감사 팀
  • 이미 Python을 쓰는 엔지니어 성향의 리스크 관리자

작업

  • 두 분석가가 같은 결과를 얻도록 리스크 시나리오를 기록한다
  • 사업부나 벤더 간 리스크를 비교한다
  • ATT&CK, CIS, NIST 같은 위협·통제 프레임워크를 매핑한다
  • 통제가 있을 때와 없을 때의 리스크를 모델링해 보안 지출을 정당화한다

활용 상황

  • 리스크 모델을 스프레드시트와 슬라이드에서 버전 관리로 옮겨, 변경을 코드처럼 검토한다.
  • 같은 모델을 매번 다시 쓰지 않고 서로 다른 정량화 엔진으로 실행한다.
  • 무엇을 모델링했는지에 대한 기술이 모델 자체 옆에 있으므로 감사용 증거를 요청 시 생성한다.

주요 기능

엔진에 독립적인 모델 기술

CRML은 특정 정량화 방법을 강요하지 않는다. 모델을 YAML이나 JSON으로 기술하면 FAIR 방식의 몬테카를로 구성, 베이즈나 QBER 엔진, 자체 플랫폼이 모두 같은 파일을 읽는다. 엔진 교체가 다시 쓰기 프로젝트가 아니게 된다. 큰 차이다. 바로 그것이 없애려고 만들어진 실무적 고통이다.

코드로서의 리스크 워크플로

요점 전체는 리스크 가정을 버전 관리되고 검토 가능한 산출물로 바꾸는 것이다. 모델은 일반 텍스트라서 Git, 풀 리퀘스트, CI에 들어가고, 분석가는 무엇이 왜 바뀌었는지 정확히 본다. 코드 리뷰 속에서 사는 팀에게 이곳은 리스크 작업의 자연스러운 집이다. 신비한 숫자는 이제 없다.

스키마 검증과 타입 지정 모델

crml-lang 패키지에는 Pydantic 모델, 함께 제공되는 JSON 스키마, 구조화된 검증기가 들어 있다. 무엇이든 실행되기 전에 명확한 통과 또는 실패를 얻으므로, 헛된 시뮬레이션 뒤가 아니라 이른 단계에서 잘못된 파라미터를 잡는다. 검증 보고서는 무언가 깨졌다는 사실만이 아니라 무엇이 깨졌는지 알려준다.

포트폴리오 묶기

여러 시나리오가 참조 pack을 공유하면 bundle_portfolio가 그것들을 하나의 자족적 산출물로 접어 넣는다. 묶기는 디스크에서도, 메모리상의 모델에서도 바로 읽을 수 있어 파일 시스템이 없는 파이프라인에서도 작동한다. 결과는 보관하거나 다른 팀에 넘길 수 있는 단일 객체다.

결정적 엔진 파이프라인

동반 패키지 crml-engine에는 포트폴리오를 결정적 파이프라인 계획으로 바꾸는 계획 단계가 있다. "무엇을 실행할지" 단계를 "실행하기"와 분리해 두므로 출력이 재현 가능하고 숫자가 이상할 때 디버깅하기 쉽다.

프레임워크와 카탈로그 유연성

ATT&CK, CIS, NIST, ISO, SCF 같은 위협·통제 프레임워크와 사내 카탈로그를 어느 하나에도 묶이지 않고 기술할 수 있다. 그런 프레임워크는 시간이 지나며 바뀌므로, 매핑을 버전 관리되는 형식으로 유지하면 업데이트가 모델을 조용히 망가뜨리지 않는다.

장단점

장점

  • MIT 라이선스 오픈소스라 라이선스 비용이 없고 스키마를 들여다볼 수 있다.
  • 엔진 독립적 설계라 모델이 단일 벤더의 정량화 도구에 묶이지 않는다.
  • 텍스트 기반 YAML과 JSON 모델은 Git, 검토, 자동화에 깔끔하게 들어간다.
  • 함께 제공되는 스키마 검증과 타입 지정 Python 모델이 시뮬레이션 실행 전에 오류를 잡는다.
  • 현재 버전은 Python 3용으로 `crml-lang`과 `crml-engine`이라는 이름으로 PyPI에서 설치된다.

단점

  • 프로젝트가 스스로를 활발히 개발 중인 초안이라고 부르므로 형식과 패키지가 버전 사이에서 바뀔 수 있다.
  • 완성품이 아니라 명세와 라이브러리라서, UI를 클릭하는 대신 코드와 YAML을 쓰게 된다.
  • 독립적인 클라우드 서비스나 그래픽 대시보드가 없어, 바로 쓸 수 있는 앱을 원하는 팀에는 맞지 않는다.

자주 묻는 질문

사이버 리스크 모델과 그 입력, 예상 출력을 적는 표준 방식을 준다. 기술과 검증은 언어가 맡고, 실제 정량화는 별도의 엔진이 한다.