Hello folks,我是 Luga,接著上一篇博文,我們繼續(xù)來解析 Kubectl 安全插件相關(guān)內(nèi)容...
8、RBAC-tool Plugin
【資料圖】
基于角色的訪問控制 ( RBAC ) 是一種根據(jù)組織內(nèi)各個用戶的角色來調(diào)節(jié)對計算機或網(wǎng)絡(luò)資源的訪問的方法。RBAC 工具簡化了 RBAC 策略的查詢和創(chuàng)建。
我們可以使用以下 Krew 命令安裝 RBAC 工具,具體如下所示:
[leonli@Leon ~ % ]kubectl krew install rbac-tool
如果我們不熟悉如何將 RBAC 角色分配給不同的 Kubernetes Cluster 組件,那么,可視化命令將會幫助我們生成所有 RBAC 決策的有見地的圖表,具體如下:
[leonli@Leon ~ % ]kubectl rbac-tool viz --cluster-context nigel-douglas-cluster
上面的命令使用 kubeconfig 上下文“ nigel-douglas-cluster ”掃描 Kubernetes Cluster。這些圖表對于顯示分配給服務(wù)帳戶的權(quán)限前后的可視化很有幫助。
除了 RBAC 工具插件提供的“ viz ”之外,還有多個命令可供使用,最有用的是 " who-can " 命令。這表明哪些主體具有 RBAC 權(quán)限,可以對對象執(zhí)行由“VERB”(創(chuàng)建、讀取、更新或刪除)表示的操作。
通常,我們?nèi)粢榭茨承﹥?nèi)容,可以通過名稱“ important-secret ”讀取密鑰資源,那么,我們可以運行以下命令進行:
[leonli@Leon ~ % ]kubectl rbac-tool who-can get secret/important-secret
9、Cilium Plugin
Cilium 是一個網(wǎng)絡(luò)安全項目,由于其強大的 eBPF 數(shù)據(jù)平面而越來越受大眾歡迎。由于 Kubernetes 在設(shè)計時并未考慮任何特定的 CNI(網(wǎng)絡(luò))插件,因此嘗試通過 Kubectl 管理 Cilium 代理可能性不確定。于是,便有 Cilium 團隊發(fā)布 Cilium Kubectl 插件以支撐此項功能。
我們可以使用以下 Krew 命令安裝 Cilium 插件,具體如下所示:
[leonli@Leon ~ % ]kubectl krew install cilium
作為基本的第一步,我們可以通過以下命令對由 Cilium 網(wǎng)絡(luò)提供支持的單個 Node 進行連接檢查,具體如下:
[leonli@Leon ~ % ]kubectl cilium connectivity test --single-node
這不僅提供了操作的可見性,例如,如果 Cilium 無法與“ Hubble ”等核心組件通信,將會以特定的方式進行可觀測性顯示。
Hubble 為 Kubernetes 提供網(wǎng)絡(luò)、服務(wù)和安全可觀察性。能夠快速診斷連接錯誤,例如“連接被拒絕”,可以提高威脅的整體可見性,并提供維護法規(guī)遵從性所需的集中網(wǎng)絡(luò)事件視圖。如果想更深入地研究網(wǎng)絡(luò)策略,請查閱“如何防止對 Kubernetes 的拒絕服務(wù) (DoS) 攻擊”等相關(guān)文章。
10、Access-matrix Plugin
Access-matrix,可稱為“訪問矩陣”(通常稱為“Rakkess”)是一個 Kubectl 插件,可顯示服務(wù)器資源的訪問矩陣。
我們可以使用以下 Krew 命令安裝 Access-matrix 插件,具體如下所示:
[leonli@Leon ~ % ]kubectl krew install access-matrix
通常情況下,我們只需運行以下命令即可查看“默認”網(wǎng)絡(luò)命名空間中所有資源的創(chuàng)建、讀取、更新和刪除 (CRUD) 權(quán)限,具體如下:
[leonli@Leon ~ % ]kubectl rakkess –n default
某些角色僅適用于具有特定名稱的資源。要查看此類配置,請?zhí)峁┵Y源名稱作為附加參數(shù)。例如,顯示命名空間 sysdig-agent 中名為 sysdig-controller 的 ConfigMap 的訪問權(quán)限,具體如下:
[leonli@Leon ~ % ]kubectl access-matrix r cm sysdig-controller -n sysdig-agent --verbs=all
由于 Rakkess 資源需要查詢 Roles、ClusterRoles 及其綁定,因此通常需要管理集群訪問權(quán)限。
11、Rolesum Plugin
Rolesum Kubectl 插件主要用于生成 Kubernetes 集群中定義的角色和權(quán)限的摘要。它允許我們查看已在集群中定義的所有角色和權(quán)限、已被授予這些角色的用戶和組以及總結(jié)指定主題(ServiceAccount、用戶和組)的 RBAC 角色。
我們可以使用以下 Krew 命令安裝 Rolesum 插件,具體如下所示:
[leonli@Leon ~ % ]kubectl krew install rolesum
使用 Rolesum kubectl 插件的一個潛在安全優(yōu)勢是它可以幫助我們識別和理解 Kubernetes Cluster 中定義的角色和權(quán)限。這對于確保適當(dāng)?shù)脑L問控制已經(jīng)到位以及識別潛在的漏洞或錯誤配置很有用。
我們可以匯總綁定到 “nigeldouglas” ServiceAccount 的角色。默認情況下,rolesum 查找服務(wù)帳戶時,無需指定任何標識符。
[leonli@Leon ~ % ]kubectl rolesum nigeldouglas
另一個潛在的安全優(yōu)勢便是 Rolesum 可以幫助我們快速識別已被授予特定角色或權(quán)限的用戶和組,這對于解決問題或執(zhí)行安全評估很有用。
例如,可以匯總綁定到 “staging” 組的角色,具體如下:
[leonli@Leon ~ % ]kubectl rolesum -k Group staging
總的來說,Rolesum Kubectl 插件可以幫助我們了解和管理集群中定義的角色和權(quán)限,從而成為提高 Kubernetes 集群安全性。
12、Cert-Manager Plugin
Cert-Manager 是一個 Kubectl 插件,可在集群內(nèi)自動管理傳輸層安全 (TLS) 證書。它允許輕松地為我們的應(yīng)用程序配置、管理和續(xù)訂 TLS 證書,而無需手動處理證書簽名過程。
我們可以使用以下 Krew 命令安裝 Cert-Manager 插件,具體如下所示:
[leonli@Leon ~ % ]kubectl krew install cert-manager
使用 Cert-Manager 的一個潛在安全優(yōu)勢是它可以幫助我們確保應(yīng)用程序使用有效的、最新的 TLS 證書。這對于保護應(yīng)用程序與其用戶之間通信的機密性和完整性非常重要。
另一個潛在的安全優(yōu)勢是 Cert-Manager 可以幫助我們自動化獲取和更新 TLS 證書的過程,這可以降低證書過期或管理不善的風(fēng)險。
總的來說,Cert-Manager Kubectl 插件可以幫助我們以安全和自動化的方式管理 TLS 證書,從而成為提高 Kubernetes Cluster 安全性的有用工具。Cert-Manager 插件松散地基于 Kube-lego 的工作,并借鑒了其他類似項目的一些智慧,例如 Kube-Cert-Manager。
13、Np-viewer Plugin
Kubectl-np-viewer 插件是一個可視化 Kubernetes 集群網(wǎng)絡(luò)拓撲的工具。它允許我們以圖形格式查看集群內(nèi) Pod、Services 和其他 Resource 之間的連接。
我們可以使用以下 Krew 命令安裝 Np-viewer 插件,具體如下所示:
[leonli@Leon ~ % ]kubectl krew install np-viewer
與我們之前提到的 Cilium 插件不同,Kubectl-np-viewer 插件可以幫助用戶理解和可視化集群內(nèi)的通信模式,而不管使用的是否 CNI 插件。Cilium 插件僅幫助管理 Cilium 資源,例如 Cilium 網(wǎng)絡(luò)策略。通過查看默認的 Kubernetes 網(wǎng)絡(luò)策略,開始使用 Kubernetes 網(wǎng)絡(luò)的團隊可以從對潛在漏洞或錯誤配置的有用可見性中獲益,例如與非預(yù)期資源通信或暴露在互聯(lián)網(wǎng)上的 Pod。
若我們想知道影響當(dāng)前 Namespace 中特定 Pod 的網(wǎng)絡(luò)策略規(guī)則,那么,可以將其打印出來,具體如下:
[leonli@Leon ~ % ]kubectl np-viewer -p pod-name
同樣,Kubectl-np-viewer 插件的潛在安全優(yōu)勢是它可以幫助用戶解決集群內(nèi)的網(wǎng)絡(luò)問題。例如,如果我們遇到 Pod 或服務(wù)之間的連接問題,那么,可以使用該插件來可視化這些資源之間的連接,并確定所有網(wǎng)絡(luò)命名空間中的問題根源。
以下命令打印所有命名空間的所有網(wǎng)絡(luò)策略規(guī)則,具體如下:
[leonli@Leon ~ % ]kubectl np-viewer --all-namespaces
總的來說,Kubectl-np-viewer 插件可以幫助我們了解和監(jiān)控集群的網(wǎng)絡(luò)拓撲,從而成為提高 Kubernetes 集群安全性的有用工具。并非所有企業(yè)都已轉(zhuǎn)向高級網(wǎng)絡(luò)策略實施,例如 Calico 和 Cilium。當(dāng)用戶探索 Kubernetes 網(wǎng)絡(luò)策略實施時,他們可以更好地了解他們的策略如何使用此安全插件控制集群中潛在的有害或惡意流量。
14、Ksniff Plugin
Ksniff Kubectl 插件是一個用于捕獲和分析 Kubernetes Cluster 中網(wǎng)絡(luò)流量的工具?;诖耍捎糜诮鉀Q網(wǎng)絡(luò)問題、監(jiān)控流量模式和執(zhí)行安全評估。
我們可以使用以下 Krew 命令安裝 Ksniff 插件,具體如下所示:
[leonli@Leon ~ % ]kubectl krew install ksniff
使用 Ksniff 的一個好處是它允許我們捕獲和分析流量,而無需直接訪問 Kubernetes Cluster 中的 Node。這在我們無法直接訪問 Node 的情況下,或者我們希望將捕獲流量對集群的潛在影響降至最低的情況下很有用。
另一個優(yōu)勢便是 Ksniff 可用于捕獲 Pod 和服務(wù)之間的流量,這對于了解應(yīng)用程序如何在集群內(nèi)通信很有用。這有助于解決問題、優(yōu)化性能和識別潛在的安全漏洞。
總的來說,Ksniff Kubectl 插件可以通過幫助識別和解決與網(wǎng)絡(luò)相關(guān)的問題和漏洞來提高 Kubernetes 集群的安全性。它通過使用現(xiàn)有技術(shù)(例如 TCPdump 和 WireShark)嗅探 Kubernetes Pod 來實現(xiàn)這一點。
15、Inspektor-Gadget Plugin
Inspektor-Gadget 是最有用的 Kubectl 插件之一。該插件在用戶系統(tǒng)中執(zhí)行,并在集群中部署時作為 DaemonSet 執(zhí)行。其本質(zhì)上是一款調(diào)試和檢查 Kubernetes 資源和應(yīng)用程序的工具(或小工具)的集合。
我們可以使用以下 Krew 命令安裝 Inspektor-Gadget 插件,具體如下所示:
[leonli@Leon ~ % ]kubectl krew install gadget
通常情況下,我們可以部署一個或多個小工具,常見的小工具涉及如下:
(1)建議(為集群生成 seccomp 配置文件和網(wǎng)絡(luò)策略)
(2)審計(跟蹤 seccomp 配置文件發(fā)送到審計日志的系統(tǒng)調(diào)用)
(3)配置文件(通過分布式延遲分析塊 I/O ,通過采樣堆棧跟蹤分析 CPU 性能)
(4)快照(收集有關(guān)正在運行的進程和 TCP/UDP 套接字的信息)
(5)頂部(按文件定期報告塊設(shè)備 I/O 活動、eBPF 運行時統(tǒng)計信息和讀/寫活動)
(6)跟蹤(跟蹤從 DNS 查詢/響應(yīng)到觸發(fā)進程終止的 OOM kill 的幾乎所有活動)
除此之外, Inspektor-Gadget 插件也管理 Kubernetes 集群中 eBPF 程序的打包、部署和執(zhí)行,包括許多基于 BPF Compiler Collection (BCC) 工具的程序,以及一些專門為在 Inspektor Gadget 中使用而開發(fā)的程序。畢竟,借助 Inspektor-Gadget 能夠自動將低級內(nèi)核原語映射到高級 Kubernetes 資源,使查找相關(guān)信息變得更加容易和快捷。
若要根據(jù)網(wǎng)絡(luò)跟蹤活動“建議” Kubernetes 網(wǎng)絡(luò)策略,我們可以運行以下命令,具體如下:
[leonli@Leon ~ % ]kubectl gadget advise network-policy report --input ./networktrace.log > network-policy.yaml
若要基于 Pod、Namespace、系統(tǒng)調(diào)用和代碼“審核” seccomp 配置文件,可以運行以下命令,具體如下:
[leonli@Leon ~ % ]kubectl gadget audit seccomp -o custom-columns=namespace,pod,syscall,code
自定義 Kubectl 插件
當(dāng)然,除了上述基于 Krew 插件管理器進行封裝外,我們也可以使用任何能夠用于編寫命令行命令的編程語言或腳本進行自定義插件開發(fā)。不需要插件安裝或預(yù)加載,這使得編譯這些插件相當(dāng)簡單。
需要注意的是,必須在 PATH 的某處安裝插件可執(zhí)行文件????????
插件腳本參考如下所示:
#!/bin/bash# optional argument handlingif [[ "$1" == "version" ]]then echo "1.0.0" exit 0fi# optional argument handlingif [[ "$1" == "config" ]]then echo "$KUBECONFIG" exit 0fiecho "I am a plugin named kubectl-sysdig"
有關(guān)構(gòu)建 Kubectl 插件的完整指南,大家若感興趣的話,可以查看 Kubernetes 官方文檔。
Kubectl 插件的有關(guān)思考
在撰寫這篇博文時, Krew 插件管理器目前已支持 210* 個 Kubectl 插件,并且,這些插件能夠應(yīng)用于所有主流平臺(如 MacOS、Linux 和 Windows)等,開發(fā)/維護人員都可以訪問這些 Kubectl 插件并進行使用。雖然這些插件通常解決了對操作任務(wù)和安全審計的默認 Kubectl 實用程序的明顯限制,但它們也為我們的 Kubernetes Cluster 打開了一系列新的安全漏洞。
從安全的角度來講,基于上述所述,我們討論了最常見、有用的 Kubectl 安全插件,基于這些插件,可以讓安全、維護等團隊技術(shù)人員能夠更好地了解 Kubernetes Cluster 中的事件響應(yīng)和取證。然而,隨著我們向環(huán)境中添加更多插件,我們也在暴露額外的未經(jīng)審計的二進制文件,這些二進制文件可能會受到損害。畢竟,Krew 不提供審計這些二進制文件的已知漏洞或不安全配置的義務(wù)。
在實際的業(yè)務(wù)場景中,我們使用 Kubectl 插件時,往往或多或少會存在一些安全隱患,主要涉及如下:
1、插件漏洞:如果 Kubectl 插件存在漏洞,攻擊者可能會利用它來訪問我們所構(gòu)建的 Kubernetes Cluster 并對其進行嘗試性破壞。
2、不安全的安裝:如果插件是從不受信任的來源安裝的,它可能包含可能危及集群安全的惡意代碼。
3、權(quán)限提升:Kubectl 插件以與 Kubectl 命令相同的權(quán)限運行,因此如果插件遭到破壞,它可能會被用于提升權(quán)限并獲得對集群中敏感資源的訪問權(quán)限。
4、數(shù)據(jù)泄露:如果 Kubectl 插件沒有得到妥善保護,它可能會泄露集群中的敏感數(shù)據(jù),從而被不法分子利用。?
為了減輕這些風(fēng)險,重要的是對所構(gòu)建的插件進行安全掃描,或只安裝來自可信來源的 Kubectl 插件,并定期更新和修補已安裝的所有關(guān)聯(lián)插件。除此之外,定期檢查已安裝的插件并刪除不再需要的插件也是一個較好的風(fēng)險規(guī)避措施。
當(dāng)然,如果我們覺得某個特定的插件不會為所構(gòu)建的 Kubernetes Cluster 產(chǎn)生較高的價值收益,那么,以防萬一,刪除它也是一種可取的操作。
最后,給大家安利一本云原生安全書籍,如下所示,對于搞這塊的朋友來說或許有一定的幫助。
Adiós !
關(guān)鍵詞: Kubernetes 安全漏洞
一文讀懂最佳 Kubectl 安全插件(下)
下月起,河南多種小兒用藥納入醫(yī)保→
世界熱議:2022“青年大學(xué)習(xí)”特輯具體答案一覽
世界焦點!宜賓市南溪區(qū)“春雷行動2023”成效初顯
世界熱點!dota德魯伊怎么玩及其優(yōu)劣勢
當(dāng)前快訊:TES隊史LPL第一冠!LPL三連冠有望!一級團7個頭,全程高能打架!
頭條焦點:深海魚有哪些
《穩(wěn)經(jīng)濟 促發(fā)展 強信心》青春齊魯嗨“GO”季青島專場火熱開啟
環(huán)球今頭條!龍須菜
小鎮(zhèn)的早晨三年級上學(xué)期語文課后練習(xí)題
熱點!國融穩(wěn)泰純債債券增聘基金經(jīng)理王璠
小學(xué)二年級上冊體育課_小學(xué)二年級體育課教案全集
暑假里難忘的一件事作文
前沿?zé)狳c:14歲女孩喜歡什么禮物
環(huán)球熱頭條丨山西革命老區(qū)左權(quán)出現(xiàn)霧凇景觀
全球焦點!9個不需要門面的生意 投資成本低又能賺錢
焦點快看:武夷大紅袍茶葉多少錢一斤_大紅袍屬于什么茶種
天天報道:客座教授是啥意思_客座教授是什么意思
【快播報】送50歲長輩男士禮物排行榜
水利部水利水電規(guī)劃設(shè)計總院_關(guān)于水利部水利水電規(guī)劃設(shè)計總院的介紹
睡前有5個好習(xí)慣的女生,皮膚會越來越純凈,素顏比帶妝更美
今日最新!電影赤道結(jié)局什么意思
打男生的光屁股打爛作文大全(優(yōu)選27篇)
mil是什么單位
天天看點:正邦科技(002157.SZ)控股股東正邦集團等減持1.7%股份 減持計劃完成
快訊:量子糾纏原理最新_量子糾纏原理
最資訊丨開始下沉常規(guī)家用市場?高合第三款車型申報圖亮相工信部
闖紅燈扣分怎么扣
世界速讀:2022年全國共查辦“掃黃打非”案件1.3萬余起,十大案件公布
上海電氣:所屬寶爾捷公司10臺航空機器人交付
環(huán)球熱點!尼古拉斯佩佩高光集錦_尼古拉斯佩佩
最新資訊:國足大概率失去世預(yù)賽種子隊身份:進亞洲區(qū)18強難度大增!
環(huán)球新動態(tài):江西鞏固提升經(jīng)濟回穩(wěn)向好態(tài)勢
全球觀速訊丨搭載13.2英寸中控豎屏,長安逸達配置公布,起售價或低于10萬?
當(dāng)前最新:cad圖紙比例換算公式_cad圖紙比例怎么換算
【世界熱聞】江西東鄉(xiāng):精心打造網(wǎng)絡(luò)安全“開學(xué)第一課”
相關(guān)新聞