大多數安全措施都是爲了防止漏洞逃跑而設計的, 在此以前,咱們也分享了一些第三方安全掃描的文章(請移步到歷史文章中查看),儘早識別應用程序的風險意味着您能夠防止或限制它部署到您的系統中(安全左移策略)。有了這些知識或工具,容器中任何可能形成損壞的漏洞均可以安全地留在由您的安全策略圍欄後面。java
可是,當這些漏洞已經逃跑時,咱們能作什麼呢? 如何確保已經在Kubernetes pods中運行的容器和應用程序符合您當前的風險和策略?git
因爲大多數應用程序嚴重依賴於包管理器和開源存儲庫,所以它們很容易受到來自這些源的惡意或不安全代碼的***。想象咱們交付的軟件 Application 是一張餅,咱們本身開發的代碼僅佔其中很小一部分,見下圖:github
最近,當Javascript社區得知npm module中流行的事件流包被一個針對比特幣錢包平臺的惡意包更新時,他們很是憤怒。在被發現和報道以前的三個月裏,這個包被下載了近800萬次。
雖然來自社區包管理器的此類事件並不常見,但並很多見。一年前,npm發現並刪除了39個惡意包。因此不少包在咱們安全策略發現以前可能已經進入到了生產環境數據庫
在介紹如何對運行時進行安全控制以前,先回顧一下常見漏洞掃描工具的原理:這裏以JFrog Xray 爲例:
通用二進制分析工具和策略引擎JFrog Xray,會實時掃描Artifactory製品庫中的容器鏡像,war包,以及Npm module 等二進制製品,執行深度遞歸掃描,逐層檢查應用程序的全部組件,並與多個漏洞數據源(已知漏洞數據庫)進行一一對比,從而判斷是否存在已知漏洞 或License許可證策略問題,同時爲被掃描文件(Docker 鏡像,Npm Module)添加相關元數據。npm
DevOps管理員能夠根據Xray掃描平臺所發現的風險級別,配置策略來限制或阻止Kubernetes部署這些Docker 鏡像。可是能夠發現僅僅使用Xray,只能將漏洞限制在運行時以前。安全
爲了解決這個問題,JFrog提供了KubeXray 組件,這是一個開源軟件項目,它將通用二進制安全分析工具Xray的安全性擴展到Kubernetes pods運行時。
使用Xray掃描容器映像生成的元數據,KubeXray能夠對已經部署的內容(容器鏡像等)進行安全策略管控
KubeXray監控全部活動Kubernetes Pod資源,以幫助您:服務器
經過這種方式,KubeXray能夠幫助您將逃逸的漏洞進行安全的控制。微信
在Kubernetes將容器鏡像部署到pods以前,Xray檢測風險並將策略應用於容器鏡像,KubeXray檢測風險並將策略應用於已經運行或即將運行的Kubernetes pod。
KubeXray監視來自Kubernetes服務器和Xray的安全事件,併爲Kubernetes運行的全部pods執行當前的安全策略。KubeXray監聽這些事件流:運維
當檢測到問題時,KubeXray會根據您設置的當前策略進行響應。您能夠選擇如下可能的操做之一:ide
KubeXray還了解不一樣Kubernetes資源(狀態集和部署)之間的差別,並容許對每種資源應用不一樣的策略操做。
雖然KubeXray主要是將Xray的深度掃描安全性擴展到運行Kubernetes pods,但它也爲未被Xray掃描的pods提供了一些策略控制,例如從存儲庫(而不是Artifactory)部署的容器映像。對於沒有通過x射線掃描的pod,所以其風險是未知的,您能夠指定要採起的單獨策略操做。
KubeXray監聽Kubernetes集羣中運行的每一個pod,並使用Xray元數據(什麼時候可用以及是否可用)來肯定安全策略控制。
對於Kubernetes上的每一個pod(運行或計劃運行),KubeXray檢查Xray元數據中的漏洞或License許可證策略問題。若是發現任何風險,KubeXray將採起相應的控制操做。
每當在Xray上添加或更新新策略,或報告新漏洞時,KubeXray都會檢測到此更改,並檢查現有pod是否存在問題。若是發現任何風險,KubeXray將當即根據當前安全策略進行安全控制。
以下圖所式: 顯示對漏洞pod的每一個策略操做過程(忽略/刪除/縮容)。
上面提到:KubeXray根據發現的風險和DevOps管理員配置的策略應用策略操做。
策略操做是在一個 values.yaml 文件中設置。您能夠爲如下條件配置策略操做(縮容、刪除或忽略):
上述每種條件都爲Deployments 和StatefulSets提供了單獨的策略操做設置。
KubeXray工具是一個開源軟件項目,能夠在Github存儲庫中找到並安裝它(https://github.com/jfrog/kubexray)。
要使用KubeXray,您必須具有:
JFrog Helm倉庫中提供的一個Helm Chart,能夠快速安裝或升級JFrog KubeXray到正在運行的Kubernetes集羣。要自定義KubeXray的配置,請參閱Github Readme文檔。
安裝KubeXray後,能夠在values.yaml中設置前文提到的策略操做。讓JFrog KubeXray監視您的Kubernetes pod,控制Kubernetes 集羣運行時存在的安全漏洞或License 許可證問題。
常見的第三方漏洞安全監管工具通常只在控制運行時以前進行安全控制,在運行時未能作到相應的監管控制,KubeXray能夠幫助咱們快速對運行時資源進行安全管控,而且其做爲一個開源軟件項目,咱們期待着繼續加強KubeXray以得到更健壯的操做和特性,並歡迎開發人員在社區提出改進意見和提交代碼。
更多精彩內容請關注公衆號:JFrog傑蛙DevOps
也能夠添加官方微信號:JFrogjiewachina
更多技術分享能夠關注2月13日在線課堂:《容器持續交付流水線最佳實踐》
課程介紹
做爲運維、工程效能、sre
你是否對開發人員代碼質量良莠不齊而感到憤恨?
你是否對開發人員使用的不一樣開發語言而眼花繚亂?
你是否對不一樣技術棧的質量度量標準無從下手?
你是否曾經由於開發一句「環境問題,和代碼無關」而莫名背鍋?
聽完這節課,教你如何度量開發人員的代碼質量
課程內容
SonarQube 是一代碼質量管理的工具,它主要用於度量源代碼的質量。能夠支持多種開發語言,好比 java,C, C#, go,C++, Python, Groovy 等。幫助你發現代碼的漏洞,Bug,壞味道以及技術債務等信息。
本節課會基於SonarQube,講解運維、工程效能、Sre團隊如何自動化度量開發人員代碼質量,如何在DevOps體系中集成代碼質量掃描,提供最佳實踐及平臺建設思路,課程中也會提供實操演示環節。
本期話題
SonarQube介紹
SonarQube使用詳解
SonarQube最佳實踐
課堂活動
本期課堂講師會在結束前進行抽獎活動
第一名:小愛藍牙耳機
第二名:JFrog新版T恤
第三名:JFrog新版T恤