DSHIO-RISK · 风险分级
插件声明什么权限,就承担什么风险。四个等级,由权限算出,不由人工判断。
为什么需要这个。
DSH 插件是可执行代码,装进来就跑在你的机器上。官方文档明确说官方不保证插件安全性。
用户需要知道:这个插件能做什么?
权限声明是作者的责任(见 DSHIO-DEV 第 3 条), 风险分级是我们据此算出的结论。
权限声明是作者的责任(见 DSHIO-DEV 第 3 条), 风险分级是我们据此算出的结论。
权限取值
| 权限 | 含义 | 典型插件 |
|---|---|---|
none | 不访问任何外部资源 | 纯 UI 主题、格式化 |
network | 发起网络请求 | 搜索、API 代理 |
filesystem | 读写工作区文件 | 文件编辑、项目记忆 |
shell | 执行系统命令 | 终端、构建工具 |
device | 访问硬件 | 摄像头、麦克风、剪贴板 |
四个风险等级
| 等级 | 条件 | 含义 |
|---|---|---|
| 低 | 只有 none | 不接触外部资源 |
| 中 | 有 network,无其他 | 会发请求,但不碰文件和命令 |
| 高 | 有 filesystem / shell / device 之一 |
能改文件或执行命令 |
| 极高 | network + (shell 或 filesystem) |
能读数据、也能发出去 |
为什么「网络 + 文件/命令」是极高
单独看,网络请求不危险,读写文件也不危险。
但两者同时存在,就意味着数据可能被读出来并发走 —— 这是数据外泄的标准路径。
所以这两类组合独立升到最高级,不看别的因素。
但两者同时存在,就意味着数据可能被读出来并发走 —— 这是数据外泄的标准路径。
所以这两类组合独立升到最高级,不看别的因素。
判定算法
caps = declared_capabilities(plugin) if "shell" in caps and "network" in caps: → 极高 elif "filesystem" in caps and "network" in caps: → 极高 elif "device" in caps and "network" in caps: → 极高 elif "shell" in caps or "filesystem" in caps or "device" in caps: → 高 elif "network" in caps: → 中 else: → 低
这个分级不做什么
| 不做 | 说明 |
|---|---|
| 不是安全审计 | 我们没读代码找漏洞 |
| 不保证作者诚实 | 权限是作者声明的,可能是假的 |
| 不评价实际行为 | 声明 network 但实际只发一次请求,也标中 |
所以风险分级要和测试一起看。
我们的测试在 T2-T5 全程断网 —— 这意味着即使插件声明了 network 并试图外发数据,
在测试环境里也发不出去。
风险告诉你「它可能做什么」,测试告诉你「我们验证到哪一步」。两个都要看。
风险告诉你「它可能做什么」,测试告诉你「我们验证到哪一步」。两个都要看。
风险与等级的关系
两者是独立的维度,不互相影响:
| 低风险 | 中风险 | 高风险 | 极高风险 | |
|---|---|---|---|---|
| A 级 | 最理想 | 可接受 | 看需求 | 谨慎 |
| B 级 | 可用 | 可用 | 看需求 | 谨慎 |
| C 级 | 能用 | 注意 | 不建议 | 不建议 |
| D/E 级 | 不建议安装 | |||
版本历史
| 版本 | 标准号 | 发布日期 | 变更内容 |
|---|---|---|---|
| v1.0 | DSHIO/T 05—2026 | 2026-11-06 | 首次发布 |
条款变更时版本号递增,旧版本保留可查。