关于 picoclaw-self-pen-testing
此技能对现有 Picoclaw 安全态势配置文件执行本地只读审查,供维护 Picoclaw 安全配置的人员检查常见风险。它独立于更广泛的 guardian 包,可单独版本化和发布。
主要功能
- 01本地只读态势审查
- 02检查 Web UI 公开暴露与认证设置
- 03审查工作区、工具及 MCP 信任边界
- 04标记明文密钥及多渠道认证风险
- 05验证签名发布清单
适用场景
- 01检查 Picoclaw 配置中的 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 Posture Review(独立软件包)
目的:将 Picoclaw 的 posture-review 检查与更广泛的 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 posture profile 执行本地、只读的 posture-review 分析。
它会标记:
- 公开的 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