Antigravity工具安全分析报告
Antigravity Tools
项目地址
https://github.com/lbjlaq/Antigravity-Manager
分析代码为:Antigravity Tools v3.3.44
项目概览
- 这是一个 Tauri v2 桌面应用:前端 React/Vite,后端 Rust;核心目标是“账号管理 + 本地协议反代网关 + 监控/调度”。见 package.json、Cargo.toml、README.md。
- 后端同时跑 3 类服务:Tauri 命令接口(给前端调用)、Axum 反代服务(对外提供 OpenAI/Anthropic/Gemini 兼容端点)、本地 HTTP API(给外部程序/插件调用)。入口在 lib.rs。
关键运行流程(端到端)
- 启动链路:前端启动即调用
invoke("show_main_window")避免启动黑屏(Tauri 窗口visible:false配套)。见 main.tsx、tauri.conf.json。 - 应用初始化(Rust):初始化日志、托盘、智能调度器;按配置决定是否自动启动反代;按设置启动本地 HTTP API。见 lib.rs。
- 反代服务(Axum):
start_proxy_service创建 TokenManager、加载账号、启动 AxumServer 并挂载路由(OpenAI/Claude/Gemini/MCP/healthz)。见 commands/proxy.rs、proxy/server.rs、proxy/mod.rs。 - 协议转换与重试:以 Claude handler 为例,做请求转换、上下文净化/思维块处理、错误分类与退避重试。见 handlers/claude.rs。
本地运行 / 构建 / 测试入口
前端开发:
npm run dev(Vite 1420 端口,供 tauri dev 用)。见 package.json、vite.config.ts、tauri.conf.json。桌面开发(推荐):
npm run tauri dev(或RUST_LOG=debug npm run tauri dev)。脚本提示见 docs/client_test_examples.md。构建:
npm run build(tsc && vite build),Tauri 打包由 GitHub Action 的 tauri-action 驱动。见 package.json、release.yml。测试:CI 跑
cargo test --all --all-features(src-tauri 目录)。见 release.yml。风险与改进建议(按优先级)
高:本地 HTTP API 无鉴权 + CORS 放开:HTTP API 绑定 127.0.0.1 但允许任意 Origin/Headers,且无 token 校验;恶意网页可通过浏览器 JS 直接调用
http://127.0.0.1:<port>读取账号信息/切换账号/拉取代理日志(典型 “local CSRF”)。见 modules/http_api.rs。建议:默认关闭或加 API key/随机一次性 token;至少把 CORS 白名单收紧为http://localhost/tauri://localhost或直接移除 CORS。高:反代服务 CORS 全放开 + 默认可无鉴权:代理层
cors_layer()允许任意 Origin/Headers,若用户未开启 auth(或Auto在本机模式下等同 Off),同样可能被恶意网页“借用本机代理”发起请求。见 proxy/middleware/cors.rs、proxy/security.rs、proxy/middleware/auth.rs。建议:默认开启AllExceptHealth(哪怕仅本机),并将 CORS 改为默认关闭或仅允许可信 Origin。高:OAuth “client_secret” 硬编码 & token 片段写日志:
CLIENT_SECRET直接写在代码里,且成功后日志输出 access_token 前 20 字符。见 modules/oauth.rs、modules/oauth.rs。建议:改为 PKCE(把应用视为 public client,不依赖保密的 client_secret);同时移除任何 token 片段日志。中:代理日志持久化包含 request/response body:
proxy_logs.db会存 request_body/response_body(可能包含提示词、私密数据、工具输出等)。见 modules/proxy_db.rs。建议:默认不落盘 body(或脱敏/截断/按开关);给出明确的保留期限/最大容量策略并默认开启清理。中:本地账号/token 明文落盘:账号与 refresh/access token 存在用户 home 下
.antigravity_tools/accounts/*.json(从实现可推断)。见数据目录创建逻辑 modules/account.rs。建议:至少用系统 Keychain/Credential Manager;或做可选的本地加密(用户主密码/OS 绑定)。中:Tauri CSP 较宽:配置里含
'unsafe-inline'和'unsafe-eval',会削弱前端注入防护。见 tauri.conf.json。建议:尽量收紧 CSP(生产禁用 eval/inline),配合构建产物调整。
如果你希望我“进一步分析到可落地的改造方案”,我可以按上述高优先级点给出最小改动的实现草案(例如:为 HTTP API/Proxy 增加统一鉴权与 CORS 白名单策略,并补上回归测试点)。
本文链接:Antigravity工具安全分析报告
保持关注,记得把网址 (17you.com) 加收藏夹!有空经常来网站看看!我们每天都分享最新鲜、最实用的AI知识、最新动态、最新技术,以及最新的应用场景。