Skip to content

Security: erishen/firefly-studio

Security

docs/SECURITY.md

Firefly Studio 安全策略(SECURITY)

最后更新:2026-08-31

本文档说明 Firefly Studio 项目的安全策略、漏洞报告流程和安全最佳实践。


1. 支持的版本

我们为以下版本提供安全更新:

版本 状态 说明
main 分支 ✅ 支持 开发主线,最新功能和安全修复
最新 Release ✅ 支持 最新正式发布版本
历史 Release ⚠️ 有限支持 仅修复严重安全漏洞
预发布版本 ❌ 不支持 不保证安全性,仅供测试

建议始终使用最新版本以获得最新的安全修复。


2. 漏洞报告

2.1 报告方式

如果您发现了安全漏洞,请不要在公开的 GitHub Issues 中报告,而是通过以下方式私下报告:

  • GitHub Security Advisories:在项目仓库的 "Security" → "Report a vulnerability" 中提交
  • 邮件:请在项目仓库的 README 或 CODEOWNERS 中查找维护者联系方式

2.2 报告内容

请在报告中包含以下信息:

  1. 漏洞描述:简要说明漏洞类型和影响
  2. 受影响版本:哪些版本受影响
  3. 复现步骤:详细的复现步骤,包括代码示例或截图
  4. 影响评估:漏洞可能造成的影响(数据泄露、远程代码执行等)
  5. 修复建议:如果您有修复建议,请一并提供
  6. 您的信息:您的姓名/昵称和联系方式(可选)

2.3 处理流程

我们将按照以下流程处理安全漏洞报告:

阶段 时间目标 说明
确认收到 48 小时内 确认收到您的报告,并开始初步评估
漏洞评估 7 天内 评估漏洞的严重程度和影响范围
修复开发 视严重程度而定 开发修复补丁
修复发布 视严重程度而定 发布安全更新
公开披露 修复发布后 在修复发布后公开披露漏洞详情

2.4 严重程度分级

我们使用以下标准评估漏洞严重程度:

级别 说明 示例
Critical(严重) 可远程利用,导致系统完全控制或大规模数据泄露 远程代码执行、权限提升、SQL 注入
High(高危) 可利用,导致敏感数据泄露或重要功能受损 路径遍历、XSS、认证绕过
Medium(中危) 有限影响,需要特定条件才能利用 信息泄露、CSRF、开放重定向
Low(低危) 影响较小,难以利用或影响有限 最佳实践问题、轻微信息泄露
Info(信息) 不是漏洞,只是安全建议或信息 安全配置建议、依赖更新提示

3. 安全最佳实践

3.1 用户安全建议

3.1.1 安装和更新

  • ✅ 只从官方渠道下载应用(GitHub Releases)
  • ✅ 验证下载文件的完整性(校验和、签名)
  • ✅ 及时更新到最新版本
  • ❌ 不要从不可信的第三方网站下载
  • ❌ 不要使用修改版或破解版

3.1.2 使用安全

  • ✅ 使用强密码保护您的设备
  • ✅ 不要在对话中输入敏感个人信息(身份证号、银行卡号、密码等)
  • ✅ 定期备份重要的聊天记录
  • ✅ 在公共网络中使用时注意隐私保护
  • ❌ 不要在不可信的网络环境中使用敏感功能
  • ❌ 不要将 API Key 分享给他人

3.1.3 配置安全

  • ✅ API Key 存储在环境变量或本地配置文件中
  • ✅ 使用权限最小化的 API Key
  • ✅ 定期轮换 API Key
  • ❌ 不要将 API Key 硬编码在代码中
  • ❌ 不要将包含 API Key 的配置文件提交到公开仓库

3.2 开发者安全建议

3.2.1 代码安全

  • ✅ 遵循安全编码规范
  • ✅ 对所有用户输入进行验证和清理
  • ✅ 使用参数化查询,避免 SQL 注入
  • ✅ 对输出进行转义,避免 XSS
  • ✅ 使用安全的随机数生成器
  • ✅ 实施最小权限原则
  • ❌ 不要在代码中硬编码密钥或密码
  • ❌ 不要使用已知不安全的算法(MD5、SHA1 等)
  • ❌ 不要禁用安全检查或验证

3.2.2 依赖安全

  • ✅ 定期更新依赖到最新版本
  • ✅ 使用依赖扫描工具(如 npm auditpip-audit
  • ✅ 只使用可信的依赖包
  • ✅ 锁定依赖版本(package-lock.json、requirements.txt)
  • ❌ 不要使用已废弃或存在已知漏洞的依赖
  • ❌ 不要从不可信的源安装依赖

3.2.3 原生模块安全

  • ✅ 仔细审查 C++ 原生模块代码
  • ✅ 使用内存安全的编程实践
  • ✅ 对所有输入进行边界检查
  • ✅ 使用 AddressSanitizer 等工具检测内存问题
  • ❌ 不要使用不安全的函数(strcpy、sprintf 等)
  • ❌ 不要忽略错误检查

4. 安全架构

4.1 数据本地化

本项目采用数据本地化设计原则:

  • 语音输入、语音识别、语音合成均在本地完成
  • 聊天记录存储在本地,不上传云端
  • 设置偏好存储在本地
  • 仅 LLM 对话请求会发送到外部服务器

4.2 进程隔离

  • Electron 主进程与渲染进程隔离
  • 原生模块(C++)运行在独立的进程中
  • Python 子进程(ASR/TTS 服务)运行在独立进程中
  • 使用 IPC 进行进程间通信,进行输入验证

4.3 权限控制

  • 麦克风权限:仅在用户主动点击语音输入按钮时请求
  • 文件系统访问:仅访问用户明确选择的文件和目录
  • 网络访问:仅访问用户配置的 LLM 服务和模型下载地址

5. 已知安全限制

以下是本项目的已知安全限制,使用时请注意:

  1. 本地存储加密:本地数据(聊天记录、设置等)目前未加密存储。如果您的设备被盗,数据可能被访问。建议使用系统级磁盘加密(如 FileVault)。

  2. API Key 存储:API Key 存储在本地环境变量或配置文件中,未加密。建议妥善保护您的配置文件。

  3. LLM 数据隐私:您的对话内容会发送到您配置的 LLM 服务提供商。请参考相应服务商的隐私政策。如果对隐私有较高要求,建议使用本地 LLM。

  4. 第三方模型:ASR/TTS 模型从第三方平台下载,我们无法保证模型的绝对安全性。建议仅从官方渠道下载模型。

  5. 原生模块:C++ 原生模块可能存在内存安全问题。我们会尽力审查代码,但无法保证完全没有漏洞。


6. 安全更新历史

日期 版本 安全修复 严重程度
2026-08-31 - 初始安全策略文档 -

7. 致谢

感谢所有为提升本项目安全性做出贡献的安全研究者和用户。

如果您报告了安全漏洞,我们会在修复发布后(经您同意)在致谢名单中提及您的贡献。


8. 联系方式


感谢您帮助我们保持 Firefly Studio 的安全! 🔒

There aren't any published security advisories