mcpField
P
picoclaw-self-pen-testing

picoclaw-self-pen-testing

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

picoclaw-self-pen-testing について

Picoclaw のセキュリティプロファイルを管理する人向けの、ローカルで読み取り専用の態勢レビュー用スキルです。設定上のリスクを調べ、guardian パッケージとは別にリリースできます。

主な機能

  1. 01ローカルでの読み取り専用レビュー
  2. 02Web UI の公開状態と認証を確認
  3. 03ワークスペース、ツール、MCP の信頼境界を確認
  4. 04平文シークレットと複数チャネル認証のリスクを検出
  5. 05署名済みリリースマニフェストを検証

活用シーン

  1. 01Picoclaw プロファイルの UI アクセスリスク確認
  2. 02ツール権限と MCP 信頼境界のレビュー
  3. 03インストール前のスキル配布アーカイブ検証

MCP 対応

Picoclaw プロファイル内の MCP 信頼境界設定をレビューします。MCP サーバーは提供しません。

インストール

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

$npx skills add https://github.com/prompt-security/clawsec --skill picoclaw-self-pen-testing

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

同梱ファイル

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

CHANGELOG.md
README.md
skill.json
lib/
format.mjs
self_pen_test.mjs
scripts/
self_pen_test.mjs
test/
self_pen_test.test.mjs

詳細

Picoclaw のポスチャレビュー(独立パッケージ)

目的:Picoclaw のポスチャレビュー用チェックを、より広範な guardian パッケージから分離して管理し、モデレーションに関わるチェックを独立してバージョン管理・公開できるようにします。

Vercel Skills のインストール

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

npx skills add prompt-security/clawsec --skill picoclaw-self-pen-testing -a openclaw -y

リリースアーティファクトの検証

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

set -euo pipefail

SKILL_NAME="picoclaw-self-pen-testing"
VERSION="0.0.5"
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."

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

対象範囲

このスキルは、既存の Picoclaw ポスチャプロファイルに対する、ローカルで読み取り専用のポスチャレビュー分析のみを実行します。

以下の項目を検出します。

  • Web UI が一般公開されている
  • UI 認証が無効になっている
  • ワークスペース/ツールが制限されていない
  • 署名なしの検証モード
  • MCP の信頼境界に関するレビューの必要性
  • スケジューラーの永続化に関するレビュー
  • 平文のシークレットを示すマーカー
  • 複数チャネルの認証に関するレビュー

使用方法

node scripts/self_pen_test.mjs --profile ~/.picoclaw/security/clawsec/current-profile.json

検証

python utils/validate_skill.py skills/picoclaw-self-pen-testing
node skills/picoclaw-self-pen-testing/test/self_pen_test.test.mjs

コメント