Stroq 0.30 上手:体检编程 Agent 会话里有没有密钥外泄,装上本地钩子拦住危险命令,再用 36 个公开攻击回放验证策略

按 Stroq 官方首页、文档、session-secret-scan、GitHub README / GUIDE 与 npm 包装页(0.30.0 实测):用 Node.js 22 安装 @stroq/cli,确认版本并查看命令分组;在没有历史会话的机器上跑体检卡片,用内置样例 sent --try 看「密钥被发到另一家公司」的报告;在实验目录预览并写入 Claude Code 钩子,用 doctor 自检,把官方第 01 号场景喂给钩子并看到 deny-encoded-exec;回放全部 36 个攻击场景(15 拦截、21 询问、0 放行),用 inspect 查出演示仓库的 core.fsmonitor,再用 exposure 与 policy check 核对本机覆盖面与默认 21 条策略。

入门3 课时70 分钟图文实操

免费学习无需登录

Stroq 0.30 上手:体检编程 Agent 会话里有没有密钥外泄,装上本地钩子拦住危险命令,再用 36 个公开攻击回放验证策略 课程封面

你将学会

  • 安装 Stroq 并确认版本
  • 跑会话体检卡片
  • 用内置样例看密钥外泄报告
  • 为 Claude Code 写入本地钩子
  • 喂事件验证拦截并查看审计
  • 回放 36 个公开攻击场景
  • 在打开仓库前检查敌意 git 配置

适合谁

  • 正在使用 Claude Code、Cursor 或 Codex 的开发者
  • 想在本机拦住 Agent 危险命令的人
  • 打开别人发来的仓库之前想先检查的人

课前准备

  • 会用终端和 npm 或 npx
  • 本机有 Node.js 22 或更高
  • 不要求已经有 Agent 历史会话

课程目录

3 课时 · 70 分钟
  1. 01装好 Stroq,跑会话体检卡片,用内置样例看密钥外泄报告确认 Node.js 22,安装 @stroq/cli 0.30.0 并核对版本;查看 help 命令分组;在没有历史会话的机器上跑体检卡片;用 sent --try 看官方内置的「密钥被发到另一家公司」报告,理解五档含义与「只打印名字、不打印值」。图文20 分钟开始本课
  2. 02在实验目录写入 Claude Code 钩子,喂一条投毒 README 事件并看到拦截用 init --dry-run 预览将写入的钩子 JSON,再写入项目级 .claude/settings.json;用 doctor 确认 0.30.0、622 条规则与自检通过;把官方第 01 号场景的 PostToolUse 与 PreToolUse 事件喂给钩子,看到会话被标成 suspect、curl 管道被 deny-encoded-exec 拒绝,再用 why、log、verify 核对审计链。图文25 分钟开始本课
  3. 03回放 36 个攻击场景,检查陌生仓库,映射本机暴露面用 attack 回放 36 个场景,得到 15 拦截、21 询问、0 放行;构造一份带 core.fsmonitor 的演示仓库并用 inspect 查出它会在 git status 时执行;导出 inspect --env 的两行抵消变量;用 exposure --share 看本机哪些 Agent 还未覆盖,用 policy check 确认默认 21 条策略。图文25 分钟开始本课

课程说明

Stroq 是给命令行编程 Agent 用的本地安全工具(Apache-2.0,无需账号、钩子热路径不联网)。它要回答的问题很直接:你的 Agent 到底听谁的。很多事故并不是你下了错误指令,而是 Agent 读到一段网页、一条 GitHub Issue 或一个 MCP 返回结果,里面藏着冲着自动化工具写的话,Agent 照做后运行了陌生的 npx 包,或把 .env 里的密钥用 curl 发了出去。Stroq 先读取本机已有的 Claude Code、Codex CLI 与 Cursor 会话记录,对照你机器上的密钥文件,用密钥名(从不打印值)报告它们有没有出现在工具参数里;再用两道本地钩子在下一步动作执行前按确定性策略放行、询问或拒绝,并把每次决定写进带哈希链的审计日志。2026 年 11 月 5 日发布的 0.30.0 版把会话密钥体检、钩子拦截、36 个公开攻击回放、陌生仓库检查与本机暴露面映射收成一条 CLI。

本课按 Stroq 官方首页、文档、session-secret-scan 页、GitHub README / GUIDE 与 npm 包装页整理。2026-11-09(Asia/Shanghai)在一台 Linux x86_64 云主机上,用 Node.js v22.21.1 安装 @stroq/cli 0.30.0,全部关键命令都实跑过:确认版本、查看命令列表、在没有 Agent 会话的机器上跑体检卡片、用内置样例 sent --try 看密钥外泄报告、在实验目录里预览并写入 Claude Code 钩子、用 doctor 自检、把官方攻击语料里的「读到投毒 README → 执行 curl 管道给 sh」事件喂给钩子并看到 deny-encoded-exec、用 why / log / verify 核对审计链、回放全部 36 个攻击场景(15 拦截、21 询问、0 放行,耗时 1.14 秒)、用 inspect 查出一份演示仓库的 core.fsmonitor、以及 exposure --share 与 policy check。「对照结果」都是真实输出,只做了节选。没有实测的有三项:本机没有 Claude Code / Codex 历史会话,所以真实 stroq sent(非 --try)与 replay --last 只能演示「找不到会话」;没有打开 stroq console 图形界面(无图形环境);没有跑 attack --fuzz 的 500 种变形,课内已注明。

课时你会做完的事需要什么
1装好 Stroq 0.30.0,跑会话体检卡片,用内置样例看密钥外泄报告长什么样终端,Node.js 22 或更高
2在实验目录预览并写入 Claude Code 钩子,用 doctor 自检,手动喂一条「读到投毒说明 → 执行远程脚本」事件并看到拦截同上;一个空的实验目录
3回放 36 个公开与合成攻击场景,检查一份带敌意 git 配置的演示仓库,映射本机 Agent 暴露面同上

适合

  • 已经在用 Claude Code、Cursor、Codex CLI 或其他编程 Agent,想知道会话里有没有密钥外泄的人
  • 希望在下一步危险命令真正执行之前,用本地、不调用大模型的策略拦住它的开发者
  • 需要在打开别人发来的仓库之前,先看它会不会在 git status 时偷偷跑代码的人

先修

  • 会用终端和 npm(或 npx)
  • 本机有 Node.js 22 或更高(官方要求;测试机系统自带的是 20,已换成 22.21.1)
  • 不要求已经装过 Claude Code:没有历史会话也可以用内置样例与攻击回放学完全部步骤

你会学到

  • 用 npx 或本地安装确认 Stroq 0.30.0,并看懂命令分组
  • 用体检卡片查看近 30 天会话;用 sent --try 看「密钥被发到另一家公司」的报告长什么样
  • 用 init --dry-run 预览钩子,再写入项目级 .claude/settings.json,用 doctor 核对
  • 把 hook 事件从标准输入喂给 Stroq,亲眼看到它按来源拦住 curl | sh,并用 why 指出是哪次 Read
  • 用 attack 在沙箱里回放 36 个场景,验证默认策略是 15 拦截、21 询问、0 放行
  • 用 inspect 在打开仓库之前发现 core.fsmonitor 这类会在 git status 时执行的配置,并用 inspect --env 导出抵消变量

官方资料

绑定工具: Stroq(https://www.kun.net/tools/stroq/ )