发布日期:2021年11月11日

项目帖子从Flux博客交叉发布

由于Flux是云原生计算基金会的一个孵化项目,我们被慷慨地授予了一个赞助审计。其主要目的是评估Flux的基本安全状况,并确定其安全故事的下一步。这次审计是由CNCF委托的,并由OSTIF(开源技术改进基金)推动。ADA Logics很快就参与其中,并花了一个月的时间进行审计。

Flux的维护者和社区非常感谢大家为此付出的努力,以及有机会作为一个项目成长和改进。


我们在Flux的第一个CVE

让我们从你作为一个Flux用户可能感兴趣的东西开始。这次合作发现了Flux中的一个权限升级漏洞,该漏洞可以使用户获得集群管理权限。该问题已被修复,并被分配为CVE 2021-41254,完整的披露公告可在以下链接获得:。

CVE-2021-41254:多租户Flux上的特权升级为集群管理员。

描述。

可以创建Kubernetes Secrets、服务账户和Flux Kustomization对象的用户,可以通过在Kubernetes Secret中嵌入shell脚本,在kustomize-controller容器内执行命令。这可以用来在kustomize-controller的服务账户下运行kubectl命令,从而允许经过认证的Kubernetes用户获得集群管理权限。

影响。

非管理员用户有权限创建Flux Kustomization对象的多租户环境会受到这个问题的影响。

修复。

这个漏洞在2021-10-08发布的kustomize-controller v0.15.0(包含在Flux v0.18.0中)中被修复。从v0.15开始,kustomize-controller不再在容器操作系统上执行shell命令,并且kubectl二进制已经从容器镜像中删除。

带有完整细节的审计报告

我们感谢ADA Logics的团队对细节的高度关注。整个报告可以在这里找到。为了从分析的所有细节中获益,我们在GitHub中创建了一个项目板。如果你仔细看一下,你会发现我们已经修复了一些最直接的问题。

概括地说,这些问题分为三类。

  1. 为Flux项目启用Fuzzing功能
  2. 文档问题
  3. Flux代码中发现的具体问题

Flux来到了OSS-Fuzz

ADA Logics的团队并没有止步于审查Flux代码。我们很惊喜地收到了该团队的实际PR,他们定下来并帮助我们与OSS-Fuzz项目整合。其中一些工作还需要整合到所有的Flux控制器中,但我们很高兴已经有了一个开端!OSS-Fuzz是一项在重要的开源项目上持续运行模糊器的服务,其目的是利用复杂的动态分析来发现安全和可靠性问题。目前已经有许多其他CNCF项目被整合,例如Kubernetes、Envoy和Fluent-bit,我们很高兴能成为其中的一员。

从外部角度看我们的文档

一个非常重要的反馈是,我们的文档主要是面向最终用户的,他们需要非常具体的建议来了解如何将Flux集成到他们的设置中。我们提供了很多例子,如果你想让Flux有正确的行为,这些例子很有帮助。到目前为止,我们缺少的是一个架构概述和专注于Flux的安全相关方面的文档。

代码审查期间发生了什么

ADA Logics的团队发现了22个单独的问题,其中一些是模糊器的结果。1个高严重度(就是上面提到的CVE),3个中严重度,13个低严重度和5个信息性问题。

我们感谢ADA Logics团队对细节的关注。这些问题包括从依赖性升级到代码中的疏忽(在操作过程中没有关闭的文件,未处理的错误)以及误导性的文档。

问题和严重程度

1:通过命令注入任意执行命令

在kustomize控制器中通过秘密的方式任意执行命令。

2:图像自动控制器中的无参照物 低

3:环境变量和命令行参数中暴露的凭证

暴露在环境变量和命令行参数中 中

4:使用过时的库低

5:无效和缺失的测试文档 信息性

6:错误修复并不总是包括回归测试 信息化

7:检查和使用了已被废弃的SHA-1 低

8:缺少校验和验证中

9不一致的和缺失的日志记录低

10:读取大文件时,可能会出现内存不足的问题,从而导致流产。

11:文件被打开但从未关闭低

12:未处理的错误低

13:分片的边界超出范围低

14:图像自动控制器中可能出现nil-deref 低

15:不一致的代码风格和潜在的nil-dereferences 信息化

16:出错后缺少返回语句低

17:文件扩展名的比较是区分大小写的 低

18:一些依赖关系已经过时信息化

19:部署的pods中缺乏容器安全选项 低

20:延迟文件关闭操作产生的未处理错误 低

21:x509证书未被用于Webex 中

22:代码中存在不必要的条件信息化

在撰写本文时,43%的问题仍然是TODO,21%是WIP,36%是DONE。

前进的道路

我们很高兴有机会与安全专家一起工作,并让他们审查和测试我们的假设和代码。在早期,我们就决定要尽可能多地从这些发现中获益。这就是为什么我们创建了一个项目板,并在每周的开发会议上把对它的审查作为一个常设议程项目。

"Flux团队还创建了一个公开的、易于跟踪的仪表板,显示了我们共同完成的所有工作,是一个很好的问题跟踪和补救的例子。"

- Derek Zimmer,OSTIF主席兼执行董事

壮大团队

如果你有兴趣在这方面做出贡献,我们非常期待与你合作。我们欢迎在帮助解决路途中的问题,对我们的安全态势提出更多的意见,也欢迎以扩展我们的fuzzing基础设施的形式作出贡献。最后,如果你有任何额外的安全反馈,请来和我们谈谈。

我们正在全力推进Flux路线图,最近有更多的维护者参与其中,并继续听取反馈意见。

我们要再次感谢云原生计算基金会对此次审计的赞助,感谢开源技术改进基金的协调,感谢ADA Logics在审计期间的仔细审查和建议。

我们很高兴也很自豪能够成为这个社区的一部分!

【翻译】Flux安全审计已经结束相关推荐

  1. 【翻译】如何获得强大的GitOps?美国国防部使用Flux和Helm

    作者:Tamao Nakahara 2021年9月30日 项目帖子由Weaveworks博客交叉发布,作者是Tamao Nakahara,Weaveworks的开发者体验主管和Flux社区经理. 挑战 ...

  2. 构建具有用户身份认证的 React + Flux 应用程序

    序言:这是一篇内容详实的 React + Flux 教程,文章主要介绍了如何使用 API 获取远程数据以及如何使用 JSON Web Tokens 进行用户身份认证.在阅读本文之后,我一直使用文章介绍 ...

  3. WCF服务编程(4):《WCF服务编程》第3版中文版翻译结束,即将出版

    原文地址: <WCF服务编程>第4版本翻译完毕!2016年底应该出版 [置顶]↑ WCF服务编程(4):<WCF服务编程>第3版中文版翻译结束,即将出版 ↑ 作为世界范围内最经 ...

  4. Flux快速入门指南

    翻译自 http://www.jackcallister.com/2015/02/26/the-flux-quick-start-guide.html 2015年2月26日 本文将概述如何使用Flux ...

  5. Asp.Net数据库编程-10条最优方法[翻译]

    Asp.Net数据库编程-10条最优方法[翻译] 原文标题:Using Data with ASP.Net - 10 of my 'Best Practices' 原文链接:http://www.de ...

  6. java reactor框架_Java反应式框架Reactor中的Mono和Flux

    1. 前言 最近写关于响应式编程的东西有点多,很多同学反映对Flux和Mono这两个Reactor中的概念有点懵逼.但是目前Java响应式编程中我们对这两个对象的接触又最多,诸如Spring WebF ...

  7. 通过例子学Solidity[注释翻译]

    [官方译文(2)] 通过例子学Solidity[注释翻译] 前 继续翻译Solidity的官方文档, 以此也算是自己的学习[Solidity官方手册](https://solidity.readthe ...

  8. 李彦宏最新演讲:移动互联网的时代已经结束了

    http://business.sohu.com/20161120/n473656632.shtml 作者:华商韬略旗下自媒体<知适> 来源:知适 微信公众号 2016年世界互联网大会于1 ...

  9. [翻译]React组件模式

    原文地址:https://medium.com/teamsubchannel/react-component-patterns-e7fb75be7bb0 作者:William Whatley 摘要:本 ...

  10. flux storm_Apache Storm:如何使用Flux配置KafkaBolt

    flux storm 微型框架中的助焊剂可以帮助我们定义和部署Storm拓扑. Flux有各种包装器,可帮助您定义所需的流并初始化Bolts和Spouts(使用带有或不带有参数的构造函数,并通过反射自 ...

最新文章

  1. 90后清华女校友范楚楚获ACM 2020唯一博士论文奖!出任MIT助理教授后再摘桂冠
  2. 7 Papers Radios | Transformer自动debug;AI合成舞蹈落地应用
  3. POJ 1679 The Unique MST(次小生成树)
  4. CodeIgniter的快速操作
  5. 本地tomcat启动war包_「shell脚本」懒人运维之自动升级tomcat应用(war包)
  6. 蓝桥杯 ADV-74 算法提高 计算整数因子
  7. 蓝桥杯 ALGO-22算法训练 数的划分
  8. 一个二维码不同手机扫描下载时跳转问题
  9. 【BERT】小学生级上手教程,从原理到上手全有图示,还能直接在线运行
  10. js选择html元素,JavaScript中获取HTML元素值的三种方法
  11. 深入web的请求过程
  12. CFS任务的负载均衡(框架篇)
  13. SOAPUI安装破解
  14. 从零开始学androidBroadCast广播.四十五.
  15. 求最大公约数 最大公因数 语言实现输出一个整数的最大公约数(因数),四种算法实现
  16. 计算机系十周年聚会邀请函,十周年同学聚会邀请函
  17. js批量生成条形码制作前端标签打印工具
  18. HTML中这是一个一级标题,html如何设置一级标题背景
  19. VINS-Mono 代码解析六、边缘化(2)理论和代码详解
  20. Netflix继续开源,更多猴子进入视野

热门文章

  1. c语言用星号编写矩形,c语言星号打印矩形三角形菱形等图案.doc
  2. SOUI GDI+渲染引擎下的字体特效,抛砖引玉
  3. [落选]狗熊会人才计划第6期选拔作业
  4. word制作流程图有没有橡皮擦_WORD文档绘图,里面的橡皮擦在哪里啊
  5. 跨平台为何选择Flutter?
  6. vue等单页面应用及其优缺点
  7. Android Behavior
  8. 无形胜有形——0day破解组织探秘
  9. 康诺特酒吧摘得2021全球50家最佳酒吧桂冠;华住与京能集团达成战略合作 | 全球旅报...
  10. 即时热榜——月薪3W+自媒体人的必备神器