【翻译】Flux安全审计已经结束
项目帖子从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中创建了一个项目板。如果你仔细看一下,你会发现我们已经修复了一些最直接的问题。
概括地说,这些问题分为三类。
- 为Flux项目启用Fuzzing功能
- 文档问题
- 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安全审计已经结束相关推荐
- 【翻译】如何获得强大的GitOps?美国国防部使用Flux和Helm
作者:Tamao Nakahara 2021年9月30日 项目帖子由Weaveworks博客交叉发布,作者是Tamao Nakahara,Weaveworks的开发者体验主管和Flux社区经理. 挑战 ...
- 构建具有用户身份认证的 React + Flux 应用程序
序言:这是一篇内容详实的 React + Flux 教程,文章主要介绍了如何使用 API 获取远程数据以及如何使用 JSON Web Tokens 进行用户身份认证.在阅读本文之后,我一直使用文章介绍 ...
- WCF服务编程(4):《WCF服务编程》第3版中文版翻译结束,即将出版
原文地址: <WCF服务编程>第4版本翻译完毕!2016年底应该出版 [置顶]↑ WCF服务编程(4):<WCF服务编程>第3版中文版翻译结束,即将出版 ↑ 作为世界范围内最经 ...
- Flux快速入门指南
翻译自 http://www.jackcallister.com/2015/02/26/the-flux-quick-start-guide.html 2015年2月26日 本文将概述如何使用Flux ...
- Asp.Net数据库编程-10条最优方法[翻译]
Asp.Net数据库编程-10条最优方法[翻译] 原文标题:Using Data with ASP.Net - 10 of my 'Best Practices' 原文链接:http://www.de ...
- java reactor框架_Java反应式框架Reactor中的Mono和Flux
1. 前言 最近写关于响应式编程的东西有点多,很多同学反映对Flux和Mono这两个Reactor中的概念有点懵逼.但是目前Java响应式编程中我们对这两个对象的接触又最多,诸如Spring WebF ...
- 通过例子学Solidity[注释翻译]
[官方译文(2)] 通过例子学Solidity[注释翻译] 前 继续翻译Solidity的官方文档, 以此也算是自己的学习[Solidity官方手册](https://solidity.readthe ...
- 李彦宏最新演讲:移动互联网的时代已经结束了
http://business.sohu.com/20161120/n473656632.shtml 作者:华商韬略旗下自媒体<知适> 来源:知适 微信公众号 2016年世界互联网大会于1 ...
- [翻译]React组件模式
原文地址:https://medium.com/teamsubchannel/react-component-patterns-e7fb75be7bb0 作者:William Whatley 摘要:本 ...
- flux storm_Apache Storm:如何使用Flux配置KafkaBolt
flux storm 微型框架中的助焊剂可以帮助我们定义和部署Storm拓扑. Flux有各种包装器,可帮助您定义所需的流并初始化Bolts和Spouts(使用带有或不带有参数的构造函数,并通过反射自 ...
最新文章
- 90后清华女校友范楚楚获ACM 2020唯一博士论文奖!出任MIT助理教授后再摘桂冠
- 7 Papers Radios | Transformer自动debug;AI合成舞蹈落地应用
- POJ 1679 The Unique MST(次小生成树)
- CodeIgniter的快速操作
- 本地tomcat启动war包_「shell脚本」懒人运维之自动升级tomcat应用(war包)
- 蓝桥杯 ADV-74 算法提高 计算整数因子
- 蓝桥杯 ALGO-22算法训练 数的划分
- 一个二维码不同手机扫描下载时跳转问题
- 【BERT】小学生级上手教程,从原理到上手全有图示,还能直接在线运行
- js选择html元素,JavaScript中获取HTML元素值的三种方法
- 深入web的请求过程
- CFS任务的负载均衡(框架篇)
- SOAPUI安装破解
- 从零开始学androidBroadCast广播.四十五.
- 求最大公约数 最大公因数 语言实现输出一个整数的最大公约数(因数),四种算法实现
- 计算机系十周年聚会邀请函,十周年同学聚会邀请函
- js批量生成条形码制作前端标签打印工具
- HTML中这是一个一级标题,html如何设置一级标题背景
- VINS-Mono 代码解析六、边缘化(2)理论和代码详解
- Netflix继续开源,更多猴子进入视野
热门文章
- c语言用星号编写矩形,c语言星号打印矩形三角形菱形等图案.doc
- SOUI GDI+渲染引擎下的字体特效,抛砖引玉
- [落选]狗熊会人才计划第6期选拔作业
- word制作流程图有没有橡皮擦_WORD文档绘图,里面的橡皮擦在哪里啊
- 跨平台为何选择Flutter?
- vue等单页面应用及其优缺点
- Android Behavior
- 无形胜有形——0day破解组织探秘
- 康诺特酒吧摘得2021全球50家最佳酒吧桂冠;华住与京能集团达成战略合作 | 全球旅报...
- 即时热榜——月薪3W+自媒体人的必备神器