iT邦幫忙

2023 iThome 鐵人賽

DAY 10
1

Yes

  • 在進行 K8s 的攻擊之前,需要先來探討一下攻打有哪些戰術跟可利用的技術手法。這部分可以參考微軟的 Threat-Matrix-for-Kubernetes/images/emoticon/emoticon07.gif

  • 這個 Threat-Matrix 是模仿 MITRE ATT&CK 的架構去製作的,分為 Tactic (戰術),Technique (技術手法)跟 Procedure (程序)。

    • Tactic (戰術): 對手透過這個攻擊手法想要取得的目標。例如,Privilege Escalation 這個戰術就是為了從低權限取得高權限的身分。可以把它想成是為什麼。
    • Technique (技術手法) : 如何達成這個戰術。比方說要能夠提權的話可以利用 Abuse Elevation Control Mechanism: Setuid and Setgid 這個技術手法來達成。
    • Procedure(程序): 這項技術手法實現的過程或是工具。
  • 微軟的 Threat-Matrix-for-Kubernetes 也就是針對各個 Tactic 階段在 K8s 中有哪些 Technique (技術手法)可以利用,並且在 Procedure(程序)內描敘怎麼實作,並且包含了 Mitigations(緩解措施)。所以算是學習攻擊與防禦一個不錯的途徑。以下就針對這次鐵人賽會講解的攻擊手法用 Threat-Matrix-for-Kubernetes 做個簡介,也讓各位對接下來要學的東西有個概觀的了解。

    • Initial Access : 在駭客進行攻擊進行第一次存取的方法

    • Execution : 駭客執行命令的方法

      • Exec into container : 下達 kubectl exec 進行控制,當然執行身分在K8s中需要對應的權限才有辦法做這件事情
      • Bash or cmd inside container : 攻擊者在容器中有權限使用 bash 控制容器
      • New container : 透過非常規手法建立新的容器取得控制權
      • Application exploit (RCE) : 透過容器內執行的應用程式包含 RCE,也是本次鐵人賽假設的部分,在後續使用的 image 都會自動起一個 shell 服務讓攻擊者連入使用
    • Persistence : 駭客如何維持對目標的控制,但感覺這次鐵人賽我都沒用到這些手法。畢竟我已經假設這個 K8s 存在一個可被控制的 shell 服務。

    • Privilege Escalation : 當取得控制權但發現只有低權限,想辦法提升到高權限的手法。

      • Privileged container : 擁有幾乎等同於宿主機 root 帳號能力的特權容器,之前也提過這個很危險,當然到 K8s 也是一樣危險。
      • Cluster-admin binding : K8s 本身也有自己的 RBAC 機制,這樣的RBAC 如果亂綁的情況下有時候可以拿來做權限提升,也算是在 K8s 中相當需要注意的部分。
      • Writable hostPath mount : 跟容器一樣掛載可以被寫入的機敏資訊,類似之前提過掛載 docker.sock 的概念。K8s有一個掛載目錄還蠻有趣的攻擊手法之後也會介紹。
    • Credential Access : 攻擊者在環境中竊取機敏資料手法,這邊只用到最重要的一個。

      • Container service account : K8s 最具有特色的地方,就是預設會在 pod 的容器中掛載 service account token,這部分後續有機會做存取利用。當然一定給了service account過高的權限,後續就會很好用。
    • Discovery : 透過一些手法尋找相關資源做為之後橫向移動的目標。

      • Access Kubernetes API server : 這個相當於 K8s 大腦的腳色肯定是駭客想要攻打的部分,所以找出 API server 相關資訊也是很重要的。
      • Access Kubelet API : 這個相當於 K8s 執行動作的手腳也相對的重要,假如可以不經過大腦直接控制手腳去做事情也是很恐怖低,所以這個資訊也是同等重要。
    • Lateral Movement : 如何透過手法在K8s的環境中亂竄。

      • Cluster internal networking : 預設在 K8s 的網路環境中針對 pod 之間的連線是沒有禁止的,所以透過網路掃描可以找到其他資源。
      • ARP poisoning and IP spoofing : 因為網路預設是相通的,所以可以透過 ARP poisoning 工具偽冒其他 pod 進行網路監聽或是封包竄改,這部分之後會有簡單的例子讓大家試試。
      • Taint Movement : 從其他地方看到的攻擊手法,不屬於在這個矩陣裡面,所以這邊我只好幫它取的名字叫做汙點橫移。算是 K8s 這個架構裡面蠻特別的一個橫向移動手法,只可惜在 minikube 無法呈現,但我這邊到時候會用 kubeadm 做這個手法的示範,但我這邊不會講 kubeadm 怎麼架設,因為我當初架設完環境到可以跑之後就忘了留架設的SOP了 QQ
  • 另一個可以參考的資源則是對岸的 从攻击者视角聊聊K8S集群安全 - 上从攻击者视角聊聊K8S集群安全 - 下,這篇文章則是透過圖片的方式在 K8s 架構上標註出可能被攻擊的點,讓各位更好理解我之後講解這些攻擊手法。/images/emoticon/emoticon33.gif

https://ithelp.ithome.com.tw/upload/images/20230917/20148308ya0brMeZZX.png

  • 今日總結 :
    • 本日回顧 :

      • 介紹微軟推出的 Threat-Matrix-for-Kubernetes,算是針對K8s安全一個不錯的學習資源,除了可以了解攻擊者切入的角度之外,也可以知道針對這個攻擊有哪些緩解措施。/images/emoticon/emoticon12.gif
    • 次日預告 :

      • K8s 的 pods 裡面就是由容器所組成,所以下其會針對之前講過的容器逃逸手法進行複習,介紹如何在K8s環境下建立出一樣的環境,並且試著做容器逃逸比較顯示出來的差異。

上一篇
Day10 - 如何開放外部存取 K8s 服務
下一篇
Day12 - (攻擊) k8s Pod 內容器逃逸手法
系列文
怕痛的我把 Docker、K8s 攻擊、防禦、偵測力點滿就對了63
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言