溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎樣用KubeXray保護(hù)K8s環(huán)境及應(yīng)用

發(fā)布時(shí)間:2021-11-26 14:50:21 來源:億速云 閱讀:175 作者:柒染 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)怎樣用KubeXray保護(hù)K8s環(huán)境及應(yīng)用,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

引言

大多數(shù)安全措施都是為了防止漏洞逃跑而設(shè)計(jì)的, 在此之前,我們也分享了一些第三方安全掃描的文章(請移步到歷史文章中查看),盡早識(shí)別應(yīng)用程序的風(fēng)險(xiǎn)意味著您可以防止或限制它部署到您的系統(tǒng)中(安全左移策略)。有了這些知識(shí)或工具,容器中任何可能造成損壞的漏洞都可以安全地留在由您的安全策略圍欄后面。

但是,當(dāng)這些漏洞已經(jīng)逃跑時(shí),我們能做什么呢? 如何確保已經(jīng)在Kubernetes pods中運(yùn)行的容器和應(yīng)用程序符合您當(dāng)前的風(fēng)險(xiǎn)和策略?

背景(運(yùn)行時(shí)安全管控)

由于大多數(shù)應(yīng)用程序嚴(yán)重依賴于包管理器和開源存儲(chǔ)庫,因此它們很容易受到來自這些源的惡意或不安全代碼的攻擊。想象我們交付的軟件 Application 是一張餅,我們自己開發(fā)的代碼僅占其中很小一部分,見下圖:

怎樣用KubeXray保護(hù)K8s環(huán)境及應(yīng)用

最近,當(dāng)Javascript社區(qū)得知npm module中流行的事件流包被一個(gè)針對比特幣錢包平臺(tái)的惡意包更新時(shí),他們非常憤怒。在被發(fā)現(xiàn)和報(bào)道之前的三個(gè)月里,這個(gè)包被下載了近800萬次。

雖然來自社區(qū)包管理器的此類事件并不常見,但并不少見。一年前,npm發(fā)現(xiàn)并刪除了39個(gè)惡意包。所以很多包在我們安全策略發(fā)現(xiàn)之前可能已經(jīng)進(jìn)入到了生產(chǎn)環(huán)境

解決方案

在介紹如何對運(yùn)行時(shí)進(jìn)行安全控制之前,先回顧一下常見漏洞掃描工具的原理:這里以JFrog  Xray 為例:

通用二進(jìn)制分析工具和策略引擎JFrog Xray,會(huì)實(shí)時(shí)掃描Artifactory制品庫中的容器鏡像,war包,以及Npm module 等二進(jìn)制制品,執(zhí)行深度遞歸掃描,逐層檢查應(yīng)用程序的所有組件,并與多個(gè)漏洞數(shù)據(jù)源(已知漏洞數(shù)據(jù)庫)進(jìn)行一一對比,從而判斷是否存在已知漏洞 或License許可證策略問題,同時(shí)為被掃描文件(Docker 鏡像,Npm Module)添加相關(guān)元數(shù)據(jù)。

怎樣用KubeXray保護(hù)K8s環(huán)境及應(yīng)用

Xray 漏洞掃描平臺(tái)分析

DevOps管理員可以根據(jù)Xray掃描平臺(tái)所發(fā)現(xiàn)的風(fēng)險(xiǎn)級(jí)別,配置策略來限制或阻止Kubernetes部署這些Docker 鏡像。但是可以發(fā)現(xiàn)僅僅使用Xray,只能將漏洞限制在運(yùn)行時(shí)之前。

為了解決這個(gè)問題,JFrog提供了KubeXray 組件,這是一個(gè)開源軟件項(xiàng)目,它將通用二進(jìn)制安全分析工具Xray的安全性擴(kuò)展到Kubernetes pods運(yùn)行時(shí)。

使用Xray掃描容器映像生成的元數(shù)據(jù),KubeXray可以對已經(jīng)部署的內(nèi)容(容器鏡像等)進(jìn)行安全策略管控

KubeXray監(jiān)控所有活動(dòng)Kubernetes Pod資源,以幫助您:

1. 捕捉當(dāng)前在所有Kubernetes吊艙中運(yùn)行的應(yīng)用程序中最新報(bào)告的風(fēng)險(xiǎn)或漏洞

2. 對正在運(yùn)行的應(yīng)用程序強(qiáng)制執(zhí)行當(dāng)前策略,即使您已經(jīng)更改了這些策略

3. 對未被Xray掃描且風(fēng)險(xiǎn)未知的正在運(yùn)行的應(yīng)用程序執(zhí)行策略

通過這種方式,KubeXray可以幫助您將逃逸的漏洞進(jìn)行安全的控制。

KubeXray 是什么?

在Kubernetes將容器鏡像部署到pods之前,Xray檢測風(fēng)險(xiǎn)并將策略應(yīng)用于容器鏡像,KubeXray檢測風(fēng)險(xiǎn)并將策略應(yīng)用于已經(jīng)運(yùn)行或即將運(yùn)行的Kubernetes pod。

KubeXray監(jiān)視來自Kubernetes服務(wù)器和Xray的安全事件,并為Kubernetes運(yùn)行的所有pods執(zhí)行當(dāng)前的安全策略。KubeXray監(jiān)聽這些事件流:

1. 部署新服務(wù)(Pod)

2. 升級(jí)現(xiàn)有服務(wù)

3. 新的許可證策略,例如某個(gè)License許可證類型不允許在運(yùn)行時(shí)使用

4. 一個(gè)新的安全問題

當(dāng)檢測到問題時(shí),KubeXray會(huì)根據(jù)您設(shè)置的當(dāng)前策略進(jìn)行響應(yīng)。您可以選擇以下可能的操作之一:

? Scaledown為直到0。所需的服務(wù)狀態(tài)更新為0,使其在仍然可以查詢時(shí)處于非活動(dòng)狀態(tài)

? 刪除漏洞容器鏡像的相應(yīng)Kubernetes資源

? 忽略它,讓pod繼續(xù)運(yùn)行

KubeXray還了解不同Kubernetes資源(狀態(tài)集和部署)之間的差異,并允許對每種資源應(yīng)用不同的策略操作。

雖然KubeXray主要是將Xray的深度掃描安全性擴(kuò)展到運(yùn)行Kubernetes pods,但它也為未被Xray掃描的pods提供了一些策略控制,例如從存儲(chǔ)庫(而不是Artifactory)部署的容器映像。對于沒有經(jīng)過x射線掃描的pod,因此其風(fēng)險(xiǎn)是未知的,您可以指定要采取的單獨(dú)策略操作。

KubeXray 工作原理

KubeXray監(jiān)聽Kubernetes集群中運(yùn)行的每個(gè)pod,并使用Xray元數(shù)據(jù)(何時(shí)可用以及是否可用)來確定安全策略控制。

1. 對于Kubernetes上的每個(gè)pod(運(yùn)行或計(jì)劃運(yùn)行),KubeXray檢查Xray元數(shù)據(jù)中的漏洞或License許可證策略問題。如果發(fā)現(xiàn)任何風(fēng)險(xiǎn),KubeXray將采取相應(yīng)的控制操作。

2. 如果Kubernetes pod中的任何容器鏡像(正在運(yùn)行或計(jì)劃運(yùn)行)沒有被Xray識(shí)別——因?yàn)樗鼪]有被掃描,或者因?yàn)樗鼪]有從Artifactory 下載——那么KubeXray將以未知風(fēng)險(xiǎn)來應(yīng)用當(dāng)前的策略集。

每當(dāng)在Xray上添加或更新新策略,或報(bào)告新漏洞時(shí),KubeXray都會(huì)檢測到此更改,并檢查現(xiàn)有pod是否存在問題。如果發(fā)現(xiàn)任何風(fēng)險(xiǎn),KubeXray將立即根據(jù)當(dāng)前安全策略進(jìn)行安全控制。

如下圖所式: 顯示對漏洞pod的每個(gè)策略操作過程(忽略/刪除/縮容)。

怎樣用KubeXray保護(hù)K8s環(huán)境及應(yīng)用

怎樣用KubeXray保護(hù)K8s環(huán)境及應(yīng)用

怎樣用KubeXray保護(hù)K8s環(huán)境及應(yīng)用

上面提到:KubeXray根據(jù)發(fā)現(xiàn)的風(fēng)險(xiǎn)和DevOps管理員配置的策略應(yīng)用策略操作。

策略操作是在一個(gè) values.yaml 文件中設(shè)置。您可以為以下條件配置策略操作(縮容、刪除或忽略):

? 未掃描——未被 Xray 掃描deployments ,您還可以指定命名空間的白名單;使用這些命名空間的deployments 將不應(yīng)用安全策略操作。

? 安全性——由于漏洞而存在安全問題的deployments 。

? License許可證——許可證不符合策略的deployments 。

上述每種條件都為Deployments 和StatefulSets提供了單獨(dú)的策略操作設(shè)置。

KubeXray安裝使用

KubeXray工具是一個(gè)開源軟件項(xiàng)目,可以在Github存儲(chǔ)庫中找到并安裝它(https://github.com/jfrog/kubexray)。

要使用KubeXray,您必須具備:

? 一個(gè)已獲授權(quán)及正在運(yùn)行Artifactory 服務(wù)

? 一個(gè)已獲授權(quán)及正在運(yùn)行Xray服務(wù)

? 一個(gè) 正在運(yùn)行的Kubernetes集群

? 客戶端Kubectl

? Helm客戶端以及Helm服務(wù)端配置(Tiler) 

快速安裝KubeXray:

JFrog Helm倉庫中提供的一個(gè)Helm Chart,可以快速安裝或升級(jí)JFrog KubeXray到正在運(yùn)行的Kubernetes集群。要自定義KubeXray的配置,請參閱Github Readme文檔。

安裝KubeXray后,可以在values.yaml中設(shè)置前文提到的策略操作。讓JFrog KubeXray監(jiān)視您的Kubernetes pod,控制Kubernetes 集群運(yùn)行時(shí)存在的安全漏洞或License 許可證問題。

常見的第三方漏洞安全監(jiān)管工具一般只在控制運(yùn)行時(shí)之前進(jìn)行安全控制,在運(yùn)行時(shí)未能做到相應(yīng)的監(jiān)管控制,KubeXray可以幫助我們快速對運(yùn)行時(shí)資源進(jìn)行安全管控,并且其作為一個(gè)開源軟件項(xiàng)目,我們期待著繼續(xù)增強(qiáng)KubeXray以獲得更健壯的操作和特性,并歡迎開發(fā)人員在社區(qū)提出改進(jìn)意見和提交代碼。

上述就是小編為大家分享的怎樣用KubeXray保護(hù)K8s環(huán)境及應(yīng)用了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

k8s
AI