全部產品
Search
文件中心

Container Service for Kubernetes:修複漏洞CVE-2020-8554公告

更新時間:Jun 19, 2024

近日Kubernetes社區披露了使用LoadBalancer或External IPs進行中間人攻擊的漏洞,在一個多租叢集中攻擊者可以通過建立和更新Service執行個體狀態等欄位來劫持叢集中來自其他Pod的流量。

目前CVE-2020-8554漏洞評級為中危漏洞,CVSS漏洞評分為3.0

影響範圍

當前所有版本的Kubernetes叢集均在該漏洞影響範圍內,該漏洞源自Kubernetes設計上的安全缺陷,明確的修複計劃將在issue 97110中給出。

對於ACK叢集使用者,如果您的叢集運行在多租戶情境下,或者叢集中啟動並執行應用可能來自非受信的使用者所部署,此時您可以通過在apiserver審計日誌中搜尋Service的status對象的patch事件來發現可疑事件。具體操作,請參見(可選)步驟三:查看詳細日誌記錄

漏洞描述

在多租叢集中,攻擊者可以通過下面兩種方式完成對指定Service的流量劫持。
  • 建立ClusterIP類型的Service,並設定服務執行個體spec中的externalIP欄位來指定劫持該IP內的流量。
  • 對於LoadBalancer類型的Service,攻擊者可以通過設定Service執行個體中的spec.loadBalancerIP欄位並且修改status.loadBalancer.ingress.ip達到流量劫持的目的。

防範措施

目前Kubernetes社區官方還沒有提供針對該漏洞的修複方案,由於漏洞修複可能涉及原生模型較大的改動,預計在官方正式修複版本發布前還需一段較長的時間。建議您優先採用以下方案防範攻擊:
  • 對於external IPs的使用建議如下:
    • 通過admission webhook的准入校正方式限制external IPs的使用,詳情請參見Kubernetes官方給出的externalip-webhook源碼和部署說明。
    • 通過OPA Gatekeeper來限制external IPs的使用範圍,具體操作,請參見gatekeeper。ConstraintTemplate和Constraint的樣本模板請參考externalip
  • 對於LoadBalancer類型的IP使用建議如下:
    • 儘可能收斂對Service的status對象的patch許可權。
    • 可採用上述external IPs的使用建議,通過admission webhook或OPA Gatekeeper的方式來限制對LoadBalancer IP的使用。