如何在軟件研發階段落地安全實踐
摘要:做好安全發佈我們重點圍繞事件響應計劃、安全性檢查、軟件簽名證書三個方面來看一下。
本文分享自華為雲社區《DevSecOps軟件研發安全實踐——發佈篇》,作者: 華為雲PaaS小助手。
前言
說到發佈,就會想到部署,本文中討論的部署發佈是基於DevOps的背景。在《DevOps實踐指南》中對這兩個詞進行了明確的定義,部署指在特定環境中安裝指定版本的軟件,發佈是把一個或者一組特性提供給所有客戶或者一部分客戶。一個是面向環境的技術操作,一個是面向用戶的業務決策。由此可見,部署是發佈的前提,要通過持續部署,來支持業務的按需發佈。
軟件發佈後,運行階段錯誤而導致的軟件安全問題在所有安全問題中佔有較大比重。發佈作為軟件上線前的最後一道安全防線,有着舉足輕重的地位。
如何做好安全發佈
做好安全發佈我們重點圍繞事件響應計劃、安全性檢查、軟件簽名證書三個方面來看一下。
事件響應計劃
在軟件的發佈階段,企業需要建立一整套的安全發佈標準,有相應的發佈安全流程和規範,安全事件響應計劃和發佈決策,確保發佈活動能夠安全有序的開展。
事件響應計劃,包括但不限於標準安全事件響應流程、應急安全事件響應流程,安全負責人與聯繫方式等。即使在發佈時不包含任何已知漏洞的產品,也可能在日後面臨新出現的威脅。需要注意的是,如果產品中包含第三方的代碼,也需要留下第三方的聯繫方式並加入事件響應計劃,以便在發生問題時能夠找到對應的人。
完善的安全事件響應計劃,在軟件發佈後對軟件供應鏈安全事件、軟件安全漏洞披露事件能夠進行快速的安全響應,控制和消除安全事件所帶來的安全威脅和不良影響,進而追溯和解決造成安全事件的根源所在。
安全性檢查
發佈前,需要使用安全分析工具來進行全面的漏洞掃描,根據漏洞掃描結果執行對應的漏洞修復計劃。漏洞掃描可以從主機、鏡像、Web、終端應用、網絡和數據庫多個維度進行掃描,保證全場景覆蓋。
安全性檢查包括但不限於環境安全部署驗證、安全配置基線檢測、鏡像安全掃描、病毒掃描、主機漏洞掃描等活動,有條件可以對於前期的所有工作進行二次審查,根據檢查結果進行最終安全評估,將評估結果作為發佈的前置條件。
發佈階段解決的安全問題都是在現實生產環境中出現的安全問題,所以要徹底檢查生產環境和開發環境的配置差異。研究顯示,現有應用系統中由於安全配置錯誤導致的安全漏洞已經成為系統漏洞的主要來源之一。配置管理工具是確保發佈階段安全性的關鍵因素,通過配置管理工具可以提供對基礎架構配置的可見性,繼而就可以對系統配置進行審計和檢查,保護運行時的環境基礎架構。業界常用配置管理工具有Chef、Ansible、Puppet、Terraform和 SaltStack。
發佈過程中,在安全檢查節點進行安全檢查,有對應的告警機制,發佈中遇到問題風險可以執行安全回退和備份機制,遵循安全事件響應計劃。同時建議採用低風險的發佈策略,如金絲雀發佈和藍綠發佈等方式。
軟件簽名和證書
為了防止軟件包在傳遞過程或發佈後被惡意篡改,企業會通過給軟件代碼加上數字簽名,來保證代碼的真實性和完整性,真實性是讓用戶確信此軟件的來源,完整性是確保軟件發佈後沒有被篡改。
代碼簽名證書通常由受信任的第三方機構 CA 頒發,和無簽名代碼相比,具有證書的代碼有更高的可靠性。軟件開發商可以使用代碼簽名證書來簽名內核代碼 .sys文件、ActiveX文件、 .exe 、 和dll 文件以及智能手機開發的移動應用軟件。數字簽名保護用戶不會被病毒、惡意代碼和間諜軟件所侵害,也保護了軟件開發者的利益,讓軟件能在互聯網上快速安全地發佈。
軟件發佈後,要對遇到的各種問題和文檔進行存檔,為緊急響應和產品升級提供幫助。
華為雲安全發佈實踐
華為雲的多場景高精度漏洞掃描能力,是軟件上線前走好最後一公里的有力保障。
- 全場景漏洞覆蓋:覆蓋Web、主機、鏡像、二進制、終端應用的全場景漏洞掃描能力,支持華為、OWASP等業界優秀實踐,支持等保0等標準。
- 專業的修復建議:提供典型Web漏洞精準檢測,在CVE漏洞評估方面更貼近真實威脅;在APK開源組件掃描和信息泄露檢測方面,具備更精準的檢測能力,因此可以提供更專業的修復建議。
- 可升級的漏洞檢測能力:聚焦最新安全漏洞,動態擴展掃描能力;可靈活集成第三方漏洞掃描引擎,統一報告展示,支持漏洞去重,也可被集成至第三方持續集成/持續發佈流水線中。
同時,按照華為雲的發佈部署規定,在開發、部署、上線過程中,必須完成自檢,並承諾已滿足上線的可運營要求。對於中低風險的雲服務,自檢通過後即可上線。自檢結果也同步提交審計。自檢內容包括但不限於完整性校驗、工程基線評審、服務自檢、承諾安全可信、容器和基礎設施安全等,同時會針對安全問題進行回溯分析,對安全問題整改,保證發佈產品的安全可信。對高風險的雲服務,通過更多的投入、在短時間內執行更嚴格的上線檢測和審批,確保其及時並安全上線,保障租戶利益。
寫在最後
完成安全發佈並不是最後一步,一旦應用部署在線上生產環境中並穩定下來後,就需要啟動安全監控和運維。隨着越來越多的開發團隊不斷改進自己的流程並採用新工具,安全問題變得越來越重要,需要企業認真對待。DevSecOps 是一個循環過程,應持續迭代並應用於每次新代碼部署。漏洞利用和攻擊者在不斷進化,軟件團隊的安全技能發展也至關重要。
參考附錄
1.《華為雲安全白皮書》.華為技術有限公司.
2.《研發運營安全白皮書》. 雲計算開源產業聯盟.
3.《DevOps實踐指南》.Gene Kim,Jez Humble,Patrick Debois,John Willis.人民郵電出版社.
4. 每天掃描超300億行代碼,DevSecOps在華為的落地與實踐_DevOps