<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    針對Kubernetes集群的攻擊與檢測

    VSole2023-05-18 15:55:34

    2023年4月24日,網絡安全行業年度盛會 RSA Conference在舊金山隆重開幕。這次RSAC中,InGuardians公司CEO Jay Beale及安全研究員Alana Trimble帶來了一個關于Kubernetes集群的攻擊和檢測議題Attacking and Detecting Attacks on Kubernetes Clusters。該議題通過演示DEF CON 30's Kubernetes CTF的解決方案,展示在Kubernetes集群中的攻擊和防御思路。

    DEF CON 30's Kubernetes CTF與議題簡介

    DEF CON 30's Kubernetes CTF以電影《Scott Pilgrim vs. the World》[1]為主題,是InGuardians公司舉辦的第二次Kubernetes CTF。

    Kubernetes CTF為經驗豐富的Kubernetes攻擊者提供一個展示攻擊技巧的機會,并為新人提供一個學習Kubernetes安全的平臺。Kubernetes CTF的舉辦吸引了DEF CON社區中越來越多的研究人員關注Kubernetes安全。

    議題《Attacking and Detecting Attacks on Kubernetes Clusters》[2]使用與DEF CON 30's Kubernetes CTF完全相同的CTF場景,給出了一個Kubernetes CTF解決方案。從一個 Kubernetes節點IP開始,在集群中Pod橫向移動,拿到所有的Flag。最后,議題給出了一些Kubernetes集群安全加固策略,并介紹了其公司的一款開源Kubernetes滲透工具。

    Kubernetes CTF解決思路

    尋找Flag之前先了解本屆Kubernetes CTF主題——《Scott Pilgrim vs. the World》。《Scott Pilgrim vs. the World》是一部2010年的動作喜劇電影。故事講述了年輕搖滾樂手Scott Pilgrim與他所愛的女孩——發型師Ramona Flowers相遇并熱戀,但在追求她的過程中,Scott需要先戰勝她的七個前男友(Matthew Patel、Lucas Lee、Todd Ingram、Roxy Richter、Ken Katayanagi、Kyle Katayanagi以及Gideon Graves)。接下來,筆者將按Flag順序介紹議題中給出的每個Flag的解決思路。

    Flag1思路

    1)使用端口掃描工具發現Kubernetes節點對外暴露的端口和服務;

    2)使用目錄遍歷工具遍歷出節點對外暴露服務的api;

    3)使用Fuzz工具遍歷出服務的請求參數,構造合適編碼的參數值;

    4)通過反彈Shell拿到該服務對應Pod:matthew-patel的Shell,并在該Pod的文件系統中找到Flag1。

    Flag2思路

    1)在Pod:matthew-patel中找到SA Token:matthew-patel(ServiceAccount Token:matthew-patel)和Namespace:matthew-patel;

    2)根據提示確定Namespace:lucas-lee,并確定Token:matthew-patel在Namespace:lucas-lee中可以執行的操作——List Pod;

    3)進入Namespace:lucas-lee下的Pod:lucas-lee-vault-0中,通過反彈Shell拿到Pod:lucas-lee-vault-0的Shell;

    4)在Pod:lucas-lee-vault-0中利用Vault工具找到Flag2。

    Flag3思路

    1)確定SA Token:lucas-lee在Namespace:lucas-lee中可執行的操作——List Secret;

    2)通過List列出Namespace:lucas-lee中的Secret,得到Flag3及SA Token: stunt-team。

    Flag4思路

    1)確定SA Token:stunt-team在Namespace:todd-ingram中可執行的操作——Get/List Pod;

    2)列出Namespace:todd-ingram所有Pod,根據Pod的describe信息確定Flag4所在的Pod:spilledcoffee;

    3)進入Pod:spilledcoffee中,通過反彈Shell拿到Pod:spilledcoffee的Shell,找到Flag4及SA Token:juile。

    Flag5思路

    1)確定SA Token:julie在Namespace:todd-ingram中可執行的操作——List/Get/Update/Patch Service;

    2)導出Service:envy的yaml配置文件,將該Service綁定的app selector修改為Pod:spilledcoffee的label——spilledcoffee;

    3)根據提示,通過已經拿到shell的Pod:spilledcoffee,向修改后的Service發送HTTP請求拿到Flag5以及SA Token:todd。

    Flag6思路

    1)在Pod:spilledcoffee中利用nodejs的反序列化漏洞拿到Pod:envy-adam的shell;

    2)在Pod:envy-adam的文件系統中找到Flag6、SA Token:envy-adam及下一個Flag提示的Namespace:roxy-richter。

    Flag7思路

    1)確定SA Token:envy-adam在Namespace:roxy-richter中可執行的操作——List Configmap;

    2)列出所有Configmap,根據Name找到Flag7存在的Configmap:roxy-richter-flag;

    3)以yaml格式查看Configmap:roxy-richter-flag拿到Flag7及下一個Flag提示的Namespace:katayanagi-twins。

    Flag8思路

    1)確定SA Token:envy-adam在Namespace:katayanagi-twins中可執行的操作——List/Get Pod;

    2)進入Namespace:katayanagi-twins下的Pod:ninth-circle;

    3)在Pod:ninth-circle的文件系統中找到Flag8。

    Flag9思路

    1)節點目錄/etc/kubernetes/manifests作為/manifests掛載到Pod:ninth-circle中;

    2)將特權容器配置寫入/manifests創建“特權Pod”;

    3)通過掛載節點的文件系統獲取Kubelet Token;

    4)使用Kubelet Token進入Namespace:gideon-graves 的Pod:gideon-graves-chaos-theater中,在文件系統中找到Flag9。

    Kubernetes安全加固策略

    • 使用網絡策略(Kubernetes 本地防火墻規則)阻止傳出連接防止反彈shell。
    • 使用Web應用程序防火墻(例如啟用modsecurity 的 ingress-nginx)來防止自動掃描,降低遠程命令執行的風險。
    • 審核RBAC策略,確保ServiceAccount Token沒有過度權限。
    • 停用將ServiceAccount Token自動掛載到Pod的功能。
    • 使用Kyverno[3]、OPA Gatekeeper[4]等out-of-tree準入控制器,防止創建可以獲取/列出集群Secret的RBAC角色。
    • 使用NameSpace隔離來減少用戶水平越權,修改其他用戶Service的風險。
    • 使用服務網格(如Istio[5]、Linkerd[6]等)管理和監視不同微服務之間的通信,通過強制執行策略來增強安全性。
    • 通過鏡像掃描和供應鏈保護來檢測易受攻擊的庫文件。
    • 確保對敏感配置使用Secret,而不是Configmap。
    • 考慮對敏感節點目錄進行文件完整性監控,如/etc/kubernetes/manifests。
    • 使用Pod安全標準或其他準入控制器來防止節點目錄的HostPath安裝。
    • 確保Kubernetes集群有審計策略,并捕獲日志。可以根據圖1來關聯日志內容與可能的攻擊事件。

    圖1 攻擊路徑與API事件

    Peirates

    Peirates[7]是InGuardians公司開源的一款Kubernetes滲透工具,采用Golang編寫,可以運行在Kubernetes集群的容器內或外部的Kubernetes節點上。Peirates專注于權限提升和橫向移動,它可以自動竊取和收集Kubernetes集群內的ServiceAccount Token及Secret,進一步獲得代碼執行能力及對Kubernetes集群的控制能力。

    kubernetespod
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    NSA和CISA聯合發布Kubernetes安全加固建議。指南稱,Kubernetes環境被黑的主要誘因是供應鏈攻擊、惡意攻擊者和內部威脅。雖然管理員無法應對這3種威脅,但可以通過避免錯誤配置、減小安全風險等方式來加固Kubernetes系統。針對Kubernetes系統安全風險的防護措施包括掃描容器和pod的bug和錯誤配置、使用最小權限來運行pod和容器、進行網絡隔離、強認證、防火墻等。
    近日,互聯網公開了Linux Netfilter權限提升漏洞的POC及EXP,相關CVE編號:CVE-2021-22555。該漏洞在kCTF中被用于攻擊kubernetes pod容器實現虛擬化逃逸,該漏洞已在Linux內核代碼中存在15年。目前官方已發布安全版本修復該漏洞,建議受影響用戶盡快更新至安全版本進行防護,做好資產自查以及預防工作,以免遭受黑客攻擊。
    最近這log4j熱度很高。好久沒寫文章了,而且目前市面有些文章里面的內容信息已經有些過時缺少最新信息迭代,借此機會我劍指系列基于國內外的關于此漏洞的研究我進行了總結和歸納,并且將我自己目前發現的小眾的技巧方法分享給各位,希望能給各位帶來幫助不會讓各位失望。
    容器安全是一個龐大且牽涉極廣的話題,而容器的安全隔離往往是一套縱深防御的體系,牽扯到AppArmor、Namespace、Capabilities、Cgroup、Seccomp等多項內核技術和特性,但安全卻是一處薄弱則全盤皆輸的局面,一個新的內核特性可能就會讓看似無懈可擊的防線存在突破口。隨著云原生技術的快速發展,越來越多的容器運行時組件在新版本中會默認配置AppArmor策略,原本我們在《紅藍對
    Kubernetes通常被稱為“K8s”,是一種非常流行的開源容器編排系統,可以自動部署、擴展和管理容器化工作負載。
    對于在共享基礎設施上運行的容器化應用程序來說,安全是至關重要的。隨著越來越多的組織將其容器工作負載轉移到Kubernetes,K8s已經成為容器協調的首選平臺。而隨著這一趨勢,威脅和新的攻擊方式也越來越多,有必要加強所有的安全層。 在Kubernetes中,安全問題有兩個方面:集群安全和應用安全。我們已經在另一篇文章中介紹了集群安全。在這篇文章中,我們將探討如何確保Kubernetes部署和一般
    雖然網上有大量從零搭建 K8S 的文章,但大都針對老版本,若直接照搬去安裝最新的 1.20 版本會遇到一堆問題。故此將我的安裝步驟記錄下來,希望能為讀者提供 copy and paste 式的集群搭建幫助。
    雖然網上有大量從零搭建?的文章,但大都針對老版本,若直接照搬去安裝最新的?版本會遇到一堆問題。故此將我的安裝步驟記錄下來,希望能為讀者提供?式的集群搭建幫助。服務等,可供用戶免費下載、使用和分享。??啟動的三節點服務已經配置好了以下使用?節點進行演示查看,其他節點操作均一致#?
    域安全 | K8s調度策略
    2023-02-08 16:01:30
    在K8s中,調度是指將Pod放置到合適的節點上。在一個集群中滿足一個 Pod調度請求的所有節點稱之為可調度節點。PodFitsResources 過濾函數會檢查候選節點的可用資源能否滿足 Pod 的資源請求。根據當前啟用的打分規則,調度器會給每一個可調度節點進行打分。最后,kube-scheduler 會將 Pod 調度到得分最高的節點上。可以通過一些手段約束一個Pod以便限制其只能在特定的節點上運行,或優先在特定的節點上運行。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类