自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Kubernetes應(yīng)用的十大安全風(fēng)險與防護建議

開源
確保日志記錄和審計到位——這有助于檢測惡意或異常行為,包括對secret的訪問。Kubernetes集群圍繞活動產(chǎn)生有用的指標(biāo),可以利用這些指標(biāo)來檢測此類行為。因此,建議啟用和配置Kubernetes審計記錄,并將其集中存儲。

Kubernetes通常被稱為“K8s”,是一種非常流行的開源容器編排系統(tǒng),可以自動部署、擴展和管理容器化工作負載。作為一款功能強大的工具,Kubernetes可以提供容器自修復(fù)、自動擴展和服務(wù)發(fā)現(xiàn)功能,目前已受到企業(yè)用戶的廣泛歡迎。但是,與任何創(chuàng)新技術(shù)的應(yīng)用一樣,必須要充分考慮和解決其中固有的安全風(fēng)險。

總體來說,Kubernetes安全性包括三個主要部分:集群安全、節(jié)點安全和應(yīng)用程序安全,其中 :

  • 集群安全包括通過啟用認證、授權(quán)和加密來保護控制平面組件,如API服務(wù)器、etcd和Kubernetes控制器管理程序(Kubernetes controller manager);
  • 節(jié)點安全主要是指正確配置網(wǎng)絡(luò)和保護Kubernetes運行時環(huán)境,包括刪除不必要的用戶帳戶和確保應(yīng)用訪問的合規(guī)性;
  • 應(yīng)用程序安全意味著要對pod進行保護,在Kubernetes中,pod是用于運行應(yīng)用程序的容器。保護這些應(yīng)用程序的前提是保護pod。Kubernetes提供了多個安全特性來幫助保護應(yīng)用程序。這些特性可用于限制資源訪問、實施網(wǎng)絡(luò)策略,并支持容器之間的安全通信。

為了幫助企業(yè)組織更安全的應(yīng)用Kubernetes系統(tǒng),OWASP基金會日前列舉出Kubernetes的十大安全風(fēng)險,并提供了緩解這些風(fēng)險的建議。

01不安全的工作負載配置

Kubernetes manifest包含大量的配置,這些配置會影響相關(guān)工作負載的可靠性、安全性和可擴展性。這些配置應(yīng)該不斷地進行審計和糾正,以防止錯誤配置。特別是對一些高影響的manifest配置,因為它們更有可能被錯誤配置。雖然許多安全配置通常是在manifest本身的securityContext中設(shè)置的,但這些配置信息需要在其他地方也可以被檢測到,包括在運行時和代碼中都能夠檢測到它們,這樣才能防止錯誤配置。

安全團隊還可以使用Open Policy Agent之類的工具作為策略引擎來檢測各種常見的Kubernetes錯誤配置。此外,使用Kubernetes的CIS基準也是發(fā)現(xiàn)錯誤配置的一個有效方法。不過,持續(xù)監(jiān)控和糾正任何潛在的錯誤配置,以確保Kubernetes工作負載的安全性和可靠性同樣是至關(guān)重要的。

02供應(yīng)鏈安全漏洞

在供應(yīng)鏈開發(fā)生命周期的各個階段,容器會以多種形式存在,且每種形式都有其獨特的安全挑戰(zhàn)。這是因為單個容器可能依賴于數(shù)百個外部第三方組件,將會降低每個階段的信任級別。在實際應(yīng)用中,最常見的供應(yīng)鏈安全漏洞如下: 

  • 映像(Image)完整性——容器映像由很多層組成,每層都可能帶來安全風(fēng)險。由于容器映像廣泛使用第三方包,因此在可信環(huán)境中運行它們可能是危險的。為了緩解這種情況,在每個階段使用in-toto驗證軟件以確保映像完整性是很重要的。此外,通過密鑰對使用圖像進行簽名和驗證,可以快速檢測到對工件的篡改,這是構(gòu)建安全供應(yīng)鏈的重要步驟;
  • 映像組合——容器映像包含很多層,每層都有不同的安全影響。正確構(gòu)造的容器映像可以減少攻擊面并提高部署效率。因此,使用最小的OS包和依賴項來創(chuàng)建容器映像以減少攻擊面非常重要,可以考慮使用其他基本映像(如Distroless或Scratch)來改善安全態(tài)勢并縮小映像尺寸。此外,Docker Slim等工具也可用于優(yōu)化映像占用空間;
  • 已知的軟件漏洞——由于容器映像中大量使用第三方包,安全漏洞非常普遍。映像漏洞掃描對于枚舉容器映像中的已知安全問題至關(guān)重要。諸如Clair和trivy之類的開源工具會靜態(tài)分析容器映像,以查找諸如CVE之類的已知漏洞,因此應(yīng)該在開發(fā)周期中盡可能早地使用這些工具。

03過度授權(quán)的RBAC

如果配置正確,RBAC(基于角色的訪問控制)有助于防止未經(jīng)授權(quán)的訪問和保護敏感數(shù)據(jù)。但如果RBAC未經(jīng)正確配置,就可能會導(dǎo)致過度授權(quán)的情況,允許用戶訪問他們不應(yīng)訪問的資源或執(zhí)行違規(guī)的操作。這可能會造成嚴重的安全風(fēng)險,包括數(shù)據(jù)泄露、丟失和受損。

為了防止這種風(fēng)險,持續(xù)分析RBAC配置并實施最小特權(quán)原則(PoLP)是至關(guān)重要的。這可以通過減少終端用戶對集群的直接訪問、避免在集群外部使用服務(wù)帳戶令牌以及審計第三方組件中的RBAC來實現(xiàn)。此外,強烈推薦部署集中式策略來檢測和阻止危險的RBAC權(quán)限,使用RoleBindings將權(quán)限范圍限制到特定的名稱空間,并遵循官方規(guī)定的RBAC最佳實踐。

04安全策略未執(zhí)行

安全策略執(zhí)行主要指安全規(guī)則和條例的實施,以確保符合組織策略。在Kubernetes應(yīng)用中,策略執(zhí)行指的是確保Kubernetes集群遵守組織設(shè)置的安全策略。這些策略可能與訪問控制、資源分配、網(wǎng)絡(luò)安全或Kubernetes集群的任何其他方面有關(guān)。

策略執(zhí)行對于確保Kubernetes集群的安全性和遵從性至關(guān)重要。如果安全策略未被執(zhí)行可能導(dǎo)致安全漏洞、數(shù)據(jù)丟失和其他潛在風(fēng)險。此外,安全策略執(zhí)行有助于維護Kubernetes集群的完整性和穩(wěn)定性,確保資源得到有效和高效的分配。

確保在Kubernetes中有效執(zhí)行安全策略是至關(guān)重要的,其中包括:

  • 定義與組織目標(biāo)和法規(guī)需求相一致的策略;
  • 使用kubernetes本地資源或策略控制器實現(xiàn)策略;
  • 定期審查和更新策略,以確保其保持相關(guān)性和有效性;
  • 監(jiān)控違反策略的行為并及時予以糾正;
  • 教育用戶Kubernetes策略及其重要性。

05不充分的日志記錄

日志記錄是任何運行應(yīng)用程序的系統(tǒng)的基本組件。Kubernetes的日志記錄也不例外。這些日志可以幫助識別系統(tǒng)問題,并為系統(tǒng)性能優(yōu)化、安全漏洞修復(fù)和數(shù)據(jù)丟失取證提供有價值的分析。各種來源(包括應(yīng)用程序代碼、Kubernetes組件和系統(tǒng)級進程)都可以生成Kubernetes日志。

為了安全的應(yīng)用Kubernetes系統(tǒng),企業(yè)組織需要對其運行態(tài)勢進行充分的日志記錄: 

  • 使用集中式日志系統(tǒng)——集中式日志系統(tǒng)收集并存儲所有Kubernetes組件和應(yīng)用程序的日志,并將其保存在一個位置,這使得識別和響應(yīng)系統(tǒng)問題會變得更加容易;
  • 使用標(biāo)準化的日志格式——標(biāo)準化的日志格式使搜索和分析來自多個源的日志變得更加容易。Kubernetes有多種標(biāo)準的日志格式,包括JSON和syslog。安全團隊需要選擇其日志系統(tǒng)支持的格式,并配置其Kubernetes組件和應(yīng)用程序以使用該格式;
  • 維護完整的日志——記錄所有內(nèi)容可以確保完整地了解系統(tǒng)行為。但是,記錄所有內(nèi)容也會生成大量數(shù)據(jù)。要管理這些數(shù)據(jù),可以考慮設(shè)置日志輪換和保留策略;
  • 使用標(biāo)簽和注釋——標(biāo)簽和注釋是Kubernetes的一個強大功能,可以為日志提供額外的上下文。通過標(biāo)簽和注釋,運維人員可以根據(jù)特定的條件對日志進行過濾和搜索;
  • 監(jiān)控Kubernetes日志——定期監(jiān)控日志可以快速識別系統(tǒng)出現(xiàn)的問題并及時響應(yīng)。有許多不同的工具可用于監(jiān)視Kubernetes日志,包括Grafana和Kibana等;
  • 日志審計——在Kubernetes中進行日志審計使團隊能夠跟蹤對Kubernetes API服務(wù)器和其他Kubernetes組件的更改,幫助識別未經(jīng)授權(quán)的系統(tǒng)更改,并確保符合安全策略。為了在Kubernetes中設(shè)置審計,需要配置Kubernetes API服務(wù)器來記錄審計事件,并發(fā)送到集中的日志記錄系統(tǒng)進行分析。

06受損的身份驗證

受損的身份驗證是一個嚴重的安全威脅,將允許攻擊者繞過身份驗證并獲得對應(yīng)用程序或系統(tǒng)的未經(jīng)授權(quán)的訪問。在Kubernetes中,由于以下幾個因素,可能會引發(fā)受損的身份驗證:

  • 如果攻擊者可以獲得用戶的憑據(jù),他們可以繞過身份驗證并獲得對Kubernetes集群的未經(jīng)授權(quán)的訪問;
  • Kubernetes支持多種身份驗證機制,包括X.509證書、靜態(tài)令牌和OAuth令牌。錯誤配置的身份驗證規(guī)則可能會使Kubernetes集群容易受到攻擊;
  • Kubernetes使用多種通信通道,包括Kubernetes API服務(wù)器、kubelet和etcd。如果這些通信通道不安全,攻擊者可以攔截和操縱流量以繞過身份驗證。

在Kubernetes中,可以實施一些積極的安全措施來防止身份驗證被破壞,包括: 

  • 用戶必須使用不容易被猜測的強密碼或身份驗證令牌;
  • Kubernetes組件之間的通信通道必須使用SSL/TLS加密;
  • Kubernetes中使用的認證機制必須正確配置,以防止未經(jīng)授權(quán)的訪問;
  • 需要基于用戶角色對Kubernetes資源的訪問進行限制。

07網(wǎng)絡(luò)未分段

當(dāng)Kubernetes網(wǎng)絡(luò)中沒有附加控制時,任何工作負載都可以與另一個工作負載通信。攻擊者可以利用這種默認行為,利用正在運行的工作負載探測內(nèi)部網(wǎng)絡(luò)、移動到其他容器,甚至調(diào)用私有API。網(wǎng)絡(luò)分段是將一個網(wǎng)絡(luò)劃分為多個更小的子網(wǎng)絡(luò),每個子網(wǎng)絡(luò)相互隔離。網(wǎng)絡(luò)分段使得攻擊者難以在網(wǎng)絡(luò)中橫向移動并獲得對敏感資源的訪問。

組織可以使用多種技術(shù)在Kubernetes集群中實現(xiàn)網(wǎng)絡(luò)分段,以阻止橫向移動,并仍然允許有效的流量正常路由。Kubernetes支持網(wǎng)絡(luò)策略,可以使用網(wǎng)絡(luò)策略控制哪些pod可以相互通信,哪些pod與集群的其他部分隔離。還有許多第三方工具也可以在Kubernetes集群中實現(xiàn)網(wǎng)絡(luò)分割。最流行的有Calico、 Weave Net和Cilium等,這些工具提供高級的網(wǎng)絡(luò)分段功能,如加密、防火墻和入侵檢測。

08配置錯誤的集群組件

Kubernetes集群由etcd、kubelet、kube-apiserver等不同組件組成,所有組件都是高度可配置的,這意味著當(dāng)Kubernetes的核心組件出現(xiàn)配置錯誤時,就可能會發(fā)生集群泄露。在Kubernetes控制計劃中,需要對各個組件進行配置錯誤檢查,包括:

  • 檢查配置是否設(shè)置為拒絕匿名身份驗證。此外,在與Kubelets通信時,應(yīng)該始終執(zhí)行授權(quán)檢查;
  • 要檢查正在使用的API服務(wù)器的互聯(lián)網(wǎng)可訪問性,并使Kubernetes API遠離任何公共網(wǎng)絡(luò);
  • 執(zhí)行CIS基準掃描和審計也可以幫助安全團隊消除組件錯誤配置,可以使用諸如EKS、GKE或AKS之類的托管服務(wù)幫助實現(xiàn)安全配置,并限制組件配置的某些選項。

09脆弱的第三方組件

由于Kubernetes集群運行大量第三方軟件,安全團隊將需要構(gòu)建多層策略來防護易受攻擊的組件。一些最佳實踐如下: 

  • 跟蹤CVE數(shù)據(jù)庫。管理Kubernetes中已知和新漏洞的一個關(guān)鍵因素是跟蹤CVE數(shù)據(jù)庫、安全披露和社區(qū)更新的最新信息。安全團隊可以使用這些情報構(gòu)建可操作的計劃,以實現(xiàn)定期的補丁管理流程;
  • 實現(xiàn)持續(xù)掃描。使用OPA Gatekeeper等工具可以幫助編寫自定義規(guī)則,以發(fā)現(xiàn)Kubernetes集群中任何易受攻擊的組件。然后,安全團隊可以跟蹤并記錄這些發(fā)現(xiàn),以改進其安全流程和策略;
  • 最小化第三方依賴關(guān)系。在Kubernetes應(yīng)用部署之前,必須徹底審計第三方軟件是否存在過度授權(quán)的RBAC、低級別的內(nèi)核訪問和漏洞披露記錄等信息。

10Secret(機密)管理

“secret”是Kubernetes中的一個對象,它包含密碼、證書和API密鑰等敏感數(shù)據(jù)。Secret存儲機密數(shù)據(jù),集群中的其他用戶和進程應(yīng)該無法訪問這些數(shù)據(jù)。Kubernetes Secret密存儲在etcd中,這是Kubernetes用來存儲所有集群數(shù)據(jù)的分布式鍵值存儲。雖然Secret在Kubernetes生態(tài)系統(tǒng)中是一個非常有用的功能,但需要謹慎處理。管理Kubernetes Secret可以分為以下步驟:

  • 在靜止?fàn)顟B(tài)下部署加密——潛在的攻擊者可以通過訪問etcd數(shù)據(jù)庫獲得對集群狀態(tài)的相當(dāng)大的可見性,該數(shù)據(jù)庫包含通過Kubernetes API訪問的任何信息。Kubernetes提供靜態(tài)加密。靜態(tài)加密保護etcd中的secret資源,確保這些secret的內(nèi)容對訪問etcd備份的各方保持隱藏;
  • 解決安全錯誤配置,例如漏洞、映像安全性和策略執(zhí)行——還應(yīng)該鎖定RBAC配置,并且所有服務(wù)帳戶和最終用戶訪問都應(yīng)該限制為最低權(quán)限,特別是在訪問secret時。審計集群中安裝的第三方插件和軟件的RBAC配置也是必要的,以確保對Kubernetes secret的訪問不會被不必要地授予;
  • 確保日志記錄和審計到位——這有助于檢測惡意或異常行為,包括對secret的訪問。Kubernetes集群圍繞活動產(chǎn)生有用的指標(biāo),可以利用這些指標(biāo)來檢測此類行為。因此,建議啟用和配置Kubernetes審計記錄,并將其集中存儲。

參考鏈接:https://www.sentinelone.com/blog/mastering-kubernetes-security-top-strategies-recommended-by-owasp-2/

責(zé)任編輯:武曉燕 來源: 安全牛
相關(guān)推薦

2013-07-26 13:23:28

2014-03-11 16:52:20

2024-03-12 08:57:39

2011-10-21 09:56:22

2024-05-09 15:51:35

2009-02-03 08:34:46

2022-09-07 11:53:00

Web應(yīng)用安全Web服務(wù)程序

2024-03-26 12:57:40

2014-01-02 09:26:04

2022-01-14 14:33:20

安全挑戰(zhàn)勒索軟件供應(yīng)鏈

2022-12-29 07:40:58

2014-05-15 09:44:52

2020-07-30 07:00:00

API安全威脅零日漏洞

2013-07-05 10:18:14

2025-01-22 09:53:26

2013-06-14 09:41:13

OWASPWeb應(yīng)用安全風(fēng)險TOP10

2009-01-20 10:27:00

2016-12-26 16:23:24

2011-12-23 10:09:20

2022-03-03 09:30:00

安全容器工具
點贊
收藏

51CTO技術(shù)棧公眾號