在軟件開發中,Shift-Left是一種幫助開發人員在軟件開發過程早期發現漏洞和編碼錯誤的做法。Shift-Left Security是一種有效的方法,它專注于安全性,并有助于在軟件發布之前很久就解決代碼中的任何安全問題。
在這里,我們概述了什么是Shift-Left Security,并提供了有關靜態分析器如何幫助您在SDLC中及早發現安全漏洞的指導。
什么是Shift-Left Security?
Shift-Left Security,或對安全采取“Shift-Left方法”,是在軟件開發生命周期 (SDLC) 的早期執行安全檢查或與安全相關的任務的想法。Shift-Left通常應用于測試,目的是根據執行時間提高這些任務的效率,并確保這些必要的任務不會留到開發周期結束,并且在最壞的情況下,完全省略。
與更傳統的方法不同,即等到部署的最后階段才測試應用程序并掃描安全漏洞,在SDLC中向左轉移有助于避免下游的長時間延遲,因為它允許您在集成、測試、記錄甚至發布代碼之前發現代碼中的潛在安全風險!
作為更大的Shift-Left運動的一部分,Shift-Left Security意味著在開發過程的早期(或線性開發時間線的左側)檢查安全問題,以便您可以識別編碼問題并更快地修復缺陷,以免它們變得過于昂貴或難以管理。
Shift-Left 測試 是一種通過避免在周期后期對代碼和測試進行返工來提高代碼質量和減少測試工作量的方法。這種類型的測試已經是一個既定的原則。
因此,Shift-Left Security建立在相同的基本過程和概念之上,在開發周期的早期優先考慮漏洞檢測和預防,構成了更廣泛的DevOps和DevSecOps自動化的一部分。
為什么Shift-Left Security對DevOps有益?
將安全性向Shift-Left動旨在提高最終產品的安全性,鼓勵合作低成本,并加快上市時間。
等到開發過程結束可能會導致成本的修復,尤其是在需要重大架構更改的情況下。另一方面,盡早發現和修復錯誤可能意味著在代碼缺陷上花費的時間和金錢更少?,F代DevOps團隊通過為項目使用CI/CD pipeline的開發人員自動化安全門控和反饋系統,為開發人員提供Shift-Left Security流程支持。
許多開發人員也更喜歡這種早期方法的效率,因為他們不會因為經常切換任務而中斷。簽入代碼后獲得靜態分析、動態分析或測試結果所需的時間越短,開發人員就越有可能對最近編寫的代碼記憶猶新。您甚至可以使用節省時間的解決方案,例如IDE和Klocwork或Helix QAC插件,甚至在簽入代碼之前即可獲得結果,從而進一步簡化流程。在停止處理任務之前獲取結果比等到簽入代碼和持續集成 (CI) 運行分析要快得多。
隨著越來越多的組織意識到Shift-Left Security的好處,Shift-Left的應用領域也在不斷增長。例如,據《福布斯》報道 ,將安全性考慮納入到云計算中已成為一個重要趨勢。
Shift-Left Security最佳實踐
如果已準備好開始在pipeline中將安全性向Shift-Left動,則可以開始實施以下一些最佳做法:
1. 評估您當前的軟件開發流程。
您當前在開發pipeline中的哪個位置測試安全漏洞?它會在這個過程的早期發生嗎?是否有任何瀑布式方法變得更加敏捷(例如,不是迭代測試缺陷,而是集成可以持續監控代碼和識別安全漏洞的安全工具)?
評估開發pipeline的工作原理以及代碼如何從開發轉移到生產。惡意行為者可能會找到機會在這些階段中的任何一個階段更改代碼,因此早期檢查可以經常內置到您的整個pipeline中,并實現版本控制和以IP為中心的設計等技術,以確保開發安全。一個好的開始是檢查現有的文檔,如果存在差距,與DevOps和SecOps成員交談,以識別和記錄缺失的組件。
2. 建立新的Shift-Left Security策略。
一旦您對當前方法的位置有了很好的了解,請創建一個文檔來定義您的新Shift-Left策略。此策略可能包括將安全性向左轉移的總體目標、組織將如何定義Shift-Left以及所涉及的流程和工具、如何衡量成功,以及個人和團隊責任。
3. 對開發團隊進行安全編碼最佳實踐方面的培訓。
Shift-Left Security培訓 是一個持續的過程,不僅針對開發人員——組織需要為能夠支持和優化Shift-Left安全性的合適團隊(如產品、開發和QA)提供培訓。隨著對代碼的更多關注,以及不同的團隊成員知道要尋找什么和使用哪些工具,安全測試將成為您整體開發戰略的重要早期步驟。
安全 編碼標準 提供了由具有多年知識的安全專家編制的規則和指南,有助于預防、檢測和消除可能危及軟件安全的錯誤。主要安全標準包括CERT CWE,OWASP,DISA STIG,IEC 62443等。對團隊進行此類標準方面的培訓并實施靜態分析工具以在整個代碼庫中強制實施編碼標準,將保護您的代碼在流程的早期免受編碼漏洞的影響。
4. 自動化安全流程。
作為 CI/CD 流程的一部分,自動化有助于支持整個過程中所需的持續測試。您可以使用多種方法來自動化安全性,包括靜態應用程序系統測試 (SAST)、動態應用程序安全測試 (DAST)、交互式應用程序安全測試 (IAST) 和運行時應用程序自我保護(RASP)。這些方法在自動化安全性方面都很重要,但對于Shift-Left,SAST是最適用的。借助SAST,您將能夠在開發pipeline的早期檢測漏洞。
Perforce 靜態分析工具如何幫助實現Shift-Left Security
靜態分析可以在開發過程的早期,在軟件測試開始之前執行。這種類型的分析通過查找國際公認的安全編碼標準的已知漏洞模式來發現問題,并檢測代碼中的早期缺陷。它還提供快速反饋以及漏洞及其原因的確切位置。
靜態分析工具(如Perforce的Helix QAC和Klocwork)與開發人員工具鏈(包括IDE插件)和CI / CD pipeline無縫集成,以實現安全性的持續合規自動化。這些類型的工具使您和您的開發團隊甚至可以在提交代碼之前檢查代碼是否存在漏洞,或者之后立即在CI系統中進行安全檢查。
Helix QAC是一種靜態分析和SAST工具,可根據風險的嚴重程度確定編碼問題的優先級,針對最關鍵的缺陷,并提供準確的診斷和可操作的結果,從而幫助您立即修復最重要的問題,從而幫助在SDLC的早期發現安全漏洞。
Klocwork是一種靜態分析和SAST工具 ,可在引入安全漏洞時發現這些漏洞,幫助您盡早修復漏洞,并提供符合行業安全標準以及您自己的組織要求的合規性。
親眼看看值得信賴的工具Helix QAC和Klocwork如何幫助您的組織將安全性向左轉移。
-
嵌入式
+關注
關注
5090文章
19173瀏覽量
306843 -
嵌入式軟件測試
+關注
關注
2文章
27瀏覽量
6119
發布評論請先 登錄
相關推薦
評論