关于 nanoclaw-traffic-guardian
nanoclaw-traffic-guardian 是为 NanoClaw 添加运行时流量监控的基线规范技能;目前不包含代理或运行时实现。它规定了选择启用、默认检测并记录、内容脱敏及主机与容器间的边界。
主要功能
- 01NanoClaw 流量监控规范
- 02HTTP 检查及可选 HTTPS 中间人检查
- 03出站数据泄露与入站注入检测
- 04本地脱敏发现项及 MCP 状态工具
- 05由主机管理代理生命周期和容器安全 IPC
适用场景
- 01规划 NanoClaw 流量监控实现
- 02定义 CA 密钥和流量日志的安全处理方式
- 03向 MCP 客户端提供脱敏状态和发现项
MCP 相关
计划中的实现包含用于查询状态和发现项的 MCP 工具。响应仅应包含脱敏发现项;该技能本身不提供这些工具。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ prompt-security/ clawsec --skill nanoclaw-traffic-guardian安装后在 Claude Code 中输入/nanoclaw-traffic-guardian确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.mdREADME.mdskill.jsonSPEC.mdhost-services/.gitkeeplib/.gitkeepmcp-tools/.gitkeeptest/.gitkeep详细介绍
NanoClaw 流量守护程序
这是一个基准规范技能。目前有意不附带代理或运行时实现。
Vercel Skills 安装
使用 Vercel Skills CLI 为此运行环境安装:
npx skills add prompt-security/clawsec --skill nanoclaw-traffic-guardian -a openclaw -y
发布制品验证
对于独立安装,请先验证已签名的发布清单,再信任 SKILL.md、skill.json 或归档文件。skill.json 文件是软件包元数据/SBOM 的来源,发布流水线会使用 ClawSec 发布密钥对 checksums.json 签名。
set -euo pipefail
SKILL_NAME="nanoclaw-traffic-guardian"
VERSION="0.0.1-beta5"
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."
只有验证成功后,才能安装或解压归档文件。
范围
构建者应将此技能用作 NanoClaw 运行时流量监控的落脚点:
- 主机端 HTTP 代理检查
- 可选的 HTTPS 检查,使用由主机持有的 CA 材料
- 出站数据外泄检测
- 入站注入检测
- 经脱敏的本地威胁日志
- 用于状态、发现项和配置检查的 MCP 工具
- 用于容器安全主机通信的 IPC 处理程序
建议将此技能作为 clawsec-nanoclaw 的可选配套工具,而非现有建议/签名/完整性套件的强制扩展。
安全约定
- 仅在选择启用时使用。
- 默认只检测并记录日志。
- 不自动安装系统 CA。
- 容器无法访问 CA 私钥。
- 首个实现版本不进行阻止。
- 在写入日志或返回 MCP 响应前,先对机密信息进行脱敏。
- 将所有状态保存在
NANOCLAW_TRAFFIC_GUARDIAN_HOME或由主机管理的 NanoClaw 安全数据目录下。
构建者入口
实现前请阅读 SPEC.md。占位文件夹用途如下:
| 路径 | 预期用途 |
|---|---|
lib/ | 检测规则、脱敏、类型、报告格式化 |
host-services/ | 主机端代理生命周期、日志访问、IPC 处理程序 |
mcp-tools/ | 容器端 MCP 工具,用于获取状态和发现项 |
test/ | 单元测试、主机/容器 IPC 测试、脱敏测试 |
首个实现版本的必要行为
- 验证配置,但不启动代理。
- 通过由主机管理的生命周期路径启动监控。
- 将 CA 密钥材料保留在主机端。
- 在有界字节限制内检查 HTTP 请求/响应文本。
- 仅当操作员提供每个运行时的信任配置时,才支持可选的 HTTPS 中间人攻击(MITM)检查。
- 输出包含脱敏片段的 JSONL 发现项。
- 提供仅返回状态和脱敏发现项的 MCP 工具。
v0.0.1 实现不包含的内容
- 自动修改系统信任存储
- 透明网络拦截
- 默认阻止
- 将流量发送到外部服务
- 向容器暴露原始请求/响应正文
评论
支持 Markdown