DeskBase(桌库)是一个本地优先的桌面办公数据工具。用户把真实的工作数据——账目、客户名单、库存、私密笔记、截图——存放在这里。这意味着我们必须把安全当成产品的一部分,而不是发布前的检查项。
我们特别重视以下方向的安全问题:
- 本地数据保护:加密存储、密钥派生与管理、敏感字段保护
- 崩溃一致性与数据完整性:WAL、原子写入、备份校验
- 远程访问通道:设备配对、端到端加密、鉴权与授权
- 插件沙箱与权限隔离
- 安装器与更新链路:签名验证、供应链完整性
- 隐私边界:任何可能导致数据外流的缺陷
我们只对以下版本提供安全更新:
| 版本 | 支持状态 |
|---|---|
| 最新稳定版(latest stable) | ✅ 接收安全修复 |
| 上一个次版本(previous minor) | ✅ 仅接收高危修复 |
| 更早版本 | ❌ 不再维护,建议升级 |
| 预发布版(alpha / beta / rc) |
具体版本号请参见仓库 Releases 页面。
不要在 GitHub Issues、Discussions、Pull Request、社交媒体或任何公开平台披露安全漏洞。公开披露会让所有用户暴露在风险中。
请任选其一:
-
GitHub 私密漏洞报告(首选) 仓库
Security标签页 →Report a vulnerability。此通道端到端私密,便于我们协作与追踪。 -
安全邮箱
security@<项目域名>(启用后公布)。若尚未启用,请使用上一条渠道。 -
加密沟通 如需传输敏感细节(PoC、日志、密钥材料),请先通过上述渠道索取我们的 PGP 公钥,再加密发送。
- 漏洞类型(如 XSS、路径穿越、权限提升、加密缺陷、数据外流、拒绝服务)
- 受影响的版本、平台与架构
- 复现步骤(最小可复现路径最好)
- 概念验证代码或截图(若已有)
- 影响评估:攻击者能做什么?需要什么前置条件(本地访问 / 局域网 / 用户交互)?
- 是否有已知的缓解措施或 workaround
如果信息不完整也没关系,先报过来,我们可以一起补齐。
| 阶段 | 目标时效 |
|---|---|
| 确认收到报告 | 48 小时内 |
| 初步评估与严重性分级 | 5 个工作日内 |
| 提供修复计划或时间线 | 10 个工作日内 |
| 高危漏洞修复发布 | 目标 30 天内 |
| 公开致谢(征得同意后) | 修复发布后 |
我们会全程与你保持沟通,及时同步进展。如果我们在时效内没有回应,请再次催促——可能是邮件被漏掉了。
我们采用接近 CVSS 的口径,并结合本项目「本地优先」的特点做调整:
| 级别 | 判定标准 | 示例 |
|---|---|---|
| 严重 / Critical | 无需用户交互即可导致数据泄露、远程代码执行、加密被完全绕过 | 未鉴权的远程访问通道可读写数据库;备份加密可被离线破解 |
| 高 / High | 需要少量前置条件即可导致数据泄露或完整性破坏 | 局域网攻击者可劫持配对流程;恶意数据文件可触发任意代码执行 |
| 中 / Medium | 需要本地访问或用户交互,影响有限但真实 | 导出文件路径穿越;插件越权读取非授权目录 |
| 低 / Low | 影响很小,或需要极高前置条件 | 理论上可放大日志体积导致磁盘占满 |
若漏洞存在于第三方依赖中,我们会:
- 同步通知上游维护者;
- 在必要时提供临时缓解或补丁版本;
- 在 docs/11-security-and-resource-optimization.md 描述的供应链流程中更新依赖与 SBOM。
我们的安全承诺不是口号,而是有具体工程约束的。核心条款摘录如下(完整内容见 docs/08-privacy-security.md 与 docs/11-security-and-resource-optimization.md):
- 网络默认关闭。 程序在用户未显式开启远程 / 同步 / 更新检查前,不建立任何外部连接。
- 默认无遥测、无埋点、无崩溃上报。 不收集设备标识、不收集使用行为。
- 最小权限运行。 默认不要求管理员 / root 权限;仅当用户显式执行需要提权的操作时才触发提权,并说明原因。
- 加密默认可用。 支持数据库加密、敏感字段加密与备份加密;密钥通过操作系统密钥链或用户口令派生(Argon2id 等抗暴力破解 KDF)。
- 远程通道强制端到端加密。 不允许明文或仅传输层加密后仍由中继可读的设计。
- 插件权限隔离。 插件运行于独立进程,按声明的权限清单授权,可一键关闭与彻底卸载。
- 发布可验证。 发布包提供数字签名、SHA-256 校验和、SBOM(SPDX / CycloneDX)与依赖锁定,并提供可复现构建说明。
- 不静默联网。 任何联网行为都记录在审计日志中,并可被用户查看与关闭。
- 所有依赖固定版本并写入锁文件,锁文件入库。
- CI 中对依赖执行漏洞扫描(SCA)与许可证合规检查。
- 发布产物在隔离的、可复现的构建环境中生成,并在 CI 中验证构建可复现性。
- 发布前对签名密钥执行最小权限与离线保管策略。
- 每个发布版本附带 SBOM,便于下游做供应链审计。
以下情况通常不被视为安全漏洞:
- 需要攻击者已具备设备物理访问权与系统管理员权限,且未绕过我们的加密设计(此时数据保护依赖操作系统与全盘加密,属用户责任)
- 用户自行关闭了加密、开启了远程访问且未设置密码等明确警示过的不安全配置
- 对已停止维护版本的缺陷
- 仅影响自建开发环境的、未发布代码中的问题
- 缺少安全响应头等对本地桌面应用无实际影响的「最佳实践」类问题
- 社会工程学攻击(钓鱼、冒充维护者等)
如果你不确定某个问题是否在范围内,直接报过来,由我们判断。
我们感谢每一位负责任地披露漏洞的安全研究者。经你同意,我们会在修复发布后于 CHANGELOG.md 与 Release Notes 中公开致谢;如果你希望匿名,我们也会尊重。
谢谢你在保护 DeskBase 用户。
请记住:先私下报告,再公开讨论。