tomiabe/handoff
GitHub: tomiabe/handoff
Handoff 是一个为自治渗透测试/红队代理提供 human-in-the-loop 监督的控制台,让操作员实时监控代理行为并在高风险操作执行前进行审批拦截。
Stars: 0 | Forks: 0
# Handoff
**一个用于自治渗透测试 / 红队代理的 human-in-the-loop 监督控制台。**




**在线演示:[tomiabe.github.io/handoff](https://tomiabe.github.io/handoff/)**
## 这是什么
自治安全测试代理现在可以自行进行侦察,有些甚至会在确认漏洞时尝试实际运行 exploit —— 例如对登录表单执行 `sqlmap`、发起角色修改的 API 调用、或者进行数据库转储。没有人会允许 LLM 在完全无人监督的情况下对真实目标执行这些操作。
Handoff 就是操作员在代理工作时监控的控制台。它提供以下功能:
- **实时动态流** —— 逐步展示代理正在做什么以及为什么,不是原始日志,而是人类可以轻松理解的叙述流
- **发现列表** —— 代理目前发现的漏洞,包含严重程度和置信度
- **执行任何高风险操作前强制拦截** —— 当代理想要执行不可逆操作时,一切都会暂停,操作员在决定之前会看到确切的命令以及代理陈述的理由
在这个拦截点,操作员有三个选项,每个都绑定了键盘快捷键:**批准** (A)、**拒绝** (D) 或 **编辑命令参数并批准** (E)。每一个决定都会被加上时间戳并记录到决策日志中 —— 这是整个测试任务的审计追踪记录。
## 真实功能与模拟功能的区别
这是一个**作品集项目**,旨在展示此类工具的交互设计和全栈基础架构 —— 而非生产级安全产品。具体来说:
- UI、审批门控流程以及事件的 type schema(`Step`、`Finding`、`GatedAction`、`Decision`)—— 全都是真实的,并且完全可交互。
- 背后的数据是合成的。这里有一个真实的 [WebSocket server](server/),通过实际的 socket 连接流式传输事件,但它回放的是预设的脚本序列 —— 没有真实代理,没有真实目标,会话之间也不会保留任何内容。
- 目前还没有认证、数据库或多轮运行支持。带上你自己的代理(任何能够发出 [`src/lib/types.ts`](src/lib/types.ts) 中定义的事件结构的代理),你还需要为这个控制台构建相应的后端。
## 在本地运行
```
npm install
npm run dev
```
打开 [http://localhost:3000](http://localhost:3000)。无需任何额外配置,实时动态流将基于内置的模拟事件流运行。
### 结合真实的 WebSocket server 运行
`server/` 目录包含一个小型的 Node + `ws` server,它通过真实的 WebSocket 连接流式传输相同的代理事件,而不是使用客户端模拟。
```
cd server && npm install && npm start
```
然后,在项目根目录下,将前端指向它:
```
cp .env.example .env.local
npm run dev
```
如果 WebSocket server 未运行或无法访问,前端会自动回退到模拟动态流 —— 无论哪种情况,演示都不会出现故障。
### 使用 Docker 运行
```
docker compose up --build
```
这将同时构建并运行静态前端(通过 nginx 在 `:3000` 端口提供服务)和 WebSocket server(`:8080`)。
## 部署
- **前端** —— 通过 `.github/workflows/deploy.yml` 在每次推送到 `main` 分支时部署到 GitHub Pages。它构建了一个静态导出(`output: 'export'`),并设置了 `basePath: /handoff`。
- **WebSocket server** —— 不由 GitHub Pages 托管(静态托管无法运行持久进程)。请将 `server/` 单独部署到 Render 或 Fly.io 等平台上,然后设置指向它的 `NEXT_PUBLIC_WS_URL` 仓库变量(Settings → Secrets and variables → Actions → Variables),例如 `wss://your-app.onrender.com`。下次部署时会自动应用此设置。不设置也没关系 —— 网站会改用模拟动态流运行。
标签:MITM代理, 人在回路, 审计监控, 数据展示, 红队, 自动化攻击, 请求拦截