摘要:做好安全釋出我們重點圍繞事件響應計劃、安全性檢查、軟體簽名證書三個方面來看一下。
本文分享自華為雲社群《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