Skip to content

6. 协议安全评估

6.1 数据传输加密状态总览

链路协议加密认证风险
WebView → JavaJS Bridge (JCEF)本地沙箱, 低风险
Java → AgentWebSocket ws://高风险: 本机进程可嗅探
Agent → 云端HTTPSTLS 1.2+access-token安全
Agent 内部函数调用SM2/SM4/RSA/AES硬编码密钥密钥不可轮换

6.2 明文传输的敏感数据

数据传输路径风险等级说明
SQL 数据库密码WebView → Java → Agent明文经 JS Bridge 和 WebSocket
Git 访问令牌WebView → Java → Agent明文经 JS Bridge 和 WebSocket
用户聊天内容WebView → Java → Agent → 云端含代码、业务逻辑
AI 生成代码云端 → Agent → Java → WebView可能含敏感实现
文件完整内容Java → Agent (代码补全)每次补全发送完整文件
认证 TokenAgent → 云端 (HTTP header)仅在 HTTPS 通道
登录密码WebView → (浏览器) → 云端浏览器重定向, 不经 WebView

6.3 加密强度评估

算法密钥强度评估问题
RSA-10241024 bit2010年768-bit已分解, 1024-bit可分解
SM2256 bit (等效)算法安全, 但密钥硬编码
SM4128 bit算法安全, 但密钥硬编码
AES-256-CTR256 bitCTR模式+固定IV=流密码重用
MD5128 bit已知碰撞攻击

6.4 攻击面分析

攻击面 1: WebSocket 嗅探 (高风险)

攻击条件: 本机恶意进程
攻击路径: 连接 ws://127.0.0.1:{port}/ws/idea
可获取数据: 所有用户输入、AI响应、SQL密码、Git Token
缓解措施: WebSocket 无认证, 端口可预测

攻击面 2: JS Bridge 注入 (中风险)

攻击条件: WebView XSS 或 CEF 调试端口开放
攻击路径: 在 WebView 中执行任意 JS
可获取数据: 调用所有 JS→Java 功能
可执行操作: 发送消息、修改代码、访问数据库、操作 Git
缓解措施: JCEF 沙箱限制, 生产环境应禁用远程调试

攻击面 3: 密钥提取 (中风险)

攻击条件: 访问 Agent 安装目录
攻击路径: 读取 agent/bin/index.js
可获取数据: 所有硬编码密钥 (RSA, SM2, SM4, AES)
影响: 可解密所有历史加密数据
缓解措施: webpack 混淆增加提取难度, 但非不可逆

攻击面 4: 中间人攻击 (低风险)

攻击条件: 控制 Agent → 云端网络路径
攻击路径: 修改 DNS / 代理设置
可获取数据: 所有 API 请求/响应
缓解措施: HTTPS + 证书验证 (除 OpenTelemetry 通道)
注意: OpenTelemetry 通道禁用证书验证, 可被 MITM

6.5 安全建议优先级

优先级建议影响
P0WebSocket 添加认证 (共享密钥或 Token)防止本机进程嗅探
P0SQL 密码传输前加密 (RSA/SM2)防止密码泄露
P1Git Token 传输前加密防止令牌泄露
P1升级 RSA 到 2048-bit+防止密钥分解
P1AES-CTR 改为 AES-GCM防止流密码重用攻击
P2密钥从服务端动态获取支持密钥轮换
P2OpenTelemetry 启用证书验证防止 MITM
P3MD5 替换为 SHA-256防止碰撞攻击
P3JS Bridge 添加权限校验防止未授权调用

7. Agent API 端点完整映射

7.1 星火 API (starspark)

API 路径用途模块
/api/starspark/v1/agent/chat/async/ask异步流式对话Chat
/api/starspark/v1/agent/chat/sync/ask同步对话Chat
/api/starspark/v1/agent/chat/inline/chat行内对话InlineChat
/api/starspark/v1/agent/chat/review代码评审GitReview
/api/starspark/v1/agent/chat/generateSqlSQL 生成SQL
/api/starspark/v1/agent/chat/sync/generateSqlSQL 生成 (同步)SQL
/api/starspark/v1/agent/chat/optimizeSqlSQL 优化SQL
/api/starspark/v1/agent/chat/sync/optimizeSqlSQL 优化 (同步)SQL
/api/starspark/v1/agent/chat/optimizeCode代码优化Chat
/api/starspark/v1/agent/chat/splitFunction函数拆分Chat
/api/starspark/v1/agent/chat/generateCommitMessageCommit 消息生成Git
/api/starspark/v1/agent/chat/convertDmTableDDL达梦 DDL 转换SQL
/api/starspark/v1/agent/chat/interLineCommentCode行间注释InlineChat
/api/starspark/v1/agent/chat/evaluate评价Common
/api/starspark/v1/agent/chat/feedback反馈Common
/api/starspark/v1/agent/chat/recommendations推荐Chat
/api/starspark/v1/agent/prompt/queryPrompt 模板查询Chat
/api/starspark/v1/agent/code/codeComplete代码补全CodeComplete
/api/starspark/v1/agent/code/generateUnitTest单测生成UnitTest
/api/starspark/v1/agent/code/generateUnitTestCaseTemplate单测模板UnitTest
/api/starspark/v1/platform/code/assist代码辅助 (VSCode)CodeComplete
/api/starspark/v1/agent/permission/queryUserPermissionPackageInfo权限查询Login
/api/starspark/v1/agent/permission/queryUserFuncModelList功能模型列表Login
/api/starspark/v1/agent/authSetting/query认证设置查询Login
/api/starspark/v1/agent/authSetting/queryPluginLink插件链接查询Login
/api/starspark/v1/agent/authSetting/queryGlobalSetting全局设置Setting
/api/starspark/v1/agent/pluginSetting/queryTokenSettingToken 设置Setting
/api/starspark/v1/agent/action/saveUserAction用户行为记录Common
/api/starspark/v1/agent/action/rejectCode拒绝代码Common
/api/starspark/v1/user/authorizationQuery登录状态查询Login
/api/starspark/v1/user/packageQuery套餐查询Login
/api/usercenter/v1/user/common/login账号密码登录Login
/api/starspark/v1/chat/user/logOut登出Login
/api/starspark/v1/chat/user/validToken 验证Login

7.2 RAG 服务 (ragserver)

API 路径用途模块
/api/ragserver/v1/code/search代码搜索CodeSearch
/api/ragserver/v1/code/onlineSearch在线搜索CodeSearch
/api/ragserver/v1/code/getLanguages语言列表CodeSearch
/api/ragserver/v1/code/getUserRepos用户仓库CodeSearch
/api/ragserver/v1/rag/incbatchloadRAG 批量加载RAG
/api/ragserver/v1/web/parseurl网页解析RAG
/restapi/ragserver/v1/doc/search文档搜索RAG
/restapi/ragserver/v1/doc/knowledgeList文档知识列表RAG
/restapi/ragserver/v1/rag/codeK/codeKnowledgeList代码知识列表RAG
/restapi/ragserver/v1/rag/codeK/personal/auth个人知识库认证RAG
/restapi/ragserver/v1/rag/codeK/personal/init/status知识库初始化状态RAG
/restapi/ragserver/v1/rag/codeK/updateGitToken更新 Git TokenRAG
/restapi/ragserver/v1/codeknowledge/reVectorized重新向量化RAG
/restapi/ragserver/v1/code/searchInRepo仓库内搜索CodeSearch
/restapi/ragserver/v1/rag/repoKeyEnable仓库密钥启用RAG
/restapi/ragserver/v1/rag/repoLangExtEnable仓库语言扩展启用RAG
/restapi/ragserver/v1/rag/repoKeyDialogEnable仓库密钥对话框启用RAG

7.3 单元测试服务 (unit)

API 路径用途模块
/restapi/unit/v1/createUnitTask创建批量单测任务BatchUnitTest
/restapi/unit/v1/queryUnitTask查询单测任务BatchUnitTest
/restapi/unit/v1/exportByTaskId下载单测结果BatchUnitTest
/restapi/unit/v1/cancelUnitTask取消单测任务BatchUnitTest
/restapi/unit/v1/deleteUnitTask删除单测任务BatchUnitTest
/restapi/unit/v1/isPendingTask检查待处理任务BatchUnitTest

7.4 数据收集 API

API 路径用途
/api/starspark/v1/agent/collect/chatDataContent聊天数据收集
/api/starspark/v1/agent/collect/codeAccept代码接受收集
/api/starspark/v1/agent/collect/commitCodeData提交代码数据收集
/api/starspark/v1/agent/collect/uploadRequestTime请求时间分析
/api/starspark/v1/agent/collect/unitTestStatistics单测统计收集
/api/starspark/v1/agent/collect/commitUnitTestData单测数据提交
/api/starspark/v1/agent/collect/generateUnitTestData单测生成数据
/api/starspark/v1/agent/code/queryUnitTestQueueInfo单测队列信息

8. 消息统计

8.1 JS→Java 消息统计

模块消息数含敏感数据
CHAT18用户输入, 代码
SQL_CHAT9数据库密码
CODE_CHECK2修复代码
CODE_REVIEW4
CODE_SEARCH3
UNIT_TEST7测试代码
BATCH_UNIT_TEST4
UNIT_TEST_BANK2
GIT4Git Token
LOGIN5
SETTING4配置数据
COMMON9代码内容, URL
总计712 含密码/令牌

8.2 Java→JS 消息统计

模块消息数含敏感数据
CHAT16
SQL_CHAT9连接信息
CODE_CHECK2
CODE_REVIEW3
CODE_SEARCH3
UNIT_TEST7
BATCH_UNIT_TEST3
UNIT_TEST_BANK4
LOGIN3可能含 Token
SETTING5
COMMON3
GIT1
USER1
总计600 含加密数据

9. 跨文档引用

文档内容关联
doc 04WebSocket 协议格式MessageDto/ResponseDto 定义
doc 06命令体系参考109 个 CommandEnum 值
doc 08认证流程登录链路, Token 管理
doc 65WebView 前端完整分析JS Bridge, 路由, Stores
doc 74安全审计报告OWASP Top 10 发现
doc 85View/UI/StatusBar 分析WebViewWindowPanel God Object
doc 94启动与消息映射双向消息映射体系

本项目仅供学习研究,逆向分析内容归原厂商所有。