
OpenCREの動作と詳細については、https://www.opencre.org をご覧ください。 OpenCREはOpen Common Requirement Enumerationの略称です。これは、セキュリティ標準とガイドラインを統合するためのインタラクティブなコンテンツリンクプラットフォームです。安全なソフトウェアの設計、開発、テスト、調達において、関連情報への簡単かつ堅牢なアクセスを提供します。
OpenCREは以下で構成されています:
アプリケーションやデータ(カタログまたは標準マッピング)への貢献方法については、Contributing をご覧ください。ぜひご参加ください!
/rest/v1/openapi.yaml)ロードマップについては、issues をご覧ください。
公開されているopencre.org上のOpenCREアプリケーションは自由に使用できます。それとは別に、例えば独自のセキュリティ標準やガイドラインを含めたい場合など、自分自身で実行することもできます。これを myOpenCRE と呼びます。
OpenCREをローカルで実行する最も簡単な方法は、公開されているDockerコンテナを実行することです。以下のコマンドで実行できます:
docker run -p 5000:5000 ghcr.io/owasp/opencre/opencre:latest
コンテナがリモート情報のダウンロードを完了した後、http://127.0.0.1:5000 でアクセスできます。
OpenCREの開発を行いたい場合、または環境でDockerが利用できない場合は、代わりにCLI経由で実行することもできます。
Docker以外で実行するには、OpenCREをインストールする必要があります。このアプリケーションをインストールするには、Python 3、yarn、virtualenvが必要です。
リポジトリをクローン:
git clone https://github.com/OWASP/OpenCRE
(推奨)Python仮想環境を作成して有効化:
python3 -m venv venv
source venv/bin/activate
依存関係のインストール:
make install
以下のコマンドで、上流から最新のCREグラフをダウンロード:
make upstream-sync
インポート後にローカルのギャップ分析キャッシュを事前計算するには:
make backfill-gap-analysis
OpenCREをローカルで実行するには:
make dev-flask
CLIアプリケーションを実行するには:
python cre.py --help
CRE + 標準のタクソノミーをCSVにエクスポートするには(CI対応):
python cre.py --export --csv <path/to/output.csv>
例:
python cre.py --export --csv artifacts/cres_and_standards.csv
注意:
--export は専用のエクスポートモードで、CSV書き込み後に終了します。--export 使用時は --csv が必須です。リモートのCREスプレッドシートをローカルにダウンロードするには:
python cre.py --review --from_spreadsheet <google sheets url>
リモートのスプレッドシートをローカルデータベースに追加するには:
python cre.py --add --from_spreadsheet <google sheets url>
開発用のWebアプリケーションを実行するには:
make start-containers
make start-worker
# 別のシェルで
make dev-flask
または、Dockerfileを使って:
make docker && make docker-run
Gap Analysisなどの一部の機能はneo4j DBの実行が必要です。以下のコマンドで開始できます:
make docker-neo4j
欠落しているギャップ分析ペアのバックフィルのみを実行するには(Flaskを起動せずに):
RUN_COUNT=8 bash scripts/backfill_gap_analysis.sh
本番運用では、scripts/db/ 内の専用スクリプトを使用してください。これらのスクリプトは安全策を強制し、DB変更前に常に最新のバックアップを取得します。
APP_NAME=opencreorg scripts/db/backup-opencreorg.shAPP_NAME=opencreorg SOURCE_DB_URL="postgresql://cre:[email protected]:5432/cre" scripts/db/sync-local-to-opencreorg.shAPP_NAME=opencreorg scripts/db/surgery-opencreorg.sh --sql-file ./tmp/change.sql破壊的な手術(DELETE、DROP、TRUNCATE、取り消し不可なALTER)には、以下を使用:
APP_NAME=opencreorg \
CONFIRM_DESTRUCTIVE=I_UNDERSTAND_OPENCREORG_PROD_DB_DESTRUCTIVE_ACTION \
scripts/db/surgery-opencreorg.sh --sql-file ./tmp/destructive-change.sql --destructive
ラン・ブック:
docs/runbooks/opencreorg-db-sync-and-surgery.mddocs/runbooks/opencreorg-db-destructive-ops-checklist.mdアプリケーションがneo4jDBに接続するための環境変数(デフォルト):
NEO4J_URL (neo4j//neo4j:password@localhost:7687)本番用Webアプリケーションを実行するにはgunicornが必要で、cre_syncディレクトリ内から以下のコマンドを実行:
make prod-run
OpenCREはmacOSで完全にサポートされています。以下の注意事項はオプションであり、macOSシステムでローカルにOpenCREを実行する貢献者を支援するためのものです。
Homebrewを使用して必要なツールをインストール:
brew install [email protected] yarn make
注: Python 3.11を推奨します。新しいバージョンのPythonでは依存関係の非互換性が発生する可能性があります。
Pythonバージョンの確認:
python3 --version
Python 3を使用して仮想環境を作成し、有効化:
python3 -m venv venv
source venv/bin/activate
pipのアップグレード:
pip install --upgrade pip
標準のワークフローで依存関係をインストール:
make install
ビルドの問題が発生した場合は、Xcode Command Line Toolsがインストールされていることを確認:
xcode-select --install
上流のCREデータを同期(インターネットアクセスが必要):
make upstream-sync
次にローカルサーバーを起動:
make dev-flask
アプリケーションは以下のURLで利用可能:
http://127.0.0.1:5000
ヒント: ほとんどのmacOSユーザーにとって、Docker経由での実行が最も簡単で信頼性の高い方法です。
OpenCRE APIを使用して独自のセキュリティガイドラインや標準を追加する方法については、myOpenCREユーザーガイド を参照してください。
本番用または開発用のDockerイメージは以下のコマンドでビルドできます:
make docker-prod
make docker-dev
OpenCREが使用する環境変数は以下の通りです:
設定ファイルのサンプルをコピー:
cp .env.example .env
その後、.env を編集し、環境に適した値を設定します。
DEV_DATABASE_URLNEO4J_URLREDIS_HOST, REDIS_PORT, REDIS_URL, REDIS_NO_SSLFLASK_CONFIG, INSECURE_REQUESTSNO_GEN_EMBEDDINGS, CRE_EMBED_MODEL, CRE_EMBED_EXPECTED_DIM, CRE_VALIDATE_EMBED_DIM_ON_INITCRE_LLM_CHAT_MODEL, CRE_EMBED_ALIGN_MODEL, , 完全なリストとデフォルト値は .env.example を参照してください。
OpenCREはLLM呼び出しにLiteLLMを使用します。モデルとプロバイダ認証情報は環境変数を介して設定します。
推奨される最小限の例:
# Chat / completion models (LiteLLM model strings)
CRE_LLM_CHAT_MODEL=gemini/gemini-2.5-flash
CRE_EMBED_ALIGN_MODEL=gemini/gemini-2.5-flash
# Embedding model used for persisted vectors
CRE_EMBED_MODEL=gemini/gemini-embedding-001
CRE_EMBED_EXPECTED_DIM=3072
CRE_VALIDATE_EMBED_DIM_ON_INIT=1
# Retry policy
CRE_LLM_MAX_RETRIES=2
CRE_LLM_RETRY_SLEEP_SECONDS=15
# Provider credential (example for Gemini)
GEMINI_API_KEY=your-key
注意:
CRE_EMBED_MODEL または CRE_EMBED_EXPECTED_DIM の変更はデータ移行イベントとして扱ってください(通常は再埋め込みが必要です)。CRE_EMBED_EXPECTED_DIM は安全ガードです:次元が一致しない場合、書き込みは迅速に失敗します。コンテナは以下で実行できます:
make docker-prod-run
make docker-dev-run
バックエンドテストは以下で実行:
make test
カバレッジレポートは以下で取得:
make cover
カバレッジは70%以上を維持するようにしてください。
CRE_LLM_MAX_RETRIESCRE_LLM_RETRY_SLEEP_SECONDSOPENAI_API_KEY, GEMINI_API_KEY, GCP_NATIVEGOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_SECRET_JSON, LOGIN_ALLOWED_DOMAINSGCP_NATIVEOpenCRE_gspread_AuthCRE_ENABLE_HEALTH(GET /rest/v1/health デプロイ/アップタイムプローブを有効化。デフォルトでは無効、未設定時は404を返す)、CRE_ENABLE_MYOPENCRE(GET /api/capabilities でMyOpenCREを公開。デフォルトでは無効)、CRE_ENABLE_LOGIN(capabilities.login 経由でログイン/ログアウトUIを公開。デフォルトでは無効)