nanoclaw-traffic-guardian について
nanoclaw-traffic-guardian は、NanoClaw にランタイム通信監視を追加するためのベースライン仕様スキルです。プロキシやランタイムの実装は含まず、オプトイン、検知と記録、マスキング、ホストとコンテナの境界を定めます。
主な機能
- 01NanoClaw の通信監視仕様
- 02HTTP 検査と任意の HTTPS MITM
- 03外向きの情報流出と内向きのインジェクション検知
- 04ローカルのマスキング済み検知結果と MCP ステータスツール
- 05ホスト管理のプロキシライフサイクルとコンテナ向け IPC
活用シーン
- 01NanoClaw の通信監視実装の計画
- 02CA キーと通信ログの安全な扱いの定義
- 03MCP クライアントへのマスキング済み状態と検知結果の提供
MCP 対応
実装では、状態と検知結果を返す MCP ツールを想定しています。応答にはマスキング済みの検知結果のみを含めます。このスキル自体にはツールの実装はありません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ prompt-security/ clawsec --skill nanoclaw-traffic-guardianインストール後、Claude Code で/nanoclaw-traffic-guardianを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.mdREADME.mdskill.jsonSPEC.mdhost-services/.gitkeeplib/.gitkeepmcp-tools/.gitkeeptest/.gitkeep詳細
NanoClaw トラフィックガーディアン
これはベースライン仕様のスキルです。意図的に、プロキシやランタイムの実装はまだ含めていません。
Vercel Skills のインストール
このハーネスには、Vercel Skills CLI を使ってインストールします。
npx skills add prompt-security/clawsec --skill nanoclaw-traffic-guardian -a openclaw -y
リリースアーティファクトの検証
スタンドアロンでインストールする場合は、SKILL.md、skill.json、またはアーカイブを信頼する前に、署名済みのリリースマニフェストを検証してください。skill.json ファイルはパッケージのメタデータ/SBOM のソースであり、リリースパイプラインは ClawSec リリースキーで checksums.json に署名します。
set -euo pipefail
SKILL_NAME="nanoclaw-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."
検証に成功した後でのみ、アーカイブをインストールまたは展開してください。
スコープ
ビルダーは、このスキルをランタイムのトラフィック監視用 NanoClaw ランディングゾーンとして使用してください。
- ホスト側での HTTP プロキシ検査
- ホストが保持する CA 素材を使用した、任意の HTTPS 検査
- 外向きのデータ流出検出
- 内向きのインジェクション検出
- ローカルでの脅威ログの秘匿化
- ステータス、検出結果、設定チェック用の MCP ツール
- コンテナから安全にホストと通信するための IPC ハンドラー
既存のアドバイザリー/署名/整合性スイートへの必須の拡張ではなく、clawsec-nanoclaw の任意の補完機能として使用してください。
安全性の契約
- オプトインのみです。
- デフォルトでは検出してログに記録します。
- システム CA の自動インストールは行いません。
- コンテナから CA 秘密鍵にアクセスすることはできません。
- 初回実装ではブロックしません。
- ログや MCP レスポンスに含める前に、シークレットを秘匿化します。
- すべての状態を
NANOCLAW_TRAFFIC_GUARDIAN_HOMEまたはホスト管理の NanoClaw セキュリティデータディレクトリ配下に保持します。
ビルダー向けエントリーポイント
実装する前に SPEC.md を読んでください。プレースホルダーのフォルダーは次のように使用します。
| パス | 想定用途 |
|---|---|
lib/ | 検出ルール、秘匿化、型、レポートのフォーマット |
host-services/ | ホスト側のプロキシライフサイクル、ログアクセス、IPC ハンドラー |
mcp-tools/ | ステータスと検出結果を扱う、コンテナ側の MCP ツール |
test/ | 単体テスト、ホスト/コンテナ間の IPC テスト、秘匿化テスト |
初回実装で必須の動作
- プロキシを起動せずに設定を検証します。
- ホスト管理のライフサイクル経路を通じてモニターを起動します。
- CA キー素材をホスト側に保持します。
- 上限バイト数までの HTTP リクエスト/レスポンスのテキストを検査します。
- オペレーターがランタイムごとの信頼設定を提供した場合に限り、任意の HTTPS MITM をサポートします。
- 秘匿化した抜粋を含む JSONL 形式の検出結果を出力します。
- ステータスと秘匿化した検出結果のみを返す MCP ツールを公開します。
v0.0.1 実装の対象外
- システムの信頼ストアの自動変更
- 透過的なネットワーク傍受
- デフォルトでのブロック
- 外部サービスへのトラフィック送信
- コンテナへの未加工のリクエスト/レスポンス本文の公開