安全检查表
VoicePing 公开了详细的信息安全检查表。 VoicePing 安全表.pdf数据保护
通信加密
- 应用程序及音视频数据仅使用TLS 1.3
- 强制HTTPS通信(通过AWS ELB设置)
备份
- 实施周期:通过AWS Database进行每月备份
- 日志保留:服务器访问日志保存在 S3,用于安全监控和事件调查。应用程序日志不会记录姓名、电子邮件地址或转写内容等直接个人数据。若日志中包含 IP 地址等可能关联个人的标识符,将在有效删除请求提出后的 30 天内删除或进行不可逆匿名化。日志仅保留满足运营与安全需求所需的最短时间,不做长期保存。
- BCP 对策:备份数据远程保存在多个区域
数据访问限制
- 数据库和服务器访问通过AWS安全组限制特定IP地址
- 企业间数据通过数据库逻辑隔离
可用性
运行率
- 服务使用时间:原则上24小时365天
- SLA:99.9%以上
- 实绩:99.99%以上(服务上线以来,未发生持续数十分钟以上的服务器中断)
故障时应对
- 有源代码差分备份和数据库备份,可24小时随时立即回滚(恢复)
- 所有服务器进程和系统状态通过AWS CloudWatch或自有警报系统全面可视化
- 检测到服务中断时发送警报通知
计划停机
- 每周五21:00左右定为更新时间,可能会有几秒钟的连接中断
- 如需在营业时间内更新,将通过电子邮件或文字聊天支持(Intercom)实时通知
支持体系
故障发生时通知
- 联系方式:通过电子邮件和应用内文字聊天服务(Intercom)通知
紧急联系方式
- 通过文字聊天服务(Intercom)或联系表单响应
- 营业时间9:00-18:00内通常5分钟内回复
用户管理
账户管理
- 一个用户一个账户
- 员工离职或调动时,客户可自行删除相应账户
密码管理
- 用户方可更改
- 还配备了通过电子邮件令牌的两步验证
网页应用安全
VoicePing实施以下安全措施。SQL 注入对策
- 后端使用中间件ORM进行数据库操作
- SQL语句组装全部使用占位符实现
- 为数据库账户授予适当权限(创建仅具有必要READ、WRITE权限的账户)
OS 命令注入对策
- 基本不执行Shell
- 需要接近Shell层逻辑时,仅通过已确认安全性的库执行
路径名参数/目录遍历对策
- 数据保存在外部托管或数据库
- 不存在直接访问Web服务器内文件的功能
- 文件名使用随机名称,形式不可预测
会话管理
- 会话ID使用不可预测且足够长度的随机字符串
- 会话ID使用Cookie(不存储在URL参数中)
- 用于HTTPS通信的Cookie使用Secure属性
- 非登录可访问页面与需登录页面已分离
跨站脚本(XSS)对策
- 使用相应的前端库
- 通过AWS ELB强制HTTPS
- 在HTTP响应头的Content-Type字段中指定字符编码(charset)
- 为Cookie添加HttpOnly属性
CSRF 对策
- 后端侧通过POST方法进行访问控制
- Referer验证
- 执行重要操作时自动发送到注册的电子邮件地址
HTTP 头注入对策
- 在后端中间件中使用头输出API
点击劫持对策
- 输出X-Frame-Options头字段
- 没有有效会话则无法执行
- 重要处理设计为无法仅用鼠标执行一系列操作
缓冲区溢出对策
- 使用Node.js,无法直接访问内存
- 通过GitHub定期库检查,针对漏洞库提出PR并及时更新库
访问控制和授权控制
- 管理员权限可使用两步电子邮件令牌认证
- 除认证功能外还实现了授权控制处理,防止登录用户冒充他人访问
系统架构图
VoicePing 的系统架构概要。所有通信均通过HTTPS或加密连接进行保护。
- 桌面应用(Windows / Mac / Linux)
- 移动应用(iOS / Android)
- 网页应用(浏览器兼容)
- Cloudflare CDN(内容分发网络)
- Google Cloud Storage(静态托管)
- 负载均衡器(AWS)
- 业务服务器(API密钥认证)
- 语音翻译与转写服务器(支持本地部署,API密钥认证)
- 数据库(Google Cloud SQL / RDB)
- JSON Storage(S3)存储音频、转写及图像数据
- 外部API / 第三方服务(API密钥认证)