使用開源的 Kubernetes 漏洞掃描和測試

https://new.qq.com/rain/a/20220316A04JPL00

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

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

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

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

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

Kubesploit

Kubesploit是一個功能強大的跨平臺後滲透漏洞利用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,例如:

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

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

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

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

開始使用 KubiScan

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

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

設置 KubiScan

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

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

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

爲了獲取特定集羣的令牌,我們使用

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

如何使用 KubiScan

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

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

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

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

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

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

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

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

參考及來源:https://www.conjur.org/blog/tutorial-kubernetes-vulnerability-scanning-testing-with-open-source/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章