Jump to content

conjur-kubiscan-768x431.jpg

本文講的是如何使用Kubesploit 和KubiScan 提高雲本地安全性。

主流科技企業廣泛使用Kubernetes,它是一個可擴展、輕量級的開源容器編排平台。這個受歡迎的平台擁有不斷擴展的安全工具、支持和服務生態系統,使其成為管理容器分配和服務的首選平台。

但Kubernetes 容器還是存在多種安全風險,包括運行時威脅、漏洞、暴露和失敗的合規性審計。

這些不安全感促使CyberArk 開發了兩個開源工具:Kubesploit 和KubiScan。這些工具通過在模擬真實攻擊的同時執行深度安全操作,使Kubernetes 社區受益。它們使我們能夠測試我們的安全能力。我們無需等待攻擊發生,而是可以主動準備並體驗現實世界的漏洞利用將如何影響我們的系統,然後採取行動防止這些攻擊。

在深入研究這些工具的工作原理並查看一些示例之前,讓我們簡要探討每種解決方案如何幫助提高安全性並了解如何設置它們。

KubesploitKubesploit是一個功能強大的跨平台後滲透漏洞利用HTTP/2命令控制服務器和代理工具,該工具基於Golang開發,基於Merlin項目實現其功能,主要針對的是容器化環境的安全問題。

雖然有一些工具可以幫助緩解Kubernetes 安全問題,但大多數工具實際上並沒有執行全面掃描。看到這個差距,CyberArk 創建了Kubesploit。開發人員在Golang(Go 編程語言)中為容器化環境實施多平台工具Kubesploit。

Kubesploit 通過在集群上執行複雜的攻擊向量覆蓋來工作,這種模擬有助於我們了解我們對網絡中類似攻擊的彈性。

它的各種模塊檢查不同的漏洞。然後,它利用易受攻擊的kubelet 並掃描從Kubernetes 服務到Kubernetes 集群的端口。 Github 存儲庫包含有關Kubesploit 入門的詳細信息。

設置Kubesploit讓我們探索如何掃描Kubernetes 集群以查找已知的常見漏洞和暴露(CVE)。我們將使用K8sClusterSCVEScan 來執行此操作。首先,讓我們將代理加載到第一個終端的根目錄中。然後,在第二個終端中,我們使用./server命令啟動服務器。

接下來,我們運行use module linux/來加載我們想要使用的任何模塊。例如,clusterCVEScan 模塊利用runC 逃逸到主機。要使用該模塊,我們需要設置Kubernetes 集群地址,並運行集群以查看該集群的各種漏洞。

在每個CVE 的描述屬性中,我們可以閱讀有關掃描發現的集群風險的詳細消息。

如何使用Kubesploit讓我們回顧一下如何使用Kubesploit 檢測漏洞的示例。在我們開始之前,請確保你的系統運行與go.mod 文件(Go 1.14)中相同的Go 版本。其他版本可能會給你一個構建約束錯誤。

首先,我們加載代理url 地址。在本例中,你將使用Kubesploit 環境正在偵聽的URL,例如:

image.png

然後,我們使用命令./server 運行我們的Kubesploit 服務器。我們通過對Kubesploit 服務器環境執行代理列表來檢查代理連接是否已啟用。

要掃描URL 中的多個地址,我們使用PortScan 模塊,如下所示:

1.png

現在,讓我們通過允許創建豁免容器來最小化我們的容器漏洞。我們使用ContainerBreakoutMounting 模塊:

2.png

如果操作完成,我們會收到一條消息說我們成功了。

開始使用KubiScan除了Kubesploit, CyberArk還創建了KubiScan。 Kubiscan 是另一個開源工具,可幫助集群管理員診斷可能危及集群的權限洩露。它在Kubernetes 的基於角色的訪問控制(RBAC) 授權模型中掃描Kubernetes 集群以查找有風險的權限。

KubiScan 發現易受攻擊的角色和角色綁定,並識別它們的集群、pod 和主題。這些信息使管理人員能夠在廣泛的環境中檢測被破壞的許可,攻擊者可能會迅速破壞這些許可。

設置KubiScan現在我們對KubiScan 有了更多的了解,我們將在我們的主節點上進行設置。我們使用命令kubectl get pods 來查找可用的pod。然後,我們使用kubiscan -rp 搜索具有易受攻擊帳戶的pod。

獲得特權賬戶後,我們需要確認它是否出現在風險主題列表中。我們通過運行命令kubiscan -rs 來做到這一點。

然後,我們需要找出該主題有多少規則使其能夠洩漏秘密。為此,我們運行命令:

image.png

為了獲取特定集群的令牌,我們使用

image.png

列出其角色綁定。系統管理員可以使用該令牌檢查集群是否可以在默認命名空間中列出機密。當我們執行該命令時,它會顯示帶有各種屬性的JSON 格式的輸出,以顯示漏洞可能在哪裡。

如何使用KubiScan讓我們研究一個使用KubiScan來發現用戶環境中的漏洞的實際示例。首先,我們在環境中使用kubectl get pods 檢查我們的pod 的狀態。我們應該會看到與下麵類似的輸出,具體取決於我們擁有的pod 數量:

3.png

我們使用命令kubiscan -rp 來獲取易受攻擊的主題:

4.png

然後,使用kubiscan -rs來驗證該賬戶是否存在於風險對象列表中:

5.png

為了搜索特定服務帳戶中的所有規則,我們使用kubiscan-aars “risky-sa” -ns “default” -k “ServiceAccount”。

我們還可以使用-aarbs “risky-sa” -ns “default” -k “ServiceAccount”列出服務帳戶角色綁定。

由於Kubernetes 集群是分佈式和動態的,因此它們容易受到攻擊並且難以保護。為了保護我們的Kubernetes 環境,DevSecOps 需要在整個應用程序生命週期中使用各種安全工具和技術,從構建到部署和運行時。

因為我們需要意識到我們的容器安全性,CyberArk 的網絡安全團隊一直在研究新的工具來填補Kubernetes 的安全漏洞。 Kubesploit 和KubiScan 等解決方案可幫助Kubernetes 社區識別和遏制阻礙我們運行的各種漏洞。

為了保證Kubernetes 的安全,開發人員需要一個能夠牢固地保護和驗證容器並管理秘密的平台。我們需要確保我們只允許訪問特定的應用程序、工具和信息。

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...