你的K8s 執行時環境安全嗎? KubeXray幫你保護K8s環境及應用
引言
大多數安全措施都是為了防止 漏洞 逃跑而設計的 , 在此之前,我們也分享了一些第三方安全掃描的文章(請移步到歷史文章中檢視), 儘早識別應用程式的風險意味著您可以防止或限制它部署到您的系統中 (安全左移策略) 。有了這些知識 或工具 ,容器中任何可能造成損壞的 漏洞 都可以安全地留在由您的 安全 策略圍欄後面。
但是,當這些 漏洞 已經逃跑時, 我們 能做什麼呢? 如何確保已經在Kubernetes pods中執行的容器 和 應用程式符合您當前的風險和策略?
背景(執行時安全管控)
由於大多數應用程式嚴重依賴於包管理器和開源儲存庫,因此它們很容易受到來自這些源的惡意或不安全程式碼的攻擊。 想象我們交付的軟體 Application 是一張餅,我們自己開發的程式碼僅佔其中很小一部分,見下圖:
最近,當Javascript社群得知npm module 中流行的事件流包被一個針對比特幣錢包平臺的惡意包更新時,他們非常憤怒。在被發現和報導之前的三個月裡,這個包被下載了近800萬次。
雖然來自社群包管理器的此類事件並不常見,但並不少見。一年前,npm發現並刪除了39個惡意包。 所以很多包在我們安全策略發現之前可能已經進入到了生產環境
解決方案
在介紹如何對執行時進行安全控制之前,先回顧一下常見漏洞掃描工具的原理:這裡以JFrog Xray 為例:
通用二進位制分析工具和策略引擎JFrog Xray ,會實時 掃描Artifactory 製品 庫中的 容器映象,war包,以及Npm module 等二進位制製品, 執行深度遞迴掃描, 逐層檢 查應用程式的所有元件 ,並與多個漏洞資料來源(已知漏洞資料庫)進行一一對比,從而判斷 是否存在已知漏洞 或License許可證策略問題 , 同時 為 被掃描檔案(Docker 映象,Npm Module)新增相關 後設資料。
Xray 漏洞掃描平臺分析
DevOps管理員可以根據 Xray 掃描 平臺 所發現的風險級別,配置策略來限制或阻止Kubernetes部署這些 Docker 映象 。 但是可以發現僅僅使用Xray,只能將漏洞限制在執行時之前。
為了解決這個問題,JFrog提供了KubeXray 元件 ,這是一個開源軟體專案,它將通用二進位制 安全 分析工具Xray的安全性擴充套件到Kubernetes pods 執行時 。
使用Xray掃描容器映像生成的後設資料,KubeXray可以對已經部署的內容 (容器映象等)進行安全 策略 管控
KubeXray監控 所有 活動Kubernetes Pod資源, 以幫助您:
1. 捕捉當前在所有Kubernetes吊艙中執行的應用程式中最新報告的風險或漏洞
2. 對正在執行的應用程式強制執行當前策略,即使您已經更改了這些策略
3. 對未被Xray掃描且風險未知的正在執行的應用程式執行策略
透過這種方式,KubeXray可以幫助您將
逃逸
的
漏洞進行
安全的
控制
。
KubeXray 是什麼?
在Kubernetes將容器 映象 部署到pods之前,Xray檢測風險並將策略應用於容器 映象 ,KubeXray檢測風險並將策略應用於已經執行或即將執行的Kubernetes pod。
KubeXray監視來自Kubernetes伺服器和Xray的 安全 事件,併為Kubernetes執行的所有pods執行當前的安全策略。KubeXray監聽這些事件流:
1. 部署新服務 (Pod)
2. 升級現有服務
3. 新的許可證策略,例如 某個License 許可證型別不允許在執行時使用
4. 一個新的安全問題
當檢測到問題時,KubeXray會根據您設定的當前策略進行響應。您可以選擇以下可能的操作之一:
Ø Scaledown為 直到 0。所需的服務狀態更新為0,使其在仍然可以查詢時處於非活動狀態
Ø 刪除 漏洞 容器 映象 的相應Kubernetes資源
Ø 忽略它,讓pod繼續執行
KubeXray還了解不同Kubernetes資源(狀態集和部署)之間的差異,並允許對每種資源應用不同的策略操作。
雖然KubeXray主要是將Xray的深度掃描安全性擴充套件到執行Kubernetes pods,但它也為未被Xray掃描的pods提供了一些策略控制,例如從儲存庫(而不是Artifactory)部署的容器映像。對於沒有經過x射線掃描的pod,因此其風險是未知的,您可以指定要採取的單獨策略操作。
KubeXray 工作原理
KubeXray 監聽 Kubernetes叢集中執行的每個pod,並使用Xray後設資料(何時可用以及是否可用)來確定 安全策略控制。
1. 對於Kubernetes上的每個pod(執行或計劃執行),KubeXray檢查Xray後設資料中的漏洞或 License許可證策略 問題。如果發現任何風險,KubeXray將採取相應的 控制操作 。
2. 如果Kubernetes pod中的任何容器 映象 (正在執行或計劃執行)沒有被Xray識別——因為它沒有被掃描,或者因為它沒有從Artifactory 下載— —那麼KubeXray將 以未知風險來 應用當前的策略集。
每當在Xray上新增或更新新策略,或報告新漏洞時,KubeXray都會檢測到此更改,並檢查現有pod是否存在問題。如果發現任何風險,KubeXray將 立即根據當前安全策略進行安全控制 。
如下圖所式 : 顯示對 漏洞 pod的每個策略操作 過程 (忽略/刪除/ 縮容 )。
上面提到: KubeXray根據發現的風險和DevOps管理員配置的策略應用策略操作。
策略操作是在一個 values.yaml 檔案中 設定。您可以為以下條件配置策略操作( 縮容、 刪除或忽略):
Ø 未掃描——未被 Xray 掃描deployments , 您還可以指定 命名 空間的白名單;使用這些 命名 空間的deployments 將不應用 安全策 略操作。
Ø 安全性——由於漏洞而存在安全問題的deployments 。
Ø License 許可證——許可證不符合策略的deployments 。
上 述每 種 條件都為 D eployments 和StatefulSets提供了單獨的策略操作設定。
KubeXray安裝使用
K ubeXray工具是一個開源軟體專案,可以在Github儲存庫中找到並安裝它 ( ) 。
要使用KubeXray,您必須具備:
Ø 一 個 已獲授權及正在 執行Artifactory 服務
Ø 一 個 已獲授權及正在 執行Xray服務
Ø 一個 正在執行的Kubernetes叢集
Ø 客戶端 Kubectl
Ø Helm客戶端以及Helm服務端配置(Tiler)
快速安裝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體系中整合程式碼質量掃描,提供最佳實踐及平臺建設思路,課程中也會提供實操演示環節。
本期話題
1. SonarQube介紹
2. SonarQube使用詳解
3. SonarQube最佳實踐
4. 運維人員如何評估業務程式碼質量
課堂活動
本期課堂講師會在結束前進行抽獎活動
第一名:小愛藍芽耳機
第二名:JFrog新版T恤
第三名:JFrog新版T恤
報名連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69954434/viewspace-2675311/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 森林-環境保護
- 物聯網在環境保護行業中的應用行業
- k8s環境搭建K8S
- 天天用的開發環境,你真的瞭解嗎?開發環境
- 天天用的開發環境 你真的瞭解嗎?開發環境
- 你瞭解你和程式碼的生存環境嗎
- 執行環境及作用域
- 【譯】JS執行時環境JS
- 你的應用安全嗎? ——用Xray和Synk保駕護航
- k8s線上測試環境K8S
- k8s——搭建叢集環境K8S
- 你真的會搭建測試環境嗎?
- 使用 ARChon 執行時環境在 Ubuntu 上執行 Android 應用UbuntuAndroid
- JavaScript執行環境及作用域JavaScript
- Linux 應用程式處理當前執行環境的環境變數(轉)Linux變數
- 在非k8s 環境下 的應用 使用 Dapr Sidekick for .NETK8SIDE
- k8s 初始化環境(1)K8S
- 使用 KubeEye 為你的 K8s 叢集安全保駕護航K8S
- 執行時應用自我保護(RASP):應用安全的自我修養
- 使用minikube快速搭建k8s環境K8S
- k8s——叢集環境問題合集K8S
- 用Docker打包Python執行環境DockerPython
- Java執行環境配置Java
- 配置你的SQL Developer工作環境SQLDeveloper
- K8S環境快速部署Kafka(K8S外部可訪問)K8SKafka
- GPU 環境搭建指南:如何在裸機、Docker、K8s 等環境中使用 GPUGPUDockerK8S
- K8S環境的Jenkin效能問題處理K8S
- 如何用JavaScript判斷前端應用執行環境(移動平臺還是桌面環境)JavaScript前端
- 1分鐘將你的jenkins構建環境遷移到K8S叢集上JenkinsK8S
- java微服務 k8s生產環境搭建Java微服務K8S
- 大資料執行環境的執行大資料
- 5款Linux桌面環境,你都瞭解嗎?Linux
- 結合 Shell 對 Koa 應用執行環境檢查
- 虛擬化環境下的資料保護方案
- JavaScript執行環境與執行棧JavaScript
- Linux環境的PHP執行LinuxPHP
- 淺談公司java開發執行環境搭建(ubuntu環境)JavaUbuntu
- linux登入bash shell環境執行環境變數Linux變數