DDOS防御专家-提供超强DDoS高防/CC防护/大流量清洗服务!
当前位置:主页 > CC防护 > 正文

服务器高防_青岛高防服务器_超稳定

12-24 CC防护

服务器高防_青岛高防服务器_超稳定

Hillary Benson 2019年2月21日分享:在Facebook上分享LinkedIn上的分享Twitter上的分享在runC中存在漏洞,攻击者可以通过突破运行中的容器获得主机级代码执行,该漏洞在1月初被Adam Iwaniuk和Borys Poplawski发现并报告,并于2019年2月11日发布为CVE-2019-5736。此漏洞非常重要,因为它:启用容器隔离突破,与授权主机用户的交互最少;通常允许攻击者获得主机上的根权限;对大多数容器环境产生负面影响,因为许多容器使用默认Docker安全设置和默认用户(UID 0)运行;andeffects runC,Docker和Kubernetes中最常用的低级容器运行时环境由于文件描述符处理不当,出现runC容器转义漏洞。在创建新容器或授权主机用户将其exec到现有容器中时,此漏洞最终允许攻击者使用其选择的恶意二进制文件覆盖主机的runC二进制文件。因为runC通常是在根用户的上下文中从主机调用的,所以恶意二进制文件将具有对主机的根访问权限。这个二进制文件可以用来运行任意代码,包括启动反向的代码壳牌。有人吗维护容器基础设施的人员应立即在所有容器主机上升级到runC的最新版本。所有主要的容器平台提供商都为他们的用户发布了特定的指南(例如EKS、AKS、GKE和Red Hat)。强化Docker:一个安全工具下载我们关于强化Docker容器和主机以获得更具弹性的环境的实用指南立即下载此漏洞背后的技术细节是什么?runC容器转义漏洞利用文件描述符的错误处理,以及Linux/proc文件系统的一个独特方面,最终用恶意文件覆盖主机runC二进制文件二进制文件在任何给定时间,路径/proc/self/exe指向当前在中调度的进程的路径内核。为示例:root@10577558e82f:/ls-al/proc/self/exelrwxrwxrwx 1根根根0 2月21日12:14/proc/self/exe->/bin/ls当用户启动一个或多个新容器到一个正在运行的容器(在后台使用runC),此时,容器中的/proc/self/exe指向主机的runC二进制文件。如果入口点脚本(如果启动新容器)或二进制文件(如/bin/bash(如果执行到容器中)被替换为对/proc/self/exe的引用,则当启动或执行时,容器将重新执行/proc/self/exe当时指向的二进制文件(即主机的runC二进制文件)。因为runC的执行在第二次执行时发生在容器的上下文中,所以将使用主机runC二进制文件,但是它将从容器加载runC所需的动态库文件系统文件描述符错误处理此情况使攻击者有机会使用恶意代码修改容器文件系统上的某个runC库。由于runC中的文件描述符处理不当(即,能够为主机runC二进制文件构造一个可以打开进行写入的文件描述符路径,这是不可能的),此恶意库可被设计为用任意代码覆盖宿主runC二进制文件。该代码将在运行原始runC二进制文件的任何用户上下文(通常是根目录)下在主机上执行。Iwaniuk和Poplawski发布了一篇关于他们的研究的优秀文章,最终发现了这个漏洞,并且runC维护者Aleksa Sarai的概念证明代码现在已经公开了有,怎么办完全可以这个漏洞被利用了吗?条件和传递机制runC容器转义漏洞适用于任何具有[默认Docker安全设置]的未修补系统(https://d3oypxn00j2a10.cloudfront.net/assets/img/DockerSecurity/WP_Intro_to_container_Security_03.20.2015.pdf)和UID为0的容器。攻击者可以利用此漏洞进行攻击二者之一的脆弱性方法:手工制作恶意映像,并将此映像推送到目标可访问的注册表进行下载;或者利用目标应用程序中的漏洞在底层容器上执行代码,然后将所需的恶意库和脚本复制到该容器中容器。在不管是哪种情况,一旦容器准备好所需的恶意库和指向/proc/self/exe的二进制文件,授权主机用户必须将恶意映像(情况1)或exec拉入并运行到容器中,并使用相关的二进制文件(情况2)。攻击设置若要利用此漏洞,攻击者必须决定一种传送机制,然后在目标容器中执行以下操作/图:安装runCReplace一个标准的runC链接库,其中一个库包含完成"Exploit Execution"中第1-4项的代码,将一个入口点脚本或二进制文件指向一个容器(例如/bin/bash)中的/proc/self/exe通过精心编制的映像进行攻击]将恶意映像上载到目标可访问的位置waitexploit execution当授权主机用户从恶意映像启动一个或多个容器并使用相关二进制文件时,该漏洞将触发并执行以下操作步骤:引导恶意链接库以只读模式打开/proc/self/exe以获取主机runC二进制文件的文件描述符使用该文件描述符构建文件描述符路径(例如,/proc/self/fd/),它指向主机runC binaryClose/proc/self/exe,防御cc代码,因此它不再处于写入模式下的使用open/proc/self/fd/,并用恶意的binaryProfit覆盖目标文件(主机runC二进制文件)!怎么修好的?为纠正此漏洞而实施的修复程序在容器中创建内存中的文件描述符,将主机runC二进制文件复制到该文件描述符,ddos防御经验,然后重新执行runC。在这些情况下,如果攻击者重写/proc/self/exe指向的二进制文件,则该二进制文件将驻留在容器的内存中,攻击者将无法损坏主机。内存用法含义此修复程序确实会增加容器中的内存使用率。对于更大的应用程序,这种增加很可能不会被注意到,但是设计为以低内存限制(大约16MB)运行的容器可能需要额外的内存分配。什么我应该这样做吗?如前所述,您应该立即在容器主机上升级到runC的最新版本,如果您使用的是托管容器,防护软件,请参阅提供商的指导服务。如果如果无法升级到runC的最新版本,高防CDN对接,则无法修补、减轻暴露,你可以采取多个步骤来减轻你的风险脆弱性。避免从不受信任的注册表中提取此措施可能有助于降低下载受恶意代码污染的图像的风险袭击者。怎么StackRox可以帮助StackRox Kubernetes Security Platform附带一个默认策略来帮助您限制允许应用程序从中提取的注册表图像。启用默认情况下不启用selinux,但它将通过阻止容器进程覆盖主机runC来减轻此漏洞二进制。怎么StackRox可以帮助启用SELinux是CIS Docker基准测试建议。StackRox提供对遵守行业和法规遵从性标准(包括CIS Docker基准)的按钮式评估。通过一次扫描,StackRox可以提供整个容器基础结构中哪些主机设置了SELinux安全选项,哪些设置了SELinux安全选项不,一定要不运行UID为0的容器,除非在创建容器时指定较低权限的用户,否则Docker容器默认使用UID 0运行。确保不是以root用户身份运行容器将阻止容器用户覆盖上的runC二进制文件主人,怎么了StackRox可以帮助StackRox提供一个默认策略,该策略将对任何使用UID 0运行的容器的部署发出警报。如果您无法减少风险,检测攻击尝试检测runC的安装在通过利用已在运行的容器进行传递机制的情况下,打算利用runC容器转义漏洞进行权限提升的攻击者需要将runC库合并到容器中以执行攻击。完成这一步的一种方法是简单地在容器中安装runC二进制文件(Aleksa Sarai在他的概念证明中利用了这个方法),包括诸如运行检测修改二进制文件在通过利用已在运行的容器进行传递机制的情况下,打算利用runC容器转义漏洞进行权限提升的攻击者还需要修改二进制文件以指向/proc/self/exe。修改此二进制文件的行为可能被主机上的文件或进程活动检测到,具体取决于攻击者选择如何执行修改。怎么做StackRox可以帮助StackRox提供一个默认策略,该策略提供对文件修改的可见性,该策略类似于以下方法(也用于Sarai的证明中从容器中检测对/proc/self/exe的引用在任何一种传递机制中,防御ddos策略,/proc/self/exe将用于引用主机runC二进制文件。这种由/proc/self/exe执行的活动很少是合法的,而且很容易检测到了。怎么回事StackRox可以帮助StackRox提供识别/proc/self执行的功能/最终执行文件虽然runC漏洞提供了一个强大的攻击路径,但是您有几种方法可以保护您的容器环境。升级至runC的最新版本,该版本的安全平台可自动检测并防止对thi的企图利用

版权保护: 本文由 DDOS防御专家 原创,转载请保留链接: /ddos/56637.html

DDoS防御专家简介孤之剑
国内资深白帽子二十人组成员,前BAT资深网络安全工程师,知名网络安全站点板块大神,每年提交Google及微软漏洞,原sina微博负载插件开发者,现在整体防御复合攻击长期接受1-4.7T攻击,CC防护自主开发指纹识别系统,可以做到99.9999%的无敌防御。
  • 文章总数
  • 7586299访问次数
  • 建站天数

    QQ客服

    400-0797-119

    X
    云顶国际彩票app-云顶国际下载-官网推荐