mcpField
O
openclaw-traffic-guardian

openclaw-traffic-guardian

github.com/prompt-securityセキュリティ1.1k51 回インストール今日更新
リポジトリ

openclaw-traffic-guardian について

OpenClaw のランタイム通信監視を構築するための仕様スキルです。プロキシやランタイム実装は含まず、承認が必要なソーシャルアカウント変更のレビューと、任意の OpenClaw ステータス連携も定めています。

主な機能

  1. 01HTTP 通信検査の範囲を規定
  2. 02プロセス単位の任意の HTTPS 検査
  3. 03外部流出、インジェクション、アカウント変更を検出
  4. 04秘匿化した検出結果と承認状況を記録
  5. 05任意の OpenClaw フックとステータス連携を規定

活用シーン

  1. 01OpenClaw のランタイム通信監視実装を計画
  2. 02自動ソーシャルアカウント書き込みの承認状況を確認
  3. 03秘匿化した脅威検出結果とステータスコマンドを設計

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/prompt-security/clawsec --skill openclaw-traffic-guardian

インストール後、Claude Code で/openclaw-traffic-guardianを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CHANGELOG.md
README.md
skill.json
SPEC.md
hooks/openclaw-traffic-guardian-hook/
.gitkeep
lib/
.gitkeep
scripts/
.gitkeep
test/
.gitkeep

詳細

OpenClaw Traffic Guardian

これは基本仕様のスキルです。意図的に、プロキシやランタイム実装はまだ含めていません。

Vercel Skills のインストール

このハーネスには Vercel Skills CLI を使用してインストールします。

npx skills add prompt-security/clawsec --skill openclaw-traffic-guardian -a openclaw -y

リリース成果物の検証

スタンドアロンでインストールする場合は、SKILL.md、skill.json、またはアーカイブを信頼する前に、署名済みリリースマニフェストを検証してください。skill.json ファイルはパッケージメタデータ/SBOM のソースであり、リリースパイプラインは ClawSec リリースキーで checksums.json に署名します。

set -euo pipefail

SKILL_NAME="openclaw-traffic-guardian"
VERSION="0.0.1-beta5"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
ZIP_NAME="${SKILL_NAME}-v${VERSION}.zip"
TMP_DIR="$(mktemp -d)"
trap 'rm -rf "$TMP_DIR"' EXIT

RELEASE_PUBKEY_SHA256="711424e4535f84093fefb024cd1ca4ec87439e53907b305b79a631d5befba9c8"

curl -fsSL "$BASE/checksums.json" -o "$TMP_DIR/checksums.json"
curl -fsSL "$BASE/checksums.sig" -o "$TMP_DIR/checksums.sig"
curl -fsSL "$BASE/signing-public.pem" -o "$TMP_DIR/signing-public.pem"
curl -fsSL "$BASE/$ZIP_NAME" -o "$TMP_DIR/$ZIP_NAME"
curl -fsSL "$BASE/SKILL.md" -o "$TMP_DIR/SKILL.md"
curl -fsSL "$BASE/skill.json" -o "$TMP_DIR/skill.json"

ACTUAL_PUBKEY_SHA256="$(openssl pkey -pubin -in "$TMP_DIR/signing-public.pem" -outform DER | shasum -a 256 | awk '{print $1}')"
if [ "$ACTUAL_PUBKEY_SHA256" != "$RELEASE_PUBKEY_SHA256" ]; then
  echo "ERROR: signing-public.pem fingerprint mismatch" >&2
  exit 1
fi

openssl base64 -d -A -in "$TMP_DIR/checksums.sig" -out "$TMP_DIR/checksums.sig.bin"
openssl pkeyutl -verify -rawin -pubin \
  -inkey "$TMP_DIR/signing-public.pem" \
  -sigfile "$TMP_DIR/checksums.sig.bin" \
  -in "$TMP_DIR/checksums.json" >/dev/null

hash_file() {
  if command -v shasum >/dev/null 2>&1; then
    shasum -a 256 "$1" | awk '{print $1}'
  else
    sha256sum "$1" | awk '{print $1}'
  fi
}

verify_manifest_file() {
  asset="$1"
  path="$2"
  expected="$(jq -r --arg asset "$asset" '.files[$asset].sha256 // empty' "$TMP_DIR/checksums.json")"
  if [ -z "$expected" ]; then
    echo "ERROR: checksums.json missing $asset" >&2
    exit 1
  fi
  actual="$(hash_file "$path")"
  if [ "$actual" != "$expected" ]; then
    echo "ERROR: checksum mismatch for $asset" >&2
    exit 1
  fi
}

expected_archive="$(jq -r '.archive.sha256 // empty' "$TMP_DIR/checksums.json")"
if [ -z "$expected_archive" ]; then
  echo "ERROR: checksums.json missing archive.sha256" >&2
  exit 1
fi
actual_archive="$(hash_file "$TMP_DIR/$ZIP_NAME")"
if [ "$actual_archive" != "$expected_archive" ]; then
  echo "ERROR: archive checksum mismatch" >&2
  exit 1
fi

verify_manifest_file "SKILL.md" "$TMP_DIR/SKILL.md"
verify_manifest_file "skill.json" "$TMP_DIR/skill.json"

echo "Signed release manifest, archive, SKILL.md, and skill.json verified."

この検証が成功してから、アーカイブをインストールまたは展開してください。

スコープ

ビルダーは、ランタイムトラフィック監視の OpenClaw ランディングゾーンとして、このスキルを使用してください。

  • オペレーター単位の HTTP プロキシ検査
  • プロセス単位の CA 信頼設定による、任意の HTTPS 検査
  • アウトバウンドの情報流出検出
  • インバウンドのインジェクション検出
  • 承認が必要なソーシャルアカウントの変更レビュー
  • ローカルの脅威ログの秘匿化
  • 任意の OpenClaw フック/ステータス連携

この機能を clawsec-scanner、openclaw-audit-watchdog、または soul-guardian に統合しないでください。これらのスキルは、信頼境界と安全性に関する契約が異なります。

安全性に関する契約

  • オプトインのみとします。
  • デフォルトでは検出とログ記録のみを行います。
  • システム CA を自動的にインストールしません。
  • グローバルな HTTP_PROXY または HTTPS_PROXY を変更しません。
  • 最初の実装ではブロックしません。
  • ログや会話アラートに記録する前に、シークレットを秘匿化します。
  • すべての状態を OPENCLAW_TRAFFIC_GUARDIAN_HOME または ~/.openclaw/security/clawsec/traffic-guardian の配下に保持します。

ビルダー向けのエントリーポイント

実装する前に SPEC.md を読んでください。プレースホルダーのフォルダーは次のように使用します。

パス想定用途
lib/検出ルール、秘匿化、イベントスキーマ、レポートの書式設定
scripts/起動、停止、ステータス、設定の検証、ログ検索ヘルパー
hooks/openclaw-traffic-guardian-hook/任意の OpenClaw フック/ステータス連携
test/単体テスト、プロキシフィクスチャテスト、秘匿化テスト、プロセススコープテスト

最初の実装で必須となる動作

  1. プロキシを起動せずに設定を検証します。
  2. 監視をフォアグラウンドまたは明示的なバックグラウンドモードで起動します。
  3. プロキシ環境変数の適用範囲を、対象の OpenClaw プロセスに限定します。
  4. HTTP のリクエスト/レスポンス本文テキストを、上限バイト数まで検査します。
  5. オペレーターがプロセス単位の信頼設定を指定した場合にのみ、任意の HTTPS MITM をサポートします。
  6. SPEC.md のアウトバウンド POLICY_REVIEW に該当するリクエストを、オペレーターによるレビューが必要な検出結果としてフラグ付けします。これには、TweetClaw やその他の X/Twitter 自動化による書き込み、および新しいオペレーター承認マーカーがない状態で繰り返されるスケジューラー/バックグラウンドランナーの実行が含まれます。
  7. パス、ヘッダー、ユーザーエージェント、クライアントコンテキスト、ツール呼び出しメタデータ、スケジューラー識別子など、上限を設けたリクエストメタデータから、繰り返し実行/バックグラウンドランナーのコンテキストを検出します。
  8. 秘匿化したスニペットに加え、ソースタイプ、変更カテゴリ、承認マーカーの有無、オペレーターによる直接操作かバックグラウンドランナーかを示すコンテキストを含む JSONL 形式の検出結果を出力します。
  9. モード、リスナー、存在する場合は CA フィンガープリント、最新の検出結果を報告する status コマンドを用意します。

v0.0.1 の実装対象外

  • システムの信頼ストアの自動変更
  • 透過的なネットワーク傍受
  • デフォルトでのブロック
  • 外部サービスへのトラフィック送信
  • リクエスト/レスポンス本文全体の収集

コメント