
FAIR CRQ 프레임워크의 구현
로컬에서 실행되는 오픈소스 플랫폼으로, FAIR v3.1(정보 위험 요인 분석) 프레임워크를 사용한 정량적 사이버 보안 위험 평가를 제공합니다. 위협 모델링, 몬테카를로 시뮬레이션 실행, 통제 효과 측정, 위험 포트폴리오 관리 — 모두 브라우저에서 가능하며 클라우드 계정이 필요 없습니다.
LM = PLM + SLEF × SLEM

| 요구 사항 | 버전 | 참고 |
|---|---|---|
| Node.js | 22.5 이상 | v22.5에서 도입된 내장 node:sqlite 모듈 사용 |
| npm | Node.js에 포함됨 | 별도 설치 불필요 |
brew install nodenvm install 22 && nvm use 22winget install OpenJS.NodeJS# 저장소 복제
git clone https://github.com/iiamit/CyberQRM.git
cd CyberQRM
# 설치 프로그램 실행 (Node 버전 확인, 모든 종속성 설치, ATT&CK 데이터 다운로드)
chmod +x install.sh
./install.sh
REM 저장소 복제 (Git Bash, PowerShell 또는 모든 터미널)
git clone https://github.com/iiamit/CyberQRM.git
cd CyberQRM
REM 설치 프로그램 실행 (더블 클릭 또는 터미널에서 실행)
install.bat
설치 프로그램은 다음을 수행합니다:
npm 종속성을 설치합니다.backend/data/ 디렉터리를 생성합니다../start.sh
두 개의 터미널 창이 열리며(또는 데스크톱이 없는 Linux에서는 백그라운드 프로세스) — 하나는 백엔드 API용, 다른 하나는 프론트엔드 개발 서버용입니다. 그런 다음 브라우저가 자동으로 열립니다.
start.bat
두 개의 콘솔 창(백엔드 및 프론트엔드)이 열립니다. 5초 후 브라우저가 자동으로 열립니다.
실행 후 앱에 접속하세요:
| 서비스 | URL |
|---|---|
| 프론트엔드 | http://localhost:5173 |
| 백엔드 API | http://localhost:3001 |
포트 5173이 이미 사용 중인 경우 Vite가 자동으로 5174로 전환합니다.
CyberQRM은 FAIR v3.1 방법론을 네 단계로 구현합니다:
다중 기준 자산 가치 평가 — 자산 가치 단계에서 "고급: 여러 평가 기준 사용"을 전환하여 각 가치 차원에 대한 별도 분포를 정의합니다. 시뮬레이션은 반복마다 모든 기준을 합산합니다.
1차 및 2차 손실 — 손실 영향 단계에서 "고급: 1차 및 2차 손실로 분할"을 전환하여 조건부 SLEF 확률로 1차 직접 비용과 2차 이해관계자 부과 비용(벌금, 평판 손상, 경쟁 손실)을 모델링합니다. 모든 금액은 절대 USD입니다.
MITRE ATT&CK — TEF 및 취약성 단계에서 기술 브라우저를 열어 전술별로 필터링하고, 이름 또는 ID로 검색하고, 관련 기술을 선택합니다. 플랫폼은 실제 세계 보급 계층(Red Canary / CTID 관찰 데이터 기반)을 기반으로 TEF 범위를 제안하고, 구현된 ATT&CK 완화 수에 따라 취약성 범위를 제안합니다.
데이터베이스는 첫 실행 시 자동 생성됩니다(backend/data/cyberqrm.db). 모든 데이터는 로컬 시스템에 남아 있습니다.
CyberQRM/
├── backend/ # Express.js + TypeScript API
│ ├── src/
│ │ ├── index.ts # 서버 진입점 (포트 3001)
│ │ ├── db/ # SQLite 어댑터, 스키마 및 마이그레이션
│ │ ├── routes/ # REST 엔드포인트 (시나리오, 통제, 포트폴리오, ATT&CK)
│ │ ├── services/ # 비즈니스 로직, 몬테카를로 엔진 및 ATT&CK 서비스
│ │ ├── data/ # attack-prevalence.json (번들 TEF 계층 데이터)
│ │ └── middleware/ # 오류 처리
│ └── data/ # SQLite 데이터베이스 + ATT&CK STIX 파일 (자동 생성)
├── frontend/ # React 18 + Vite + TypeScript
│ └── src/
│ ├── pages/ # 대시보드, 시나리오, 통제, 포트폴리오
│ ├── components/ # 차트, 양식, UI 기본 요소
│ │ └── forms/ # ScenarioForm, AttackTechniqueSelector,
│ │ # ValuationBasisList, PrimarySecondaryLossForm
│ ├── store/ # Zustand 상태 관리
│ └── utils/ # API 클라이언트, 포맷팅, 보고서 생성기
├── shared/ # 공유 TypeScript 타입 (FAIR 데이터 모델)
├── install.sh # macOS/Linux 설치 프로그램
├── install.bat # Windows 설치 프로그램
├── start.sh # macOS/Linux 실행 프로그램
└── start.bat # Windows 실행 프로그램
핫 리로딩으로 코드 작업을 하려면:
# 종속성 설치 (아직 하지 않은 경우)
./install.sh # macOS/Linux
install.bat # Windows
# 라이브 리로드로 두 서비스 시작
npm run dev # 프로젝트 루트에서 실행 (npm-run-all 필요)
# 또는 개별적으로 시작
npm run dev:backend
npm run dev:frontend
프로덕션 번들을 빌드하려면:
npm run build
# 그런 다음 컴파일된 백엔드 실행:
cd backend && npm start
# 정적 파일 서버로 frontend/dist 제공
기여는 언제나 환영합니다. 중요한 변경 사항이 있으면 먼저 이슈를 열어 논의해 주세요.
git checkout -b feature/your-feature).MIT — 자세한 내용은 LICENSE를 참조하세요.
이 프로젝트는 FAIR™ (Factor Analysis of Information Risk) 온톨로지를 구현합니다. FAIR는 FAIR Institute의 상표입니다.
ATT&CK®는 MITRE Corporation의 등록 상표입니다. ATT&CK 콘텐츠는 ATT&CK 이용 약관에 따라 사용됩니다.
| 상태 확인 | http://localhost:3001/api/health |
| 계층 | 기술 |
|---|
| 프론트엔드 프레임워크 | React 18, TypeScript, Vite |
| 스타일링 | Tailwind CSS |
| 상태 관리 | Zustand, TanStack React Query |
| 차트 | Recharts |
| 백엔드 프레임워크 | Express.js, TypeScript |
| 데이터베이스 | Node.js 내장 node:sqlite를 통한 SQLite |
| 검증 | Zod |
| 위협 인텔리전스 | MITRE ATT&CK Enterprise (STIX 2.1) |