應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點(diǎn)新聞
企業(yè)注冊個(gè)人注冊登錄

如何兼顧產(chǎn)品開發(fā)的敏捷度與安全性? 淺談DevSecOps與自動(dòng)化的相輔相成

2020-07-14 13:43 媒體投稿
關(guān)鍵詞:DevSecOps自動(dòng)化

導(dǎo)讀:對(duì)于很多企業(yè)而言,Cloud和DevOps是推動(dòng)企業(yè)業(yè)務(wù)發(fā)展的關(guān)鍵技術(shù)引擎。企業(yè)的IT、安全和開發(fā)人員都知道Cloud和DevOps環(huán)境中,有大量的敏感信息(如secret key)需要保護(hù),盡管大部分的人都有安全意識(shí),但我們?nèi)阅芸吹街T多的重要數(shù)據(jù)泄漏事件。

過往慘痛的案例告訴我們,DevSecOps的重要性。2019年,F(xiàn)acebook再次被爆出個(gè)人數(shù)據(jù)泄漏事件,位于暗網(wǎng)的線上數(shù)據(jù)庫,有超過2.67億個(gè)Facebook使用者個(gè)人數(shù)據(jù)被泄漏,包含使用者的姓名,F(xiàn)acebook的ID,以及電話號(hào)碼,這些使用者中可能受到垃圾郵件或釣魚郵件的信息攻擊,這使得Facebook遭受到信用的損失和股價(jià)的重挫[1]。

對(duì)于很多企業(yè)而言,Cloud和DevOps是推動(dòng)企業(yè)業(yè)務(wù)發(fā)展的關(guān)鍵技術(shù)引擎。企業(yè)的IT、安全和開發(fā)人員都知道Cloud和DevOps環(huán)境中,有大量的敏感信息(如secret key)需要保護(hù),盡管大部分的人都有安全意識(shí),但我們?nèi)阅芸吹街T多的重要數(shù)據(jù)泄漏事件。

在網(wǎng)絡(luò)急速發(fā)展的大數(shù)據(jù)時(shí)代,很多企業(yè)都貫徹「敏捷」的思維和行動(dòng),這是一個(gè)同時(shí)需要面對(duì)不同風(fēng)險(xiǎn)的信號(hào),并且正在不斷被驗(yàn)證。越來越多的消費(fèi)者、監(jiān)管機(jī)構(gòu)和市場發(fā)現(xiàn),由此所造成的數(shù)據(jù)泄漏的代價(jià)是高的、無法接受的。事實(shí)上,很多數(shù)據(jù)泄露事件都是可以提前預(yù)防的。透過DevSecOps的概念的推動(dòng),與自動(dòng)化系統(tǒng)的輔助,這些問題與風(fēng)險(xiǎn)都將被有效的降低,并可確保產(chǎn)出的安全與質(zhì)量。而要做好DevSecOps的導(dǎo)入并不是這么容易,本文將說明建置DevSecOps時(shí)的關(guān)鍵事項(xiàng),以及如何更有效率且有效益的達(dá)成此目標(biāo)。

DevSecOps的精神在于文化

DevSecOps是Development、Security和Operations的縮寫。DevSecOps的基本理念是讓每一個(gè)解決方案、開發(fā)測試、IT與維運(yùn)及多個(gè)跨部門協(xié)作人員,都能融入開發(fā)的安全理念,并正確的理解DevOps的敏捷做法與含義,也就是說DevSecOps是一個(gè)群體做法,核心理念為「安全是整個(gè)團(tuán)隊(duì)所有成員的責(zé)任,需要貫穿整個(gè)軟件生命周期的每一個(gè)環(huán)節(jié)?!?,簡單來說,DevSecOps就是一種安全即文化的實(shí)現(xiàn),因此,最重要的是,將DevSecOps中的安全環(huán)節(jié),與每個(gè)團(tuán)隊(duì)的利益相互結(jié)合,最終須融入整個(gè)企業(yè)文化中[2]。

image.png

團(tuán)隊(duì)合作實(shí)踐信息安全

DevSecOps的一大重點(diǎn)是讓開發(fā)團(tuán)隊(duì)、維運(yùn)團(tuán)隊(duì)及信息安全團(tuán)隊(duì)彼此相互合作,能站在對(duì)方的角度客觀看待問題,解決過去互相對(duì)立或牽制的問題。維運(yùn)人員通常不大了解開發(fā)或信息安全,而開發(fā)人員也不擅長維運(yùn)或信息安全;DevSecOps就是希望打破這條隔閡,將「做信息安全」的權(quán)限與責(zé)任進(jìn)行分工,并讓信息安全團(tuán)隊(duì)參與其中,居中溝通協(xié)調(diào),一起主動(dòng)實(shí)踐信息安全、一起面對(duì)和處理漏洞、一起讓產(chǎn)品更安全[2]。

軟件開發(fā)時(shí)導(dǎo)入DevSecOps 自動(dòng)化系統(tǒng)可降低門檻

根據(jù)IBM的研究統(tǒng)計(jì)資料顯示,產(chǎn)品在釋出之后修復(fù)安全問題,比在設(shè)計(jì)階段時(shí)解決,其成本多出4到5倍,而在維運(yùn)階段才修復(fù)安全問題,其成本將達(dá)到、甚至超出100倍[3]。因此,DevSecOps需要在軟件開發(fā)前期介入,內(nèi)容包括對(duì)開發(fā)、維運(yùn)人員的安全意識(shí)及安全開發(fā)規(guī)范的教育訓(xùn)練、安全需求(非功能需求)的匯入、以及前期的程式碼稽核工作等。雖然在DevSecOps模式中,看似安全環(huán)節(jié)增加了工作內(nèi)容,但從整個(gè)軟件生命周期的開發(fā)與維護(hù)成本來看,提前發(fā)現(xiàn)問題可讓成本大幅降低。

此外,DevSecOps的安全工作經(jīng)常被誤以為會(huì)造成開發(fā)上的瓶頸,例如安全要求太多、測試與評(píng)估時(shí)間太長,或安全監(jiān)控實(shí)施困難等[3],事實(shí)上,這是由于大多數(shù)的公司不愿投入人力又不知如何進(jìn)行自動(dòng)化,導(dǎo)致無法將DevSecOps與現(xiàn)有流程及文化進(jìn)行整合而失敗。DevSecOps采用的是快速疊代的開發(fā)方式,讓應(yīng)用系統(tǒng)在最短周期內(nèi),實(shí)現(xiàn)應(yīng)有的價(jià)值與安全屬性[4],相較于其他信息安全方法論,更為快速、彈性,因此,自動(dòng)化的介入,可以協(xié)助團(tuán)隊(duì)更輕易的達(dá)成DevSecOps的實(shí)現(xiàn),且使其更具有實(shí)務(wù)價(jià)值與效益。

須精準(zhǔn)掌握信息安全問題即時(shí)移除嚴(yán)重漏洞

許多情況下,團(tuán)隊(duì)為了加速產(chǎn)品的開發(fā)與上市時(shí)程,產(chǎn)品上的軟件并不完全是自主研發(fā),而是采用公開的原始碼(Open Source)或函式庫中搜集、整合大量的預(yù)編譯組件及函式庫,例如GitHub、SourceForge 或Docker Hub等,自行撰寫的程式碼,在現(xiàn)成軟件中所占的比率也大幅降低[5],相對(duì)應(yīng)的,安全風(fēng)險(xiǎn)的問題焦點(diǎn)也有所轉(zhuǎn)移。大多數(shù)信息安全風(fēng)險(xiǎn)都可以通過識(shí)別這些公開的函式庫、第三方組件的已知漏洞和錯(cuò)誤配置來完成,待問題解決后才投入生產(chǎn)。從安全的角度來看,識(shí)別Open Source中的已知漏洞,比發(fā)掘自行撰寫的程式碼中的未知漏洞要容易的多,最簡單快速的一種方式,便是將Open Source或第三方組件與漏洞數(shù)據(jù)庫做比對(duì)。

除上述在設(shè)計(jì)與開發(fā)階段所提到的自動(dòng)化安全漏洞分析比對(duì)外,第三方安全測試工具的支援也扮演重要的角色,如何有效的進(jìn)行安全確認(rèn)與漏洞驗(yàn)證,確保在產(chǎn)品最終釋出之前,將大多數(shù)風(fēng)險(xiǎn)移除,便是開發(fā)團(tuán)隊(duì)實(shí)現(xiàn)安全開發(fā)的重要關(guān)卡。

安全文化需貫穿整個(gè)DevSecOps流程

而在產(chǎn)品釋出后的維運(yùn)階段,最重要的則是持續(xù)性的,隨時(shí)監(jiān)控與即時(shí)處理來自內(nèi)部或外部的安全威脅,例如對(duì)外伺服器是否遭到攻擊、自家產(chǎn)品漏洞是否在未被通知的情況下公開揭露于網(wǎng)絡(luò)上、是否有最新的Open Source漏洞被發(fā)現(xiàn),最后則是隨時(shí)關(guān)注最新的網(wǎng)絡(luò)攻擊趨勢,以即早采取相對(duì)應(yīng)的安全防護(hù)措施。

以過去的經(jīng)驗(yàn)來看,在這個(gè)階段,團(tuán)隊(duì)通常是最缺乏溝通與合作的,特別是針對(duì)產(chǎn)品的安全問題,維運(yùn)團(tuán)隊(duì)無法與開發(fā)團(tuán)隊(duì)建立起一個(gè)有效與明確的分工方式,加上部門主責(zé)的重點(diǎn)不同,導(dǎo)致當(dāng)產(chǎn)品安全問題發(fā)生時(shí),最終還是開發(fā)團(tuán)隊(duì)被推出來一線直接面對(duì),維運(yùn)團(tuán)隊(duì)始終無法施上助力。這時(shí)最好的解決方法,便是建立一套標(biāo)準(zhǔn)程序(SOP),明確的說明各團(tuán)隊(duì)的責(zé)任與分工,以及當(dāng)事件發(fā)生時(shí)的處理流程;當(dāng)然,其中一個(gè)重點(diǎn),還是須要有專責(zé)的團(tuán)隊(duì)與人力來居中協(xié)調(diào),而安全團(tuán)隊(duì)是可以扮演此角色的最佳人選[6][7]。

若相關(guān)團(tuán)隊(duì)能長期累積相關(guān)信息安全事件的溝通協(xié)調(diào)與處理經(jīng)驗(yàn),甚至于將相關(guān)安全信息回饋至開發(fā)團(tuán)隊(duì),除了能使整體流程與措施更加完善外,相信可以一定程度上達(dá)到預(yù)測或預(yù)防網(wǎng)絡(luò)攻擊事件或產(chǎn)品漏洞的發(fā)生,這也是DevSecOps重要的環(huán)節(jié)與精神。

采用DevSecOps的效益縮短事件處理時(shí)間

透過DevSecOps的流程建立,可有效整合開發(fā)、安全與維運(yùn)團(tuán)隊(duì)之間的溝通管道,縮短事件的反應(yīng)時(shí)間,這將會(huì)是最直接且明顯的好處;依據(jù)DigiCert公司的調(diào)查報(bào)告顯示,有98%的企業(yè)正在或計(jì)畫采用DevSecOps[8];另根據(jù)統(tǒng)計(jì)資料顯示,未導(dǎo)入DevSecOps的企業(yè),需要174天的時(shí)間才能完成修補(bǔ)動(dòng)態(tài)安全測試時(shí)所發(fā)現(xiàn)的漏洞,但若使用DevSecOps的企業(yè),則僅需92天就可以完成,差距將近2倍的時(shí)間;此外,對(duì)于DevSecOps的企業(yè)而言,在所有被發(fā)現(xiàn)的漏洞中,有53%的比例能夠在10天之內(nèi)完成修補(bǔ),而未導(dǎo)入的企業(yè),則只有5%可在10天之內(nèi)修補(bǔ)完成[9]。從這些數(shù)字上差距,正可證明導(dǎo)入DevSecOps是可以加快漏洞或事件的處理事效,換言之,也當(dāng)然具備了降低相關(guān)成本費(fèi)用的好處。

HERCULES SecFlow自動(dòng)化特色滿足敏捷開發(fā)且兼顧安全質(zhì)量

由仲至信息自行研發(fā)的HERCULES SecFlow 便提供實(shí)現(xiàn)DevSecOps流程的自動(dòng)化輔助功能,讓使用者快速且方便的建立信息安全溝通管道與機(jī)制,能各自賦與相關(guān)團(tuán)隊(duì)對(duì)應(yīng)的權(quán)責(zé),經(jīng)由指派任務(wù)、審核和回報(bào)功能,讓所有團(tuán)隊(duì)更快速的適應(yīng)產(chǎn)品安全開發(fā)觀念。透過SecFlow的政策模組,信息安全團(tuán)隊(duì)可對(duì)相關(guān)人員(如研發(fā)團(tuán)隊(duì)或維運(yùn)團(tuán)隊(duì))等發(fā)布信息安全相關(guān)資訊、程式碼的安全開發(fā)注意事項(xiàng)等,經(jīng)由一系列的指派和簽核流程,以及最新資訊的提供,可達(dá)成加強(qiáng)各個(gè)團(tuán)隊(duì)的信息安全意識(shí)。

SecFlow具備更完整的漏洞管理功能,除提供多種第三方安全測試報(bào)告的匯入與漏洞追蹤外,更可協(xié)助使用者建立產(chǎn)品與組件及信息安全情資的對(duì)應(yīng)關(guān)系,透過強(qiáng)大的資料搜集器,將大量的國際漏洞資料與即時(shí)的信息安全新聞事件匯整分析為信息安全情資,并采用機(jī)器學(xué)習(xí)方式,自動(dòng)與產(chǎn)品進(jìn)行關(guān)聯(lián),快速對(duì)應(yīng)出與自家產(chǎn)品相關(guān)的漏洞、信息安全新聞、信息安全事件等資訊,讓相關(guān)團(tuán)隊(duì)隨時(shí)掌握產(chǎn)品的信息安全風(fēng)險(xiǎn)程度,并能立即移除或修補(bǔ)已知的嚴(yán)重漏洞。最后,更可透過主動(dòng)電子郵件示警以及行動(dòng)應(yīng)用App,使信息安全管理人員能準(zhǔn)確掌握漏洞信息與處理進(jìn)度,確保每個(gè)事件都已被修正或改善。

image.png

SecFlow扮演了在DevSecOps的自動(dòng)化上的關(guān)鍵角色,除了省掉需要人工介入的團(tuán)隊(duì)信息交換、信息安全信息整理,以及清查產(chǎn)品漏洞與Open Source管理等耗時(shí)又耗力的工作,加上先進(jìn)的數(shù)據(jù)搜集分析演算法,自動(dòng)關(guān)聯(lián)過濾出準(zhǔn)確且必須處理的信息安全漏洞或事件,并透過即時(shí)示警機(jī)制,快速協(xié)助使用者處理與追蹤信息安全議題,確保信息安全情資能在每個(gè)階段中,回饋給所有團(tuán)隊(duì)。誰說安全與敏捷開發(fā)不易維持平衡? 透過SecFlow可以做的到,讓DevSecOps的實(shí)施,能夠完全適應(yīng)各個(gè)團(tuán)隊(duì),而不是造成更大的負(fù)擔(dān)!

關(guān)于HERCULES SecFlow

HERCULES SecFlow是「產(chǎn)品信息安全管理系統(tǒng)」,針對(duì)產(chǎn)品開發(fā)相關(guān)團(tuán)隊(duì),以Secure by Design的原則,提供自動(dòng)化系統(tǒng)管理機(jī)制,管理與追蹤DevSecOps的每個(gè)階段,以及所需要的信息安全流程與措施,鏈接開發(fā)、安全、維運(yùn)團(tuán)隊(duì),快速建立安全的軟件開發(fā)流程;SecFlow可即時(shí)提供信息安全漏洞與信息安全事件信息,透過自動(dòng)化漏洞分析與管理功能,確保產(chǎn)品與第三方套件的安全性,降低軟件開發(fā)過程衍生的信息安全風(fēng)險(xiǎn),提升整體安全應(yīng)變與處理效率,并避免產(chǎn)品安全問題所產(chǎn)生的爭議訴訟。

參考資料:

[1] https://www.bnext.com.tw/article/55989/267-million-phone-numbers-exposed-online

[2] https://www.redhat.com/en/topics/devops/what-is-devsecops

[3] https://kknews.cc/zh-tw/tech/mmmgqa9.html

[4] https://devops.com/early-automation-key-requirement-devsecops-success/

[5] https://zhuanlan.zhihu.com/p/44691252

[6] Neil MacDonald, Mark Horvath, Ayal Tirosh, 16 November 2017, Integrating Security Into the DevSecOps Toolchain

[7] https://tech.gsa.gov/guides/understanding_differences_agile_devsecops/

[8] https://www.digicert.com/news/survey-integrating-security-into-devops/

[9] https://www.csoonline.com/article/3245748/what-is-devsecops-developing-more-secure-applications.html