面向 DevOps 的 Kubernetes 最佳安全实践
Hello folks,我是 Luga,今天我们来分享一下与云原生安全相关的话题,即面向“DevOps”的 Kubernetes 最佳安全实践。
如今,DevOps 和云原生理念事实上已成为各大企业和组织的标准实践。因此,软件开发人员及运维人员越来越希望利用这些更新的计算范例来加快上市时间,同时保持高可用性并降低资源成本。Kubernetes 就是这样一种平台,组织希望采用这种平台来加快软件交付速度。
然而,不幸的是,在没有适当安全措施的情况下采用 Kubernetes 会增加我们业务的网络攻击风险。容器服务的分布式特性使我们的环境面临更多的攻击窗口。但是,若我们通过适当的安全协议和最佳实践,那么可以避免所构建的 Kubernetes Cluster 和应用程序免受这些潜在威胁,并确保我们的核心数据处于安全和机密状态。
(相关资料图)
—1—
Kubernetes 安全重要性
据 ionir 的一项调查结果显示,大约 60% 的受访者正在或已經在 Kubernetes 平台上运行不同種類的应用程序,50% 的受访者表示他们计划在未来 12 个月内也將其業務遷移至 Kubernetes 平台。此外,Red Hat 的《2022 年 Kubernetes 安全状况》调查报告指出,在 Kubernetes 部署方面,78% 的受访者选择 DevSecOps 作为他们的首選解决方案。
在深入探讨 Kubernetes 安全性的细节之前,让我们先看看这些安全协议背后的概念。众所周知,Kubernetes 之所以能够如此安全,无非是因为它基于与主机操作系统完全隔离的 Linux 容器环境。即意味着如果攻击者想要尝试破坏我们所构建的 Kubernetes Cluster 平台,他们将只能够访问容器,而无法进入主机操作系统的其他部分。基于这种隔离特性,使得攻击者需要单独破坏集群中运行的每个容器才能访问或修改敏感数据,因此,导致攻击者在未经授权的情况下访问 Kubernetes Cluster 内的数据变得更加困难(如果不是不可能的话)。
诚然, Kubernetes 为现代组织提供了诸多好处,并带来了较大收益,然而,我們需要注意的是,作为一种软件产品,这也意味着 Kubernetes 在某种特定的场景中可能会遭受到网络安全威胁。此外,再加上 Kubernetes 开源特性,使得它可能比商业软件更容易受到更多安全风险的影响。因此,在我们的环境中引入 Kubernetes 之前,我们应当确保有一个安全策略来保护我们的数据免受网络威胁。否则,攻击者可能会在未经授权的情况下访问我们的敏感数据并破坏所规划的业务流程,从而导致重大的经济及名誉受损。
—2—
Kubernetes 安全最佳实践
接下来,笔者将为大家分享一下 Kubernetes Cluster 安全的一些最佳实践,主要涉及如下不同层面。
使用可信容器镜像
1、容器 Image 的选型
首先,确保我们环境使用的是受信任的容器 Image。在实际的项目活动中,基于大家的“良好”习惯,可能会在网上随意 Pull 所想构建的应用镜像,然而,这些镜像的来源未知,可能会导致将来构建好的容器存在各种风险及漏洞。因此,在团队技术实力不允许的条件下,我们还是尽量使用受信任的开源镜像,毕竟,这些镜像经过安全扫描或认证,降低了在容器中引入恶意代码注入的风险。
当然,若团队技术实力比较雄厚或是行业的龙头,有自己的标准体系,那么,可以基于自身的业务属性进行镜像的分级构建,从所依赖的底层 OS、中间件、第三方支撑组件以及到应用本身等。
2、权限的赋予
此外,在配置容器时应遵循最小权限原则。这意味着尽量减少我们所构建的容器比他们实际需要更多的访问权限。毕竟,这样做会增加违规的风险,因为恶意行为者如果没有权限就无法获得对操作系统的完全访问权限。
权限管理
在实际的系统维护活动中,如何能够减轻资源的管理成本,乃是保护 Kubernetes Cluster 的关键的第一步。许多组织选择为需要集群范围权限的 Kubernetes 创建有限的服务账户。本质上就是为 Kubernetes 中需要集群范围权限的每个组件创建一个特殊的用户帐户以进行资源的合理维护。
Kubernetes 有两类用户:
1、集群用户用于集群的日常管理。他们可以创建 Pod 和 Services,但无权修改 Kubernetes API。
2、经过身份验证的用户使用 Kubernetes API 进行身份验证,并拥有对 Kubernetes API 的完全访问权限。
Kubernetes Cluster 观测
基于云原生生态环境,在实际的业务场景中,我们必须持续性观测所构建的 Kubernetes 工作负载和环境是否存在恶意的活动,以防止这些活动带来以下安全风险及威胁,具体如下:
1、未经授权用户的访问:我们应该能够监控访问所构建的 Kubernetes Cluster 的用户的资源信息,例如,IP 地址等。理想情况下,这应该扩展到容器本身。这使我们可以查看访问的容器的请求是否是授权用户。
2、API 滥用:若我们正在使用 Kubernetes 的 API,那么,应该监控 API 调用以确保恶意行为者不会滥用我们的 API 来破坏所构建的 Kubernetes Cluster。这可能包括监控来自未授权 IP 地址的 API 调用、失败的 API 调用或比预期时间更长的 API 调用等。
3、数据泄露:除上述所述的 2 种风险之外,基于业务特性,我们还应该监控 Kubernetes Cluster 内的数据泄露问题,例如,可能涉及异常文件活动的监视、对敏感数据的意外和随机访问或异常网络流量。
CI/CD 中集成安全工具
Kubernetes 安全工具/平台(例如 Kubescape、Datree、Trivy 等)可以帮助我们发现所编写的 Yaml 文件和 Cluster 中的安全问题和漏洞。运维、开发人员需要有一种方法将这些工具集成到 CI/CD 管道中。
引入 GitOps
基于 GitOps ,使得我们在不同的场景中能够轻而易举地解决各种安全问题。以 Git 作为主要工具,一切都可以追溯,让观测变得更为容易。将 CI/CD 工具链与 GitOps 方法结合使用对于确保 Kubernetes 部署安全并在整个组织中维护标准方法至关重要。让我们深入了解如何实现它。
—3—
Kubernetes 安全扫描工具
针对上述所述的 Kubernetes 安全工具/平台,让我们来了解一下每个工具的作用以及它在管道中所能检测到的具体内容。
Kubescape
作为一个 K8s 开源工具,Kubescape 能够提供 Kubernetes 单一管理平台,包括风险分析、安全合规、RBAC 可视化工具和图像漏洞扫描。Kubescape 工具能够扫描 K8s 集群、YAML 文件和 HELM 图表,根据多个框架(如 NSA-CISA、MITRE ATT & CK®)检测错误配置、软件漏洞和早期 RBAC(基于角色的访问控制)违规 CI/CD 管道,即时计算风险评分并显示随时间变化的风险趋势。
从本质上讲,Kubescape 主要扫描 Kubernetes Cluster 并展示不符合安全标准的 YAML 文件,具体如下所示:
+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| SEVERITY | CONTROL NAME | DOCS | ASSISTANT REMEDIATION |+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| High | Apply Security Context to Your | https://hub.armosec.io/docs/cis-5-7-3 | spec.template.spec.containers[0].securityContext.readOnlyRootFilesystem=true || | Pods and Containers | | spec.template.spec.containers[0].securityContext.runAsNonRoot=true || | | | spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation=false || | | | spec.template.spec.containers[0].securityContext.capabilities.drop=NET_RAW || | | | spec.template.spec.containers[0].securityContext.seLinuxOptions=YOUR_VALUE || | | | spec.template.spec.containers[0].securityContext.seccompProfile=YOUR_VALUE |+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| Medium | Allow privilege escalation | https://hub.armosec.io/docs/c-0016 | spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation=false |+ +----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| | …… | | spec.template.spec.containers[0].securityContext.seLinuxOptions=YOUR_VALUE || | | | spec.template.spec.containers[0].securityContext.capabilities.drop[0]=YOUR_VALUE |+ +----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| | Non-root containers | https://hub.armosec.io/docs/c-0013 | spec.template.spec.containers[0].securityContext.runAsNonRoot=true || | | | spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation=false |+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| Low | Immutable container filesystem | https://hub.armosec.io/docs/c-0017 | spec.template.spec.containers[0].securityContext.readOnlyRootFilesystem=true |+ +----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| | Label usage for resources | https://hub.armosec.io/docs/c-0076 | metadata.labels=YOUR_VALUE || | | | spec.template.metadata.labels=YOUR_VALUE |+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+
Trivy
作为多合一的开源安全扫描工具,Trivy 是当下云原生生态领域中最流行的开源安全扫描器。基于其可靠、快速且易于使用特性,使得 Trivy 在漏洞查找和 IaC 错误配置、SBOM 发现、云扫描以及 Kubernetes 安全风险等不同场景下广泛应用。
基于此优秀特性,Aqua Trivy 也成为许多流行项目和公司的 DevOps 和安全团队的默认选择扫描仪。用户受益于定期的、高质量的贡献和创新的功能请求。同时,Aqua Trivy 也是 GitLab 代码库、Artifact Hub 以及 Harbor 镜像仓库的默认扫描器。除此之外,Aqua Trivy 也已成为 RedHat 认证的扫描组件,其影响力甚广。
其实,从本质上而言,Trivy 则主要扫描我们 Kubernetes Cluster 工作负载中的漏洞情况,具体如下所示:
=====================Total: 1 (HIGH: 1, CRITICAL: 0)┌──────────┬────────────────┬──────────┬───────────────────┬───────────────┬───────────────────────────────────────────────────────────┐│ Library │ Vulnerability │ Severity │ Installed Version │ Fixed Version │ Title │├──────────┼────────────────┼──────────┼───────────────────┼───────────────┼───────────────────────────────────────────────────────────┤│ httplib2 │ CVE-2021-21240 │ HIGH │ 0.12.1 │ 0.19.0 │ python-httplib2: Regular expression denial of service via ││ │ │ │ │ │ malicious header ││ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2021-21240 │└──────────┴────────────────┴──────────┴───────────────────┴───────────────┴───────────────────────────────────────────────────────────┘Dockerfile (dockerfile)=======================Tests: 17 (SUCCESSES: 16, FAILURES: 1, EXCEPTIONS: 0)Failures: 1 (HIGH: 1, CRITICAL: 0)HIGH: Last USER command in Dockerfile should not be "root"
Datree
作为一个开源扫描器,Datree 主要用于检查 Kubernetes Cluster 文件资源是否存在错误配置。通常情况下,Datree 能够通过阻止不符合所预设定的策略的资源来防止配置错误。基于 Datree 内置的各种规则,我们无须担心自己编写策略。毕竟,其内置了多个领域的多种不同规则,主要涉及容器、工作负载、CronJob、网络、安全、弃用、Argo、NSA-hardening-guidelines 等。
除此之外,Datree 还能够用于命令行、Admission Webhook,甚至作为 Kubectl 插件来针对 Kubernetes Cluster 对象运行策略进行扫描。
与上述 2 种不同工具相比而言,Datree 显示我们的 Kubernetes 清单文件中是否存在任何错误配置。具体如下所示:
> File: /Users/leonli/traefik_values.yml[V] YAML validation[X] Kubernetes schema validation❌ k8s schema validation error: error while parsing: missing "kind" keyAre you trying to test a raw Helm file? To run Datree with Helm - check out the helm plugin README:https://github.com/datreeio/helm-datree [?] Policy check didn"t run for this file(Summary)- Passing YAML validation: 1/1- Passing Kubernetes (1.20.0) schema validation: 0/1- Passing policy check: 0/1+-----------------------------------+------------------------------------------------------+| Enabled rules in policy "Default" | 21 || Configs tested against policy | 0 || Total rules evaluated | 0 || Total rules skipped | 0 || Total rules failed | 0 || Total rules passed | 0 || See all rules in policy | https://app.datree.io/login?t=mMcCiuo14nt2DZx1E7ZhA8 |+-----------------------------------+------------------------------------------------------+
作为部署和扩展应用程序的一种方式,Kubernetes 和容器化正迅速流行起来。然而,随着 DevOps 的普及,安全威胁也随之增加,尤其是在团队没有始终如一地遵循最佳实践的情况下。毕竟,安全是一件有趣的、难以捉摸的事情。
诚然,Kubernetes 是一种用于交付容器化应用程序的流行技术,但扩展 Kubernetes 环境仍具有挑战性,每一个新部署的容器都会增加攻击面。要有效处理 Kubernetes 安全性,我们必须对每个托管容器和应用程序请求具有完整的可见性。Kubernetes 擅长编排,但不擅长安全。对于所有部署,必须采用适当的部署架构和安全最佳实践。
Adiós !
··································
Hello folks,我是 Luga,一个 10 年+技术老司机,从 IT 屌丝折腾到码畜,最后到“酱油“架构师。如果你喜欢技术,不喜欢呻吟,那么恭喜你,来对地方了,关注我,共同学习、进步、超越~
您的每一个点赞、在看及分享,我都认真当成了喜欢 ~
标签:
为您推荐
广告
- 年近50岁书记出轨36岁已婚女子,两人多次开房,被网络实名举报!
- 闻汛而动!暴雨中广州警方驰援解救受困群众
- 博文管理学院官网 博文管理
- 郑钦文美网第四轮比赛什么时候打
- 周五美联储隔夜逆回购协议(RRP)使用规模为1.525万亿美元
- 不为人知下一句是什么(不为人知为己知什么意思)
- 复旦微电:上海晔莘控制的公司具有表决权的股份比例增加6.56%
- 上海哪个医院看尖锐湿疣好
- 内蒙古鄂尔多斯通报高压气体泄漏事故最新情况:已成立调查组彻查事故原因
- 8月乘用车零售量为192万辆
- 外交部发言人就美方在东亚峰会上无理指责中方答记者问
- IPO参考:第四范式通过港交所聆讯 拓邦新能、津同仁堂审核终止
- 还有3天!黄石网络安全宣传盛宴即将“开席”
- 瑞丰银行:董事长章伟东辞任 选举吴智晖为董事长
- 准备就绪!杭州亚运会边检专用通道明起正式启用
- 今日宁波学车多少钱呀(宁波学车要多少钱)
- 我国明年将发射2艘“神舟”和2艘“天舟”
- 直播推荐化妆品“专研抗老” 北京婼薇乐护肤品公司被罚20万
- A股VR音视频板块上市公司有哪些?(2023/9/1)
- 全国技能大赛 漯河医专再传捷报
- 1记者:帕尔默体检没问题,切尔西将在明天官宣他加盟
- 2插到里面下面图片
- 3投教大讲堂|杨德龙谈价值投资:如何选择值得一生拥有的好企业?
- 4旅游搭子“费用全包”涉黄?小红书回应
- 5白衣观音神咒的威力和作用(白衣观音神咒全文)
- 6商务部:近期将陆续出台促进新能源汽车贸易合作等专项政策措施
- 7山东郓城:一碗粥情满一座城
- 8广东中山官宣:即日起施行“认房不认贷”政策
- 9今年前七个月物流运行平稳 结构优化明显
- 10中国银河给予立高食品推荐评级,大B端生意彰显弹性
- 1中国一汽物流有限公司王少民被查
- 2合肥空港保税物流中心外贸增长超五成
- 3严重或危及生命!亚洲多国流行登革热,海关紧急提醒
- 4圣诺医药-B(02257.HK):戴晓畅获调任为集团首席战略官
- 5datagridview绑定list(datagridview绑定的是类的名字 如何处理)
- 6多次被行政处罚,上半年净利润却暴增271%,温州银行究竟靠的什么?
- 7一汽解放上半年研发投入12.48亿元 加速新能源、智能车全面布局
- 8数读 | 长城汽车上半营收近700亿元,平均单车售价达13.61万元
- 9第18届中国国际山地户外运动公开赛(重庆·武隆)暨公开赛20周年庆典系列活动将于9月7日至11日在武隆举行
- 10汇洲智能:中科华世的图书库房位于涿州市,部分图书遭受损失。目前公司各项生产经营活动均正常有序进行
广告
- 【关注】遵义市260名大学生获得“习酒·我的大学”奖学金
- 沈阳燕都医院是正规医院吗?是骗人的吗?
- 谢长廷“媚日”过头,沈富雄:听了很难过
- 2023厦门(思明)音乐季落幕 助力打造“文化中心、艺术之城、音乐之岛”
- 入职体检在线预约 员工入职体检项目
- 暑假,那些关于夏天的美好记忆
- 时政纪录片丨大道众行远 携手启新程——习近平主席出席金砖国家领导人第十五次会晤并对南非进行国事访问纪实
- 今日相见不如不见的短语(相见不如不见是什么意思)
- 汤普森想和字母哥打球!
- 更济宁|原创MV《尼好戏剧 你好济宁》
- 图解世荣兆业中报:第二季度单季净利润同比增100.91%
- 航发动力2023年上半年净利7.25亿 同比增加11.32%
- 对公共政策效果进行评估时所遵循的客观尺寸和准则是_对公共政策效果进行评估时所遵循的客观尺度和准则是什么
- 即将进入24小时警戒线!强降雨持续,浙江这些地方灾害风险较高
- 2023成都车展|旗舰豪华轿车捷尼赛思G90上市,以传奇之姿,释至臻之境
- “2023年全球乳业20强”榜单发布 伊利居全球乳业五强
- 国金证券:给予洋河股份买入评级
- 广东6市市级国土空间总体规划获批
- 政策利好推动股指期货集体收涨
- 美股“七姊妹”热度不减!对冲基金对其持有敞口创新高