安全 SDLC 軟件開發生命週期的各個階段
已發表: 2021-02-26創建安全軟件的明智方法是安全 SDLC 或軟件開發生命週期。 與其創建軟件然後對其進行漏洞測試,不如在創建軟件時強調安全性。
什麼是安全 SDLC?
在更廣泛的意義上,安全 SDLC 是在現有軟件開發生命週期中集成安全測試和其他措施的過程。 這可以包括:
- 編寫安全需求和功能需求。
- 執行架構分析。
- 使用沒有已知安全漏洞的開源組件。
- 在每個階段測試軟件並防止漏洞/威脅被延續。
為什麼安全 SDLC 很重要?
實施安全的軟件開發生命週期實踐很重要,因為開發人員無法承受發布具有安全漏洞的產品。 為了保護軟件和數據免受威脅和攻擊,必須以確保安全的方式進行開發。
另一個原因是,如果不關注安全性,然後對其進行測試和糾正,這不是一種有效的軟件開發方法。
安全 SDLC 的階段
安全 SDLC 的整個概念圍繞著將邪惡扼殺在萌芽狀態。 該過程防止缺陷被帶到軟件開發生命週期的下一個階段。 以下是安全 SDLC 涉及的各個階段的草圖以及在每個階段中實施的安全措施。
安全 SDLC 的需求階段
除了軟件的功能要求外,安全要求也在安全 SDLC 的開頭進行了描述。 這些要求詳細說明了開發人員需要什麼才能使軟件具有固有的安全性。
所有與安全相關的用例和場景的詳細列表在開發開始之前編制。 然後將其用於創建安全功能和設計安全測試場景。
這些要求可能如下所示:
- 所有網關和入口點都必須有適當的身份驗證措施。
- 系統必須通過安全的登錄屏幕實現身份驗證。
- 所有個人數據必須始終加密。
- 對敏感數據傳輸應使用一種以上的身份驗證通道。
安全 SDLC 的規劃階段
計劃階段是安全 SDLC 的關鍵步驟。 計劃可能因情況而異,但這裡有一些必須注意的最基本的事情:
- 必須組建一個經驗豐富的專業安全團隊,以公正的方式忽略和指導軟件的所有安全相關措施。 這個團隊,最好是駐紮在項目管理辦公室之外,應該由一名安全官、安全架構師和安全測試員組成。 所有團隊成員都必須有明確定義的角色和職責。
- 與項目安全問題相關的任何歧義或升級必須由產品安全官處理。 安全團隊將建議他確保做出正確的決定。
- 必須建立安全聯繫點,以確保對產品安全性所做的任何更改都不會被安全團隊忽視。
SDLC的架構和設計階段
在設計階段必須進行詳細的產品安全風險評估。 這包括在程序尚未進入編碼階段時從安全角度對其進行審查。 在進入下一階段之前必須消除任何安全風險。 為了確保安全,所有的評估都必須按照行業標准進行。

此階段必須注意的事項包括但不限於:
- 根據項目團隊共享的詳細信息,審查所有功能、需求、用戶故事和設計文檔。 如果缺少任何所需文件,則必須由項目團隊成員清楚地討論所有內容。
- 必鬚根據正在使用的行業標準識別和評估程序安全要求中的任何差距。 如果需要,可以根據已識別的差距創建威脅模型。
- 應列出具有足夠安全風險的漏洞,並為其提出可行的緩解措施。
SDLC的開發階段
這是軟件的實際“開發”。 在準備好應用程序的安全佈局後,開發人員必須以符合安全準則的方式編寫代碼。 這包括:
- 使用沒有已知漏洞的開源組件。
- 在整個軟件開發過程中使用商定的安全措施。
- 冷測試代碼以暴露和緩解代碼中的任何漏洞。
階段中也進行了一些測試。 這可以包括諸如確保敏感數據不以純文本形式傳輸之類的事情。
SDLC的實施階段
軟件開發完成後,下一步就是動態代碼分析。 這是應用程序安全測試的一種形式,也稱為開放 Web 應用程序項目 (OWASP) 測試。
在解決方案在現實生活中實施之前,會執行漏洞分析和滲透測試。 執行此檢查的軟件版本稱為測試版本。 這方面需要注意的主要事項包括:
- HP WebInspect、ZAP、Burp Suite 和 SOAP 等工具用於根據各種漏洞數據庫檢查軟件的漏洞。
- 這整個階段是自動化和手動測試的混合。
- 這個過程在獨立的環境中執行,不與開發環境鏈接,以確保接近現實的測試場景。
- 在此階段發現的任何漏洞都會在發佈軟件之前得到緩解。
- 在此階段識別常見和典型威脅,並採取措施防止它們。
結論
隨著我們對軟件的依賴不斷增加,確保它們對用戶安全非常重要。 為了確保軟件和應用程序的安全性達到標準,採用了 Secure SDLC 實踐。 最終目標始終是創建無懈可擊的軟件解決方案。
安全 SDLC 流程從收集需求到部署前測試有五個階段。 重點是減輕每一步的威脅和漏洞,以免它們被帶到下一步。
