picoclaw-self-pen-testing について
Picoclaw のセキュリティプロファイルを管理する人向けの、ローカルで読み取り専用の態勢レビュー用スキルです。設定上のリスクを調べ、guardian パッケージとは別にリリースできます。
主な機能
- 01ローカルでの読み取り専用レビュー
- 02Web UI の公開状態と認証を確認
- 03ワークスペース、ツール、MCP の信頼境界を確認
- 04平文シークレットと複数チャネル認証のリスクを検出
- 05署名済みリリースマニフェストを検証
活用シーン
- 01Picoclaw プロファイルの UI アクセスリスク確認
- 02ツール権限と MCP 信頼境界のレビュー
- 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.mdREADME.mdskill.jsonlib/format.mjsself_pen_test.mjsscripts/self_pen_test.mjstest/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
コメント
Markdown 対応