提高SDLC安全性的5種基本方法
在過去的幾年裡,應用平臺和第三方庫中發現的漏洞引起了越來越多的關注,這給DevOps團隊帶來了壓力,他們需要檢測和解決軟體開發生命週期(SDLC)中的漏洞。
以NVD(國家漏洞資料庫)為例,它跟蹤和記錄軟體供應商釋出和披露的所有重大漏洞。NVD發現在過去五年中發現的漏洞數量呈增長趨勢,僅在2021年就記錄了驚人的 20,136 個漏洞(與上一年相比增加了9.7%)。
同時,CISA(網路安全與基礎設施安全域性)表示,在所有記錄的漏洞中,威脅行為者目前正在利用504。
那麼,所有這些對開發人員意味著什麼呢?
我們如何進一步提高SDLC的安全性呢?讓我們從基礎開始:
什麼是SDLC?
開發團隊採用一種SDLC形式來構建他們的流程並獲得高質量的結果。從這個意義上說,SDLC只不過是一個定義構建應用程式過程的框架。它跨越了應用程式的整個生命週期。
自傳統瀑布模型以來,出現了不同的SDLC模型,其中更健壯的CI/CD和敏捷模型在當今流行度最高。但他們的目標往往是相似的:儘可能快地生產出高質量、低成本的軟體。
安全 SDLC (SSDLC) 如何工作?
安全軟體開發生命週期 (SSDLC) 將安全元件引入生命週期,從而為開發人員提供了一個框架,以確保在軟體開發的每個階段都要考慮安全性,而不是事後再考慮。這種方法防止了稍後在生產環境中出現漏洞,從而減少了修復這些漏洞的成本。
安全軟體開發生命週期的例子定義了在每個開發階段幫助確保軟體安全的最低安全控制。每個階段都需要專門的 安全測試工具和方法,如(SAST、SCA、IAST和DAST等),並將繼續執行每個軟體版本的所有階段。
提高 SDLC 安全性的實踐
安全的SDLC實踐旨在解決共享的安全問題,包括:
對反覆出現的漏洞進行補救,一旦軟體部署,就需要付出高昂的代價來補救
設計架構中的安全問題
解決整合到更大系統中的元件內的安全問題
一些提高SDLC安全性的實踐:
1、轉變心態
左移思維的目的是將傳統上在生命週期後期完成的安全實踐(如測試元件)引入開發的早期階段。換句話說,我們已經從DevOps發展到DevOpsSec,再發展到DevSecOps——所有這些都是透過把“Sec”向左移動實現的。
2、根據常識進行威脅建模
威脅建模是在SDLC的最早階段研究系統設計、它們如何執行以及資料如何在所有系統元件內部和之間流動的過程,旨在識別所有可能的利用途徑。進行威脅建模可確保架構設計和開發能夠解決所有已識別的安全漏洞。
但是威脅建模通常需要相當長的時間才能完成,因為它需要人工來確定所有可能的攻擊途徑。反過來,當 SDLC 的幾乎每個元件都是自動化的並且期望每個階段都能快速完成時,威脅建模可能會成為開發過程的瓶頸,新版本每兩到四周就會發布一次。因此,建議利用常識進行威脅建模。
3、利用開源、開發人員優先的工具
利用開源工具是降低成本同時確保安全性的一個簡單方法。但開源工具也會有些侷限性,因此考慮可以根據企業情況進行定製化的工具更利於提高開發人員效率。
4、儘早檢查第三方元件中的漏洞
第三方元件是開發人員在無需自己開發整個功能的情況下將附加功能引入其應用程式的快速簡便的選擇。儘管這些元件可能很便宜,但它們確實是有代價的:可能會間接地將漏洞引入應用程式。
因此,最好在安全開發評估中儘早檢查這些元件是否存在漏洞,換句話說:掃描一切!掃描程式碼、配置、二進位制檔案或程式碼庫中的任何其他材料,以發現明顯可見和隱藏的問題。
5、掃描所有軟體層的錯誤配置
當今市場上可用的大多數安全錯誤配置檢測工具往往側重於掃描軟體基礎設施中的錯誤配置,但不涵蓋資料層和應用程式框架層中存在的錯誤配置。然而這一部分並不可忽略。
SDLC的安全性將取決於DevOps團隊、出發點、技能和工具。
文章來源:
https://spectralops.io/blog/5-essential-ways-to-improve-sdlc-security/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2893536/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何提高SDLC中的左移安全性?
- 提高網站安全性的12種基本方法網站
- IT安全性如何提高?有哪些實用方法?
- 盤點 | 提高雲端計算安全性的5個技巧
- IP管理提高業務網路安全性的3種方式——VecloudCloud
- 提高應用程式安全性的測試和方法有哪些?
- IT安全性如何提高
- C語言交換兩個變數的值的5種基本方法C語言變數
- 記住這5個Linux命令,提高伺服器安全性!Linux伺服器
- Oracle提高SQL執行效率的三種方法ITOracleSQL
- 提高 MacBook 電池壽命的 9 種方法Mac
- 提高安全性的最佳 Nginx 配置Nginx
- SATA如何提高安全性?
- Redis 的 5 種資料型別的基本使用Redis資料型別
- Klaviyo:提高電子商務收入的11種方法
- 三種提高Python程式碼效能的簡便方法Python
- 如何提高代理伺服器的安全性?伺服器
- 內容服務平臺提高 HR 合規性和安全性的 4 種方式
- 如何提高CI/CD管道安全性?
- sata硬碟如何提高安全性硬碟
- SAST 如何提高整體安全性?AST
- 提高程式設計邏輯的7種方法 - DEV程式設計dev
- Jtti:如何提高Linux伺服器的安全性?JttiLinux伺服器
- 如何提高大資料傳輸的安全性大資料
- 五種方法CRM提高團隊生產力
- 如何提高Linux伺服器安全性?Linux伺服器
- 如何提高web伺服器安全性Web伺服器
- 在Oracle裡提高SQL執行效率的三種方法NQOracleSQL
- 資訊時代,提高自己的密碼安全性密碼
- MySQL基本用法-系統安全性MySql
- GET和POST兩種基本請求方法的區別
- 5種常見的Python拼接字串方法!Python字串
- 最全--Java中建立物件的5種方法Java物件
- 改進AI/ML部署的5種方法AI
- 強制Java垃圾收集的5種方法Java
- React.js繫結this的5種方法ReactJS
- DevSecOps 提升安全性的五種方式dev
- 你真的懂Redis的5種基本資料結構嗎?Redis資料結構