安全檢查表
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分鐘內回覆
使用者管理
帳號管理
- 每位使用者使用一個帳號
- 員工離職或調動時,客戶可自行刪除相應帳號
密碼管理
- 使用者方可變更
- 還配備了透過電子郵件權杖的兩步驟驗證
Web 應用程式安全
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)
- Web應用程式(瀏覽器相容)
- Cloudflare CDN(內容傳遞網路)
- Google Cloud Storage(靜態託管)
- 負載平衡器(AWS)
- 商務伺服器(API金鑰驗證)
- 語音翻譯與轉錄伺服器(支援內部部署與 API 金鑰驗證)
- 資料庫(Google Cloud SQL / RDB)
- JSON Storage(S3)儲存音訊、逐字稿與圖片資料
- 外部API / 第三方服務(API金鑰驗證)