RamNarra/KAVACH-AI
GitHub: RamNarra/KAVACH-AI
KAVACH AI 是一个生成式 AI 驱动的 Android 银行木马分析沙盒,通过自动化静态与动态分析生成可解释的威胁审计报告。
Stars: 0 | Forks: 0
# 🛡️ KAVACH AI
Validates Size (Zipbomb check) API->>DB: Set initial status to PROCESSING API-->>UI: Return Job ID (Async Processing Starts) par Static Analysis Pipeline API->>Sandbox: Execute sandboxed_run() (Docker Container) Note over Sandbox: JADX Decompile & Apktool Extract
--network none --memory 3g --user nobody Sandbox-->>API: Manifest XML, JADX Source Code, Assets API->>API: Run TruffleHog (Secrets) & Semgrep (Vulnerabilities) API->>API: Run Androguard DEX Bytecode Scan and Dynamic Analysis Pipeline API->>Emu: ADB Install Target APK API->>Emu: Inject Frida Hooks (okhttp3 Intercept) API->>Emu: Run Playbook Engine (UI Interactions) Emu-->>API: Capture Decrypted API Payloads & Syscalls end API->>API: Compile Telemetry & Calculate OWASP Risk Rating API->>AI: Send Analysis Data (Delimited Prompt Envelope) AI-->>API: Synthesized Report & Advisory (JSON) API->>API: Cross-validate AI findings vs. Static/Dynamic facts API->>DB: Save Fernet-Encrypted Scan Document UI->>API: SSE (Server-Sent Events) Status Poll API-->>UI: Pushes Complete Document UI->>User: Displays interactive Threat Dashboard ``` ## 📂 代码库结构与代码符号 ``` KAVACH-AI/ ├── backend/ # FastAPI Backend Application Services │ ├── main.py # Pipeline orchestrator, worker pool, downloaders, and cleanup [1] │ ├── routes.py # API route handlers, stream uploads, rate limits, and hooks [2] │ ├── auth.py # JWT token parser, security sessions, and admin filters [3] │ ├── sandbox_runner.py # Isolation wrapper spawning Docker-Sandbox subprocesses [4] │ ├── Dockerfile-sandbox # Build recipe for the eclipse-temurin JRE sandbox container [5] │ ├── Dockerfile # Production Dockerfile for backend deployments │ ├── supabase_db.py # Encrypted Postgrest DB wrapper mimicking Firestore API [6] │ ├── analysis_engine.py # Semgrep rule processor and TruffleHog scanner [7] │ ├── androguard_analyzer.py # DEX Bytecode constant scanner and namespace filter [8] │ ├── banking_fraud.py # Signature heuristics for known trojans (SOVA, BRATA, etc.) [9] │ ├── risk_engine.py # OWASP Likelihood x Impact scoring calculator [10] │ ├── attack_mapping.py # Dynamic indicator mapper to MITRE ATT&CK techniques [11] │ ├── dynamic_engine.py # ADB interface, Frida session orchestrator, and app installer [12] │ ├── playbook_engine.py # UI Automator crawler and interactive monkey simulator [13] │ ├── frida_hooks.py # Javascript hooking files (okhttp3, file, and SMS intercepts) [14] │ ├── vt_scan.py # Async VirusTotal SHA-256 hash lookup client [15] │ └── test_intelligence.py # Pytest testing suite covering security limits and rates [16] ├── frontend/ # Next.js Frontend Web Application │ ├── src/ │ │ ├── app/ │ │ │ ├── page.tsx # Cyber-dashboard interface with live SSE poll streams [17] │ │ │ ├── globals.css # CSS stylesheets, matrix canvas configuration, themes │ │ │ └── layout.tsx # Next.js layout template │ │ └── lib/ │ │ ├── api.ts # API client with same-origin detection & IndexedDB cache [18] │ │ └── types.ts # Unified TypeScript definitions for scan documents [19] ├── supabase/ # Supabase Local Development Configuration & Migrations │ ├── config.toml # Supabase local environment settings │ └── migrations/ │ └── 20260611000000_... # Database migration schema & PL/pgSQL rate functions [20] ├── ops/ # Ops scripts and cleanup policies │ ├── cleanup_orphan_apks.py # Automatic process pruning unused host workspace files │ └── storage-lifecycle.json # Storage lifecycle settings ├── setup.sh # One-command dependency installation script └── start.sh # One-command runtime orchestrator script ``` ### 模块代码符号目录(内部可点击引用) * [1] [backend/main.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/main.py):Pipeline 编排器,使用 `ThreadPoolExecutor` 和 `Semaphore`(限制为 2)协调分析作业以控制主机资源。包括对临时工作区的清理。 * [2] [backend/routes.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/routes.py):处理 FastAPI 路由、多部分文件流、速率限制更新和 hooks 注入。 * [3] [backend/auth.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/auth.py):根据配置的 JWT 密钥验证传入的 Authorization Bearer token,并支持会话标头。 * [4] [backend/sandbox_runner.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/sandbox_runner.py):安全的子进程运行器,在隔离的 Docker 容器中使用丢弃的 capabilities 执行 JADX/Apktool。 * [5] [backend/Dockerfile-sandbox](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/Dockerfile-sandbox):多阶段 Dockerfile,用于构建沙盒容器,使用 eclipse-temurin JRE 和非 root 的 `sandbox` 用户。 * [6] [backend/supabase_db.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/supabase_db.py):可直接替换标准 Firestore 接口,在传输前使用 Fernet 加密敏感字段。 * [7] [backend/analysis_engine.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/analysis_engine.py):执行 Semgrep AST 检查并解析 TruffleHog 密钥输出。 * [8] [backend/androguard_analyzer.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/androguard_analyzer.py):直接解析 DEX 文件头并检查常量表。 * [9] [backend/banking_fraud.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/banking_fraud.py):针对已知移动银行木马进行规则匹配签名检查。 * [10] [backend/risk_engine.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/risk_engine.py):实现 OWASP 可能性 x 影响力评分框架。 * [11] [backend/attack_mapping.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/attack_mapping.py):将字节码遥测数据和指标映射到 MITRE ATT&CK 技术。 * [12] [backend/dynamic_engine.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/dynamic_engine.py):处理模拟器上的 APK 安装并启动 Frida hooks 会话。 * [13] [backend/playbook_engine.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/playbook_engine.py):使用 UIAutomator 屏幕层级结构与目标应用进行交互。 * [14] [backend/frida_hooks.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/frida_hooks.py):用于捕获未加密出站网络流量的 Frida JavaScript 拦截器代码。 * [15] [backend/vt_scan.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/vt_scan.py):使用文件哈希异步查询 VirusTotal API。 * [16] [backend/test_intelligence.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/test_intelligence.py):验证安全边界、文件大小和 API 路由。 * [17] [frontend/src/app/page.tsx](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/frontend/src/app/page.tsx):主仪表板应用程序,显示威胁指标、动态追踪和 MITRE 映射。 * [18] [frontend/src/lib/api.ts](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/frontend/src/lib/api.ts):实现 IndexedDB 客户端缓存的客户端包装器。 * [19] [frontend/src/lib/types.ts](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/frontend/src/lib/types.ts):用于 API 和仪表板状态的统一 TypeScript 类型。 * [20] [supabase/migrations/20260611000000_create_documents_table.sql](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/supabase/migrations/20260611000000_create_documents_table.sql):数据库 schema 迁移和 PL/pgSQL 原子速率限制函数。 ## 🛠️ 技术深入解析 ### 1. AI 层(多层级认知网关) KAVACH AI 通过多层级故障转移架构处理 LLM 交互,以确保可靠性和成本效益: * **Prompt 隔离与防御**:为了防止 prompt 注入,输入被包裹在显式的结构标签 (``) 中。Prompt 包含系统指令,明确警告模型不要执行嵌入在分析文件字符串中的指令。
* **Token 优化**:分析 payload 使用 4KB 的 `MAX_PER_FILE` 限制和 40KB 的 `MAX_TOTAL_PAYLOAD` 限制进行动态截断。这避免了上下文窗口膨胀并控制了执行成本。
* **顺序模型故障转移**:如果主模型 `gemini-3.5-flash` 受到速率限制,编排器将自动故障转移到次级选项:
1. `gemini-3.5-flash`(主要分析)
2. `gemini-3.1-flash-lite`(低延迟故障转移)
3. `gemini-2.5-flash` / `gemini-2.0-flash`
4. 离线启发式引擎(当云 API 不可用时的后备摘要生成器)
* **反幻觉解耦**:数值风险评分与 LLM 生成保持独立。评级使用标准公式确定性地计算,将 LLM 限制为仅负责总结发现。
### 2. 静态分析引擎
静态分析阶段对 APK 进行反编译并解析代码结构:
* **Manifest 检查器**:提取应用程序包名、组件导出状态、intent 过滤器和权限声明。
* **DEX 常量池分析器**:使用 Androguard 直接扫描 Dalvik Executable (DEX) 文件,以查找硬编码的 base64 模式、命令执行关键字 (`Runtime.getRuntime().exec`) 和动态类加载器调用。它会自动忽略常见的框架路径(如 `androidx.*` 或 `kotlin.*`),以最大程度地减少噪音。
* **密钥排查与代码审计器**:集成 TruffleHog 扫描器逻辑和映射到 OWASP 移动应用安全验证标准 (MASVS) 的 Semgrep 规则,以识别内嵌密钥和潜在漏洞。
### 3. 动态分析引擎
当静态分析指示出可能存在的风险时,将触发动态分析环境:
* **动态类拦截器 (Frida)**:拦截 `okhttp3.RealCall.enqueue` 和 `execute` 方法,以在应用 SSL 加密之前捕获未加密的出站 payload、endpoint 和 C2 服务器。
* **UI Playbook 自动化器**:通过 UIAutomator 自动与模拟器内部的目标应用程序进行交互。它使用视图层级选择器匹配来定位按钮、输入文本字段并关闭系统对话框警告。
* **模拟器隔离**:在沙盒环境后方运行的无头 Android 虚拟设备 (AVD) 中执行被分析的代码,以防止潜在的主机逃逸。
## 🏛️ 技术栈
| 类别 | 技术 | 详情 |
| :--- | :--- | :--- |
| **前端 UI** | Next.js 14 / TypeScript | App Router 布局、动态 EventSource Server-Sent Events、Tailwind CSS |
| **后端核心** | FastAPI (Python 3.11) | 高性能异步路由、ThreadPoolExecutor 并行工作进程 |
| **数据库** | Supabase (PostgreSQL) | Postgrest REST API 后端、客户端 Fernet 对称加密 |
| **沙盒执行** | Docker Engine | 丢弃 capabilities 的隔离沙盒容器 (`kavach-sandbox:latest`) |
| **静态分析器** | JADX、APKTool、Androguard | Dalvik 字节码解析器、资源提取器、常量池扫描 |
| **漏洞扫描** | Semgrep & TruffleHog | AST 安全审计、OWASP MASTG 规合规性、密钥扫描器 |
| **动态拦截** | Frida & ADB Platform-Tools | OkHttp3 拦截器、运行时 API hooks、UIAutomator playbooks |
| **AI 合成** | Google Gemini API | Gemini 3.5 Flash 主引擎、多模型故障转移例程 |
## 🔒 安全强化与沙盒化
```
Untrusted APK Ingestion
│
▼
┌─────────────────────────────────────────────────────────┐
│ Host API SSRF Shield (socket.getaddrinfo verification) │
└──────────────────────────┬──────────────────────────────┘
│ (Passed)
▼
┌─────────────────────────────────────────────────────────┐
│ Zipbomb Scanner (Verifies uncompressed size < 2GB) │
└──────────────────────────┬──────────────────────────────┘
│ (Passed)
▼
┌─────────────────────────────────────────────────────────┐
│ Isolated Docker Subprocess (sandbox_runner.py) │
│ - Host System Isolation (--network none) │
│ - RAM Limits & Swap Controls (--memory 3g) │
│ - Dropped Capabilities (--cap-drop=ALL) │
│ - Writable Temporary Files System in RAM (--tmpfs /tmp) │
│ - Immutable Root File System (--read-only) │
│ - Restricted Sandbox User (--user nobody) │
└─────────────────────────────────────────────────────────┘
```
KAVACH AI 实施了分层安全控制,以在分析过程中保护主机系统:
* **SSRF DNS-Rebinding 防护**:使用 `socket.getaddrinfo` 针对解析出的 IP 地址验证引入的 URL。阻止对环回、多播或私有 IP 网络(`127.0.0.0/8`、`10.0.0.0/8`、`192.168.0.0/16` 等)的请求。
* **Zipbomb 防护**:在解压前检查 ZIP 文件头。拒绝未压缩大小超过 2GB 或压缩比大于 100 倍的存档。
* **容器沙盒隔离**:在 Docker 容器内使用严格的安全配置文件执行逆向工程工具:
docker run --rm --network none --memory 3g --memory-swap 3g --cpus 2 --pids-limit 100 --user nobody --cap-drop=ALL --security-opt no-new-privileges --read-only --tmpfs /tmp:size=512m -v /host/in:/sandbox/input:ro -v /host/out:/sandbox/output:rw kavach-sandbox:latest [CMD]
此配置可阻止网络访问,限制内存/CPU 消耗,丢弃所有 Linux capabilities,并以受限用户身份运行工具。
## 🚀 本地部署指南
按照以下步骤在本地开发机器上设置 KAVACH AI:
### 前置条件
* **操作系统**:Linux(推荐 Ubuntu 22.04 LTS 或更高版本)或 macOS
* **Python 3.11+**
* **Node.js 18+ & npm**
* **Java JRE/JDK**(JADX 和 APKTool 反编译器需要)
* **Android SDK Platform-Tools (adb)**(在系统 `PATH` 中配置)
* **Docker Engine**(用于容器化的沙盒执行)
### 第 1 步:克隆代码库
```
git clone https://github.com/RamNarra/KAVACH-AI.git
cd KAVACH-AI
```
### 第 2 步:初始化系统设置
运行自动化安装脚本。此脚本会验证前置条件,配置 Python 虚拟环境,安装后端依赖项,设置 Next.js 前端 node 模块,并创建环境配置模板:
```
chmod +x setup.sh start.sh
./setup.sh
```
### 第 3 步:配置环境变量
创建根目录下的 `.env` 文件,并设置所需的 API 密钥和连接参数:
```
# 编辑项目环境变量
nano .env
```
确保已配置以下变量:
```
# Gemini Key
GEMINI_API_KEY="AIzaSyYourGeminiAPIKeyHere"
# Supabase 数据库配置
SUPABASE_URL="https://your-project-id.supabase.co"
SUPABASE_KEY="eyJhbGciOiJIUzI1NiIsIn..."
SUPABASE_JWT_SECRET="super_secret_kavach_jwt_security_token_1337"
# Operational Modes
KAVACH_DOCKER_SANDBOX=1 # Enable isolated Docker sandbox
KAVACH_ALLOW_LEGACY_UID=1 # Enable fallback session headers
```
### 第 4 步:构建沙盒容器
如果 `KAVACH_DOCKER_SANDBOX=1` 处于激活状态,请构建隔离的分析镜像:
```
docker build -t kavach-sandbox:latest -f backend/Dockerfile-sandbox backend/
```
### 第 5 步:启动服务
并发启动 FastAPI 后端和 Next.js 前端:
```
./start.sh
```
* 前端将位于 [http://localhost:3000](http://localhost:3000)。
* 后端网关将位于 [http://localhost:8080](http://localhost:8080)。
### 🐳 替代方案:通过 Docker Compose 运行
使用 Docker Compose 部署整个技术栈(Next.js 客户端、FastAPI 服务器、Redis 和 MobSF 实例):
```
# 启动所有 compose 服务
docker compose up --build
```
* 在 [http://localhost:3000](http://localhost:3000) 访问 Next.js 仪表板。
* 在 [http://localhost:8000](http://localhost:8000) 访问 MobSF。
### 🔍 验证与故障排除
#### 1. 确认后端 API 健康状况
通过查询健康检查 endpoint 来验证后端状态:
```
curl -X GET http://localhost:8080/health
```
**预期响应**:
```
{
"status": "healthy",
"database": "connected",
"sandbox": "docker"
}
```
#### 2. 常见问题排查
* **端口冲突(8080 或 3000)**:验证没有其他本地服务正在使用这些端口:
lsof -i :8080
lsof -i :3000
* **Docker 权限错误**:确保当前系统用户有权与 Docker 守护进程交互:
sudo usermod -aG docker $USER
*(注销并重新登录以应用组更改)*
## 📈 验证与演示指南
使用示例 APK 验证分析 pipeline:
### 1. 运行静态扫描
1. 打开 [http://localhost:3000](http://localhost:3000) 处的仪表板。
2. 将目标 `.apk` 文件拖放到上传区,或输入安全的下载 URL。
3. 点击 **Initiate Scan**。
4. 监视日志终端以跟踪 JADX 反编译步骤、密钥排查和清单检查。
### 2. 运行动态沙盒会话
1. 确保正在运行 Android 模拟器并且可以通过 ADB 访问:
adb devices
2. 在扫描仪表板上,切换 **Enable Dynamic Tracing**。
3. 点击 **Launch Sandbox**。
4. 系统将安装该应用,生成 Frida 会话以拦截 OkHttp3 套接字,并模拟屏幕交互以捕获运行时日志。
### 3. 解读威胁报告
完成后,仪表板将显示汇总的发现结果:
* **总体威胁评分**:使用 OWASP 风险评级方法得出的 0 到 100 的评分。
* **MITRE ATT&CK 映射手风琴组件**:显示与标准威胁矩阵相关联的已映射指标。
* **已验证徽章元素**:由静态签名验证的发现被标记为 `✓ Evidence-Backed`,而 AI 生成的指标标记为 `⚠ AI Inferred`。
## 🗺️ 未来路线图
```
Short-Term (Q3 2026) Medium-Term (Q4 2026) Long-Term (2027)
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ 🧪 Emulator Pooling │ │ 🛡️ Anti-Evasion │ │ 🏦 Core Banking │
│ Pre-warmed Android │ │ Detect virtual-box │ │ Integrate via APIs │
│ sandbox sessions │ │ evasion code │ │ to block transfers │
└──────────┬───────────┘ └──────────┬───────────┘ └──────────┬───────────┘
│ │ │
▼ ▼ ▼
```
### 1. 短期目标
* **预热的模拟器池**:实施模拟器池管理器以复用活动的虚拟设备实例,从而减少启动开销。
* **增强的污点流追踪**:改进寄存器级的 DEX 数据流分析器,以识别复杂的重打包 overlay。
### 2. 中期目标
* **反规避检测**:通过识别虚拟化签名,添加检查以检测被分析的应用程序何时试图绕过沙盒环境。
* **扩展的木马指纹**:扩展签名匹配数据库,以涵盖针对区域 UPI 系统的新型 Android 恶意软件家族。
### 3. 长期目标
* **核心银行 API 集成**:将扫描 pipeline 与银行交易网关集成,以自动标记与恶意 C2 endpoint 关联的账户。
* **本地 AI 部署**:从云 API 依赖过渡到部署在安全银行基础设施内的本地 LLM(如 Llama-3 或 Gemma-2)。
## 👥 贡献者
* **Ram Narra** - 首席架构与实现
## 📄 许可证
该项目基于 Apache 2.0 许可证授权。有关详细信息,请参阅 LICENSE 文件。
## 🤝 致谢
* **印度银行** 和 **IIT-Hyderabad** 举办 2026 年黑客马拉松。
* **JADX**、**APKTool**、**Androguard** 和 **Frida** 背后的开源社区。
生成式 AI 驱动的移动银行木马沙盒与可解释威胁审计系统
为印度银行 × IIT-Hyderabad 黑客马拉松 2026 开发
Validates Size (Zipbomb check) API->>DB: Set initial status to PROCESSING API-->>UI: Return Job ID (Async Processing Starts) par Static Analysis Pipeline API->>Sandbox: Execute sandboxed_run() (Docker Container) Note over Sandbox: JADX Decompile & Apktool Extract
--network none --memory 3g --user nobody Sandbox-->>API: Manifest XML, JADX Source Code, Assets API->>API: Run TruffleHog (Secrets) & Semgrep (Vulnerabilities) API->>API: Run Androguard DEX Bytecode Scan and Dynamic Analysis Pipeline API->>Emu: ADB Install Target APK API->>Emu: Inject Frida Hooks (okhttp3 Intercept) API->>Emu: Run Playbook Engine (UI Interactions) Emu-->>API: Capture Decrypted API Payloads & Syscalls end API->>API: Compile Telemetry & Calculate OWASP Risk Rating API->>AI: Send Analysis Data (Delimited Prompt Envelope) AI-->>API: Synthesized Report & Advisory (JSON) API->>API: Cross-validate AI findings vs. Static/Dynamic facts API->>DB: Save Fernet-Encrypted Scan Document UI->>API: SSE (Server-Sent Events) Status Poll API-->>UI: Pushes Complete Document UI->>User: Displays interactive Threat Dashboard ``` ## 📂 代码库结构与代码符号 ``` KAVACH-AI/ ├── backend/ # FastAPI Backend Application Services │ ├── main.py # Pipeline orchestrator, worker pool, downloaders, and cleanup [1] │ ├── routes.py # API route handlers, stream uploads, rate limits, and hooks [2] │ ├── auth.py # JWT token parser, security sessions, and admin filters [3] │ ├── sandbox_runner.py # Isolation wrapper spawning Docker-Sandbox subprocesses [4] │ ├── Dockerfile-sandbox # Build recipe for the eclipse-temurin JRE sandbox container [5] │ ├── Dockerfile # Production Dockerfile for backend deployments │ ├── supabase_db.py # Encrypted Postgrest DB wrapper mimicking Firestore API [6] │ ├── analysis_engine.py # Semgrep rule processor and TruffleHog scanner [7] │ ├── androguard_analyzer.py # DEX Bytecode constant scanner and namespace filter [8] │ ├── banking_fraud.py # Signature heuristics for known trojans (SOVA, BRATA, etc.) [9] │ ├── risk_engine.py # OWASP Likelihood x Impact scoring calculator [10] │ ├── attack_mapping.py # Dynamic indicator mapper to MITRE ATT&CK techniques [11] │ ├── dynamic_engine.py # ADB interface, Frida session orchestrator, and app installer [12] │ ├── playbook_engine.py # UI Automator crawler and interactive monkey simulator [13] │ ├── frida_hooks.py # Javascript hooking files (okhttp3, file, and SMS intercepts) [14] │ ├── vt_scan.py # Async VirusTotal SHA-256 hash lookup client [15] │ └── test_intelligence.py # Pytest testing suite covering security limits and rates [16] ├── frontend/ # Next.js Frontend Web Application │ ├── src/ │ │ ├── app/ │ │ │ ├── page.tsx # Cyber-dashboard interface with live SSE poll streams [17] │ │ │ ├── globals.css # CSS stylesheets, matrix canvas configuration, themes │ │ │ └── layout.tsx # Next.js layout template │ │ └── lib/ │ │ ├── api.ts # API client with same-origin detection & IndexedDB cache [18] │ │ └── types.ts # Unified TypeScript definitions for scan documents [19] ├── supabase/ # Supabase Local Development Configuration & Migrations │ ├── config.toml # Supabase local environment settings │ └── migrations/ │ └── 20260611000000_... # Database migration schema & PL/pgSQL rate functions [20] ├── ops/ # Ops scripts and cleanup policies │ ├── cleanup_orphan_apks.py # Automatic process pruning unused host workspace files │ └── storage-lifecycle.json # Storage lifecycle settings ├── setup.sh # One-command dependency installation script └── start.sh # One-command runtime orchestrator script ``` ### 模块代码符号目录(内部可点击引用) * [1] [backend/main.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/main.py):Pipeline 编排器,使用 `ThreadPoolExecutor` 和 `Semaphore`(限制为 2)协调分析作业以控制主机资源。包括对临时工作区的清理。 * [2] [backend/routes.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/routes.py):处理 FastAPI 路由、多部分文件流、速率限制更新和 hooks 注入。 * [3] [backend/auth.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/auth.py):根据配置的 JWT 密钥验证传入的 Authorization Bearer token,并支持会话标头。 * [4] [backend/sandbox_runner.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/sandbox_runner.py):安全的子进程运行器,在隔离的 Docker 容器中使用丢弃的 capabilities 执行 JADX/Apktool。 * [5] [backend/Dockerfile-sandbox](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/Dockerfile-sandbox):多阶段 Dockerfile,用于构建沙盒容器,使用 eclipse-temurin JRE 和非 root 的 `sandbox` 用户。 * [6] [backend/supabase_db.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/supabase_db.py):可直接替换标准 Firestore 接口,在传输前使用 Fernet 加密敏感字段。 * [7] [backend/analysis_engine.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/analysis_engine.py):执行 Semgrep AST 检查并解析 TruffleHog 密钥输出。 * [8] [backend/androguard_analyzer.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/androguard_analyzer.py):直接解析 DEX 文件头并检查常量表。 * [9] [backend/banking_fraud.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/banking_fraud.py):针对已知移动银行木马进行规则匹配签名检查。 * [10] [backend/risk_engine.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/risk_engine.py):实现 OWASP 可能性 x 影响力评分框架。 * [11] [backend/attack_mapping.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/attack_mapping.py):将字节码遥测数据和指标映射到 MITRE ATT&CK 技术。 * [12] [backend/dynamic_engine.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/dynamic_engine.py):处理模拟器上的 APK 安装并启动 Frida hooks 会话。 * [13] [backend/playbook_engine.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/playbook_engine.py):使用 UIAutomator 屏幕层级结构与目标应用进行交互。 * [14] [backend/frida_hooks.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/frida_hooks.py):用于捕获未加密出站网络流量的 Frida JavaScript 拦截器代码。 * [15] [backend/vt_scan.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/vt_scan.py):使用文件哈希异步查询 VirusTotal API。 * [16] [backend/test_intelligence.py](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/backend/test_intelligence.py):验证安全边界、文件大小和 API 路由。 * [17] [frontend/src/app/page.tsx](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/frontend/src/app/page.tsx):主仪表板应用程序,显示威胁指标、动态追踪和 MITRE 映射。 * [18] [frontend/src/lib/api.ts](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/frontend/src/lib/api.ts):实现 IndexedDB 客户端缓存的客户端包装器。 * [19] [frontend/src/lib/types.ts](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/frontend/src/lib/types.ts):用于 API 和仪表板状态的统一 TypeScript 类型。 * [20] [supabase/migrations/20260611000000_create_documents_table.sql](file:///home/p4cketsn1ff3r/Downloads/Projects/KAVACH%20AI/supabase/migrations/20260611000000_create_documents_table.sql):数据库 schema 迁移和 PL/pgSQL 原子速率限制函数。 ## 🛠️ 技术深入解析 ### 1. AI 层(多层级认知网关) KAVACH AI 通过多层级故障转移架构处理 LLM 交互,以确保可靠性和成本效益: * **Prompt 隔离与防御**:为了防止 prompt 注入,输入被包裹在显式的结构标签 (`
标签:Android, DLL 劫持, DSL, 云资产清单, 大语言模型, 威胁分析, 安全沙箱, 目录枚举, 移动安全, 自动化侦查工具, 请求拦截, 逆向工具, 逆向工程, 错误基检测, 静态代码分析