Kubernetes 安全防护终极指南_第1页
Kubernetes 安全防护终极指南_第2页
Kubernetes 安全防护终极指南_第3页
Kubernetes 安全防护终极指南_第4页
Kubernetes 安全防护终极指南_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

终极指南Kubernetes如何保护Kubernetes借助容器和Kubernetes等工具,企业能够在应用程序部署的诸多方面实现自动化,继而获得巨大的业务收益。但这些新的部署环境与传统环境一样,容易受到黑客和内部攻击者的攻中断等形式的攻击。更麻烦的是,公有云中的Kubernetes等新型工具和技术以及托管容器服务本身就将为攻击企业的重要资产提供可乘之机。继近期Kubernetes的中间人漏洞和Tesla漏洞事件之后,机针对容器技术发起攻击,预计这类事件将在未来几个月乃的严重漏洞都会在构建阶段、注册表和生产过程中对容器镜像工具来保护单片应用程序,但容器可能使东西向流量或内部流333.攻击面扩大。每个容器中都含有可能被利用的不同攻击面和漏洞。此外,还必须将Kubernetes和Docker等编排工具引入的其他攻击面考虑在内。4.自动化安全防护才能满足发展需要。以往的安全防护模型和工具无法应对不断变化的容器环境。考虑到Kubernetes自动化的性质,容器和Pod从出现到消失可能只有几分钟甚至几秒的时间。可能包含新网络连接的应用程序行为必须即时纳入强制安全策略中。我们需要通过新一代自动化安全工具来保护容器安全,在流水线前期专用接口有限,默认情况下容器比传统应用程序更安全,但这种观点成立:网络攻击者和公共部门攻击者使用旧有手段攻击没有漏洞且已锁定所有代码和基础设施。但我们清楚,这在现实中是不可能的。而且即便如此,也仍击进行监控。攻击事件屡次发生,时间和经验都表明,攻击者的手段总是能够•团队是否具备能在流水线前期甚至构建阶段消除重大漏洞(具有可用修补程序)的相•团队对正在部署的KubernetesPod是否具有可见性?例如,是否了解应用程序Pod•团队能否确定每个Pod的行为正常与否?•当内部服务Pod或容器开始在内部扫描端口或尝试随机连接外部网络时,团队如何44d•团队能否像对于非容器化部署一样全面查看和检查网络连接?例如7层网络?•如果面临潜在攻击,团队能否监控Pod或容器内部的活动情况?•团队是否曾通过检查Kubernetes集群的访问权限来确定潜在的内部攻击载体?•团队是否拥有锁定Kubernetes服务、访问控制(RBAC)和容器主机的检查清单?•如果具备合规策略,如何在运行时执行以确保合规性?例如,确保内部Pod通信加•在对应用程序通信进行故障排除或记录取证数据时,如何定位相关Pod并抓取日志?这篇指南将重点围绕自动化运行时安全防护,介绍如何实现Kubernetes和容器部署的安全。首首先必须要了解Knperuetes的运行机制和55Kubernetes的运行机制如果还不熟悉Kubernetes,可以先来了解下列主要概念和术语。Kubernetes是一种能够自动化部署、更新和监控容器的编排工具。RedHatOpenShift、aaSGoogleCloud等所有主流容器管理和云平台全部支持Kubernetes。下面是一些需要了解的Kubernetes•主节点:管理Kubernetes工作节点集群和在节点上部署Pod的服务器。节点可以•工作节点:也称为从属节点或下属节点,这些服务器通常运行应用程序容器和代理等其他Kubernetes组件。•POD:Kubernetes中的部署和可寻址性单元。每个Pod都拥有独立的IP地址,其中可能包含一个或多个容器(通常为一个)。•服务:为其底层Pod和请求充当代理的服务功能,可在各复制Pod之间进行负载均衡。服务还可通过定义外部IP或节点端口来为一个或多个Pod提供外部访问端66用于管理Kubernetes集群的主要组件包括API服务器、Kubelet和etcd。Kubernetes还支持基于浏览器的管理控制台——Kubernetes仪表盘(可选)。以上所有组件都是潜在的攻击目标。例如,Tesla漏洞事件就是一个未被保护的Kubernetes控制台被攻击,进而被安Kubernetes基于角色的访问权限控制(RBAC)可实现资源的精细化管理。它能够提供对应用程序工作负载和Kubernetes系统资源的访问权限。OpenShift等管理工具可以添加其他功能,但需要依赖或使用原生Kubernetes基本安全控制。通过妥善配置访问权限控制来防止未经授权访问API服务器或应用程序工作负载等Kubernetes组件的行为至关重要。Kubernetes的主要网络连接概念是:为每个Pod分配独立的可路由IP地址。Kubernetes (实际上是其网络插件)负责在内部将主机之间的所有请求路由至相应的Pod。KubernetesPod的外部访问权限可通过服务、负载均衡器或入口控制器来提供,Kubernetes会将其路由至相应的Pod。Kubernetes使用iptables来控制Pod(和节点)之间的网络连接,以及处理大量的网络连Kubernetes的IP地址。而PodIP且其容器能够侦听原生端口,因此端口映射得到了大大简化(大部分被省略)。鉴于所有这类Overlay网络连接都由Kubernetes动态处理,所以监控网络流量的难度极大,安全防护更是难上加难。以下是Kubernetes网络连接运行方式的示例。77POD11src:1dst:93POD11src:1dst:93calib10557e951dRoutingtable:/24via1devtunIO1devcalib10557e961deth0:0tunI0:devtunIOIPIPtunnel:src:0dst:1PODPOD293src:1dst:93calib0d7763386daRoutingtable:/24via03devcali0d7763386daeth0:1tunI0:3上图所示为数据包在不同节点的Pod之间遍历的方式。示例中使用的是CalicoCNI网络插件。每个网络插件对于PodIP地址(IPAM)的分配、iptables规则和跨节点网络连接的配置略。1.当CNI网络插件收到来自Kubernetes的容器部署通知时,它负责指派IP地址,并在节点上配置相应的iptables和路由规则。PodPodIP或Pod2的服务IP作为目标位置向Pod2发送一个数据包。 的是Pod2的IP。)3.如果使用服务IP,则kube-proxy会执行负载均衡和DNAT,并将目标IP转换为远odIP由位置。A.如果目标位置是相同节点上的本地Pod,则数据包将直接被转发至Pod的接口。Overlay网络还是三层网络路由机制。6.远程节点上的路由表会将数据包路由至目标位置Pod2。NAT进行)和封装发生,并被网络插件管理,检查和监控网络流量中的攻击和88Kubernetes漏洞和攻击载体针对Pod上运行的Kubernetes容器发起的攻击可能来自外部网络,也可能来自内部人员,行的其他Pod,以进行探测或发起攻击。尽管三层网络控制可通过建立IP地址白名单提供一定的保护,但通过受信任的IP地址发起的攻击只有通过七层网络筛选才能3.POD数据外泄:攻击者往往通过多种手段实现数据窃取,其中可能包括在连接至命令与控制服务器的Pod上设置反向shell,以及通过网络隧道来隐藏保4.通过被入侵的容器运行恶意进程:容器运行的进程通常比较有限,并且具有明确的定义,但被入侵的容器可能会启动挖矿软件等恶意进程,或网络端口扫描等可疑进程,或者注入未曾出现过的二进制代码(进程攻击)。4east-west5 6312pod4east-west5 6312podHOSTWORKERNODES995.入侵容器文件系统:攻击者可能通过安装存在漏洞的库/数据包来攻击容器,也可能DirtyCowLinux内核漏洞升级至root权限。命令与控制攻击准备攻击手段命令与控制攻击准备攻击手段攻击者天、几周甚至实施安装外泄侦查实施安装外泄侦查其中包含的活动需要多层安•网络检查:攻击者通常会经由网络连接进入,并通过网络扩大攻击。最初,网络为攻器:通过监控各个容器中的进程和系统调用活动,即可确定可疑进程是否已开始,或者攻击者是否已尝试升级权限并击破容器,从而检测出应用程序或系统漏洞攻击。•主机监控:在这方面,传统主机(端点)安全防护能够用于检测针对内核或系统资源的攻击。但主机安全防护工具必须具有Kubernetes和容器意识,以确保全面覆盖。例如,新的主机可以动态进入Kubernetes集群,并且必须包含由Kubernetes管理除了上述威胁载体,攻击者还可能尝试入侵KubernetesAPI服务器或控制台等部署工具,从运行的Pod的控制权限。容器的访问权限,黑客也可能尝试攻击API服务器或Kubelets等Kubernetes资源。例如,在对Tesla的攻击中,黑客攻陷了一个不受保护的控制通过盗取/盗用API服务器令牌或冒充授权用户身权。Kubernetes发布了可通过Kubelet、etcd访问权限或服务令牌实现的多种权限升级机以Kubernetes中间人漏洞为例,这是一种相对较新的恶意安全防护问题,已经引起安全专家的广泛关注,但更多问题还将继续涌现。针对这类漏洞,攻击者可以利用内置服务定义,安全防护安全防护分析描程序隔离保护Docker虚拟光驱测制升级检测理DockerBench防护与网络连接集和事件记录护SELinux、AppArmor洞扫描控,例如:内容信任在介绍运行时安全防护如何防御中间人和其他攻击行为之前,我们先来回顾一下如何为整个CI/CD流水线集成安全防护。在构建阶段,代码和镜像分析能够在批准部署镜像之前消除已知漏洞和违规,具有非常重要在交付阶段,启用适当的访问权限控制并限制镜像部署对于避免生产线后期有意或意外引入在运行阶段,适当锁定准备中的主机和编排工具是一种良好且必要的安全机制,但实时监控尽管安全团队一直期望能够拥有提供端到端安全防护的“神器”,但生产线中包含的层次和阶段众多,没有一款工具可以面面俱到。总地来说,RedHatOpenShift、DockerEE、平台可提供针对构建、交付和预部署阶段的安全防护工具和功能,而一些独立的安全服务供应商可提供包含运行时安全防护的端到端工具。运行时安全防护工具必须善于检测和抵御基CI/CD生产线安全防护应在CI/CD生产线中尽早集成安全防护措施,多数企业选择在开发者构建容器镜像的阶段着手。在镜像进入生产线的下一阶段之前,开发者通过即时扫描可以确定是否存在必须修复的•如何在生产线中执行和触发扫描?Jenkins等多数工具都具有能够触发扫描的插件或•评估和修复漏洞的批准流程是什么?应该通知哪些人员来进行审核?•在要求修复时应当采用什么标准?这种标准是否基于严重(CVSS分数阈值较高)•在什么情况下应放弃一项构建任务?在重大漏洞具有可用修补程序时放弃,在没有可•对违规是否应设置宽限期和/或例外情况(豁免)?例外情况适用于哪些进程?•如果在生产线后期发现漏洞,例如在生产阶段的注册表或正在运行的容器中,是否应除了在CI/CD生产线中集成扫描,其他安全防护措施包括:•生产线工具和注册表访问权限控制,旨在降低内部滥用行为的可能性。•准入控制,旨在预防漏洞或未经授权的镜像部署,或防止其在生产线中向前流动。•针对开源组件和代码扫描工具执行许可证控制等其他企业软件管理策略。Kubernetes节点生产准备部署应用程序容器之前,应锁定Kubernetes工作节点的主机系统。下面介绍的是锁定主机骤建议•使用命名空间•限制Linux功能•启用SELinux•采用Seccomp•配置Cgroups•使用R/O装载•使用最小化的主机操作系统•更新系统补丁•运行CIS基准安全测试在暂存和生产环境中应持续对Kubernetes主机进行审核和扫描,确保在更新和扩展活动期Kubernetes运行时容器当容器在生产中运行时,三个重要的安全防护载体是:网络筛选、容器检查和主机安全容器防火墙是一种新型网络安全防护产品,可针对新的云原生Kubernetes环境采取传统网•基于IP地址和端口的三/四层网络筛选。这种方式包含用于动态更新规则的Kubernetes网络策略,可在部署更改和扩展时提供保护。简单的网络分段规则并非是为关键性业务容器部署提供可靠的监控、记录和威胁检测,而是能够防止一些未经授权的网络•Web应用防火墙(WAF)攻击检测能够采用检测常见攻击的方法来保护面向Web的容器(通常为基于HTTP或HTTPS的应用程序),与Web应用防火墙的功能类似。•七层容器防火墙具备七层筛选和对Pod间流量的深度数据包检测的功能,可通过使用网络应用程序协议来保护容器安全。容器防火墙还与Kubernetes等编排工具集成,防火墙还具备一项特殊的优势,可将容器进程监控和主机安全防护纳入受监控的威胁深度包检测(DPI)技术对于容器防火墙的深度网络安全防护必不可少。入侵通常使用可预测的攻击载体:标头格式错误的恶意HTTP请求,或包含在可扩展标记语言(XML)对象中的可执行shell命令。基于DPI的七层检测能够寻找并发现这些攻击方式。针对每一次Pod连鉴于容器和Kubernetes网络连接模型的动态性质,传统的网络可见性、取证和分析工具均无法使用。为调试应用程序或调查安全防护事件进行的抓包等任务也不再简单。需要Kubernetes和具有容器意识的工具来执行网络安全防护、检查和取证任务。网络攻击者经常使用特权升级和恶意进程来发起攻击或扩散。针对Linux内核漏洞(例如DirtyCow)、数据包、库或应用程序本身的攻击可能导致容器中出现可疑活动。检查容器进程和文件系统活动以及检测可疑行为是容器安全防护的重要组成部分。端口扫描和反向shell或特权升级等可疑进程都应被检测出来。应当将内置检测与基准行为学习流程相如果容器化应用程序采用的是微服务设计原则,即容器中的每个应用程序都具备少量功能,并且仅使用必须的数据包和库来构建容器,则将大大简化对可疑进程和文件系统活动的检如果运行容器的主机(例如Kubernetes工作节点)被入侵,可能导致一系列不良后果,•root特权升级•安全防护应用程序或基础设施访问权限的机密被盗•集群管理员特权遭到更改•主机资源被破坏或劫持(例如挖矿软件)•API服务器或Docker虚拟光驱等重要编排工具基础设施关闭•之前在容器检查一章中提到的可疑进程启动对于容器来说,需要对主机系统中的这些可疑活动进行监控。因为容器能像主机一样运行操作系统和应用程序,所以监控容器进程和文件系统活动需要与监控主机相同的安全防护功能。将网络检查、容器检查和主机安全防护相结合是通过多种威胁载体检测杀伤链的最佳Kubernetes系统和资源如果得不到保护,Kubernetes等编排工具和基于其构建的管理平台都将面临攻击威胁。这以及Kubelet被攻击事件为新技术在未来陷入攻击和更新补丁反复拉锯的循环拉开了序幕。为了帮助Kubernetes和管理平台抵御攻击,针对系统资源妥善配置RBAC非常重要。为确面:2.限制KUBELET权限。为Kubelets配置RBAC并管理证书轮换,保护Kubelet安对所有需要的外部端口要求进行身份验证。针对未经身份验证的服务,限制其对白名登录,则不应允许控制台/代理访问。总地来说,应仔细审核所有基于角色的访问权限控制。例如,应审核具有集群管理员角色的与上文介绍锁定工作节点时提到的可靠主机安全防护相结合,可以帮助Kubernetes部署基础设施抵御攻击。不过也建议使用监控工具来追踪对基础设施服务的访问,以检测未经授权以TeslaKubernetes控制台遭到的攻击为例,一旦工作节点的访问权限被攻陷,黑客即可创建与中国的外部连接,用于控制挖矿软件。对容器、主机、网络和系统资源实施基于策略Kubernetes环境的审核与合规随着Kubernetes等容器技术和工具的快速发展,企业将不断对容器环境进行更新、升级和迁移。运行一系列专为Kubernetes环境设计的安全测试将确保安全防护不会在每次更改后削弱。这种方式可评估基础设施的安全态势,确定其是否存在被攻击的风险。随着更多的企好在针对Kubernetes和Docker环境,可通过Kubernetes和DockerBench测试的CIS基准执行一系列全面的安全态势检查。应将定期运行这些测试和确认预计结果的流程自•主机安全性•Kubernetes安全性•Docker虚拟光驱安全性•容器安全性•RBAC配置正确性•数据在空闲和传输时的安全性220此外,镜像扫描应包含与镜像安全防护相关的CIS基准测试。其他镜像合规测试也能检查镜像是否存在嵌入式机密和文件访问(setuid/setgid)违规。注册表和生产中的镜像和容器漏洞扫描也是防御已知攻击和满足合规性的核心组成部分。扫描可以整合到构建流程和CI/CD生产线中,确保所有向生产阶段流动的镜像全部经过测试。在生产中,应当对运行的容器和主机定期进行漏洞扫描。但漏洞扫描不足以提供容器运行时编排和容器管理工具虽然具备基本的RBAC和基础设施安全防护功能,但它们并非专门的安全防护工具。关键性的业务部署仍然需要专业的Kubernetes安全防护工具。具体来说,需要一种安全防护解决方案,能够解决涵盖三种主要安全载体(网络、容器和主机)的安全•在构建阶段和注册表中进行镜像的生产线漏洞扫描和合规性扫描。•准入控制,可防止存在漏洞或未经授权的镜像部署。•涵盖网络、容器和主机的多载体容器安全防护。•七层容器防火墙,可保护东西向和进出流量。•容器保护,防御未经授权的进程和文件活动。•主机安全防护,用于检测系统攻击。•借助行为学习自动化创建策略,并可通过自适应执行实现自动扩展。•运行时漏洞扫描,可为Kubernetes•运行时漏洞扫描,可为Kubernetes•通过CIS安全基准满足合规性和审计NeuVector解决方案本身就是一个容器,可通过Kubernetes或OpenShift、SUSERancher、DockerEE、IBMCloud、SUSECaaS、EKS等任何其他编排系统进行部署和nginxwordpress节点2节点3mysql服务Aredis服务B管理NeuVector可将安全防护的起点左移至CI/CD生产线构建阶段。容器镜像构建能够触发漏洞扫描,并将在发现重大漏洞时放弃构建。可以要求开发者在修复这些漏洞之后才能准许镜像通过构建阶段,并存储在经过审核的注册表中。NeuVector支持Jenkins、CircleCI、AzureDevOps和Gitlab等所有常见的生产线工具,并且还为任何其他使用中的构建工具NeuVector会持续扫描已审核的注册表中的镜像是否存在新的漏洞。在构建阶段或注册表镜像扫描过程中,除了提供分层扫描结果,还会针对CIS基准、检测到的机密和文件访问权限漏洞与合规性浏览器能够分析结果、创建合规性报告 HIPAAGDPRNIST3在将NeuVector部署到各个工作节点之后,容器网络连接和服务依存关系将一目了然。隔离和保护Kubernetes部署的安全防护策略将自动创建。如何为Kubernetes部署中的多种攻击载体提供保护,请看下面几个示例。NeuVector能够自动发现和可视化运行中的Pod及其网络连接和安全防护策略。并可通过自动部署的白名单规则将每个应用程序堆栈隔离。无论针对容器的攻击来自内部还是外部,NeuVector都能够检测和拦截。NeuVector七层防火墙可在监控(网络tap)模式下运行,也可运行保2424护(内联)模式来拦截攻击或未经授权的连接,同时让容器对经过验证的流量保持活跃。任KubernetesPod的抓包将自动完成并简化,可供用于取证、记录和应用程序调试。NeuVector借助内置的端口扫描和反向shell等可疑进程检测功能,能够检测出任何容器中的反常活动。此外,各容器中正在运行的进程都将被用来制定基准,为检测未经授权的或恶2525NeuVector还将监控容器文件系统中的可疑活动。例如,在安装或更新数据包或库时,NeuVector将自动触发漏洞扫描,并生成告警。NeuVector会监控主机系统中的特权升级等攻击。在容器中检测出的可疑进程在主机上运行时也将被检测。例如,NeuVector能够检测到端口扫描或反向shell进程开始运行,并发出告警。而且,NeuVector还能够学习已允许在主机上运行的进程并建立白名单,并拦截任何NeuVector也会监控系统容器以及各容器的网络活动。Kubernetes和OpenShift容器及其226NeuVector会自动扫描运行中的Pod、容器和工作节点的漏洞,并在各个节点上运行KubernetesCIS基准测试,还将对系统容器和编排平台(例如Kubernetes1.19)进行漏NeuVector还可在构建和交付阶段(检查镜像注册表)以及在CI/CD自动化生产线中执行漏洞扫描,并提供Jenkins集成,从而能够在镜像构建过程中进行扫描。Kubernetes安全防护自动化——随着DevOps团队向容器和Kubernetes的应用程序自动化部署全速前进,安全防护自动化势在必行。现在的安全防护团队已经今非昔比,再也不可能随时叫停或放缓应用程序、基础安全防护自动化首先要为运行中的容器创建安全的基础设施和平台,之后是自动化运行时安全防护。利用Terraform等基础设施即代码概念和工具可确保获得具有可重复安全配置的安通过将行为学习和Kubernetes与自定义资源定义(CRD)相结合实现的安全即代码,多数运行时安全防护都能实现自动化。最初可能始终需要一些手动设置或自定义,但当开启生产开关,并由Kubernetes开始管理Pod时,安全防护即可自动化进行,并能随着部署的情况进2828√定义Kubernetes原生yaml中的应用程序行为√网络连接和协议√进出控制√进程和文件系统活动√实现安全策略的版本管理√执行全局安全规则P√RBAC集成√Kubernetes执行CRD创建许可√简化从暂存到生产阶段的过渡√支持开放策略代理(OPA)和其他集成NeuVector等新型安全工具能够与Kubernetes部署模型融合,从而提供多载体的运行时安全防护。将Kubernetes容器防火墙与容器检查和主机安全防护相结合,能够检测和阻止杀伤链中的破坏性攻击活动。凭借先进的公有云架构,NeuVector能够以容器形式在邻近应用由于容器化应用程序的声明式特点,以及Kubernetes等工具的丰富集成选择,即使在高度动态化的容器环境中也可以执行高级安全控制。通过与Kubernetes集成,并整合多项行为学习和多载体安全防护功能,可以实现整个生产线的安全防护自动化,从而满足关键性Kubernetes业务部署的迫切需求。2929对于容器基础设施来说,满足行业标准的合规性要求并非易事。这些新的虚拟化层还未经过NeuVector能够助力达成PCI、GDPR、SOC2、HIPAA和NIST等标准的合规性要求,遵循•网络分段和建立防火墙。凭借专门设计用于容器和Kubernetes网络筛选及保护的七•漏洞扫描和修复。通过端到端漏洞管理,NeuVector可在从构建阶段到生产的整个•审核配置测试。通过KubernetesCIS基准等合规性检查来审查和执行系统(主机)•限制访问权限控制。评估和授予所需的最低级别用户访问特权能够降低发生RBAC攻3030•加密和敏感数据保护。NeuVector可确保流动数据的连接加密,甚至能使用DLP技NeuVector可针对容器部署的PCI、GDPR、HIPAA和NIST合规性提供可自定义的预配置NeuVector通过将可自定义的合规性报告、端到端漏洞管理、防火墙构建和网络分段以及合规性测试相结合,成功帮助众多企业的全新云原生基础设施和工作负载达成了合规性要求,涵盖从PCI和GDPR,到服务组织控制(SOC)2类审计等多项标准。SOC2是一项审计规程,旨在确保服务提供商(应用程序)以安全的方式管理数据,从而保护组织的利益及其用户的隐私。对于注重安全性的企业而言,在考虑SaaS提供商时,满足SO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论