运行时依赖
版本
使用 python3 运行 skills/soul-guardian/scripts/soul_guardian.py 脚本,执行 approve 操作,参数包括 --file SOUL.md、--actor user 和 --note "intentional update"。
安装命令
点击复制技能文档
soul-guardian 👻 保护您的代理核心文件(SOUL.md、AGENTS.md等)免受未经授权的更改,具有自动检测、恢复和用户警报功能。 操作说明 所需运行时:python3 可选运行时:openclaw用于cron集成,launchctl用于macOS调度,bash用于演示辅助工具 副作用:可以自动恢复受保护的文件到其批准的基线,并在本地写入审计/隔离状态 网络行为:默认无 信任模型:任何调度都是可选的,但恢复模式故意覆盖漂移文件 发布工件验证 对于独立安装,请在信任SKILL.md、skill.json或存档之前验证已签名的发布清单。 skill.json文件是包元数据/SBOM源,发布管道使用ClawSec发布密钥签名checksums.json。 设置-euo pipefail SKILL_NAME="soul-guardian" VERSION="0.0.6" 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指纹不匹配" >&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缺少$asset" >&2 exit 1 fi actual="$(hash_file "$path")" if [ "$actual" != "$expected" ]; then echo "ERROR: $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缺少archive.sha256" >&2 exit 1 fi actual_archive="$(hash_file "$TMP_DIR/$ZIP_NAME")" if [ "$actual_archive" != "$expected_archive" ]; then echo "ERROR:存档校验和不匹配" >&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。" 仅在此验证成功后安装或提取存档。 快速入门(3步) 步骤1:初始化基线 cd ~/.openclaw/workspace python3 skills/soul-guardian/scripts/soul_guardian.py init --actor setup --note "初始基线" 步骤2:启用监控 python3 skills/soul-guardian/scripts/soul_guardian.py enable-monitoring 此步骤向您展示如何将监控添加到您的工作流中。 步骤3:添加到HEARTBEAT.md(推荐) 在您的HEARTBEAT.md中添加以下内容以进行自动监控:
Soul Guardian检查
- 运行
python3 skills/soul-guardian/scripts/soul_guardian.py check --actor heartbeat --output-format alert - 如果产生任何输出,请立即将其作为安全警报传递给用户