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