日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 知識百科

實現Kubernetes安全加固的六個建議

來源: 責編: 時間:2023-08-07 16:29:50 236觀看
導讀 隨著更多的組織開始擁抱云原生技術,Kubernetes已成為容器編排領域的行業標準。向 Kubernetes轉變的這股潮流,很大程度上簡化了容器化應用程序的部署、擴展和管理,并實現了自動

隨著更多的組織開始擁抱云原生技術,Kubernetes已成為容器編排領域的行業標準。向 Kubernetes轉變的這股潮流,很大程度上簡化了容器化應用程序的部署、擴展和管理,并實現了自動化,為傳統的單體式系統提供了勝于傳統管理協議的眾多優勢。S9n28資訊網——每日最新資訊28at.com

然而,管理大規模的Kubernetes帶來了一系列獨特挑戰,包括加固集群、保護供應鏈以及運行時檢測威脅。本文結合云原生計算基金會(CNCF)、美國國家安全局(NSA)以及網絡安全和基礎設施安全局(CISA)的諸多最佳實踐,整理出Kubernetes安全加固的6個建議,幫助組織降低風險。S9n28資訊網——每日最新資訊28at.com

S9n28資訊網——每日最新資訊28at.com

集群設置和加固S9n28資訊網——每日最新資訊28at.com

保護Kubernetes環境從加固集群開始。對于使用托管Kubernetes服務(比如GKE、EKS或AKS)的用戶而言,由相應的云提供商管理主節點安全,并為集群實施各種默認安全設置。GKE Autopilot采取了額外措施,實施GKE加固準則和GCP安全最佳實踐。但即使對于GKE Standard或EKS/AKS用戶而言,云提供商也有一套準則,以保護用戶對Kubernetes API服務器的訪問、對云資源的容器訪問以及Kubernetes升級。S9n28資訊網——每日最新資訊28at.com

準則如下:S9n28資訊網——每日最新資訊28at.com

GKE加固指南EKS安全最佳實踐指南AKS集群安全S9n28資訊網——每日最新資訊28at.com

至于自我管理的Kubernetes集群(比如kube-adm或kops),kube-bench可用于測試集群是否符合CIS Kubernetes Benchmark中規定的安全準則。主要的建議包括:加密存儲在靜態etcd中的機密信息、使用TLS證書保護控制平面通信以及開啟審計日志功能。S9n28資訊網——每日最新資訊28at.com

網絡和資源策略S9n28資訊網——每日最新資訊28at.com

默認情況下,Kubernetes允許從任何pod到同一集群中另一個pod的通信。雖然這對于發現服務而言很理想,但沒有提供網絡分離,不法分子或中招的系統可以無限制地訪問所有資源。如果團隊使用命名空間作為Kubernetes內部多租戶的主要手段,這就成為非常嚴重的問題。S9n28資訊網——每日最新資訊28at.com

為了控制pod、命名空間和外部端點之間的流量,應使用支持NetworkPolicy API的CNI插件(比如Calico、Flannel或針對特定云的CNI),用于網絡隔離。遵照零信任模型,最佳實踐是實施默認一概拒絕的策略,阻止所有出入流量,除非另一項策略特別允許。S9n28資訊網——每日最新資訊28at.com

除了網絡策略外,Kubernetes還提供兩個資源級別的策略:LimitRange和ResourceQuotas。LimitRanges可用于限制單個資源的使用(如每個pod最多有2個CPU),而ResourceQuota控制聚合資源的使用(如在dev命名空間中總共有20個CPU)。S9n28資訊網——每日最新資訊28at.com

RBAC和服務帳戶S9n28資訊網——每日最新資訊28at.com

強大的網絡和資源策略到位后,下一步是強制執行RBAC授權以限制訪問。Kubernetes管理員可以對用戶和用戶組強制執行RBAC以訪問集群,以及限制服務訪問集群內外的資源(如云托管的數據庫)。另外,企業使用創建時掛載到每個pod的默認服務帳戶時須謹慎。pod可能被授予過大的權限,這取決于授予默認服務帳戶的權限。如果不需要與Kubernetes服務進行任何特定的通信,將automountServiceAccountToken設置為false,以防止掛載。S9n28資訊網——每日最新資訊28at.com

系統加固S9n28資訊網——每日最新資訊28at.com

鑒于集群已安全,下一步是盡量縮小系統的攻擊面。這適用于節點上運行的操作系統以及容器上的內核。選擇為運行容器而優化的專用操作系統,如AWS Bottlerocket或GKE COS,而不是選擇通用的Linux節點。接下來,充分利用Linux內核安全功能,如SELinux、AppArmor(自1.4起是測試版)及/或seccomp(自1.19起是穩定版)。AppArmor為Linux用戶或用戶組定義了將程序限制于一組有限資源的權限。一旦定義了AppArmor配置文件,帶有AppArmor標注的pod將強制執行這些規則。S9n28資訊網——每日最新資訊28at.com

apiVersion: v1S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
kind: PodS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
metadata:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
name: apparmorS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
annotations:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
container.apparmor.security.beta.kubernetes.io/hello: localhost/k8s-apparmor-example-deny-writeS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
spec:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
containers:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
- name: helloS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
image: busyboxS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]S9n28資訊網——每日最新資訊28at.com

另一方面,Seccomp限制容器的系統調用。只要底層Kubernetes節點上有seccomp配置文件可用,就可以在securityContext這部分定義seccomp配置文件。S9n28資訊網——每日最新資訊28at.com

apiVersion: v1S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
kind: PodS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
metadata:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
name: audit-podS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
labels:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
app: audit-podS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
spec:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
securityContext:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
seccompProfile:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
type: LocalhostS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
localhostProfile: profiles/audit.jsonS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
containers:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
- name: test-containerS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
image: hashicorp/http-echo:0.2.3S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
args:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
- "-text=just made some syscalls!"S9n28資訊網——每日最新資訊28at.com

即使沒有seccomp配置文件,用戶仍然可以限制容器免受各種權限提升攻擊。在安全上下文中,Kubernetes允許配置容器是否可以以特權或root身份來運行,或者將權限升級到root。用戶還可以限制hostPID、hostIPC、hostNetwork和hostPaths。所有這些設置都可以通過Pod Security Policy(v1.21中已被棄用)或使用其他開源工具(比如K-Rail、Kyverno和OPA/Gatekeeper)來執行。S9n28資訊網——每日最新資訊28at.com

最后,如果需要額外的安全保證,可以配置自定義的RuntimeClass,以便充分利用硬件虛擬化(如gVisor或Kata)。在節點層面定義RuntimeClass,并在pod定義部分指定它。S9n28資訊網——每日最新資訊28at.com

apiVersion: node.k8s.io/v1 # RuntimeClass is defined in the node.k8s.io API groupS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
kind: RuntimeClassS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
metadata:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
name: myclass # The name the RuntimeClass will be referenced byS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
# RuntimeClass is a non-namespaced resourceS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
handler: myconfiguration # The name of the corresponding CRI configurationS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
---S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
apiVersion: v1S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
kind: PodS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
metadata:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
name: mypodS9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
spec:S9n28資訊網——每日最新資訊28at.com
S9n28資訊網——每日最新資訊28at.com
runtimeClassName: myclass供應鏈安全S9n28資訊網——每日最新資訊28at.com

即使集群和系統安全,為保證整個應用程序的端到端安全,也必須考慮到供應鏈。若是內部開發的應用程序,請遵循創建容器的最佳實踐,即使用最小基礎鏡像以減小攻擊面、固定軟件包版本,并使用多階段構建以創建小鏡像。此外,定義容器運行所需的非root用戶,或使用podman構建無root容器,以限制root訪問。S9n28資訊網——每日最新資訊28at.com

下一步,使用開源工具(如Trivy、Clair或Anchore)或者商用工具掃描所有鏡像,以查找漏洞。一些工具還允許對鏡像進行簽名和驗證簽名,以確保容器在構建和上傳過程中未被篡改。最后,定義Kubernetes可以使用ImagePolicyWebhook或上面提到的任何策略執行工具從中提取鏡像的白名單注冊表。S9n28資訊網——每日最新資訊28at.com

監控、日志和運行時安全S9n28資訊網——每日最新資訊28at.com

至此,我們有了一個供應鏈嚴加保護的安全集群,可以生成干凈的、經過驗證的鏡像,有限的訪問權限。然而環境是動態的,安全團隊需能夠響應運行環境中的事件。首先,將readOnlyRootFilesystem設置為true,并將tmp日志文件存儲到emptyDir,以此確保容器在運行時不變。除了典型的應用程序監控(如Prometheus/Grafana)或日志(如EFK)存儲外,還可以使用Falco或Sysdig來分析系統調用進程和Kubernetes API日志。S9n28資訊網——每日最新資訊28at.com

這兩種工具都可以在運行時解析來自內核的Linux系統調用,并在違反規則時觸發警報。示例規則包括:權限提升時發出警報,已知目錄上檢測到讀/寫事件時發出警報,或調用shell時發出警報。最后,將Kubernetes API審計日志與現有日志聚合和警報工具整合起來,以監控集群中的所有活動。這包括API請求歷史記錄、性能指標、部署、資源消耗、操作系統調用和網絡流量。S9n28資訊網——每日最新資訊28at.com

結語S9n28資訊網——每日最新資訊28at.com

由于云原生系統很復雜,需要采用多層方法來保護Kubernetes環境。建議Kubernetes做好云原生安全的4C:云、集群、容器和代碼。首先,加固集群,并遵循云安全最佳實踐;其次,嚴加保護容器,減小攻擊面,限制訪問,并確保運行時不變;再次,保護供應鏈,分析代碼和容器以查找漏洞。最后,監控運行時的所有活動,將防御機制融入Kubernetes內運行的每一層軟件中。S9n28資訊網——每日最新資訊28at.com

參考鏈接:https://dzone.com/articles/kubernetes-security-guide-high-level-k8s-hardeningS9n28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-119-2135-0.html實現Kubernetes安全加固的六個建議

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 云安全日報220209:Adobe Photoshop和Illustrator發現任意代碼執行漏洞,需要盡快升級

下一篇: AI賽車手狂虐人類登Nature!1000臺PS4訓練,極限超車獨霸賽道

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 东阿县| 池州市| 天祝| 荥经县| 定西市| 霍州市| 勃利县| 怀宁县| 慈溪市| 梁河县| 浏阳市| 永平县| 德州市| 北宁市| 新龙县| 大同县| 安顺市| 布拖县| 宕昌县| 陇南市| 高碑店市| 东兰县| 同心县| 乐都县| 桑日县| 永和县| 留坝县| 通州区| 新民市| 包头市| 砚山县| 保山市| 淅川县| 武城县| 宁夏| 阜新市| 大方县| 伊春市| 达州市| 苏尼特右旗| 英超|