良好的安全性做法基礎始於貴機構。
建立安全性和隱私權團隊
建立專責的安全性和隱私權團隊,並為這個組織設立負責人。
- 建立安全團隊。
- 確保至少有一位員工負責安全性、隱私權和事件回應。
- 定義這個團隊的任務和範圍。
- 為以下職位建立組織架構和工作說明:安全管理員、資安工程師、事件管理員。
- 聘請員工或外部承包商擔任這些角色。
- 定義安全開發生命週期 (SDL)。SDL 應涵蓋以下範圍:
- 產品安全性規定。
- 風險分析和威脅塑模。
- 應用程式和程式碼的靜態和動態分析。
- 產品的最終安全性審查程序。
- 事件應變。
- 評估組織風險。建立風險評估,並制定計畫來消除或減輕這些風險。
建構驗證程序
評估現有內部版本驗證和核准程序中的缺口。
- 找出目前建構驗證程序中可能導致 可能有害的應用程式 (PHA)進入建構的缺失處。
- 請務必設有程式碼審查和核准程序,即使是針對 AOSP 的內部修補程式也一樣。
- 在下列範疇中實作控制項,改善建構完整性:
- 追蹤修訂。追蹤軟體工程師,並保留變更記錄。
- 評估風險,評估應用程式使用的權限,並需要手動審查程式碼變更。
- 監控。評估對特權程式碼所做的變更。
原始碼變更追蹤
監控是否有人不小心修改原始碼或第三方應用程式/二進位檔/SDK。
- 評估合作夥伴關係。請按照下列步驟評估與技術合作夥伴合作的風險:
- 建立評估與特定供應商合作風險的標準。
- 建立表單,詢問供應商如何解決事件,以及管理安全性和隱私權。
- 定期稽核來驗證聲明。
- 追蹤修訂。記錄哪些公司和員工修改原始碼,並定期進行稽核,確保只進行適當的變更。
- 保留記錄。記錄哪些公司在您的版本中加入第三方二進位檔,並記錄這些應用程式執行哪些功能,以及收集哪些資料。
- 規劃更新:請務必要求供應商在產品的整個生命週期中提供軟體更新。如有未預期的安全漏洞,可能需要供應商的支援才能解決。
驗證原始碼完整性和血統
檢查並驗證原始設備製造商 (ODM)、無線更新 (OTA) 或電信業者提供的原始碼。
- 管理簽署憑證。
- 將金鑰儲存在硬體安全性模組 (HSM) 或安全雲端服務中 (請勿分享)。
- 確保簽署憑證的存取權受到控管及稽核。
- 要求在建構系統中完成所有程式碼簽署作業。
- 撤銷遺失的金鑰。
- 按照最佳做法產生金鑰。
- 分析新程式碼:使用安全程式碼分析工具測試新加入的程式碼,檢查是否有新安全漏洞。此外,請分析整體功能,以偵測新安全漏洞的表現。
- 發布前先確認。在將原始碼和第三方應用程式推送至實際工作環境前,請先找出安全漏洞。例如:
- 要求應用程式使用安全通訊功能。
- 遵循最低權限原則,授予應用程式運作所需的最小權限。
- 確保資料是透過安全管道儲存及傳輸。
- 將服務依附元件保持在最新狀態。
- 為 SDK 和開放原始碼程式庫套用安全性修補程式。
事件回應
Android 相信強大的安全社群有助於找出問題。您應建立並公開聯絡方式,讓外部人士針對裝置相關安全性問題與您聯絡。
- 建立聯絡人。建立電子郵件地址 (例如 security@your-company.com) 或網站,並提供明確的操作說明,讓使用者回報與產品相關的潛在安全性問題 (示例)。
- 建立安全漏洞檢舉獎勵計畫 (VRP)。鼓勵外部安全研究人員提交影響您產品的安全漏洞報告,並為有效提交內容提供獎勵金 (範例)。建議您提供業界競爭力獎勵給研究人員,例如針對重大風險的漏洞提供 $5,000 美元,針對高風險的漏洞提供 $2,500 美元。
- 將變更提交至上游。如果您發現影響 Android 平台或多家裝置製造商裝置的安全性問題,請提交安全性錯誤報告,與 Android 安全性團隊聯絡。
- 宣導良好的安全性做法。主動評估為裝置提供服務、元件和/或程式碼的硬體和軟體供應商的安全做法。要求廠商負起維持良好安全性態度的責任。