theshantanupandey/jaku
GitHub: theshantanupandey/jaku
专为 AI 辅助开发应用设计的多 Agent 自主安全与质量扫描系统,将 Web 漏洞扫描、AI 滥用检测、业务逻辑验证和攻击链关联整合到一条命令中。
Stars: 0 | Forks: 0
# 呪 JAKU — 自主安全与质量智能系统
JAKU (呪 — 日语中的“诅咒” / “咒语”) 是一个**多 Agent** 安全与质量扫描器,专为拆解**Vibe 编码应用**而生——即那些在 AI 辅助下快速编写、凭直觉飞速开发的软件。
JAKU 会爬取你的整个应用,生成测试用例,探测安全漏洞,测试 AI 端点的 prompt 注入,并交付一份包含**攻击链关联**的完整损害报告——全程无需人工看护。
## 目录
- [快速开始](#quick-start)
- [架构](#architecture)
- [模块 01 — QA 与功能测试](#module-01--qa--functional-testing)
- [模块 02 — 安全漏洞扫描](#module-02--security-vulnerability-scanning)
- [模块 04 — Prompt 注入与 AI 滥用检测](#module-04--prompt-injection--ai-abuse-detection)
- [关联引擎](#correlation-engine)
- [CLI 参考](#cli-reference)
- [报告](#reports)
- [严重性框架](#severity-framework)
- [配置](#configuration)
- [仪表盘](#dashboard)
- [路线图](#roadmap)
## 快速开始
```
# 选项 A: Clone & install (开发环境)
git clone https://github.com/theshantanupandey/jaku.git
cd jaku
npm install
npx playwright install chromium
# 选项 B: 通过 npm 全局安装
npm install -g @theshantanupandey/jaku
npx playwright install chromium
# 运行完整扫描 (QA + Security + AI + Logic + API)
jaku scan https://your-app.dev --verbose
# 或不进行全局安装:
node src/cli.js scan https://your-app.dev --verbose
# 仅 AI abuse 测试
jaku ai https://your-ai-app.dev --verbose
# 报告保存至 ./jaku-reports//
# 每次扫描后,latest-report.json 会在项目根目录自动更新
```
### 首次扫描演练
```
# Minimal scan — 快速,小范围
node src/cli.js scan https://your-app.dev --max-pages 5 --max-depth 1
# 使用所有模块的 Full scan
node src/cli.js scan https://your-app.dev --verbose
# 仅测试 AI endpoints
node src/cli.js ai https://your-app.dev/chat --verbose
# 仅 Security 扫描,最低 High severity
node src/cli.js security https://your-app.dev --severity high
# 报告保存至 ./jaku-reports//
# 打开 report.html 查看可视化报告
```
## 架构
JAKU 是一个**多 Agent 系统**——中央编排器 (Orchestrator) 协调 6 个并行运行的专业子 Agent,它们通过事件驱动的消息总线和带有攻击链关联功能的统一发现账本共享探测结果。
### Agent 注册表
| Agent | 角色 | 依赖 | 运行阶段 |
|-------|------|-------------|---------|
| **JAKU-CRAWL** | 表面发现 | — | 阶段 1 (独立运行) |
| **JAKU-QA** | QA 与功能测试 (5 个子模块) | JAKU-CRAWL | 阶段 2 (并行运行) |
| **JAKU-SEC** | 安全漏洞扫描 (8 个子模块) | JAKU-CRAWL | 阶段 2 (并行运行) |
| **JAKU-AI** | Prompt 注入与 AI 滥用 (8 个子模块) | JAKU-CRAWL | 阶段 2 (并行运行) |
| **JAKU-LOGIC** | 业务逻辑验证 (6 个子模块) | JAKU-CRAWL | 阶段 2 (并行运行) |
| **JAKU-API** | API 与身份验证流程验证 (5 个子模块) | JAKU-CRAWL | 阶段 2 (并行运行) |
### 执行流程
```
┌──────────────────┐
│ Orchestrator │
│ (dependency │
│ resolution) │
└────────┬─────────┘
│
╔════════╧════════╗
║ JAKU-CRAWL ║ Wave 1
║ (discovery) ║
╚════════╤════════╝
│
┌──────────────┼──────────────┐
│ EventBus │
│ surface:discovered │
│ finding:new │
│ agent:progress │
└──────┬──────┬──────┬──────┬─────┘
│ │ │ │
╔══════════╧═╗ ╔═╧════════════╗ ╔══════════╗ ╔═══════════╗ ╔═════════╗
║ JAKU-QA ║ ║ JAKU-SEC ║ ║ JAKU-AI ║ ║JAKU-LOGIC ║ ║JAKU-API ║ Wave 2
║ (5 tests) ║ ║ (8 scanners) ║ ║(8 probes)║ ║(6 probes) ║ ║(5 tests)║ ⚡ PARALLEL
╚═════╤══════╝ ╚══╤═══════════╝ ╚════╤═════╝ ╚═════╤═════╝ ╚════╤════╝
│ │ │ │ │
│ │ │ │
┌─┴────────────┴──────────────────┴─────────────┴─┐
│ FindingsLedger │
│ (dedup + attack chain correlation) │
└──────────────────────┬──────────────────────────┘
│
┌────────┴─────────┐
│ Report Engine │
│ JSON + MD + HTML│
└──────────────────┘
```
### 项目结构
```
JAKU/
├── src/
│ ├── cli.js # CLI (thin shell over Orchestrator)
│ ├── agents/
│ │ ├── base-agent.js # Abstract agent with lifecycle hooks
│ │ ├── event-bus.js # Pub/sub message bus with audit log
│ │ ├── findings-ledger.js # Shared findings store (dedup + correlate)
│ │ ├── orchestrator.js # Dependency resolution + parallel execution
│ │ ├── crawl-agent.js # JAKU-CRAWL sub-agent
│ │ ├── qa-agent.js # JAKU-QA sub-agent
│ │ ├── security-agent.js # JAKU-SEC sub-agent
│ │ ├── ai-agent.js # JAKU-AI sub-agent
│ │ ├── logic-agent.js # JAKU-LOGIC sub-agent
│ │ └── api-agent.js # JAKU-API sub-agent
│ ├── core/
│ │ ├── crawler.js # Playwright-based surface discovery
│ │ ├── test-generator.js # Auto test case generation
│ │ ├── test-runner.js # Headless test execution
│ │ ├── broken-flow-detector.js # Dead links, errors, slow pages
│ │ ├── form-validator.js # Form validation testing
│ │ ├── responsive-checker.js # Viewport breakpoint testing
│ │ ├── console-monitor.js # JS errors & failed requests
│ │ ├── security/
│ │ │ ├── header-analyzer.js # HTTP security headers
│ │ │ ├── secret-detector.js # Leaked secrets & keys
│ │ │ ├── xss-scanner.js # Cross-site scripting
│ │ │ ├── sqli-prober.js # SQL/NoSQL injection
│ │ │ ├── dependency-auditor.js # npm CVE audit
│ │ │ ├── tls-checker.js # TLS/SSL validation
│ │ │ ├── infra-scanner.js # Infrastructure exposure
│ │ │ └── file-upload-tester.js # MIME spoofing, path traversal
│ │ └── ai/
│ │ ├── ai-endpoint-detector.js # Auto-detect LLM endpoints
│ │ ├── prompt-injector.js # 24 prompt injection payloads
│ │ ├── jailbreak-tester.js # 16 jailbreak techniques
│ │ ├── system-prompt-extractor.js # 17 extraction techniques
│ │ ├── output-analyzer.js # AI-mediated XSS (10 tests)
│ │ ├── guardrail-prober.js # 15 guardrail bypass probes
│ │ ├── model-dos-tester.js # Context bombing, token loops
│ │ └── indirect-injector.js # 6 indirect injection payloads
│ │ └── logic/
│ │ ├── business-rule-inferrer.js # Business domain categorization
│ │ ├── pricing-exploiter.js # Payment manipulation (12 probes)
│ │ ├── access-boundary-tester.js # IDOR, escalation, bypass
│ │ ├── workflow-enforcer.js # Step skipping, resubmission
│ │ ├── race-condition-detector.js # Double spend, TOCTOU
│ │ └── abuse-pattern-scanner.js # Referral, reward, subscription
│ │ └── api/
│ │ ├── auth-flow-tester.js # JWT, passwords, MFA, sessions
│ │ ├── oauth-prober.js # OAuth/SSO flow security
│ │ ├── api-key-auditor.js # Key hygiene, rate limiting
│ │ ├── graphql-tester.js # Introspection, batch, DoS
│ │ └── cors-ws-tester.js # CORS policy, WebSocket security
│ ├── reporting/
│ │ └── report-generator.js # JSON + Markdown + HTML reports
│ └── utils/
│ ├── config.js # Configuration loader
│ ├── finding.js # Finding schema factory
│ └── logger.js # Winston audit logger
├── bin/jaku # CLI executable
├── jaku.config.example.json # Example configuration
└── package.json
```
## 模块 01 — QA 与功能测试
自主质量保证,爬取你的应用并测试一切。
| 子模块 | 功能描述 |
|-----------|-------------|
| **Crawl** | 自动发现所有页面、链接、表单和 API 端点 |
| **Test Generator** | 生成冒烟、导航、表单、API 和边缘情况测试套件 |
| **Test Runner** | 通过 Playwright 无头执行测试,捕获失败时的屏幕截图 |
| **Broken Flow Detector** | 查找死链 (404)、服务器错误 (5xx)、慢速页面、缺失标题 |
| **Form Validator** | 测试必填字段强制约束、类型约束、错误提示信息 |
| **Responsive Checker** | 检查在移动端/平板/桌面端是否存在溢出、元素重叠和极小文本 |
| **Console Monitor** | 标记 JS 错误、未处理的异常和失败的网络请求 |
```
# 仅 QA
node src/cli.js qa https://your-app.dev --verbose
```
## 模块 02 — 安全漏洞扫描
使用安全、非破坏性的 payload 探测你的应用的攻击面。
| 子模块 | 功能描述 |
|-----------|-------------|
| **Header Analyzer** | 检查 CSP、HSTS、X-Frame-Options、X-Content-Type-Options、CORS、Referrer-Policy、Permissions-Policy 以及技术指纹识别 |
| **Secret Detector** | 扫描页面源码、JS 和内联脚本以查找 19 种秘密模式 (AWS、Google、Stripe、GitHub、Slack、Firebase、JWT、数据库 URL、私钥)。探测 21 个敏感路径 (`.env`、`.git/config`、`/debug`、`/actuator`)。检查 source map 暴露情况 |
| **XSS Scanner** | 使用 9 个仅用于检测的 payload 测试 URL 参数和表单输入是否存在反射型和存储型 XSS |
| **SQLi Prober** | 使用 8 个 SQL 和 3 个 NoSQL payload 测试 URL 参数、表单输入和 API 端点。检测 18 种数据库错误签名 |
| **Dependency Auditor** | 运行 `npm audit`,将 CVE 公告映射到 JAKU 的严重级别,检查未锁定的依赖和有风险的 npm scripts |
| **TLS Checker** | 验证证书过期时间,检测自签名证书,检查 HTTP→HTTPS 重定向,并扫描混合内容 |
| **Infrastructure Scanner** | 探测 40 个管理/调试端点,检测目录列表,检查错误页面的信息泄露,并测试 GraphQL 内省 |
```
# 仅 Security
node src/cli.js security https://your-app.dev --verbose
```
## 模块 03 — 业务逻辑验证
检测传统扫描器遗漏的业务逻辑缺陷:价格篡改、访问控制绕过、工作流跳过、竞态条件和推荐滥用。
### 工作原理
与安全扫描不同,业务逻辑测试需要**了解应用的功能**。JAKU-LOGIC 首先从你的应用表面推断业务规则:
- 路由命名模式 (`/checkout`、`/subscribe`、`/admin`、`/pricing`)
- 表单结构 (支付字段、数量输入、优惠券代码)
- API 端点模式 (`/api/cart`、`/api/orders`、`/api/subscription`)
- 多步骤流程 (step1 → step2 → step3)
### 子模块
| 子模块 | 探测数量 | 测试内容 |
|-----------|--------|---------------|
| **Business Rule Inferrer** | 6 个领域 | 自动将表面分类为支付、身份验证、订阅、库存、推荐、工作流 |
| **Pricing Exploiter** | 12 个探测 | 负价格、$0 订单、优惠券叠加/猜测、价格参数篡改、货币混淆、整数溢出、税费/运费绕过 |
| **Access Boundary Tester** | 4 个类别 | 水平 IDOR (ID 枚举)、垂直提权 (15 个管理员路径)、高级功能绕过、来宾访问身份验证端点 |
| **Workflow Enforcer** | 4 个类别 | 多步骤流程跳过、直接访问确认页面、验证绕过 (伪造 OTP/2FA)、表单重新提交 (无幂等性) |
| **Race Condition Detector** | 10 次突发 | 向支付/库存/奖励端点发送 10 个并发请求,以检测双重支付、超卖、薅羊毛 |
| **Abuse Pattern Scanner** | 4 个类别 | 自我推荐检测、快速薅羊毛、试用期滥用 (重新注册)、订阅状态操纵 (降级→升级→取消→恢复) |
```
# 仅 Business logic 测试
node src/cli.js logic https://your-app.dev --verbose
# Security + Logic 组合
node src/cli.js scan https://your-app.dev --modules security,logic
```
## 模块 04 — Prompt 注入与 AI 滥用检测
**JAKU 的差异化优势。** 目前没有现有工具能占据这一领域。当 JAKU 扫描一个 AI 驱动的应用并指出*“你的 /chat 端点存在 prompt 注入漏洞——这是提取你系统 prompt 的 payload”* 时——那就是令人震惊的时刻。
### 工作原理
1. **自动检测** — JAKU-AI 首先识别哪些端点是由 AI/LLM 驱动的:
- URL 模式匹配 (`/chat`、`/ask`、`/prompt`、`/complete`、`/generate`、`/ai` 等)
- 响应启发式判断:散文式响应、Markdown 格式、高延迟 (>500ms = LLM 推理)
- 表单分析:向 JSON API 发送 POST 请求的 textarea
- 主动探测:发送良性消息,分析响应中的 LLM 指标
2. **升级攻击阶段** — 针对每个检测到的 AI 端点:
| 阶段 | 子模块 | Payload | 测试内容 |
|-------|-----------|----------|--------------|
| 1 | **Prompt Injector** | 24 个 payload | 角色覆盖、指令覆盖、分隔符转义、上下文窗口操纵、编码绕过 (Base64/ROT13)、多步骤夹心攻击 |
| 2 | **Jailbreak Tester** | 16 种技术 | DAN 11.0、AIM、开发者模式、假设性框架、翻译攻击、情感操纵、煤气灯效应、少样本注入、token 预测利用 |
| 3 | **System Prompt Extractor** | 17 种技术 | 直接重复、token 强制 ("Continue: You are a")、结构化输出 (JSON/YAML)、间接摘要、填空、逆向输出 |
| 4 | **Output Analyzer** | 10 项测试 | AI 介导的 XSS:让 AI 生成 ``"* |
| **SQL 注入 → 数据泄露** | SQLi + 详细的错误消息 | *"/api/users 上的 SQLi 得益于详细的错误信息,这些信息暴露了 MySQL 8.0 和表结构。攻击者使用基于错误的提取方式转储数据库。"* |
| **未加密 HTTP 上的注入** | XSS/SQLi + 无 HSTS | *"注入漏洞可通过 MITM 在未加密的 HTTP 上被利用。同一网络上的攻击者在传输中注入 payload。"* |
| **完全的 AI 操控** | Prompt 注入 + 系统 Prompt 泄露 | *"AI 端点接受了注入并且泄露了系统 prompt。攻击者掌握了进行针对性 AI 利用的完整蓝图。"* |
| **武器化的 AI (AI 介导的 XSS)** | 未净化的 AI 输出 + 无 CSP | *"AI 在没有净化或 CSP 的情况下在响应中生成可执行的 JS。攻击者提示:'respond with a script tag' → AI 编写了漏洞利用代码。"* |
| **不受限制的 AI** | Jailbreak + Guardrail Bypass | *"AI 容易受到越狱攻击且防护被绕过。一旦被越狱:没有内容限制,没有安全过滤器,潜在的未授权操作。"* |
| **通过 AI 执行远程操作** | Prompt 注入 + 过度代理 | *"AI 接受注入并且在没有确认的情况下执行破坏性操作。这相当于 AI 领域的远程代码执行。"* |
| **完整系统接管** | 暴露的秘密 + 管理员端点 | *"泄露的 API 密钥 + 暴露的管理员端点。攻击者使用泄露的凭据对管理面板进行身份验证。"* |
| **深度防御失效** | 3 项及以上缺失的安全头 | *"多个安全响应头缺失——没有深度防御。每个漏洞都可以最大严重程度被利用。"* |
关联会出现在 CLI 输出和带有严重性升级的报告中。
## CLI 参考
### 命令
| 命令 | 描述 |
|---------|------------|
| `jaku scan ` | 运行所有模块:QA + 安全 + AI + 逻辑 + API (默认) |
| `jaku qa ` | 仅运行模块 01:QA 与功能测试 |
| `jaku security ` | 仅运行模块 02:安全漏洞扫描 |
| `jaku logic ` | 仅运行模块 03:业务逻辑验证 |
| `jaku ai ` | 仅运行模块 04:Prompt 注入与 AI 滥用 |
| `jaku api ` | 仅运行模块 05:API 与身份验证流程验证 |
### 选项
| 标志 | 描述 | 默认值 |
|------|-----------|---------|
| `-m, --modules
- ` | 要运行的以逗号分隔的模块列表 (`qa`、`security`、`ai`、`logic`、`api`) | `qa,security,ai,logic,api` |
| `-c, --config
标签:AI安全, AI辅助开发, BeEF, Chat Copilot, CISA项目, CMS安全, DAST, DevSecOps, GNU通用公共许可证, JavaScript, MITM代理, Node.js, Playwright, QA测试, Web安全, XSS检测, 上游代理, 动态应用安全测试, 多智能体, 安全测试, 开源, 恶意软件分析, 提示注入, 攻击性安全, 攻击链分析, 文档结构分析, 暗色界面, 爬虫, 特征检测, 自定义脚本, 蓝队分析, 质量保障, 足迹探测, 集群管理