
自己ホスト型OpenClawインストール向けのオフライン、読み取り専用のハードニングチェック — ゲートウェイ露出、認証、CVE-2026-25253。シークレットを出力せず、ネットワークコールを行いません。
このスクリプトは読み取りのみを行います。何も修正せず、安全であることを保証するものではありません。緑色の出力は、以下にリストされたチェックが合格したことのみを意味します。それ以上の意味はありません。
openclaw-hardening-check.mjs は、依存関係のない小さなオフラインスクリプトで、OpenClaw インストールのレビューを行います。ローカル設定、パッケージメタデータ、プラグインとスキルのマニフェスト、ファイルモード、そしてLinuxでは実行中のGatewayの /proc のエントリを読み取ります。ファイルを変更したり、OpenClaw コマンドを呼び出したり、レジストリに接続したり、ネットワークリクエストを送信したりすることはありません。
gateway.bind がループバックのみ、非ループバック、または実行時に依存するかを報告します。検出された Docker、Podman、Kubernetes、Fly コンテナ内で未設定または auto のバインドは、OpenClaw のコンテナデフォルトと一致する 0.0.0.0 として扱われます。実行中の Linux Gateway は個別にチェックされるため、コマンドラインまたはサービスオーバーライドが安全な設定値の背後に隠れることはできません。gateway.auth.token および .password)をモデル化します。認証情報を測定する前に、${VAR}、、、、および構造化された SecretRef を認識します。認証環境の証拠は、一致する Gateway プロセス、、または状態 からのみ取得され、監査プロセスからは取得されません。シークレット値は決して出力されません。レポートには、存在、ソースクラス、長さのみが含まれます。公開された例のプレースホルダーと24文字未満のトークンはフラグが立てられます。$VARsecretref-env:VAR__env__:VARgateway.systemd.env.env2026.1.29 より前のバージョンは影響を受けるものとして扱われます。この脆弱性により、クエリ文字列 gatewayUrl が Gateway トークンを開示する WebSocket 接続をトリガーする可能性がありました。詳細は NVD エントリ および OpenClaw アドバイザリ を参照してください。latest、beta、main などの変動するターゲットを区別します。npm と pnpm はインストールされたパッケージ内に元の要求された dist-tag を保持しないため、スクリプトはその来歴がない場合は推測せずに「チェックできません」と報告します。.env、gateway.systemd.env、発見された auth-profiles.json ファイル、および解決されたファイル SecretRef について、グループ/ワールドへの露出や予期しない所有者をチェックします。dist-runtime/extensions を含む)を、状態、設定ディレクトリ、管理、ワークスペース、個人、設定済み、または npm プロジェクトの場所にあるアイテムとは別に一覧表示します。バンドルされていないアイテムは手動レビューのためにマークされ、悪意があるとラベル付けされることはありません。/proc/net/tcp* ソケットの inode を Gateway エントリファイルまたはバイナリプロセスにマッピングし、それらが所有するすべての非ループバック TCP リスナーにフラグを立てます。期待されるポート上のリスナーで所有者が確認できない場合は、「Gateway が実行されていません」ではなく「チェックできません」と出力されます。チェックは Gateway が停止している場合でもディスクから機能します。パスとデフォルトは、公式の設定ドキュメント、設定リファレンス、Gateway 公開ランブック、スキルドキュメント、およびプラグイン管理ドキュメントに従います。
スクリプトを OpenClaw が動作するマシンにコピーし、同じ OS ユーザーで実行します。
node openclaw-hardening-check.mjs
OpenClaw のデフォルト設定は ~/.openclaw/openclaw.json です。スクリプトは OPENCLAW_CONFIG_PATH、OPENCLAW_STATE_DIR、OPENCLAW_GATEWAY_PORT も認識します。
非デフォルトレイアウトや再現可能なピンチェックのために、オプションのオーバーライドが利用可能です。
node openclaw-hardening-check.mjs \
--config /srv/openclaw/openclaw.json \
--state-dir /srv/openclaw \
--package-root /opt/openclaw/lib/node_modules/openclaw \
--install-spec 2026.6.10
--install-spec は、インストーラーまたはデプロイ定義で元々使用されたターゲットでなければなりません。現在インストールされているバージョンをその来歴を確認せずに渡しても、デプロイが固定されていることの証明にはなりません。
チェッカーは秘密自体を出力することはないため、公開可能な形式ではソースと長さのみが記録されます。
OpenClaw hardening check
読み取り専用、オフライン。シークレット値は決して出力されません。
Config: ~/.openclaw/openclaw.json
[PASS] Config: ~/.openclaw/openclaw.json を読み込みましたが、内容は出力しません。
[PASS] Gateway bind: ループバック。ローカルアクセスのみに設定されています。
[PASS] Gateway authentication: Gateway プロセス環境ブートストラップを介して存在、長さ 48。値は出力されませんでした。
[PASS] Listening sockets: OpenClaw TCP リスナーはループバックのみ:127.0.0.1:18789、[::1]:18789。
[PASS] CVE-2026-25253: インストール済みパッケージバージョン 2026.6.10 は 2026.1.29 以上です。
[PASS] Installation pin: 正確なターゲット 2026.6.10 がこのチェックのために記録されました。
[WARN] Third-party plugins: 1: example-plugin。自分で確認してください。マルウェアの判定は試みていません。
Summary: セキュリティ上の問題は見つかりませんでした。あなたの確認のために 1 つの項目がフラグされました。終了コード 0。
秘密の値:[REDACTED — 出力には決して含まれません]。
サマリーは、セキュリティ問題(FAIL)、手動レビューアイテム(WARN)、不完全なチェック(CANNOT CHECK)を別々にカウントします。WARN と CANNOT CHECK の結果だけではプロセスは失敗しません。FAIL の場合のみ終了コード 1 が返ります。
| Code | 意味 |
|---|---|
0 | FAIL セキュリティ問題は見つかりませんでした。WARN または CANNOT CHECK の結果が存在する可能性があります。 |
1 | 少なくとも 1 つの FAIL セキュリティ問題に対処する必要があります。 |
2 | コマンドラインが無効であるか、設定が見つからない、読み取れない、インクルードできない、または安全にパースできません。 |
/proc が必要です。他のプラットフォームでは明示的に「チェックできません」という結果が返ります。@latest を解決したかどうかを通常は証明できません。信頼できるデプロイメントの来歴を --install-spec で提供してください。テストスイートは node:test と一時ディレクトリのみを使用します。
node --test test/openclaw-hardening-check.test.mjs
Ilya Prudnikov — cain-ai.com