Antigravity工具安全分析报告

Antigravity Tools

项目地址
https://github.com/lbjlaq/Antigravity-Manager
分析代码为:Antigravity Tools v3.3.44

项目概览

  • 这是一个 Tauri v2 桌面应用:前端 React/Vite,后端 Rust;核心目标是“账号管理 + 本地协议反代网关 + 监控/调度”。见 package.jsonCargo.tomlREADME.md
  • 后端同时跑 3 类服务:Tauri 命令接口(给前端调用)、Axum 反代服务(对外提供 OpenAI/Anthropic/Gemini 兼容端点)、本地 HTTP API(给外部程序/插件调用)。入口在 lib.rs

关键运行流程(端到端)

  • 启动链路:前端启动即调用 invoke("show_main_window") 避免启动黑屏(Tauri 窗口 visible:false 配套)。见 main.tsxtauri.conf.json
  • 应用初始化(Rust):初始化日志、托盘、智能调度器;按配置决定是否自动启动反代;按设置启动本地 HTTP API。见 lib.rs
  • 反代服务(Axum)start_proxy_service 创建 TokenManager、加载账号、启动 AxumServer 并挂载路由(OpenAI/Claude/Gemini/MCP/healthz)。见 commands/proxy.rsproxy/server.rsproxy/mod.rs
  • 协议转换与重试:以 Claude handler 为例,做请求转换、上下文净化/思维块处理、错误分类与退避重试。见 handlers/claude.rs

本地运行 / 构建 / 测试入口

  • 前端开发npm run dev(Vite 1420 端口,供 tauri dev 用)。见 package.jsonvite.config.tstauri.conf.json

  • 桌面开发(推荐)npm run tauri dev(或 RUST_LOG=debug npm run tauri dev)。脚本提示见 docs/client_test_examples.md

  • 构建npm run buildtsc && vite build),Tauri 打包由 GitHub Action 的 tauri-action 驱动。见 package.jsonrelease.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.rsproxy/security.rsproxy/middleware/auth.rs。建议:默认开启 AllExceptHealth(哪怕仅本机),并将 CORS 改为默认关闭或仅允许可信 Origin。

  • 高:OAuth “client_secret” 硬编码 & token 片段写日志CLIENT_SECRET 直接写在代码里,且成功后日志输出 access_token 前 20 字符。见 modules/oauth.rsmodules/oauth.rs。建议:改为 PKCE(把应用视为 public client,不依赖保密的 client_secret);同时移除任何 token 片段日志。

  • 中:代理日志持久化包含 request/response bodyproxy_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工具安全分析报告

原文链接: https://www.17you.com/ai/antigravitytools%E7%9A%84%E9%A1%B9%E7%9B%AE%E5%88%86%E6%9E%90/ 已复制!
一起薅AI羊毛

保持关注,记得把网址 (17you.com) 加收藏夹!有空经常来网站看看!我们每天都分享最新鲜、最实用的AI知识、最新动态、最新技术,以及最新的应用场景。

请点击联系我


相关内容