導讀:對于很多企業(yè)而言,Cloud和DevOps是推動企業(yè)業(yè)務發(fā)展的關(guān)鍵技術(shù)引擎。企業(yè)的IT、安全和開發(fā)人員都知道Cloud和DevOps環(huán)境中,有大量的敏感信息(如secret key)需要保護,盡管大部分的人都有安全意識,但我們?nèi)阅芸吹街T多的重要數(shù)據(jù)泄漏事件。
過往慘痛的案例告訴我們,DevSecOps的重要性。2019年,F(xiàn)acebook再次被爆出個人數(shù)據(jù)泄漏事件,位于暗網(wǎng)的線上數(shù)據(jù)庫,有超過2.67億個Facebook使用者個人數(shù)據(jù)被泄漏,包含使用者的姓名,F(xiàn)acebook的ID,以及電話號碼,這些使用者中可能受到垃圾郵件或釣魚郵件的信息攻擊,這使得Facebook遭受到信用的損失和股價的重挫[1]。
對于很多企業(yè)而言,Cloud和DevOps是推動企業(yè)業(yè)務發(fā)展的關(guān)鍵技術(shù)引擎。企業(yè)的IT、安全和開發(fā)人員都知道Cloud和DevOps環(huán)境中,有大量的敏感信息(如secret key)需要保護,盡管大部分的人都有安全意識,但我們?nèi)阅芸吹街T多的重要數(shù)據(jù)泄漏事件。
在網(wǎng)絡急速發(fā)展的大數(shù)據(jù)時代,很多企業(yè)都貫徹「敏捷」的思維和行動,這是一個同時需要面對不同風險的信號,并且正在不斷被驗證。越來越多的消費者、監(jiān)管機構(gòu)和市場發(fā)現(xiàn),由此所造成的數(shù)據(jù)泄漏的代價是高的、無法接受的。事實上,很多數(shù)據(jù)泄露事件都是可以提前預防的。透過DevSecOps的概念的推動,與自動化系統(tǒng)的輔助,這些問題與風險都將被有效的降低,并可確保產(chǎn)出的安全與質(zhì)量。而要做好DevSecOps的導入并不是這么容易,本文將說明建置DevSecOps時的關(guān)鍵事項,以及如何更有效率且有效益的達成此目標。
DevSecOps的精神在于文化
DevSecOps是Development、Security和Operations的縮寫。DevSecOps的基本理念是讓每一個解決方案、開發(fā)測試、IT與維運及多個跨部門協(xié)作人員,都能融入開發(fā)的安全理念,并正確的理解DevOps的敏捷做法與含義,也就是說DevSecOps是一個群體做法,核心理念為「安全是整個團隊所有成員的責任,需要貫穿整個軟件生命周期的每一個環(huán)節(jié)?!梗唵蝸碚f,DevSecOps就是一種安全即文化的實現(xiàn),因此,最重要的是,將DevSecOps中的安全環(huán)節(jié),與每個團隊的利益相互結(jié)合,最終須融入整個企業(yè)文化中[2]。
團隊合作實踐信息安全
DevSecOps的一大重點是讓開發(fā)團隊、維運團隊及信息安全團隊彼此相互合作,能站在對方的角度客觀看待問題,解決過去互相對立或牽制的問題。維運人員通常不大了解開發(fā)或信息安全,而開發(fā)人員也不擅長維運或信息安全;DevSecOps就是希望打破這條隔閡,將「做信息安全」的權(quán)限與責任進行分工,并讓信息安全團隊參與其中,居中溝通協(xié)調(diào),一起主動實踐信息安全、一起面對和處理漏洞、一起讓產(chǎn)品更安全[2]。
軟件開發(fā)時導入DevSecOps 自動化系統(tǒng)可降低門檻
根據(jù)IBM的研究統(tǒng)計資料顯示,產(chǎn)品在釋出之后修復安全問題,比在設計階段時解決,其成本多出4到5倍,而在維運階段才修復安全問題,其成本將達到、甚至超出100倍[3]。因此,DevSecOps需要在軟件開發(fā)前期介入,內(nèi)容包括對開發(fā)、維運人員的安全意識及安全開發(fā)規(guī)范的教育訓練、安全需求(非功能需求)的匯入、以及前期的程式碼稽核工作等。雖然在DevSecOps模式中,看似安全環(huán)節(jié)增加了工作內(nèi)容,但從整個軟件生命周期的開發(fā)與維護成本來看,提前發(fā)現(xiàn)問題可讓成本大幅降低。
此外,DevSecOps的安全工作經(jīng)常被誤以為會造成開發(fā)上的瓶頸,例如安全要求太多、測試與評估時間太長,或安全監(jiān)控實施困難等[3],事實上,這是由于大多數(shù)的公司不愿投入人力又不知如何進行自動化,導致無法將DevSecOps與現(xiàn)有流程及文化進行整合而失敗。DevSecOps采用的是快速疊代的開發(fā)方式,讓應用系統(tǒng)在最短周期內(nèi),實現(xiàn)應有的價值與安全屬性[4],相較于其他信息安全方法論,更為快速、彈性,因此,自動化的介入,可以協(xié)助團隊更輕易的達成DevSecOps的實現(xiàn),且使其更具有實務價值與效益。
須精準掌握信息安全問題即時移除嚴重漏洞
許多情況下,團隊為了加速產(chǎn)品的開發(fā)與上市時程,產(chǎn)品上的軟件并不完全是自主研發(fā),而是采用公開的原始碼(Open Source)或函式庫中搜集、整合大量的預編譯組件及函式庫,例如GitHub、SourceForge 或Docker Hub等,自行撰寫的程式碼,在現(xiàn)成軟件中所占的比率也大幅降低[5],相對應的,安全風險的問題焦點也有所轉(zhuǎn)移。大多數(shù)信息安全風險都可以通過識別這些公開的函式庫、第三方組件的已知漏洞和錯誤配置來完成,待問題解決后才投入生產(chǎn)。從安全的角度來看,識別Open Source中的已知漏洞,比發(fā)掘自行撰寫的程式碼中的未知漏洞要容易的多,最簡單快速的一種方式,便是將Open Source或第三方組件與漏洞數(shù)據(jù)庫做比對。
除上述在設計與開發(fā)階段所提到的自動化安全漏洞分析比對外,第三方安全測試工具的支援也扮演重要的角色,如何有效的進行安全確認與漏洞驗證,確保在產(chǎn)品最終釋出之前,將大多數(shù)風險移除,便是開發(fā)團隊實現(xiàn)安全開發(fā)的重要關(guān)卡。
安全文化需貫穿整個DevSecOps流程
而在產(chǎn)品釋出后的維運階段,最重要的則是持續(xù)性的,隨時監(jiān)控與即時處理來自內(nèi)部或外部的安全威脅,例如對外伺服器是否遭到攻擊、自家產(chǎn)品漏洞是否在未被通知的情況下公開揭露于網(wǎng)絡上、是否有最新的Open Source漏洞被發(fā)現(xiàn),最后則是隨時關(guān)注最新的網(wǎng)絡攻擊趨勢,以即早采取相對應的安全防護措施。
以過去的經(jīng)驗來看,在這個階段,團隊通常是最缺乏溝通與合作的,特別是針對產(chǎn)品的安全問題,維運團隊無法與開發(fā)團隊建立起一個有效與明確的分工方式,加上部門主責的重點不同,導致當產(chǎn)品安全問題發(fā)生時,最終還是開發(fā)團隊被推出來一線直接面對,維運團隊始終無法施上助力。這時最好的解決方法,便是建立一套標準程序(SOP),明確的說明各團隊的責任與分工,以及當事件發(fā)生時的處理流程;當然,其中一個重點,還是須要有專責的團隊與人力來居中協(xié)調(diào),而安全團隊是可以扮演此角色的最佳人選[6][7]。
若相關(guān)團隊能長期累積相關(guān)信息安全事件的溝通協(xié)調(diào)與處理經(jīng)驗,甚至于將相關(guān)安全信息回饋至開發(fā)團隊,除了能使整體流程與措施更加完善外,相信可以一定程度上達到預測或預防網(wǎng)絡攻擊事件或產(chǎn)品漏洞的發(fā)生,這也是DevSecOps重要的環(huán)節(jié)與精神。
采用DevSecOps的效益縮短事件處理時間
透過DevSecOps的流程建立,可有效整合開發(fā)、安全與維運團隊之間的溝通管道,縮短事件的反應時間,這將會是最直接且明顯的好處;依據(jù)DigiCert公司的調(diào)查報告顯示,有98%的企業(yè)正在或計畫采用DevSecOps[8];另根據(jù)統(tǒng)計資料顯示,未導入DevSecOps的企業(yè),需要174天的時間才能完成修補動態(tài)安全測試時所發(fā)現(xiàn)的漏洞,但若使用DevSecOps的企業(yè),則僅需92天就可以完成,差距將近2倍的時間;此外,對于DevSecOps的企業(yè)而言,在所有被發(fā)現(xiàn)的漏洞中,有53%的比例能夠在10天之內(nèi)完成修補,而未導入的企業(yè),則只有5%可在10天之內(nèi)修補完成[9]。從這些數(shù)字上差距,正可證明導入DevSecOps是可以加快漏洞或事件的處理事效,換言之,也當然具備了降低相關(guān)成本費用的好處。
HERCULES SecFlow自動化特色滿足敏捷開發(fā)且兼顧安全質(zhì)量
由仲至信息自行研發(fā)的HERCULES SecFlow 便提供實現(xiàn)DevSecOps流程的自動化輔助功能,讓使用者快速且方便的建立信息安全溝通管道與機制,能各自賦與相關(guān)團隊對應的權(quán)責,經(jīng)由指派任務、審核和回報功能,讓所有團隊更快速的適應產(chǎn)品安全開發(fā)觀念。透過SecFlow的政策模組,信息安全團隊可對相關(guān)人員(如研發(fā)團隊或維運團隊)等發(fā)布信息安全相關(guān)資訊、程式碼的安全開發(fā)注意事項等,經(jīng)由一系列的指派和簽核流程,以及最新資訊的提供,可達成加強各個團隊的信息安全意識。
SecFlow具備更完整的漏洞管理功能,除提供多種第三方安全測試報告的匯入與漏洞追蹤外,更可協(xié)助使用者建立產(chǎn)品與組件及信息安全情資的對應關(guān)系,透過強大的資料搜集器,將大量的國際漏洞資料與即時的信息安全新聞事件匯整分析為信息安全情資,并采用機器學習方式,自動與產(chǎn)品進行關(guān)聯(lián),快速對應出與自家產(chǎn)品相關(guān)的漏洞、信息安全新聞、信息安全事件等資訊,讓相關(guān)團隊隨時掌握產(chǎn)品的信息安全風險程度,并能立即移除或修補已知的嚴重漏洞。最后,更可透過主動電子郵件示警以及行動應用App,使信息安全管理人員能準確掌握漏洞信息與處理進度,確保每個事件都已被修正或改善。
SecFlow扮演了在DevSecOps的自動化上的關(guān)鍵角色,除了省掉需要人工介入的團隊信息交換、信息安全信息整理,以及清查產(chǎn)品漏洞與Open Source管理等耗時又耗力的工作,加上先進的數(shù)據(jù)搜集分析演算法,自動關(guān)聯(lián)過濾出準確且必須處理的信息安全漏洞或事件,并透過即時示警機制,快速協(xié)助使用者處理與追蹤信息安全議題,確保信息安全情資能在每個階段中,回饋給所有團隊。誰說安全與敏捷開發(fā)不易維持平衡? 透過SecFlow可以做的到,讓DevSecOps的實施,能夠完全適應各個團隊,而不是造成更大的負擔!
關(guān)于HERCULES SecFlow
HERCULES SecFlow是「產(chǎn)品信息安全管理系統(tǒng)」,針對產(chǎn)品開發(fā)相關(guān)團隊,以Secure by Design的原則,提供自動化系統(tǒng)管理機制,管理與追蹤DevSecOps的每個階段,以及所需要的信息安全流程與措施,鏈接開發(fā)、安全、維運團隊,快速建立安全的軟件開發(fā)流程;SecFlow可即時提供信息安全漏洞與信息安全事件信息,透過自動化漏洞分析與管理功能,確保產(chǎn)品與第三方套件的安全性,降低軟件開發(fā)過程衍生的信息安全風險,提升整體安全應變與處理效率,并避免產(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