洞察与思考Fuzzing技术发展趋势

近年来,Fuzzing无疑是漏洞挖掘技术中最热门常见的技术之一,代码覆盖引导的思路成为主流,随之发展起来的各种路径探索技术也应运而生,相关话题的论文也常见于学术与工业顶会上,相信未来几年仍将继续活跃在安全领域之上。笔者日常也多有关注,基于个人的一些洞察与思考,对Fuzzing未来的发展趋势作个简单总结,因个人水平有限,皆为一家之言,仅供参考。

 趋势一:CI/CD集成化

ffb5bcf9ce13f297585affba9015e52a.png

将Fuzzing集成进CI/CD,实现“安全左移”。 

随着DevSecOps的流行,各种“安全左移”思想盛行,本质上就是希望将发现与解决安全问题的时间点尽可能地提早,并且依赖工具/平台自动化。所以,越来越多的安全系统会通过CI/CD平台将其集成,使得研发过程中,让更多人参与,而不仅仅安全人员来为安全背锅,并且安全测试更加及时。

传统的漏扫、代码扫描都比较常见,但Fuzzing引入CI/CD,国内企业做得并不多。国外的市场相对比较大,像Fuzzit后来就被GitLab收购了,GitHub也在做CI Fuzzing相关研究工作,未来两家均有可能直接基于代管托管平台去支持Fuzzing。

国内一些高校研究者也许看到了商机,已经有多家创业型公司在做这块,打算做成商业化的产品。目前,就国内情况而言,市场的盘子好像没那么大,至少目前如此,这里面涉及到企业代码,很多大厂更愿意自己去做,而不是购买第三方。不像代码托管平台,这种应用场景就非常明确可观。

44eec16d5f5ef1f475e432f625776705.png

趋势二:云原生化

f59b28c1f4ee4f29da190fb6a6fb06a3.png

借助云原生技术搭建Fuzzing平台,实现大规模化的Fuzz集群管理。

相信大家听过最早最出名的Fuzzing平台应该就是Google ClusterFuzz,已经开源了,但它算不上产品,用过的人都知道,体验其实一般般,界面也非常简陋,但其思想在比较前沿的。

通过云平台来统一管理Fuzzing集群,就非常适合产品繁多,代码量庞大的公司,一些想测试行业产品的第三方公司也适用。加上现在云原生概念的推行,相信未来很多Fuzzing平台会基于云原生技术来搭建,而Qemu + Docker + k8s可能是最佳的工具搭配。windows系统或软件测试,由于docker环境的局限,可能现在会首选虚拟机集群来调度,而linux,甚至是macOS,都有相应的docker镜像可以支撑,像IoT、Android、iOS平台可能借助Qemu是更好的方案。Docker无疑是云原生化Fuzzing平台建设的主力军,相信未来很多Fuzzing平台的建设会通过它来集群化管理。

7624487c115270475ffb9f775d84b901.png

趋势三:智能化

4a7c4dd299c39067c99a47be8a267705.png

探索人工智能在Fuzzing能力上的应用。

人工智能在安全领域的探索一直从未停止过,在恶意检测领域相对还成熟一点,但在Fuzzing上的应用,目前效果和优势还未体现,需要一个时间过程。学术顶会上的见到的探索会多一些,包括AI算法在路径上的探索、测试用例自动生成、Fuzz基准自动化评估、语料构造、根因分析与影响评估等等,都是当前探索的方向。其中以路径探索、用例生成、基准评估最为主流。

在这些探索方向上,近几年的学术顶会贡献要比工业顶会的大,比如粒子群优化、隐马尔科链、导向式、脆弱点预测、符号执行等等在路径探索上的贡献了不少点子,而工业顶会更追求漏洞产出,漏洞利用和危害,一些创新型思路前期可能挖不到啥漏洞的话,可能就没人愿意搞了,这本质上也是学术与工业实践的一点差异。

70ea18cad1163de70cff2b5d23715095.png

趋势四:高效化

7f07cd9bf093be9ab64a3ec86ade1bc4.png

从软件与硬件层面,去探索更加高效的Fuzzing能力。

Fuzzing时间经常都是比较久,从几小时到几个月都有可能。如果你的Fuzzer测试速度比别人快,那么在这种长时间测试的对比下,整体测试量就往往要比别人多出很大,理论上有可能挖到更多漏洞,假设其它Fuzz能力一致的情况下。

如果实现更高效的运行测试,也是一项值得研究方向。软件层面上,可以探索规模化、并行化的测试算法、更轻量高效的路径引导方式等等;同时,这不仅仅只是软件层面的探索,也包括硬件层面。特别是CPU的新特性,如路径追踪记录能力、运算速度等等都会对Fuzzing效率产生影响。

a9635b42c214bb4721fd3bc7eb6b2c4e.png

趋势五:逻辑型探索化

0606b7ce72660644549a5472e13d4dd1.png

探索逻辑型漏洞的自动化挖掘技术,包括非内存漏洞、逻辑型的内存破坏漏洞等等。

通过Fuzzing挖掘内存破坏漏洞是一种常态,但随着攻防技术的发展,以及类似Go等内存安全型语言的出现,逻辑型漏洞的挖掘会显得更加重要,逻辑漏洞挖掘能力也是当前Fuzzing的劣势之一。如果通过突破Fuzzing在逻辑漏洞挖掘上的局限性,那也是Fuzzing技术的一大突破。

87ba33c6bc06ff2e20e68f13932322a4.png

总结

基于个人经验与视角,总结未来Fuzzing技术的五大趋势:CI/CD集成化、云原生化、智能化、高效化、逻辑型探索化。

3ef10266a6c93cbc80b7bf6ae231771f.png

576be4d1de0ce53dff37d84cf4577b55.png

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值