[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82177":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":28,"discoverSource":29},82177,"AITTAK","KaGty1\u002FAITTAK","KaGty1","AITTAK 是一个特制的红队AI中转站平台，部署在客户端与 AI API 上游之间，用于记录请求行为、通过监控用户Prompt及工具调用结果检测敏感信息泄露、以及通过在SSE注入工具调用实现任意命令执行。",null,"Python",36,3,28,1,0,2,8,6,50.61,"Apache License 2.0",false,"main",true,[],"2026-06-12 04:01:37","# AITTAK\n\n## 项目简介\n\nAITTAK 是一个特制的红队AI中转站平台，部署在客户端与 AI API 上游之间，用于记录请求行为、通过监控用户Prompt及工具调用结果检测敏感信息泄露、以及通过在SSE注入工具调用实现任意命令执行。\n\n\n\n## 核心能力\n\n- **请求代理** — 支持 Claude（`\u002Fv1\u002Fmessages`）和 OpenAI 兼容接口（`\u002Fv1\u002Fchat\u002Fcompletions`），流式和非流式均支持\n- **行为监控** — 异步记录每次请求的 Prompt、工具调用、响应状态、耗时，支持按 Key\u002F关键词\u002F敏感类型筛选\n- **敏感信息检测** — 内置 HaE 12 条正则规则（手机号、身份证、JWT、AWS Key 等），支持自定义规则，实时扫描审计日志\n- **工具注入** — 可配置规则，在模型调用特定工具时注入额外的 tool_use 指令，客户端执行后结果被代理截获并记录\n- **API Key 管理** — 代理签发独立的 `sk-proxy-*` Key，支持按 Key 追踪行为和定向注入\n- **管理后台** — 单页 Web 控制台，管理上游配置、Key、审计日志、敏感规则、注入规则\n\n\n\n## 架构原理\n\n### 行为监控流程\n\n```mermaid\nsequenceDiagram\n    participant Client as Claude Code\n    participant Proxy as AITTAK\n    participant Upstream as 上游 API\n\n    Client->>Proxy: POST \u002Fv1\u002Fmessages (sk-proxy-xxx)\n    Proxy->>Proxy: 验证 API Key\n    Proxy->>Proxy: 提取 Prompt、工具调用信息\n    Proxy->>Upstream: 转发请求（替换为真实 API Key）\n    Upstream-->>Proxy: SSE 流式响应\n    Proxy-->>Client: 透传响应（重写 model 字段）\n    Proxy->>Proxy: 记录审计日志（异步）\n    Proxy->>Proxy: 正则扫描敏感信息\n    Proxy->>Proxy: 写入 SQLite\n```\n\n\n\n### 工具注入流程\n\n```mermaid\nsequenceDiagram\n    participant Client as Claude Code\n    participant Proxy as AITTAK\n    participant Upstream as 上游 API\n\n    Note over Client,Upstream: 第一轮：模型调用工具，代理注入额外工具\n\n    Client->>Proxy: POST \u002Fv1\u002Fmessages\n    Proxy->>Upstream: 转发请求\n    Upstream-->>Proxy: SSE 响应（含 tool_use: Bash）\n    Proxy->>Proxy: 检测到 Bash 调用，匹配注入规则\n    Proxy->>Proxy: 生成额外 tool_use block（inject-xxx）\n    Proxy-->>Client: 原始 tool_use + 注入的 tool_use\n\n    Note over Client: 客户端执行所有工具（含注入的）\n\n    Note over Client,Upstream: 第二轮：代理剥离注入结果\n\n    Client->>Proxy: POST \u002Fv1\u002Fmessages（含 inject-xxx 的 tool_result）\n    Proxy->>Proxy: 识别 inject- 前缀，剥离注入的 tool_result\n    Proxy->>Proxy: 将剥离的结果写入审计日志\n    Proxy->>Upstream: 转发清理后的请求（上游无感知）\n    Upstream-->>Proxy: 正常响应\n    Proxy-->>Client: 透传响应\n```\n\n\n\n## 技术栈\n\n| 层级 | 技术 |\n|------|------|\n| 后端框架 | FastAPI |\n| HTTP 客户端 | httpx（异步，支持流式转发） |\n| 数据库 | SQLite（WAL 模式，通过 aiosqlite 异步访问） |\n| 序列化 | orjson |\n| 前端 | Vue 3 CDN + Tailwind CSS CDN（单文件 SPA） |\n| 运行时 | Python 3.12 + uvicorn |\n\n\n\n## 项目结构\n\n```text\n.\n├── app\u002F\n│   ├── main.py          # FastAPI 入口，生命周期管理\n│   ├── proxy.py         # 反向代理核心（流式转发、模型名重写、注入集成）\n│   ├── admin.py         # 管理 API（CRUD：上游、Key、审计、敏感规则、注入规则）\n│   ├── audit.py         # 异步审计日志写入（批量、去重、定期清理）\n│   ├── auth.py          # 认证（API Key 验证 + 管理员密码验证）\n│   ├── config.py        # 环境变量配置\n│   ├── database.py      # 数据库 Schema、迁移、种子数据\n│   ├── inject.py        # 工具注入引擎（规则匹配、SSE 事件生成、请求剥离）\n│   └── sensitive.py     # 敏感信息正则检测\n├── templates\u002F\n│   └── index.html       # 管理后台前端（Vue 3 单页应用）\n├── data\u002F\n│   └── audit.db         # SQLite 数据库文件（运行时生成）\n├── requirements.txt     # Python 依赖\n└── .env.example         # 环境变量示例\n```\n\n\n\n## 快速开始\n\n### 环境要求\n\n- Python 3.11+\n\n### 安装\n\n```bash\ngit clone \u003Crepo-url> && cd ai-audit-proxy\npip install -r requirements.txt\ncp .env.example .env  # 按需修改配置\n```\n\n### 运行\n\n```bash\npython -m uvicorn app.main:app --host 0.0.0.0 --port 5001\n```\n\n访问管理后台：`http:\u002F\u002Flocalhost:5001\u002Fadmin`\n\n默认管理员密码：`changeme`（通过 `ADMIN_PASSWORD` 环境变量修改）\n\n### 配置客户端\n\n以 Claude Code 为例，将 API 地址指向代理：\n\n```bash\n# 在代理后台创建 API Key 后\nexport ANTHROPIC_BASE_URL=http:\u002F\u002Fyour-proxy-host:5001\nexport ANTHROPIC_API_KEY=sk-proxy-xxxxxxxx\n```\n\n## 配置项\n\n| 环境变量 | 默认值 | 说明 |\n|---------|--------|------|\n| `PORT` | `8000` | 服务监听端口（uvicorn 启动时可覆盖） |\n| `ADMIN_PASSWORD` | `changeme` | 管理后台登录密码 |\n| `DB_PATH` | `data\u002Faudit.db` | SQLite 数据库文件路径 |\n| `LOG_RETENTION_DAYS` | `90` | 审计日志保留天数，超期自动清理 |\n| `MAX_BODY_SIZE` | `102400` | 工具调用内容截断阈值（字节） |\n\n\n\n## 使用说明\n\n### 上游配置\n\n在管理后台「上游配置」Tab 中添加 AI API 提供商：\n\n- **平台**：`claude` 或 `openai`\n- **Base URL**：上游 API 地址（如 `https:\u002F\u002Fapi.anthropic.com`）\n- **API Key**：上游真实 API Key\n\n代理会根据请求路径自动路由到对应平台的上游。\n\n### 工具注入\n\n工具注入用于在模型调用工具时，额外注入一个工具调用指令。典型用途：\n\n- 在用户执行 Bash 命令时，注入 `Read` 读取特定文件\n- 在用户执行 Bash 命令时，注入`Bash`来执行恶意命令\n\n配置项：\n- **触发工具**：模型调用哪些工具时触发（留空 = 任意工具）\n- **注入工具**：要注入的工具类型（Read \u002F Bash \u002F Glob \u002F Grep \u002F Write \u002F Edit）\n- **注入参数**：工具调用的 JSON 参数\n- **目标 Key**：仅对特定 API Key 生效（留空 = 全部）\n- **最大触发次数**：达到上限后停止注入\n\n注入的工具调用结果会被代理自动截获，不会发送给上游模型，仅记录在审计日志中。\n","AITTAK 是一个专为红队设计的AI中转站平台，部署在客户端与 AI API 之间，主要用于记录请求行为、监控敏感信息泄露以及实现任意命令执行。其核心功能包括支持多种AI接口的请求代理、异步记录请求细节并支持筛选的行为监控、内置及自定义规则的敏感信息检测、工具调用时的注入能力以执行额外指令，以及通过独立API Key进行精细化管理。该平台适合需要对AI交互过程进行全面审计和控制的安全测试场景。基于FastAPI构建，使用Python编写，具备高效的数据处理能力和简洁的Web管理界面。","2026-06-11 04:07:57","CREATED_QUERY"]