扫描Docker容器时发现了几个漏洞

码头黑客

最近成名 通过 一篇博客文章 识别漏洞的测试工具的结果 没有补丁并确定安全问题 在隔离的Docker容器映像中。

测试显示4台扫描仪中有6台 已知的Docker映像 有严重漏洞 在某些情况下(例如,使用Snyk)具有root特权,可以攻击扫描程序本身并在系统上运行其代码。

为了进攻 攻击者只需要开始检查他的Dockerfile 或manifest.json,其中包含特殊格式的元数据, 或将podfile和gradlew文件放入图像中。

我们设法为WhiteSource,Snyk,Fossa和anchelle系统准备漏洞利用原型。

埃尔帕克特 克莱尔 最初出于安全考虑而编写, 显示出最佳的安全性。

Trivy软件包中未发现任何问题 结果是,得出的结论是Docker容器扫描仪应在隔离的环境中运行或仅用于验证其自身的映像,并且在将此类工具连接到自动连续集成系统时也要小心。

这些扫描仪执行复杂且容易出错的事情。 他们正在与码头工人打交道,提取图层/文件,与程序包管理器进行交互或分析不同的格式。 在试图适应开发人员的所有用例的同时,捍卫它们非常困难。 让我们看看不同的工具如何尝试并设法做到这一点:

负责任的披露分数反映了我的个人观点:我认为,对于软件供应商来说,接受报告给他们的安全问题,诚实和透明地对待漏洞,确保正确告知使用产品的人员来做出决定,这一点很重要。关于更新。 其中包括最重要的信息,即更新具有与安全相关的更改,打开CVE来跟踪和交流有关问题的信息,并有可能通知您的客户。 我认为,如果产品涉及CVE,并提供有关软件漏洞的信息,这是特别合理的假设。 而且,我对快速反应,合理的更正时间以及与报告攻击者的公开交流感到放心。

在FOSSA,Snyk和WhiteSource,该漏洞与 打电话 到外部包装经理 确定依赖关系,并允许您通过在gradlew和Podfile文件中指定touch和system命令来组织代码的执行。

En Snyk和WhiteSource还发现了一个与启动系统命令相关的漏洞 解析Dockerfile的组织(例如,通过Dockefile在Snyk中,您可以替换由扫描仪引起的工具ls(/ bin / ls),在WhiteSurce中,您可以通过“ echo”形式的参数替换代码;点击/ tmp / hacked_whitesource_pip; = 1.0'«)。

在Anchore中,此漏洞是由使用skopeo实用程序引起的 使用docker镜像该操作减少为在manifest.json文件中添加形式为'»os»:«$(touch hacked_anchore)»的参数,在调用skopeo时没有适当转义的情况下就替换了该参数(仅删除了字符«;&< >”,但构造为“ $()”)。

同一位作者对漏洞检测的有效性进行了研究 没有打补丁 通过安全扫描仪 码头集装箱的数量和误报的水平。

除了作者 认为其中一些工具 直接使用包管理器解决依赖关系。 这使他们特别难以防御。 一些依赖性管理器具有允许包含Shell代码的配置文件。 

即使以某种方式处理了这些简单的方法,致电这些软件包经理也将不可避免地意味着花钱。 坦率地说,这不利于保护应用程序。

73个包含漏洞的图像的测试结果 以及对确定图像中典型应用程序(nginx,tomcat,haproxy,gunicorn,redis,ruby,node)的有效性的评估, 可以咨询 在出版物中 在下面的链接中。


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。