安全開發生命週期 - 模式

深入瞭解 Well-Architected Trust → Secure Development Lifecycle

必須整個開發生命週期整合安全性,從初始設計到部署和作業。這些模式可啟用排班左側安全性作法、解決常見漏洞,並保護您的部署管道安全。

模式

要尋找的位置良好的外觀
開發 | 工具✅ 整合至開發人員工作流程的 IDE 安全性掃描
開發 | 設計✅ 使用 STRIDE 方法在設計階段期間完成威脅建模
開發 | 需求✅ 使用者案例和接受條件中包含的安全性需求
開發 | 來源控制✅ 預先認可綁架強制執行安全性原則 (密碼掃描、程式碼分析)
開發 | 訓練✅ 開發人員安全性訓練會定期重新整理以反映不斷演進的威脅
開發 | CI/CD✅ CI/CD 管道中的自動安全性測試無法根據重要發現結果建立
開發 | 程式碼檢閱✅ 驗證、授權和資料存取代碼所需的安全性對等審查
開發 | 程式碼分析✅ 透過透鏡和靜態分析強制執行的安全編碼標準
開發 | 相依性✅ 每個認可的相依性漏洞掃描執行
開發 | 測試✅ 滲透測試範圍包含 GA 版本之前的新功能

反模式

要尋找的位置看起來怎麼壞
開發 | 測試⚡️ 安全性測試會在發行前延後手動檢閱
開發 | 訓練⚡️ 僅在上線期間執行一次安全性訓練
開發 | 程式碼檢閱⚡️ 合併後的安全性小組檢閱程式碼
開發 | 設計⚡️ 結構變更時不會更新威脅模型
開發 | 來源控制⚡️ 已停用密碼掃描以減少假陽性
開發 | CI/CD⚡️ 版本期限出現時忽略安全性發現

模式

要尋找的位置良好的外觀
注射✅ SOQL 查詢使用繫結變數來防止插入
注射✅ 使用者輸入在 SOQL、SOSL 或動態查詢中使用前經過驗證和消毒
注射✅ 動態 SOQL 僅限於信任的輸入
存取控制✅ 使用 Security.stripInaccessible() 強制執行的 CRUD 和 FLS 權限
XSS✅ Lightning 元件在 UI 呈現中逸出使用者產生的內容
注射✅ 外部 API 整合會驗證和精簡所有輸入
存取控制✅ 來賓使用者存取權已最小化且嚴格限制
驗證✅ 用於外部驗證的已命名認證 (非硬式編碼認證)
驗證✅ 使用 PKCE 正確實作的 OAuth 2.0 流程
工作階段管理✅ 工作階段安全性原則強制執行逾時與 IP 限制
組態✅ 每季檢閱「安全健康檢查」並修復高風險發現
存取控制✅ 已稽核自訂中繼資料和權限以防止權限過多

反模式

要尋找的位置看起來怎麼壞
注射⚡️ 使用使用者輸入之字串串連建的 SOQL 查詢
存取控制⚡️ 已授與「建立」、「更新」或「刪除」權限的來賓使用者設定檔
XSS⚡️ Lightning 元件在範本中使用未逸出的運算式
驗證⚡️ 外部整合使用程式碼中的硬式編碼認證
記錄⚡️除錯記錄包含敏感資料,例如密碼或 PII
存取控制⚡️ 忽略 FLS 和 CRUD 檢查,因為「我們控制所有使用者」
組態⚡️ 安全性健康檢查發現結果已忽略或永久延後

模式

要尋找的位置良好的外觀
銷售管道 | 來源控制✅ 分行保護規則強制執行必要審查和狀態檢查
銷售管道 | 存取控制✅ 部署管道使用具有最低必要權限的服務帳戶
銷售管道 | 密碼✅ 儲存在安全儲存庫中的密碼 (永不儲存在來源控制或環境變數中)
銷售管道 | 部署✅ 生產部署需要由授權人員手動批准門
銷售管道 | 稽核✅ 部署記錄會使用批准追蹤,從何時部署哪些項目
銷售管道 | 驗證✅ 預先部署驗證包含安全性掃描和規範檢查
銷售管道 | 存取控制✅ 管道管理存取所需的多因素驗證
銷售管道 | 監視✅ 銷售管道組態變更會觸發安全性小組通知
銷售管道 | 驗證✅ 自動部署後驗證確認預期的安全性控制已啟用
銷售管道 | 相依性✅ 部署前評估的安全性影響相依性更新

反模式

要尋找的位置看起來怎麼壞
銷售管道 | 密碼⚡️ 認可至版本控制的密碼 (即使之後已移除)
銷售管道 | 來源控制⚡️ 任何人皆可合併至主要/生產分支,而無須檢閱
銷售管道 | 存取控制⚡️ 使用管理員層級權限執行部署管道
銷售管道 | 部署⚡️ 完全自動化的生產部署,沒有批准門
銷售管道 | 稽核⚡️ 部署記錄不會儲存起始或批准變更的人員
銷售管道 | 驗證⚡️ 忽略或略過失敗的安全性掃描以符合期限
銷售管道 | 監視⚡️ 未追蹤或檢閱的銷售管道組態變更
銷售管道 | 驗證⚡️ 部署後驗證只會檢查功能正確性

模式

要尋找的位置良好的外觀
測試 | 靜態分析✅ Salesforce Code Analyzer 會在開發人員識別碼中執行以取得立即回饋意見,並在 CI/CD 銷售管道中作為自動化門
測試 | 滲透測試✅ 針對公開給不受信任使用者 (尤其是 Experience Cloud 網站和公開 API) 的自訂應用程式執行的滲透測試
測試 | 單元測試✅ 以不同權限設定檔的使用者身分執行以安全性為中心的 Apex 單元測試
測試 | 相依性✅ 相依性掃描會監視 AgentExchange 封裝和 JavaScript 程式庫的已知漏洞
測試 | 安全性檢閱✅ 為每個 AppExchange 或 AgentExchange 安全性檢閱提交準備靜態分析報告
測試 | 安全性檢閱✅ 當解決方案整合第三方 Web 應用程式或服務時準備的動態掃描 (滲透測試) 報告
測試 | 相依性✅ 訂閱及監視之已安裝封裝的安全性通知

反模式

要尋找的位置看起來怎麼壞
測試 | 涵蓋範圍⚡️ 安全性測試依賴單一技術,例如僅靜態分析
測試 | 單元測試⚡️ Apex 測試會驗證功能行為,但永不以權限較低的使用者身分執行
測試 | 安全性檢閱⚡️ 未準備必要靜態分析或動態掃描報告的 AppExchange 或 AgentExchange 提交
測試 | 滲透測試⚡️ 已針對公用 Experience Cloud 網站和 API 略過滲透測試

另請參閱: