mcpField
N
nanoclaw-traffic-guardian

nanoclaw-traffic-guardian

github.com/prompt-security安全1.1k50 次安装今天更新
代码仓库

关于 nanoclaw-traffic-guardian

nanoclaw-traffic-guardian 是为 NanoClaw 添加运行时流量监控的基线规范技能;目前不包含代理或运行时实现。它规定了选择启用、默认检测并记录、内容脱敏及主机与容器间的边界。

主要功能

  1. 01NanoClaw 流量监控规范
  2. 02HTTP 检查及可选 HTTPS 中间人检查
  3. 03出站数据泄露与入站注入检测
  4. 04本地脱敏发现项及 MCP 状态工具
  5. 05由主机管理代理生命周期和容器安全 IPC

适用场景

  1. 01规划 NanoClaw 流量监控实现
  2. 02定义 CA 密钥和流量日志的安全处理方式
  3. 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.md
README.md
skill.json
SPEC.md
host-services/
.gitkeep
lib/
.gitkeep
mcp-tools/
.gitkeep
test/
.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 测试、脱敏测试

首个实现版本的必要行为

  1. 验证配置,但不启动代理。
  2. 通过由主机管理的生命周期路径启动监控。
  3. 将 CA 密钥材料保留在主机端。
  4. 在有界字节限制内检查 HTTP 请求/响应文本。
  5. 仅当操作员提供每个运行时的信任配置时,才支持可选的 HTTPS 中间人攻击(MITM)检查。
  6. 输出包含脱敏片段的 JSONL 发现项。
  7. 提供仅返回状态和脱敏发现项的 MCP 工具。

v0.0.1 实现不包含的内容

  • 自动修改系统信任存储
  • 透明网络拦截
  • 默认阻止
  • 将流量发送到外部服务
  • 向容器暴露原始请求/响应正文

评论

支持 Markdown