針對代碼和應(yīng)用程序的軟件供應(yīng)鏈攻擊已經(jīng)成為一種對互聯(lián)網(wǎng)經(jīng)濟(jì)發(fā)展影響巨大的網(wǎng)絡(luò)攻擊手段,。因此,加強(qiáng)代碼和應(yīng)用程序的自身免疫力,保證應(yīng)用程序敏捷安全地開發(fā),、交付和流轉(zhuǎn),,當(dāng)前應(yīng)作為網(wǎng)絡(luò)安全的一項重要任務(wù)來看待。在軟件供應(yīng)鏈安全建設(shè)實踐中,,DevSecOps平衡了代碼開發(fā)過程中敏捷和安全的需求,,逐漸被行業(yè)接受和認(rèn)可,加速DevSecOps的落地實踐并成為敏捷開發(fā)模式企業(yè)中開發(fā)安全建設(shè)的重要抓手,。
日前,,安全牛采訪了孝道科技聯(lián)合創(chuàng)始人兼CTO徐鋒,就如何在供應(yīng)鏈安全建設(shè)中實踐運(yùn)用DevSecOps進(jìn)行了深入探討,。徐鋒表示:“軟件供應(yīng)鏈安全的影響已經(jīng)上升到了國家安全的高度,,企業(yè)對軟件供應(yīng)商、產(chǎn)品供應(yīng)商提供的軟件安全合規(guī)性要求越來越高,,對違規(guī)處罰的力度也越來越高,,這將有力促進(jìn)安全開發(fā)、DevSecOps理念的快速落地,。在DevSecOps模式下,,更為強(qiáng)調(diào)全員的安全責(zé)任和共擔(dān)文化,每個人都要為系統(tǒng)應(yīng)用安全承擔(dān)責(zé)任,,因此需要團(tuán)隊成員在安全意識和觀念上有了積極轉(zhuǎn)變,。”
現(xiàn)任杭州孝道科技有限公司副總經(jīng)理兼CTO,,近20年安全行業(yè)從業(yè)經(jīng)驗,,浙江省網(wǎng)絡(luò)空間安全協(xié)會專家、云安全聯(lián)盟CSA(Cloud Security Alliance)專家組成員,、全國信息安全標(biāo)準(zhǔn)化技術(shù)委員會(TC260) 相關(guān)工作組成員,。主要研究領(lǐng)域包括軟件供應(yīng)鏈安全、安全開發(fā),、SDL,、DevSecOps,是數(shù)字應(yīng)用安全領(lǐng)域的探索者,曾參與多項相關(guān)標(biāo)準(zhǔn)的研制工作,。
01 目前,,軟件供應(yīng)鏈攻擊的主要特點(diǎn)是什么?企業(yè)應(yīng)對軟件供應(yīng)鏈攻擊的方法或框架主要有哪些,?
徐鋒
目前在軟件供應(yīng)鏈攻擊里面影響面最大,、最容易被攻擊、最易得手的,,多數(shù)是由開源軟件問題導(dǎo)致的,。首先,目前軟件開發(fā)都在采用混源開發(fā)模式,其中大部分代碼都是開源的,。開發(fā)者在引用開源軟件或開源組件時,,準(zhǔn)入控制的概念不強(qiáng),前期對開源項目安全性,、斷供等風(fēng)險的評估基本為零,;其次,從開源社區(qū)組織上來看,,開源軟件管理相對比較松散,,代碼提交門檻較低,并且很多社區(qū)項目對自身代碼安全性的關(guān)注度不足,。這些因素都給軟件供應(yīng)鏈安全埋下了嚴(yán)重的安全隱患,。
面對軟件供應(yīng)鏈攻擊,首先需要分析軟件的來源,,不同來源的軟件攻擊防范方法差異非常大,目前可以粗略的把軟件來源分為:外部軟件和內(nèi)部自研軟件,。
對于從外部供應(yīng)商采購的軟件,,比如操作系統(tǒng)、辦公軟件,、OA系統(tǒng),,或者委托他人開發(fā)的軟件,需要考察供應(yīng)商的綜合實力,、服務(wù)能力以及持續(xù)性,,對交付物采用安全準(zhǔn)入的檢查和控制措施。比如,,對軟件進(jìn)行成分分析,,要求提交軟件物料清單(SBOM)清單,對于一些重要的系統(tǒng)軟件,,除了基礎(chǔ)安全檢查之外,,還需要進(jìn)一步做安全測試。
外部軟件除了供應(yīng)商采購獲得,,還有很多來自開源軟件,,開源軟件的引用同樣需要經(jīng)過一系列的評估機(jī)制,對其安全性,、健康度等各方面進(jìn)行考察,,以減少未來可能發(fā)生的供應(yīng)鏈攻擊。
對內(nèi)部的自研軟件有很多相應(yīng)的安全開發(fā)模型和理念,,比如軟件安全開發(fā)周期(SDL),、安全軟件開發(fā)框架(SSDF)、DevSecOps等,自研軟件的企業(yè)是相對而言比較好的軟件供應(yīng)鏈安全參考模型,。
此外,,國家信息安全標(biāo)準(zhǔn)委員會在9月份正式發(fā)布了《信息安全技術(shù) 軟件供應(yīng)鏈安全要求》征求意見稿,也給企業(yè)在軟件供應(yīng)鏈安全方面的建設(shè)提供了一些方向性的指導(dǎo),,值得參考借鑒,。
02 DevSecOps是一種理念、工具還是方法論,?其核心價值或能力是什么,?國內(nèi)目前是否具備廣泛普及DevSecOps的基礎(chǔ)條件和市場環(huán)境?
徐鋒
DevSecOps是Gartner在2012年提出的一種理念,,核心思想是盡可能地把安全無縫地,、透明地集成到敏捷開發(fā)或者DevOps的開發(fā)過程中去。核心價值是在有限的成本投入以及保持業(yè)務(wù)開發(fā)敏捷性和速度的前提下,,提升軟件的內(nèi)生性安全,。通過什么樣的方式、手段能達(dá)到這樣的目標(biāo),,可以有哪些不同的做法,,需要不同企業(yè)共同探索。
DevSecOps的市場應(yīng)用依賴于敏捷開發(fā)或者DevOps的普及情況,。研究數(shù)據(jù)顯示,,我國目前90%的企業(yè)均不同程度地采用了敏捷開發(fā)模型或DevOps方法;還有60%的企業(yè)開始嘗試或者想要實現(xiàn)DevSecOps,。從這些數(shù)據(jù)來看,,國內(nèi)DevSecOps的應(yīng)用已經(jīng)開始。頭部企業(yè)和規(guī)模較大的互聯(lián)網(wǎng)公司,、金融企業(yè)已經(jīng)在不斷的實踐,、探索和優(yōu)化了。從國內(nèi)的普及率來看,,DevSecOps正處于1到n快速推進(jìn)的階段,,將在近兩年快速增長。
03 構(gòu)建DevSecOps軟件開發(fā)安全體系的核心技術(shù)和支撐技術(shù)分別是什么,?
徐鋒
構(gòu)建DevSecOps體系最核心的技術(shù)是安全工具鏈的建設(shè),,即軟件開發(fā)過程中需要的持續(xù)應(yīng)用安全測試、賦能各種檢測類技術(shù),,包括很多應(yīng)用安全測試工具,,如代碼審計工具(SAST)、交互式應(yīng)用安全檢測工具(IAST),、動態(tài)測試工具(DAST)以及模糊測試工具等,。這類工具針對開發(fā)軟件代碼或者軟件制品進(jìn)行自動化測試,,發(fā)現(xiàn)軟件漏洞的核心技術(shù)。同時,,用的較多的還有軟件成分分析工具(SCA),,可以從開源組件安全、知識產(chǎn)權(quán)及開源許可的角度對軟件進(jìn)行安全分析,。
其次是運(yùn)行時應(yīng)用程序自我保護(hù)(RASP),,安全編排(SOAR),響應(yīng)自動化,,也是DevOps轉(zhuǎn)向DevSecOps工具鏈建設(shè)中的重要支撐,。
第三是與安全防護(hù)類產(chǎn)品如統(tǒng)一的單點(diǎn)登陸,防火墻,,WAF等互聯(lián)互通的技術(shù),。由于DevSecOps在交付過程中,要保證交付速度,,很多安全測試不夠充分,,會遺留一些未發(fā)現(xiàn)的或低危的漏洞。因此,,DevSecOps不能完全獨(dú)立,,需要與傳統(tǒng)的應(yīng)用防護(hù)類工具配合進(jìn)行聯(lián)動防御。
此外,,開發(fā)團(tuán)隊在構(gòu)建DevSecOps過程中也離不開DevOps開發(fā)基礎(chǔ)支撐類工具的熟練應(yīng)用,具體包括代碼倉庫,、制品倉庫,、持續(xù)集成、持續(xù)部署,、自動化測試,、云原生等等。DevSecOps建設(shè)的時候,,需要把上述的應(yīng)用安全檢測工具,、防護(hù)能力無縫透明的融入到DevOps的基礎(chǔ)開發(fā)環(huán)境中去,也是幫助整個團(tuán)隊能更輕松落地DevSecOps的一個重要方面,。
當(dāng)然在構(gòu)建DevSecOps的過程中,,除了技術(shù)、工具以外,,人,、文化、流程這三大要素也是DevSecOps能力建設(shè)非常重要的核心力量,。
04 與DevOps相比,,DevSecOps流程上有哪些明顯區(qū)別,?其中哪些環(huán)節(jié)對開發(fā)人員的挑戰(zhàn)會比較大?
徐鋒
傳統(tǒng)DevOps的參與者主要是開發(fā)和運(yùn)維,,安全只在即將上線時才會介入,,并且安全責(zé)任只有安全團(tuán)隊負(fù)責(zé)。但企業(yè)在轉(zhuǎn)向DevSecOps流程后,,安全團(tuán)隊需要融合進(jìn)來,,并且將安全開發(fā)的理念貫徹到開發(fā)的所有環(huán)節(jié)中去,比如需求階段會引入安全需求分析,,設(shè)計階段會引入安全設(shè)計,,編碼階段會引入安全編碼,測試階段也會引入安全驗證,,最后還要經(jīng)過安全發(fā)布和安全運(yùn)營,。所以從這個角度來說,DevSecOps并沒有完全摒棄傳統(tǒng)的安全開發(fā)模型,,而是在做安全需求分析,、安全設(shè)計、安全編碼,、安全驗證,、安全發(fā)布和安全運(yùn)營的時候,更多利用工具的高效自動化,。
從抑制供應(yīng)鏈攻擊的角度來看,,對于軟件自研的企業(yè)而言以下六個階段都是比較重要的,但從個人的角度來看,,安全需求分析,、安全設(shè)計、安全驗證這三個環(huán)節(jié)是對抑制供應(yīng)鏈攻擊更為重要的環(huán)節(jié),。
從挑戰(zhàn)來看,,開發(fā)人員原來更多關(guān)注的是功能的實現(xiàn)。而目前軟件設(shè)計階段需要融入安全設(shè)計,,實現(xiàn)階段需要融入安全編碼,,這都需要一定的安全知識儲備,去識別應(yīng)用潛在的安全風(fēng)險,,并且設(shè)計出相應(yīng)的消減安全威脅的方案,,對開發(fā)人員是一個比較大的挑戰(zhàn)。針對開發(fā)人員的挑戰(zhàn),,在整個安全威脅識別的過程中,,一般會引入威脅建模類工具,并且一般需要協(xié)調(diào)安全人員來共同承擔(dān)此階段工作,。安全開發(fā)一體化平臺可以提供通用的安全設(shè)計模板及相應(yīng)的知識庫,,能為開發(fā)設(shè)計人員覆蓋60%以上的安全設(shè)計需求,,降低開發(fā)人員安全設(shè)計難度;對于不能通用的部分需求可以采用威脅建模的方式進(jìn)行定制化設(shè)計,,定制化設(shè)計可以沉淀為模板使未來的安全設(shè)計更加方便,;設(shè)計完成后要由專業(yè)的安全人員審核、把關(guān)這些安全設(shè)計,,使安全設(shè)計應(yīng)用更加科學(xué)完善,。
安全編碼環(huán)節(jié)主要是消除不規(guī)范的代碼,難度相對安全設(shè)計低一些,。通過開發(fā)人員安全編碼知識的培訓(xùn),,以及安全工具對代碼檢查的反饋,就可以讓開發(fā)人員快速建立起安全編碼的能力,。
從運(yùn)維的角度來看,,DevSecOps對交付速度要求非常高,在安全驗證階段,,會更多依賴自動化工具,,如果出現(xiàn)了安全漏洞,運(yùn)維人員能夠快速的監(jiān)測并進(jìn)行響應(yīng)處置,。因此,,DevSecOps在落地階段,對運(yùn)維人員安全監(jiān)測和相應(yīng)處置能力會有更高的要求,。此外,,版本的發(fā)布和迭代又比較快,對運(yùn)維人員適應(yīng)快節(jié)奏的變化過程要求也特別高,。
05 軟件開發(fā)有較強(qiáng)的繼承性和延續(xù)性,,對于目前采用DevOps開發(fā)模式的企業(yè),應(yīng)該如何過渡到DevSecOps模式中,?
徐鋒
首先,安全理念的轉(zhuǎn)變,,也是我們過度到DevSecOps的重要前提,。在DevOps模式下,安全責(zé)任都?xì)w屬于安全團(tuán)隊,,開發(fā)和運(yùn)維團(tuán)隊不背安全的KPI,。但DevSecOps模式下,人人要為安全承擔(dān)責(zé)任,,要強(qiáng)調(diào)全員的安全責(zé)任和共擔(dān)文化,,需要團(tuán)隊成員在安全意識上做一些轉(zhuǎn)變。企業(yè)一般會從諸多產(chǎn)線中找一個項目或者一個團(tuán)隊來做試點(diǎn),,在試點(diǎn)團(tuán)隊里面去做磨合,,去做適應(yīng),,解決安全、開發(fā),、運(yùn)維團(tuán)隊之中存在安全責(zé)任割裂的問題,。
其次,選擇合適的工具,,從單一團(tuán)隊開始,,從關(guān)鍵節(jié)點(diǎn)介入,逐步推廣到單一團(tuán)隊的全流程,,然后再去復(fù)制到其他團(tuán)隊,。初期建設(shè)中工具的選擇非常的重要,可以先引用一些侵入性小,,見效快的工具,,如IAST、SCA等,,進(jìn)行部分流程的試點(diǎn),。當(dāng)大家逐步適應(yīng)部分流程的時候,再慢慢的擴(kuò)展到安全需求,、安全設(shè)計過程,,然后貫穿到整個流程,最后再去復(fù)制到其他團(tuán)隊,。如果剛開始引入的工具太多,,對現(xiàn)有的開發(fā)流程和開發(fā)人員的使用習(xí)慣侵入性比較大,就會出現(xiàn)集體反彈,。
然后,,從組織角度看,企業(yè)還需要配置相應(yīng)的崗位為安全開發(fā)能力賦能,。不同規(guī)模的企業(yè)在實踐DevSecOps的時候并不是一樣的,。如果更加專業(yè)、更加細(xì)分的話,,需要分成獨(dú)立的安全需求分析師,、獨(dú)立的安全架構(gòu)師、獨(dú)立的安全測試人員,,甚至還有項目的安全顧問,。這些人有些可能是通過兼職的方式,可能是專職的方式,。但是這些職責(zé)也可以分散到不同團(tuán)隊的不同人身上,。因此,組織架構(gòu)方面可以根據(jù)企業(yè)規(guī)模來調(diào)整,。
最后,,建立好安全開發(fā)的流程和制度,,也是DevSecOps體系建立非常重要的一個方面。比如,,如何根據(jù)項目級別不同,,定義安全基線、評審流程,、例外處理流程等方面的相關(guān)制度,。
06 您認(rèn)為目前階段DevSecOps應(yīng)用的主要難點(diǎn)是什么?未來會呈現(xiàn)怎樣的發(fā)展趨勢,?
徐鋒
目前,,大部分應(yīng)用軟件的開發(fā)都在使用敏捷的方法,DevSecOps在未來將會越來越普及,。
但從技術(shù)方面來看,,工具鏈建設(shè)的落地還有難度。各個廠商之間或者是各個工具之間還沒有完全打通,,需要各個工具廠商按項目去對接,,嚴(yán)重約束了DevSecOps的發(fā)展。比如說,,不同安全工具測試出來的結(jié)果,,目前只能做到相互歸類和優(yōu)先級排序,用戶引入的工具越多,,就需要投入越多時間去處理同一類漏洞,,安全人員的工作量越來越大,效率越來越低,。提升不同AST類工具組合應(yīng)用時檢測的效能,、效率,不同產(chǎn)品之間不光要結(jié)果互認(rèn),,更重要的是相互補(bǔ)強(qiáng),、相互驗證、與平臺持續(xù)集成以及將AST類工具的檢測結(jié)果更好的輸送給各種防護(hù)類安全產(chǎn)品,。不同工具之間相互協(xié)調(diào),、相互協(xié)作、相互補(bǔ)充以及自動化程度能力的提升是目前DevSecOps發(fā)展過程中需要去進(jìn)一步解決的問題,。
在政策方面,軟件供應(yīng)鏈安全已經(jīng)上升到了國家安全的高度,。網(wǎng)絡(luò)安全和數(shù)據(jù)安全相關(guān)的法律規(guī)對軟件供應(yīng)商,、產(chǎn)品供應(yīng)商提供的軟件安全合規(guī)性要求越來越高,對違規(guī)處罰的力度也越來越高,。這也促進(jìn)了安全開發(fā),、DevSecOps的理念更加快速的落地,。
從理念發(fā)展來看,DevSecOps的落地仍需要不斷探索和深化,,未來需要吸取更多其它安全開發(fā)模型和框架的思想進(jìn)行完善,。
牛評
敏捷開發(fā)作為數(shù)字經(jīng)濟(jì)建設(shè)的重要組成部分,應(yīng)用程序成份越來越復(fù)雜,,代碼安全驗證不足等問題給應(yīng)用程序安全留下了嚴(yán)重的缺口,。同時,安全開發(fā)涉及了產(chǎn)業(yè)上下游,,開發(fā)過程的多個環(huán)節(jié),,某一個點(diǎn)的安全能力的增強(qiáng)并不能有效閉環(huán)和緩解其所面臨的軟件供應(yīng)鏈攻擊的影響。做好敏捷環(huán)境的開發(fā)安全需要人,、文化,、技術(shù)、流程多個方面的共同努力,,但工具鏈,、平臺化工具的使用體驗是改善人、文化和流程的重要約束條件,,在整個供應(yīng)鏈安全能力的建設(shè)中可以起到事半功倍的效果,。
更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<