
ローカルで動作するオープンソースのプラットフォームで、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
これにより、2つのターミナルウィンドウ(またはデスクトップ環境がないLinuxではバックグラウンドプロセス)が開きます。1つはバックエンドAPI、もう1つはフロントエンド開発サーバー用です。その後、ブラウザが自動的に開きます。
start.bat
2つのコンソールウィンドウ(バックエンドとフロントエンド)が開きます。5秒後にブラウザが自動的に開きます。
起動後、以下のURLでアプリにアクセスできます:
| サービス | URL |
|---|---|
| フロントエンド | http://localhost:5173 |
| バックエンドAPI | http://localhost:3001 |
ポート5173が既に使用中の場合は、Viteが自動的に5174に切り替えます。
CyberQRMはFAIR v3.1の方法論を4つのステップで実装しています:
複数基準の資産評価 — Asset Valueステップで「高度:複数の評価基準を使用」をトグルすると、各価値次元に個別の分布を定義できます。シミュレーションでは、イテレーションごとにすべての基準が合計されます。
一次損失と二次損失 — Loss Impactステップで「高度:一次損失と二次損失に分割」をトグルすると、一次の直接コストと二次のステークホルダー負担コスト(罰金、評判損害、競争上の損失)を条件付きSLEF確率でモデル化できます。すべての金額は絶対値の米ドルです。
MITRE ATT&CK — TEFおよびVulnerabilityステップで、手法ブラウザを開いて戦術でフィルタリングしたり、名前や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™(情報リスクの因子分析)のオントロジーを実装しています。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 |
| データベース | SQLite(Node.js組み込みのnode:sqlite経由) |
| バリデーション | Zod |
| 脅威インテリジェンス | MITRE ATT&CK Enterprise(STIX 2.1) |