mcpField
H
hermes-traffic-guardian

hermes-traffic-guardian

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

关于 hermes-traffic-guardian

这是面向 Hermes 流量监控构建工作的规范技能,目前不包含代理或运行时实现。它规定了可选代理检查、威胁记录和安全边界,供实现者据此开发。

主要功能

  1. 01规定 HTTP 流量检查范围
  2. 02支持按进程配置的可选 HTTPS 检查
  3. 03检测外传与入站注入风险
  4. 04要求脱敏本地威胁日志
  5. 05导出供态势证明使用的状态

适用场景

  1. 01为 Hermes 运行时流量监控规划实现
  2. 02设计按进程限定的代理检查
  3. 03定义脱敏威胁日志和状态导出

MCP 相关

输入未说明与 MCP 的关系。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/prompt-security/clawsec --skill hermes-traffic-guardian

安装后在 Claude Code 中输入/hermes-traffic-guardian确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CHANGELOG.md
README.md
skill.json
SPEC.md
lib/
.gitkeep
scripts/
.gitkeep
test/
.gitkeep

详细介绍

Hermes Traffic Guardian

这是一份基线规范技能。目前有意不提供代理或运行时实现。

Vercel Skills 安装

使用 Vercel Skills CLI 为此框架安装:

npx skills add prompt-security/clawsec --skill hermes-traffic-guardian -a hermes-agent -y

发布制品验证

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

set -euo pipefail

SKILL_NAME="hermes-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."

只有验证成功后,才能安装或解压归档文件。

范围

构建者应将此技能用作 Hermes 运行时流量监控的落脚点:

  • 按操作员范围检查 HTTP 代理
  • 可选的 HTTPS 检查,并为每个进程配置 CA 信任
  • 检测出站数据外泄
  • 检测入站注入
  • 经脱敏处理的本地威胁日志
  • 为 hermes-attestation-guardian 导出状态

不要将代理运行时的管理职责添加到 hermes-attestation-guardian。该技能应证明此监控器的状态和配置,而不是运行它。

安全约定

  • 仅在用户选择启用时运行。
  • 默认仅检测并记录日志。
  • 不自动安装系统 CA。
  • 不全局更改代理环境变量。
  • 首个实现版本不进行拦截。
  • 在写入日志、生成摘要或生成关联证明的输出之前,先对机密信息进行脱敏。
  • 将所有状态保存在 HERMES_TRAFFIC_GUARDIAN_HOME 或 $HERMES_HOME/security/traffic-guardian 下。

构建者入口

实现前请阅读 SPEC.md。占位文件夹用途如下:

路径预期用途
lib/检测规则、脱敏、状态导出、报告格式化
scripts/启动、停止、状态查询、配置验证、日志查询、证明导出辅助脚本
test/单元测试、代理样例测试、脱敏测试、证明导出测试

首个实现版本的必要行为

  1. 验证配置,但不启动代理。
  2. 在前台或显式指定的后台模式下启动监控器。
  3. 将代理环境变量限定在目标 Hermes 服务或 CLI 进程范围内。
  4. 在限定的字节数内检查 HTTP 请求/响应文本。
  5. 仅当操作员提供每个进程的信任配置时,才支持可选的 HTTPS MITM。
  6. 输出包含脱敏片段的 JSONL 检测结果。
  7. 导出一个精简的状态 JSON 文件,供 hermes-attestation-guardian 纳入为信任锚或受监控文件。

v0.0.1 实现的范围之外

  • 自动修改系统信任存储
  • 透明网络拦截
  • 默认拦截
  • 将流量发送到外部服务
  • 收集完整的请求/响应正文

评论

支持 Markdown