Kubernetes是一个使用 Kubernetes 集群大规模管理和部署容器的开源平台,已成为企业基础设施的基石。这种流行度的增长也意味着 Kubernetes 也成为了攻击者的高价值目标。基于 Kubernetes 的漏洞利用,例如Tesla 的 Cryptojacking 攻击和Siloscape 恶意软件,无可否认地表明了这一现实。由于 Kubernetes 现在是企业应用程序基础设施的基本组成部分,也是黑客的常见攻击点,因此保护 K8s 部署必须成为企业的重中之重。
Kubernetes 安全 VS 应用程序安全最佳实践
在许多情况下,Kubernetes 安全最佳实践与一般网络和应用程序安全最佳实践保持一致。例如,静态和传输数据的加密是任何生产环境(K8s 或其他)中的赌注。同样,必须正确处理密码和 API 密钥等敏感数据。在大多数情况下,企业 DevSecOps 团队都知道这些基本的最佳实践,并且很好地利用了它们。在这里,我们将超越基础知识,看看 7 个 Kubernetes 安全最佳实践,它们可以将企业安全提升到一个新的水平。
#1。将 K8s 状态管理和可见性放在首位
在高层次上,K8s 状态管理和可见性是关于能够有效地做两件事:
- 安全地配置所有 K8s 集群和容器工作负载。
- 对企业内的所有工作负载和配置具有持续的粒度可见性。
当然,实现这些目标说起来容易做起来难,尤其是在多云环境中。那么,企业安全团队具体可以做什么来优化他们的 Kubernetes 安全态势和可见性?我们将在以下最佳实践中介绍其中的许多步骤。但是,先决条件是组织认同,以便在整个企业中优先考虑 K8s 安全性。
以下是企业可以采取的一些最有影响力的步骤,以开始他们在高水平上提高 K8s 安全性的旅程。
- 使用行业最佳实践强制配置 Kubernetes 集群:虽然每个部署都有细微差别,但所有企业都可以参考定义明确的容器安全标准来强化其 K8s 集群和容器工作负载。例如,NIST 800-190 应用程序容器安全指南 ( PDF ) 和CIS 基准提供专家指导,是企业可以遵循的优秀基准。利用这些标准可以大大改善整体企业安全态势。
- “左移”和自动化:手动配置是疏忽和人为错误的秘诀。“左移安全”,即在开发过程中尽早集成安全的过程,本质上有助于限制手动配置并鼓励安全最佳实践的自动化。因此,DevSecOps 团队可以将 Kubernetes 的安全最佳实践构建到 CI/CD 管道中,以确保它们得到一致应用并无缝扩展。
- 实施微分段:容器和 Kubernetes 集群的微分段有助于在整个企业基础架构中实施零信任原则,并在发生违规时限制横向移动。因此,跨企业工作负载实施微分段策略对于优化整体安全态势至关重要。
- 在整个企业中实施正确的注释和标签:Kubernetes 标签决定了策略和对象的分组方式,甚至工作负载的部署位置。因此,确保在整个企业集群中使用一致的标签是保持强大安全态势的一个重要方面。同样,执行需要对工作负载进行特定注释的策略并指定污点和容忍度以限制可以部署工作负载的位置是 DevSecOps 团队的必要战术步骤。
- 利用持续监控:时间点安全审计、渗透测试和漏洞扫描已经不够了。为了跟上不断迭代的威胁和网络边界,企业必须持续监控和扫描 K8s 集群中的威胁、入侵和不安全配置。
#2。实施形象保证
容器镜像是 K8s 工作负载的构建块。不幸的是,不安全的容器镜像是一种普遍的威胁。例证:2020 年的一项分析发现 Docker Hub 上超过一半的图像存在严重漏洞。因此,确保K8s 集群中使用的图像是安全的并从可信来源提取是重要的 Kubernetes 安全最佳实践。
要实施形象保证,企业应利用安全工具:
- 在开发和运行时扫描图像。
- 防止部署不符合策略的容器。
- 解构图像层并扫描图像中的包和依赖项。
- 检查图像是否存在恶意软件、漏洞和不安全的配置,例如明文形式的密码和加密密钥。
#3。使用准入控制器微调策略
Kubernetes API 服务器是企业必须防止不安全或恶意请求的攻击面。准入控制器是旨在帮助做到这一点的代码片段。准入控制器在授权后但在持久化之前对 API 调用进行操作,因此它们可以帮助防止在出现人为错误、配置错误或帐户被盗时对集群进行修改。借助准入控制器,企业可以定义微调策略来限制各种操作,包括 pod 更新、图像部署和角色分配。
#4。使用 WAAP 保护 Web 应用程序和 API
传统的 Web 应用程序防火墙 (WAF) 和入侵检测与防御系统 (IDS/IPS) 不够灵活或不够智能,无法跟上现代 Web 应用程序和 API 面临的威胁。为应对机器人程序和零日攻击等威胁,企业应使用 Web 应用程序和 API 保护 ( WAAP ) 解决方案。
WAAP 在设计时考虑了现代云原生应用程序,并提供以下功能:
- API 和微服务保护。
- 内置下一代 Web 应用程序防火墙 (NGWAF)。
- 僵尸程序和 DDoS 保护。
- 高级速率限制可减少误报。
#5。使用智能运行时保护解决方案
K8s 安全性最艰难的平衡之一是识别恶意行为并保护工作负载免受实时攻击,同时限制误报。为了获得正确的平衡,企业需要使用多个数据点来识别和减轻威胁的智能解决方案。这需要一种三管齐下的运行时保护方法,包括:
- 运行时分析:每个 K8s 集群都是不同的,性能基线对于检测恶意行为很重要。现代运行时保护解决方案执行运行时分析,以建立网络流、文件系统活动和运行进程的正常行为基线。这些基线可以帮助威胁检测引擎根据上下文检测和缓解潜在威胁,改善整体安全状况并限制误报。
- 恶意行为签名检测:一个强大的已知恶意行为数据库使安全工具能够快速准确地检测常见威胁。通过将观察到的行为与签名数据库进行比较,可以在众所周知的威胁有机会破坏网络之前将其遏制。
- 反恶意软件引擎:智能反恶意软件引擎和在运行时持续扫描工作负载是运行时保护的关键组件。反恶意软件引擎是运行时安全的主力,企业应持续扫描所有工作负载以尽快检测威胁。
#6。投资现代 K8s 入侵防护
多年来,IPS/IDS 技术一直是企业安全的重要组成部分,而且随着容器和 Kubernetes 的兴起,这一点也没有改变。从根本上说,检测可疑行为并标记或阻止它的工具将始终是企业安全的基石。发生变化的是 IPS/IDS 必须保护的资产的动态特性以及现代企业面临的威胁。
适用于 Kubernetes 的现代入侵保护解决方案需要能够执行以下功能:
- 来自 K8s pod 的内部端口扫描。
- 分析与帐户、应用程序流量和 K8s 集群操作相关的数据。
- 检测加密挖掘等现代威胁。
此外,现代 IPS/IDS 需要在多云环境中运行,以保护部署在任何地方的 K8s 集群。
#7。强调可视化和定期报告
要了解其安全状况的当前状态,企业必须能够访问占其整个应用程序基础架构的最新报告和可视化(例如仪表板)。没有一套适合所有企业需要的 KPI 和报告,因此定制是有效解决方案的一个重要方面。然而,任何企业级 K8s 安全可视化和报告解决方案都应该包括来自所有云的聚合数据、向下钻取以显示更精细细节的能力,以及资产和警报的单一管理平台概览。
在评估可视化和报告工具时,不要忽视仪表板和高级概览的重要性。许多报告工具面临的最大挑战之一是信息过载和缺乏清晰度。信息太多,以至于在企业层面变得不连贯。通过正确的高级可视化和报告,企业可以快速有效地评估其整体容器安全状况,并了解他们需要首先关注哪些发现。