当前位置:网站首页>【翻译】Flux安全。通过模糊处理获得更多信心
【翻译】Flux安全。通过模糊处理获得更多信心
2022-07-03 02:23:00 【programmer_ada】
项目文章最初发表于Flux博客,作者Daniel Holbach
在我们关于Flux安全的博客系列中,接下来是我们如何在Flux及其控制器中实现模糊处理,以及如何使事情对你更安全。
Fuzzing或Fuzz测试是一种自动化的软件测试技术,包括向计算机程序提供无效、意外或随机的数据作为输入。然后监测程序的异常情况,如崩溃、内置代码断言失败或潜在的内存泄漏。通常情况下,模糊器被用来测试接受结构化输入的程序。这种结构是指定的,例如,在文件格式或协议中,并区分有效和无效的输入。一个有效的模糊器会产生半有效的输入,这些输入 "足够有效",因为它们不会被解析器直接拒绝,但确实在程序的更深处产生了意想不到的行为,并且 "足够无效",暴露了没有被正确处理的角落案例。
我们在整个控制器中已经有相当好的单元和端到端测试的覆盖率。将模糊测试加入到这个组合中,将进一步扩大测试的范围,使其覆盖到以前没有覆盖的场景和有效载荷。再加上已经在Kubernetes仓库中进行的模糊测试,例如kubernetes、client-go和apimachinery,我们对自己的代码更有信心。
我们很高兴地与大家分享,自从Flux的0.27版本发布以来,所有的Flux控制器和库现在都经过了谷歌对开源软件的持续模糊测试。
我们是如何做到这一点的
当我们在11月宣布安全审计的结果时,我们已经分享了ADA Logics的团队已经帮助为一些Flux控制器进行了初步的模糊测试。在这个最初的构想中,已经发现了三个问题(1个越界分片,2个零延迟),并立即进行了修复。自然,我们对合并模糊处理的集成非常感兴趣。
为了使我们能够完全登陆摸索器,我们需要对构建过程进行一些架构上的改变,特别是对于那些依赖C语言与libgit2绑定的控制器,如source-controller和image-automation-controller,它们现在是静态构建的。除此以外,我们还大大扩展了模糊器的范围。如果你看一下notification-controller的相关拉动请求,你就会对这一切有一个很好的了解,例如对所有通知器进行模糊处理。
现在,Fuzzers对每一个落入Flux控制器和库的提交都会运行。
再次感谢ADA Logics的贡献,也感谢其他帮助整合的人我们也非常感谢Google和OpenSSF,他们提供并维护了所需的基础设施。
下一步
由于Go将在1.18版本中看到内置的Fuzz支持,我们非常希望将所有的东西都紧密地按照新的格式来组织,以便从dvyukov/go-fuzz(目前正在使用)顺利地过渡。(我们可以推荐Jay Conrod的博文,关于Go的新模糊系统的内部情况,如果你很好奇的话!)
在这个问题上,我们正在跟踪Flux向原生模糊的转变。我们也希望能尽快添加新的模糊器,所以如果你想在这方面做出贡献:请到Slack上找我们!这是个很简单的方法。这是一个了解和扩展Flux代码库的简单方法。
这只是我们为保证你的安全而采取的又一项措施。
与我们交谈
我们喜欢反馈、问题和想法,所以今天请让我们知道你的个人用例。如果你有任何问题,请向我们提出,并请
- 加入我们即将举行的开发会议
- 在CNCF Slack的#flux频道中找到我们。
- 如果你还没有加入,请把你自己加为采用者。
再见!
边栏推荐
- 面试八股文整理版
- Kotlin middle process understanding and Practice (II)
- The data in servlet is transferred to JSP page, and the problem cannot be displayed using El expression ${}
- Word word word
- Introduce in detail how to communicate with Huawei cloud IOT through mqtt protocol
- Producer consumer model based on thread pool (including blocking queue)
- Awk from introduction to earth (0) overview of awk
- 创建+注册 子应用_定义路由,全局路由与子路由
- [Flutter] dart: class; abstract class; factory; Class, abstract class, factory constructor
- GBase 8c系统表-pg_conversion
猜你喜欢
![[Flutter] dart: class;abstract class;factory;类、抽象类、工厂构造函数](/img/06/ab333a4752de27eae2dd937cf579e2.png)
[Flutter] dart: class;abstract class;factory;类、抽象类、工厂构造函数

UDP receive queue and multiple initialization test

udp接收队列以及多次初始化的测试
![[shutter] pull the navigation bar sideways (drawer component | pageview component)](/img/6f/dfc9dae5f890125d0cebdb2a0f4638.gif)
[shutter] pull the navigation bar sideways (drawer component | pageview component)

Trial setup and use of idea GoLand development tool

4. Classes and objects

Use go language to realize try{}catch{}finally

Comment communiquer avec Huawei Cloud IOT via le Protocole mqtt

Flink CDC mongoDB 使用及Flink sql解析monggo中复杂嵌套JSON数据实现

The use of Flink CDC mongodb and the implementation of Flink SQL parsing complex nested JSON data in monggo
随机推荐
GBase 8c系统表-pg_amop
Restcloud ETL cross database data aggregation operation
GBase 8c系统表-pg_authid
[shutter] pull the navigation bar sideways (drawer component | pageview component)
Y54. Chapter III kubernetes from introduction to mastery -- ingress (27)
COM和CN
【教程】chrome關閉跨域策略cors、samesite,跨域帶上cookie
Coroutinecontext in kotlin
线程安全的单例模式
require. context
[codeforces] cf1338a - Powered addition [binary]
Packing and unpacking of JS
elastic stack
[advanced ROS] Lesson 6 recording and playback in ROS (rosbag)
Gbase 8C system table PG_ auth_ members
udp接收队列以及多次初始化的测试
Codeforces Round #418 (Div. 2) D. An overnight dance in discotheque
【 tutoriel】 Chrome ferme les cors et les messages de la politique inter - domaines et apporte des cookies à travers les domaines
Gbase 8C function / stored procedure definition
Job object of collaboration in kotlin