當前位置:
首頁 > 最新 > DevOps 安全威脅,你值得關注

DevOps 安全威脅,你值得關注

前言

隨著開源軟體被大量引用,線上運行的代碼中超過80%的部分是開源代碼。軟體安全的重點已經從內部代碼轉移到所引用開源部分上。 DevOps 安全需要關注內部研發團隊的自研代碼以及外部第三方開源軟體的安全,對於內部代碼,所使用的依賴必須清楚,如果底層依賴有風險,還必須快速反向分析哪些其他軟體受到同樣的威脅;目前 DevOps 安全團隊和持續交付團隊往往獨立運行,信息交互頻繁且效率低導致質量難以保證,安全問題整改的計劃外工作量大,成為 DevOps 安全工作常見的痛點。

開源安全威脅日趨嚴重

隨著互聯網化的趨勢日趨普遍,各大中小型企業都會基於開源軟體構建各種業務系統,可以說開源已經成為了目前企業內部構建業務系統的重要組成部分。開源軟體縮短了軟體交付周期的優勢確實很明顯,但是開源軟體的安全性也給企業帶來很多麻煩,尤其是涉及關鍵業務的一些系統。引入開源組件的途徑多種多樣,有可能是開源的源碼,也有可能是開源的第三方類庫,或者從互聯網上複製下來的代碼段。

開源軟體進入企業內部之後,還可能被其他團隊繼續使用,在經歷了長時間的開發周期後,某個第三方開源軟體被引用的情況已經變得無從追蹤,一旦某個開源軟體出現問題,影響範圍無從確定,更談不上風險控制。

DevOps 安全問題的維度

DevOps 的落地使得軟體交付的頻率大幅度提升,這就進一步使得 DevOps 安全問題變得更加需要重視。那麼,有哪些層面的安全問題需要考慮呢?

自研代碼的安全

內部研發的代碼,建議通過單元測試、靜態掃描等基本手段進行安全合規性檢查。自研代碼發現問題可以給研發人員指定相應的任務去解決,因為這些代碼都是自主可控,而開源代碼缺陷基本不可能去修復,這是應對自研代碼安全威脅的優勢。自研代碼經過掃描之後,可以知道目前的技術債務(Technical Debt)情況,防止技術債務不停增長。

技術債務類似於金融債務,它也會產生利息,這裡的利息其實就是指由於魯莽的設計決策導致需要在未來的開發中付出更多努力的後果。我們可以選擇繼續支付利息,也可以通過重構之前魯莽的設計來將本金一次付清。雖然一次性付清本金需要代價,但卻可以降低未來的利息。

開源的安全問題

傳統開源安全威脅解決手段通常是成立開源技術專家組(委員會),列出目前已知的、企業必須重視的安全威脅列表,在上線前由安全組對交付件進行掃描,發現問題立即進行整改,然後再次反覆此流程直到符合上線安全規範。從目前市場調查的情況來看,開源問題所帶來的威脅遍布各行各業,且比例呈上升趨勢。

從流程上來看,計劃外工作量很大,並且在拔除一個安全威脅後,不清楚目前發現的這些威脅還是否影響到其他軟體。造成這種的原因是交付件的依賴不清晰,導致不能反向排查安全問題的威脅。目前的一些工具(如Eclipse)提供了一些單個項目的依賴視圖,但對於企業內部跨團隊的分析依然顯得能力不足。

解決策略

自研代碼檢查

目前比較流行的 SonarQube 提供了多種語言的基於靜態規則的掃描,對用戶的行為習慣侵入性極小,支持單元測試結果、代碼重複率、技術債務等一系列非常有用的指標。很多企業在持續交付流水線中集成了 SonarQube 靜態代碼掃描的步驟。

在主流的二進位倉庫 Artifactory 上,可以通過元數據將 Sonar 掃描的結果通過 RestApi 的方式記錄在交付件上,這樣在任何一個 DevOps 生命周期,都可以很清晰地知道這個交付件的靜態質量,從而發布人員可以依據這些信息制訂合理的質量關卡,方便運維人員篩選合適上線的交付件。

第三方開源安全檢查

為避免在上線前緊急排查問題的窘境,必須將安全問題前置,即在構建甚至開發階段發現問題並立即解決問題,再做構建或者測試。目前企業內部都是構建各自的私服,各個私服對於安全管控的能力參差不齊,必須有一種支持各種語言的第三方安全掃描的平台。

JFrog 公司提供的 Artifactory + Xray 就是很好的一個組合。Artifactory 提供了全語言的第三方依賴管理,Xray 提供安全掃描,針對引入的任何第三方開源組件進行遞歸掃描,並提供可視化視圖。

從上圖中可以發現對於安全威脅給出了級別(高危、中級、低級),並且會由一些推薦的建議,方便及時作出調整。從這個層面解決了某一個軟體引入的開源組件不清晰的問題,比 Eclipse 等工具的單一視圖豐富很多。

對於開發工具,也可以有本地支持,比如在本地構建時從中央倉庫獲取依賴,並且觸發第三方開源漏洞掃描的過程,立即反饋結果到開發者本地,開發者根據反饋決定是否提交代碼到版本控制系統(或者內置策略阻止代碼提交)。

對於反向排查安全威脅影響範圍,Xray 也有很好的支持,能夠快速反向查詢有哪些其他團隊收到了該問題的威脅,這樣可以及時通知相關團隊進行修正並且不會有任何遺漏。值得一提的是,Xray 還支持用戶自定義的 Issue,比如舊版本、性能問題等等,也可以據此快速反向排查影響範圍。

統一的流程

關於 DevOps 安全,從流程角度來看,一個重要的痛點是流程割裂,即持續交付團隊和安全團隊難以協作實現真正的24小時持續運作的自動化流程。這個過程中涉及到很多規範的溝通協商,這些溝通依賴於人工來實現,距離如下圖所示的理想流程相去甚遠。

目前 Xray 支持統一的理想流程,幫助企業實現24小時動態監測所有外部依賴是否滿足合規性。具體做法通常是在 Jenkins 上集成 Artifactory,然後調用Artifactory 的 XrayScan 進行安全掃描。

總結

安全是一個永久的話題,我們只有日趨接近,無法真正到達。DevOps 的逐漸落地使得軟體交付頻率達到了前所未有的速度,對於 DevOps 過程中的安全管控提出了更嚴峻的挑戰,只有自動化的統一流程結合全面深入的安全掃描才能夠實現對任何一個安全細節都兼顧到,並且可以快速了解安全問題的影響範圍。在這方面 Artifactory + Xray 方案顯然已經走在了前面,除了自身的掃描能力,也自持 BlackDuck、aqua、whitesource、snyk 等一系列主流安全漏洞掃描工具,值得大家關注與試用。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 JFrog傑蛙DevOps 的精彩文章:

開源軟體漏洞頻發,運維如何避免背鍋?

TAG:JFrog傑蛙DevOps |