当前位置:首页 > 科技  > 知识百科

实现Kubernetes安全加固的六个建议

来源: 责编: 时间:2023-08-07 16:29:50 164观看
导读 随着更多的组织开始拥抱云原生技术,Kubernetes已成为容器编排领域的行业标准。向 Kubernetes转变的这股潮流,很大程度上简化了容器化应用程序的部署、扩展和管理,并实现了自动

随着更多的组织开始拥抱云原生技术,Kubernetes已成为容器编排领域的行业标准。向 Kubernetes转变的这股潮流,很大程度上简化了容器化应用程序的部署、扩展和管理,并实现了自动化,为传统的单体式系统提供了胜于传统管理协议的众多优势。n0G28资讯网——每日最新资讯28at.com

然而,管理大规模的Kubernetes带来了一系列独特挑战,包括加固集群、保护供应链以及运行时检测威胁。本文结合云原生计算基金会(CNCF)、美国国家安全局(NSA)以及网络安全和基础设施安全局(CISA)的诸多最佳实践,整理出Kubernetes安全加固的6个建议,帮助组织降低风险。n0G28资讯网——每日最新资讯28at.com

n0G28资讯网——每日最新资讯28at.com

集群设置和加固n0G28资讯网——每日最新资讯28at.com

保护Kubernetes环境从加固集群开始。对于使用托管Kubernetes服务(比如GKE、EKS或AKS)的用户而言,由相应的云提供商管理主节点安全,并为集群实施各种默认安全设置。GKE Autopilot采取了额外措施,实施GKE加固准则和GCP安全最佳实践。但即使对于GKE Standard或EKS/AKS用户而言,云提供商也有一套准则,以保护用户对Kubernetes API服务器的访问、对云资源的容器访问以及Kubernetes升级。n0G28资讯网——每日最新资讯28at.com

准则如下:n0G28资讯网——每日最新资讯28at.com

GKE加固指南EKS安全最佳实践指南AKS集群安全n0G28资讯网——每日最新资讯28at.com

至于自我管理的Kubernetes集群(比如kube-adm或kops),kube-bench可用于测试集群是否符合CIS Kubernetes Benchmark中规定的安全准则。主要的建议包括:加密存储在静态etcd中的机密信息、使用TLS证书保护控制平面通信以及开启审计日志功能。n0G28资讯网——每日最新资讯28at.com

网络和资源策略n0G28资讯网——每日最新资讯28at.com

默认情况下,Kubernetes允许从任何pod到同一集群中另一个pod的通信。虽然这对于发现服务而言很理想,但没有提供网络分离,不法分子或中招的系统可以无限制地访问所有资源。如果团队使用命名空间作为Kubernetes内部多租户的主要手段,这就成为非常严重的问题。n0G28资讯网——每日最新资讯28at.com

为了控制pod、命名空间和外部端点之间的流量,应使用支持NetworkPolicy API的CNI插件(比如Calico、Flannel或针对特定云的CNI),用于网络隔离。遵照零信任模型,最佳实践是实施默认一概拒绝的策略,阻止所有出入流量,除非另一项策略特别允许。n0G28资讯网——每日最新资讯28at.com

除了网络策略外,Kubernetes还提供两个资源级别的策略:LimitRange和ResourceQuotas。LimitRanges可用于限制单个资源的使用(如每个pod最多有2个CPU),而ResourceQuota控制聚合资源的使用(如在dev命名空间中总共有20个CPU)。n0G28资讯网——每日最新资讯28at.com

RBAC和服务帐户n0G28资讯网——每日最新资讯28at.com

强大的网络和资源策略到位后,下一步是强制执行RBAC授权以限制访问。Kubernetes管理员可以对用户和用户组强制执行RBAC以访问集群,以及限制服务访问集群内外的资源(如云托管的数据库)。另外,企业使用创建时挂载到每个pod的默认服务帐户时须谨慎。pod可能被授予过大的权限,这取决于授予默认服务帐户的权限。如果不需要与Kubernetes服务进行任何特定的通信,将automountServiceAccountToken设置为false,以防止挂载。n0G28资讯网——每日最新资讯28at.com

系统加固n0G28资讯网——每日最新资讯28at.com

鉴于集群已安全,下一步是尽量缩小系统的攻击面。这适用于节点上运行的操作系统以及容器上的内核。选择为运行容器而优化的专用操作系统,如AWS Bottlerocket或GKE COS,而不是选择通用的Linux节点。接下来,充分利用Linux内核安全功能,如SELinux、AppArmor(自1.4起是测试版)及/或seccomp(自1.19起是稳定版)。AppArmor为Linux用户或用户组定义了将程序限制于一组有限资源的权限。一旦定义了AppArmor配置文件,带有AppArmor标注的pod将强制执行这些规则。n0G28资讯网——每日最新资讯28at.com

apiVersion: v1n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
kind: Podn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
metadata:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
name: apparmorn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
annotations:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
container.apparmor.security.beta.kubernetes.io/hello: localhost/k8s-apparmor-example-deny-writen0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
spec:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
containers:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
- name: hellon0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
image: busyboxn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]n0G28资讯网——每日最新资讯28at.com

另一方面,Seccomp限制容器的系统调用。只要底层Kubernetes节点上有seccomp配置文件可用,就可以在securityContext这部分定义seccomp配置文件。n0G28资讯网——每日最新资讯28at.com

apiVersion: v1n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
kind: Podn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
metadata:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
name: audit-podn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
labels:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
app: audit-podn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
spec:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
securityContext:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
seccompProfile:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
type: Localhostn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
localhostProfile: profiles/audit.jsonn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
containers:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
- name: test-containern0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
image: hashicorp/http-echo:0.2.3n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
args:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
- "-text=just made some syscalls!"n0G28资讯网——每日最新资讯28at.com

即使没有seccomp配置文件,用户仍然可以限制容器免受各种权限提升攻击。在安全上下文中,Kubernetes允许配置容器是否可以以特权或root身份来运行,或者将权限升级到root。用户还可以限制hostPID、hostIPC、hostNetwork和hostPaths。所有这些设置都可以通过Pod Security Policy(v1.21中已被弃用)或使用其他开源工具(比如K-Rail、Kyverno和OPA/Gatekeeper)来执行。n0G28资讯网——每日最新资讯28at.com

最后,如果需要额外的安全保证,可以配置自定义的RuntimeClass,以便充分利用硬件虚拟化(如gVisor或Kata)。在节点层面定义RuntimeClass,并在pod定义部分指定它。n0G28资讯网——每日最新资讯28at.com

apiVersion: node.k8s.io/v1 # RuntimeClass is defined in the node.k8s.io API groupn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
kind: RuntimeClassn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
metadata:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
name: myclass # The name the RuntimeClass will be referenced byn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
# RuntimeClass is a non-namespaced resourcen0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
handler: myconfiguration # The name of the corresponding CRI configurationn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
---n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
apiVersion: v1n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
kind: Podn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
metadata:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
name: mypodn0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
spec:n0G28资讯网——每日最新资讯28at.com
n0G28资讯网——每日最新资讯28at.com
runtimeClassName: myclass供应链安全n0G28资讯网——每日最新资讯28at.com

即使集群和系统安全,为保证整个应用程序的端到端安全,也必须考虑到供应链。若是内部开发的应用程序,请遵循创建容器的最佳实践,即使用最小基础镜像以减小攻击面、固定软件包版本,并使用多阶段构建以创建小镜像。此外,定义容器运行所需的非root用户,或使用podman构建无root容器,以限制root访问。n0G28资讯网——每日最新资讯28at.com

下一步,使用开源工具(如Trivy、Clair或Anchore)或者商用工具扫描所有镜像,以查找漏洞。一些工具还允许对镜像进行签名和验证签名,以确保容器在构建和上传过程中未被篡改。最后,定义Kubernetes可以使用ImagePolicyWebhook或上面提到的任何策略执行工具从中提取镜像的白名单注册表。n0G28资讯网——每日最新资讯28at.com

监控、日志和运行时安全n0G28资讯网——每日最新资讯28at.com

至此,我们有了一个供应链严加保护的安全集群,可以生成干净的、经过验证的镜像,有限的访问权限。然而环境是动态的,安全团队需能够响应运行环境中的事件。首先,将readOnlyRootFilesystem设置为true,并将tmp日志文件存储到emptyDir,以此确保容器在运行时不变。除了典型的应用程序监控(如Prometheus/Grafana)或日志(如EFK)存储外,还可以使用Falco或Sysdig来分析系统调用进程和Kubernetes API日志。n0G28资讯网——每日最新资讯28at.com

这两种工具都可以在运行时解析来自内核的Linux系统调用,并在违反规则时触发警报。示例规则包括:权限提升时发出警报,已知目录上检测到读/写事件时发出警报,或调用shell时发出警报。最后,将Kubernetes API审计日志与现有日志聚合和警报工具整合起来,以监控集群中的所有活动。这包括API请求历史记录、性能指标、部署、资源消耗、操作系统调用和网络流量。n0G28资讯网——每日最新资讯28at.com

结语n0G28资讯网——每日最新资讯28at.com

由于云原生系统很复杂,需要采用多层方法来保护Kubernetes环境。建议Kubernetes做好云原生安全的4C:云、集群、容器和代码。首先,加固集群,并遵循云安全最佳实践;其次,严加保护容器,减小攻击面,限制访问,并确保运行时不变;再次,保护供应链,分析代码和容器以查找漏洞。最后,监控运行时的所有活动,将防御机制融入Kubernetes内运行的每一层软件中。n0G28资讯网——每日最新资讯28at.com

参考链接:https://dzone.com/articles/kubernetes-security-guide-high-level-k8s-hardeningn0G28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-119-2135-0.html实现Kubernetes安全加固的六个建议

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 云安全日报220209:Adobe Photoshop和Illustrator发现任意代码执行漏洞,需要尽快升级

下一篇: AI赛车手狂虐人类登Nature!1000台PS4训练,极限超车独霸赛道

标签:
  • 热门焦点
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    Redmi的后性能时代战略发布会今天下午如期举办,在本次发布会上,Redmi公布了多项关于和联发科的深度合作,以及新机K60 Ultra在软件和硬件方面的特性,例如:“K60 至尊版,双芯旗舰
  • 2023年Q2用户偏好榜:12+256G版本成新主流

    2023年Q2用户偏好榜:12+256G版本成新主流

    3月份的性能榜、性价比榜和好评榜之后,就要轮到2023年的第二季度偏好榜了,上半年的新机潮已经过去,最明显的肯定就是大内存和存储的机型了,另外部分中端机也取消了屏幕塑料支架
  • 量化指标是与非:挽救被量化指标扼杀的技术团队

    量化指标是与非:挽救被量化指标扼杀的技术团队

    作者 | 刘新翠整理 | 徐杰承本文整理自快狗打车技术总监刘新翠在WOT2023大会上的主题分享,更多精彩内容及现场PPT,请关注51CTO技术栈公众号,发消息【WOT2023PPT】即可直接领取
  • 谷歌KDD'23工作:如何提升推荐系统Ranking模型训练稳定性

    谷歌KDD'23工作:如何提升推荐系统Ranking模型训练稳定性

    谷歌在KDD 2023发表了一篇工作,探索了推荐系统ranking模型的训练稳定性问题,分析了造成训练稳定性存在问题的潜在原因,以及现有的一些提升模型稳定性方法的不足,并提出了一种新
  • 新电商三兄弟,“抖快红”成团!

    新电商三兄弟,“抖快红”成团!

    来源:价值研究所作 者:Hernanderz 随着内容电商的概念兴起,抖音、快手、小红书组成的“新电商三兄弟”成为业内一股不可忽视的势力,给阿里、京东、拼多多带去了巨大压
  • 一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    作者:Hiu 来源:互联网品牌官01 擦边少女空降热搜,幕后推手曝光被网友誉为“纯欲天花板”的女网红井川里予,近期因为一组哥特风照片登上热搜,引发了一场互联网世界关于
  • 大厂卷向扁平化

    大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 亲历马斯克血洗Twitter,硅谷的苦日子在后头

    亲历马斯克血洗Twitter,硅谷的苦日子在后头

    文/刘哲铭  编辑/李薇  马斯克再次挥下裁员大刀。  美国时间11月14日,Twitter约4400名外包员工遭解雇,此次被解雇的员工的主要工作为内容审核等。此前,T
Top