picoclaw-self-pen-testing

基于 Picoclaw 的本地安全姿态审查,仅读取不修改,提供安全建议。

已扫描
适合谁
系统管理员、安全工程师
不适合谁
普通终端用户、无 Picoclaw 配置的用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @davida-ps/picoclaw-self-pen-testing

Skill 说明

命令、参数、文件名以原文为准

Picoclaw 自我渗透测试(独立包)

用途:将 Picoclaw 姿态审查检查与更广泛的 guardian 包分离,以便对敏感内容的审查规则可以独立版本化和发布。

发布制品验证

对于独立安装,请在信任 SKILL.mdskill.json 或归档文件之前,先验证已签名的发布清单。skill.json 文件是包元数据/SBOM 的来源,发布流水线使用 ClawSec 发布密钥对 checksums.json 进行签名。

set -euo pipefail

SKILL_NAME="picoclaw-self-pen-testing"
VERSION="0.0.2"
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 "已验证签名发布清单、归档文件、SKILL.md 和 skill.json。"

仅在验证成功后才可安装或解压归档文件。

作用范围

此技能仅针对现有 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
DP
@davida-ps

已收录 1 个 Skill

相关推荐