如何兼顧產品開發的敏捷度與安全性?~淺談DevSecOps與自動化的相輔相成

如何兼顧產品開發的敏捷度與安全性?~淺談DevSecOps與自動化的相輔相成

DevSecOps是讓每一個解決方案、開發測試、IT與維運及多個跨部門協作人員,都能融入開發的安全理念,並正確的理解DevOps的敏捷做法,以快速因應市場推陳出新。然而,要做好DevSecOps的導入並不容易,本文將說明建置DevSecOps時的關鍵事項,以及如何更有效率且有效益的達成此目標。
 
 
在網路急速發展的大數據時代,很多企業都貫徹「敏捷」的思維和行動。對許多企業而言,Cloud(雲端)和DevOps(Development和Operations的組合詞,詳註解)是推動企業發展的關鍵技術引擎;企業的IT、安全和開發人員也都知道,在Cloud和DevOps環境中有大量的敏感訊息(如secret key)需要保護。
 
儘管大部分的人都有安全意識,但我們仍能看到諸多重要的資料洩漏事件。例如,2019年Facebook再次被爆出個資洩漏事件——其位於暗網的線上資料庫,有超過2.67億個使用者個人資料被洩漏,包含使用者姓名、Facebook ID以及電話號碼,令這些用戶可能遭受到垃圾郵件或釣魚郵件的網路攻擊,也使得Facebook遭受信用損失及股價重挫。
 
事實上,很多資料洩露事件都是可以提前預防的。透過DevSecOps概念的推動,與自動化系統的輔助,這些問題與風險都將被有效地降低,並確保產出的安全與品質。
 
DevSecOps的精神在於文化 團隊合作實踐資安
 
DevSecOps是Development、Security和Operations的縮寫,基本理念是讓每一個解決方案、開發測試、IT與維運及多個跨部門協作人員,都能融入開發的安全理念,並正確的理解DevOps的敏捷做法與含義。也就是說DevSecOps是一個群體做法,核心理念為「安全是整個團隊所有成員的責任,需要貫穿整個軟體生命週期的每一個環節。」簡單來說,就是一種安全即文化的實現,因此最重要的是,將DevSecOps中的安全環節與每個團隊的利益相互結合,最終須融入整個企業文化中。

DevSecOps的一大重點是讓開發團隊、維運團隊及資安團隊彼此相互合作,能站在對方的角度客觀看待問題,解決過去互相對立或牽制的困擾——維運人員通常不太了解開發或資安,而開發人員也不擅長維運或資安。DevSecOps就是希望打破這層隔閡,將「做資安」的權限與責任進行分工,並讓資安團隊參與、居中溝通協調,一起主動實踐資安、一起面對和處理弱點、一起讓產品更安全。
 
軟體開發時導入DevSecOps 自動化系統可降低門檻
 
根據IBM的研究統計資料顯示,產品在釋出之後再修復安全問題,比起在設計階段時就解決,其成本多出4~5倍;而在維運階段才修復安全問題,其成本更高達、甚至超出100倍。因此,DevSecOps需要在軟體開發前期介入,內容包括對開發、維運人員的安全意識和安全開發規範的教育訓練、安全需求(非功能需求)的匯入,以及前期的程式碼稽核工作等。雖然在DevSecOps模式中,看似於安全環節增加了工作內容,但從整個軟體生命週期的開發與維護成本來看,提前發現問題可讓成本大幅降低。
 
此外,DevSecOps的安全工作經常被誤以為會造成開發上的瓶頸,例如:安全要求太多、測試與評估時間太長,或安全監控實施困難等,事實上這是由於大多數的公司不願投入人力又不知如何進行自動化,導致無法將DevSecOps與現有流程及文化進行整合而失敗。
 
DevSecOps採用的是快速疊代的開發方式,讓應用系統在最短週期內實現應有的價值與安全屬性,相較於其他資訊安全方法論,更為快速、彈性。因此,自動化的介入可以協助團隊更輕易的達成DevSecOps的實現,且使其更具有實務價值與效益。

開發階段:精準掌握資安問題即時移除嚴重弱點
 
許多情況下,團隊為了加速產品的開發與上市時程,產品上的軟體並不完全是自主研發,而是採用公開的原始碼(Open Source)或函式庫中蒐集、整合大量的預編譯組件及函式庫,例如GitHub、SourceForge或Docker Hub等,自行撰寫的程式碼在現成軟體中所占的比率也大幅降低;相對應的,安全風險的問題焦點也有所轉移。
 
大多數資安風險都可以通過識別這些公開的函式庫、第三方組件的已知弱點和錯誤配置來完成,待問題解決後才投入生產。從安全的角度來看,識別Open Source中的已知弱點,比發掘自行撰寫的程式碼中未知弱點要容易的多,最簡單快速的一種方式便是將Open Source或第三方組件與弱點資料庫做比對。
 
除上述在設計與開發階段所提到的自動化安全弱點分析比對外,第三方安全測試工具的支援也扮演重要的角色,如何有效地進行安全確認與弱點驗證,確保在產品最終釋出之前將大多數風險移除,便是開發團隊實現安全開發的重要關卡。
 
維運階段:建立SOP,以安全貫穿DevSecOps流程
 
而在產品釋出後的維運階段,最重要的則是持續性的、隨時監控與即時處理來自內部或外部的安全威脅,例如:對外伺服器是否遭到攻擊、自家產品弱點是否在未被通知的情況下公開揭露於網路上、是否有最新的Open Source弱點被發現等,最後則是隨時關注最新的網路攻擊趨勢,以及早採取相對應的安全防護措施。
 
以過去的經驗來看,在這個階段團隊通常是最缺乏溝通與合作的,特別是針對產品的安全問題,維運團隊無法與開發團隊建立起一個有效與明確的分工方式,加上部門主責的重點不同,導致當產品安全問題發生時,最終還是開發團隊被推出來一線直接面對,維運團隊始終無法施上助力。這時最好的解決方法,便是建立一套標準程序(SOP),明確地說明各團隊的責任與分工,以及當事件發生時的處理流程;當然,其中一個重點,還是須有專責的團隊與人力來居中協調,而安全團隊是可以扮演此角色的最佳人選。
 
若各團隊能長期累積相關資安事件的溝通協調與處理經驗,甚至於將相關安全資訊回饋至開發團隊,除了能使整體流程與措施更加完善外,相信可以一定程度上達到預測或預防網路攻擊事件或產品弱點的發生,這也是DevSecOps重要的環節與精神。
 
導入DevSecOps可大幅縮短資安事件處理時間
 
透過DevSecOps的流程建立,可有效整合開發、安全與維運團隊之間的溝通管道,縮短事件的反應時間,這將會是最直接且明顯的好處。依據DigiCert調查報告顯示,有98%的企業正在或計畫採用DevSecOps;另根據統計資料顯示,未導入DevSecOps的企業,需要174天的時間才能完成修補動態安全測試時所發現的弱點,而使用DevSecOps的企業,則僅需92天就可以完成,差距將近2倍的時間。此外,對於導入DevSecOps的企業而言,在所有被發現的弱點中,有53%的比例能夠在10天之內完成修補;而未導入的企業,則只有5%可在10天之內修補完成。從這些數字上差距,正可證明導入DevSecOps是可以加快弱點或事件的處理時效,當然也具備了降低相關成本費用的好處。
 
SecFlow與DevSecOps的結合
 
 
DevSecOps自動化 滿足敏捷開發且兼顧安全品質
 
以安華聯網自行研發的HERCULES SecFlow為例,便可提供實現DevSecOps流程的自動化輔助功能,讓使用者快速且方便的建立資安溝通管道與機制,能各自賦與相關團隊對應的權責,經由指派任務、審核和回報功能,讓所有團隊更快速地適應產品安全開發觀念。透過政策模組,資安團隊可對相關人員(如研發團隊或維運團隊)等發布資安相關資訊、程式碼的安全開發注意事項等,經由一系列的指派和簽核流程以及最新資訊的提供,可達成加強各個團隊的資安意識。
 
其具備完整的弱點管理功能,除提供多種第三方安全測試報告的匯入與弱點追蹤外,更可協助使用者建立產品與組件及資安情資的對應關係,透過強大的資料搜集器將大量的國際弱點資料與即時的資安新聞事件匯整分析為資安情資,並採用機器學習方式自動與產品進行關聯,快速對應出與自家產品相關的弱點、資安新聞、資安事件等資訊,讓相關團隊隨時掌握產品的資安風險程度,並能立即移除或修補已知的嚴重弱點。最後,更可透過主動電子郵件示警以及行動應用App,使資安管理人員能準確掌握弱點資訊與處理進度,確保每個事件都已被修正或改善。
 
SecFlow扮演了在DevSecOps自動化上的關鍵角色,除了省掉需要人工介入的團隊資訊交換、資安訊息整理,以及清查產品弱點與Open Source管理等耗時又耗力的工作,加上先進的資料搜集分析演算法,自動關聯過濾出準確且必須處理的資安弱點或事件,並透過即時示警機制,快速協助使用者處理與追蹤資安議題,確保資安情資能在每個階段中回饋給所有團隊。誰說安全與敏捷開發不易維持平衡?透過類似SecFlow的輔助可以做到讓DevSecOps的實施,能夠完全適應各個團隊,而不是造成更大的負擔!

【註解】
DevOps是一種重視軟體開發人員(Dev)和IT維運技術人員(Ops)之間溝通合作的文化或慣例。透過自動化「軟體交付」和「架構變更」的流程,使構建、測試、發布軟體能夠更加地快捷、頻繁和可靠。
 
分享文章:
 

a&s全球安防科技網於每周/月,分別提供訂戶有關AIoT安全、防火防災最新資訊,包括:技術趨勢、產業動態、產品訊息、解決方案、行業應用、網路安全…等,讓您一手掌握機先、處處無往不利。

  • 智慧安全焦點報(週)
  • 建築與居住空間焦點報(月)
  • 智慧運輸焦點報(月)
  • 智慧防火防災趨勢報(月)
立即前往