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