2026_OPENCLAW
GATEWAY_
SURFACE_
BIND_AUDIT.

// 課題:Gateway は動くが 0.0.0.0 や Webhook/管理ポートが文書化されていない。ClawHub スキルは pin と差分確認があるか。Docker は $HOME 丸ごとマウントではないか。結論bind/リバプロ/Tailscale/SSH 対照、五段階強化、スキル監査、read-only root + ボリューム許可リスト。関連:三経路インストールDocker 本番systemd/launchd移行MEMORY/トークン無応答診断SSH/VNCプラン

ネットワークセキュリティの概念図

1. 痛みの分解:露出は開放ポート以上の問題

(1)バインドの意味0.0.0.0 は全 IF 待受で手早いが、本番ではゲスト無線等と組み合わさり危険が増す。IPv6 漏れや片手間修正で公開面が復活する。リスナー監査はリリース毎に繰り返す。

(2)スキル層のサプライチェーン:ClawHub スキルは依存を引く。CI に解決グラフとハッシュを保存し、未レビューでハッシュが漂ったらビルドを止める。

(3)コンテナ:read-only でも緩いボリューム許可はシークレット流出の穴。注入下では seccomp/AppArmor でホスト権限を重ねる。

2. アクセストポロジ・マトリクス

モード 向く場面 コスト/注意
127.0.0.1 のみ ソロ開発、LAN 露出の最小化 リモートはトンネル必須;ローカルマルウェアはループバックに届き得る
リバースプロキシ+TLS(必要なら mTLS) TLS 終端、ログ集約、レート制限 証明書ライフサイクル;上流を平文のまま伸ばさない
Tailscale/WireGuard 公開管理ポートなしのチーム遠隔 端末インベントリとポート単位 ACL;退職端末の失効
SSH -L インシデント対応、ジャンプホスト既存 人間のトンネルは劣化する;恒久対策はアプリの bind 修正

主パターンは環境ごとに一つ、切替時はヘルスと代表スキルへ同一スモーク。リバプロ上流の全 IF 再待受を防ぎ、Tailscale は ACL 後に短い到達性テストを残す。

3. 五段階ハードニング・ランブック

  1. データフローを描く:チャネル入口、ゲートウェイ待受、モデル出口、ワークスペース入出力。欠けた辺は暗黙の 0.0.0.0 に繋がりやすい。
  2. バインド契約を凍結する:アドレス・ポート・TLS 終端を文書化し、変更は PR と待受の前後差分で行う。
  3. スキルを固定し監査する:取得元 URL/コミット、導入時刻、必要権限を記録。更新は差分レビュー付きのみ。
  4. 読み取り専用コンテナ雛形:read-only ルート、tmpfs または専用キャッシュボリューム、明示ワークスペースマウント。便宜のためのフル $HOME は禁止。
  5. 観測とロールバック:リモート IP、チャネル ID、スキル終了コードをログ化。ワンクリック戻し手順は systemd/launchd ガイド に沿って維持する。
# 健全性チェック(環境に合わせて調整) # ゲートウェイはループバックまたは名前付き tailnet IP のみで待受か? # リバプロの上流はループバックを指し、再び 0.0.0.0 になっていないか?

4. 引用しやすい閾値

  • チームが 30 分以内正確なバインドアドレスとポート一覧を出せないなら 設定ドリフト高とみなし、新チャネル追加前に文書と自動プローブを凍結する。
  • スキルが 15 個超かつ 半数超がハッシュ/ソース未レビューなら 四半期監査+版固定を義務化する。
  • コンテナの書き込み可能パスが 業務上最小集合を超えてホスト秘密と重なるなら、次の変更窓で マウント分割する。

5. リモート Mac ゲートウェイの兆候と対応

シグナル アクション
ノートのスリープでチャネル切断/Webhook 滞留 専用リモート Mac または VPS へ移し、電源と launchd を検証—SSH/VNC 選択ガイド
GPU/トランスコードとポートやメモリを争奪 プロセスまたはホストを分離する
管理者がオフィス LAN 外で運用する必要 Tailscale ACL と tailnet 内バインドのみ;公開エッジは Webhook 用プロキシに限定
アップグレード後の認証ずれ 無応答診断ランブックを実施し、移行手順に沿ってバックアップを確認

6. FAQ:現場が実際に抱える判断

問:本番で 0.0.0.0 を許すべきか。 チケット・期限・ロールバック付きの意図的例外のみ。既定はループバックか名前付き tailnet+プロキシ。ベンダーの「全 IF」は WAN 承認なしならループバック+リバプロへ翻訳する。

問:Webhook と管理/デバッグの分離は。 ホスト名・パス・レート枠・可能なら証明書を分ける。認証なしでヘルスと Webhook を同一接頭に混ぜない。ログに種別タグを付けノイズを切る。

問:ClawHub 導入前の最低監査は。 発行者、コミット/ tarball ハッシュ、宣言権限、外向き先、固定版の読み取り専用差分。資格情報パスやグロブ拡大は第二レビュア必須。

問:自動更新は。 内部レジストリ・検証ミラー・CI 固定スモークがある時のみ。公開 latest はサンドボックスに閉じ、長寿命トークン本番と分離する。

問:MEMORY.md は。 断片やパスがデータ面を広げる。権限・暗号化・バックアップをアプリ秘密並みに扱い、MEMORY/トークン運用と併せて設計する。

問:read-only 下の設定や ACL・SSH は。 許可ボリューム・tmpfs・不変設定のみ。chmod 逃げは拒否。ACL は人事突合と拒否ログ観測。SSH フォワードは非常口のみ、定常は bind+メッシュを優先し長期は失効日を記録する。

7. 深掘り:ガバナンスがアドホックな FW 調整に勝つ

不可信チャネルと強力ツールの交差点。バインド・上流 TLS はアプリ変更管理へ、ポート PR にプローブ。スキルは版固定+ハッシュ、動くタグ上流はミラー昇格。最小マウントを図示し GPU 争奪なら分離。リモート Mac は常時答えだがパッチと秘密ローテが代償。四半期ロールバックと二世代ダイジェスト、ログ最小化とオーナーで緊急拡張の赤線を守る。

8. オブザーバビリティとアラート経路

ルート別 QPS、スキルエラー、p95、再起動、署名失敗、ディスク急増を計装。アラートはバインド/スキル担当にも届ける。変更 ID はメトリに載せ個情は抑え、図外リスナーを定期確認。

シグナル 取得方法 最初の切り分け
管理 UI が想定外 ASN からプローブされる 方針が許す範囲で ASN を残したリバプロアクセスログ バインド、IPv6 リスナー、クラウドセキュリティグループを確認
スキル p95 の劣化 スキル名とメジャー版ごとのヒストグラム モデルエンドポイント、ディスク I/O、競合バッチを確認
launchd またはコンテナの再起動嵐 集中ログと終了コード read-only パスへの書き込み、ヘルスチェック失敗を疑う
外向き接続の扇状拡散 ホストフローログまたは利用可能なら eBPF 要約 最近更新したスキルに新ドメインが無いか差分する

9. セキュリティレビュー向けエビデンスパック

待受一覧、マスクプロキシ、注釈 ACL、read-only 強調 Compose/K8s、ハッシュ付きスキル表、直近二回ロールバック演習ログを一枚紙に添付する。

10. 締め:「手元では動く」を本番チャネルから切り離す

ノートはスリープや VPN で不安定化しやすい。専用リモート Mac/サーバで予測性を得る。MACGPU は容量を借りる摩擦を下げる。文書化表面へ外部スキャンし不一致を欠陥扱いにし、バインド・遠隔パターン・スキル・最小マウントに計測と証跡を重ねる。

11. インストール経路の整合:npm、Docker、systemd/launchd

npm/Compose/pnpm で状態とロールバックが異なる。OS ごとゴールデンを一本化し短表にまとめる。三経路比較Docker 本番デプロイsystemd/launchdを相互リンクする。

12. 週次オペレータリズム:七つの確認

  1. 稼働中リスナーを凍結済みバインド契約と差分比較し、漂いがあればチケット化する。
  2. Webhook 署名エラー率を確認し、チャネル事業者のステータスページと突き合わせる。
  3. スキル版を走査し、浮動 latest や移動タグを固定する。
  4. ワークスペースとメモリファイルのバックアップ成功を確認する。
  5. ログと成果物ディレクトリのディスク増加を監視し、飽和前にローテートする。
  6. Tailscale または VPN の端末台帳を現職員・委託先と突合する。
  7. ステージングで前世代のゴールデンアーティファクトを用いた制御されたロールバック演習を行う。

七項目は五ステップを補完しドリフトを捕捉。年数回鍵漏洩テーブルトップでローテ速度を確認。