人工智能(AI)或机器学习融入传统模糊测试技术造就出查找应用程序或系统漏洞的强大工具,但研究人员和网络罪犯都能利用这一点。
定义AI模糊测试
AI模糊测试采用机器学习及类似技术查找应用或系统中的漏洞。模糊测试概念的提出已经有些年头了,但其执行相当困难,对公司企业没有太大吸引力。引入AI技术可使模糊测试更加灵活,更易于执行。
这是个好消息,但同时也是个坏消息。好消息是企业和软件供应商可以更容易地找出系统中的潜在可利用漏洞,以便抢在坏人之前修复。
坏消息是,坏人也可以利用该技术快速找出很多零日漏洞。澳大利亚技术咨询机构 Rightsize Technology 将AI模糊测试列为2019十大安全威胁之一。
模糊测试运作机制
传统模糊测试用大量不同输入尝试令应用程序崩溃的切入点。因为不同应用输入方式相异,产生并尝试大量输入需要很多人工设置。而且,仅靠暴力破解的方式尝试每个可能输入并观察应用程序的响应是行不通的——光耗时都能让人绝望。10个字符的输入域要试完全部可能组合需要几个月甚至几年。
虚拟出每个应用比尝试可能输入组合更复杂,所以模糊测试器基本都是随机尝试,并运用各种策略去试最具前景的那些输入组合。AI工具有助于生成测试用例,且模糊测试的事后分析阶段也可以用AI工具来确定造成崩溃的条件是否可利用。不是每个漏洞都是安全漏洞。
模糊测试技术已经出现好些年了。甚至智能模糊测试也不是什么新的东西,只不过是没在学术界以外广泛应用而已。优秀的商业工具并不多。
模糊测试属于动态分析,很难整合进开发生命周期中。相比之下,扫描应用程序源代码的静态分析就容易整合得多了。而且,商业领域有大量静态工具可用。所以企业倾向于选择静态分析不足为奇。
AI模糊测试工具
不过,随着公司企业将模糊测试作为服务推出,该技术的部署难度大幅下降,情况开始发生改变。微软的 Security Risk Detection 很是令人兴奋,他们将Web模糊测试器也集成了进去。而在过去,你得购买和维护几个不同工具。
顶级AI模糊测试工具有:
- 微软 Security Risk Detection (MSRD):(https://www.microsoft.com/en-us/security-risk-detection/)
- 谷歌 ClusterFuzz:(https://security.googleblog.com/2019/02/open-sourcing-clusterfuzz.html)
- Synopsys Defensics Fuzz Testing :(https://www.synopsys.com/software-integrity/security-testing/fuzz-testing.html)
- PeachTech Peach Fuzzer:(https://www.peach.tech/products/peach-fuzzer/)
- Fuzzbuzz:(https://fuzzbuzz.io/)
MSRD采用智能约束算法。另一种主流智能模糊测试选项是遗传算法。两种算法都能使模糊测试工具锁定最具前景的路径来找到漏洞。
开源工具集 American Fuzzy Lop (AFL)使用遗传算法。该工具集是基于云的新工具Fuzzbuzz的核心,也是谷歌ClusterFuzz项目的一部分。
模糊测试器即服务正在逐步推出。如果可以的话,最好能采用这种技术。即便刚开始可能有些难上手,坚持用下去绝对能值回票价,因为它能保证产品安全。AI模糊测试器最令人激动的一点,是不仅能够减少所需工作量,还能得到更好的结果,更深入应用程序底层,找出更多漏洞。
位于加州桑尼维尔的安全初创公司RiskSense就提供模糊测试服务,这家公司的主要业务为企业客户进行风险评估。尽管该公司将此服务自称为“攻击验证即服务”,其实质就是“模糊测试即服务”。
机器学习进场的时机是在该公司发现漏洞之后,用于确认漏洞是否值得利用,以及是否会被利用。模糊测试本身采用传统自动化方法加人工监督的方式进行。该公司确实计划在初始阶段就开始使用AI——只要具备了足够的训练数据。足够的数据才能产生足够的模式,运用机器学习才有意义。如果没有良好的数据集,得到的只会是一堆误报,你将不得不回头验证结果,然后浪费大量时间。
已设立自身AI模糊测试项目的公司企业最好再找家供应商合作。有谷歌、微软或其他公司作为提供商,你会获得规模经济效应。因为除非是跨国大型企业,否则很难拥有合适的资源。大型云提供商的数据比政府都多。
唯一的例外是真正关键的系统,比如防务公司的武器系统。任何政府都不会将数据放到AWS上做模糊测试。如果是武器系统,除非有非常严格的安全要求,否则绝不会用谷歌或微软的AI模糊测试器。但如果是普通公司,大型供应商还是很靠谱的,他们可能不是最先做这个的,但肯定是能做出一定规模的。
用AI模糊测试查找零日漏洞
2月,微软安全研究员 Matt Miller 在该公司蓝帽大会上做了关于零日漏洞问题的演讲。他表示,2008年,绝大部分微软漏洞都是在补丁发布后才被利用的,仅21%是作为零日漏洞被利用。2018年,这一比例逆转了,83%的漏洞遭零日利用,其中大部分漏洞利用是针对性攻击的一环。
到目前为止,发现零日漏洞依然不是件容易的事,新零日漏洞的价格居高不下。Zerodium公司如今为带有效漏洞利用的高风险漏洞开出单个200万美元的高价,并宣称如果是特别有价值的零日漏洞,价码还可以更高。Zerodium收购零日漏洞后再转卖给少数几个机构,主要是政府机构。
零日漏洞的平均价格自然没那么高。统计各操作系统、暗网市场、付费服务和个体从业者漏洞利用平均价格的 RunSafe Pwn Index 得出结论:当前漏洞利用平均价格略高于1.5万美元,并呈现不断增长的趋势。
民族国家和高端网络罪犯可能已经在用AI模糊测试了。攻击者总想省时省力地获取最佳收益。而且,随着IoT设备和联网系统的普遍增殖,潜在攻击界面也在持续扩大。
最终,攻击者将能简单地指定一个目标就可以自动挖掘该目标的零日漏洞利用了。
AI模糊测试无疑将成为网络犯罪的巨大推力。AI模糊测试应会以服务的形式呈现,这是模糊测试的趋势。能用AI进行模糊测试的时候,人工来测就不再有意义了。
这意味着我们将见证更多零日漏洞,但今年内应该还不会出现太多AI发现的漏洞利用。现在还早了点儿,这项技术本身还相当年轻。
但应开始为此做好准备了,宜早不宜晚。任何供应商、开发人员、软件公司都应对自己的产品进行模糊测试。这是确保不留明显漏洞的最佳方式。
AI模糊测试实例尚少
尽管引发热议,在用AI模糊测试的实例却几乎没有。目前,没引入AI的模糊测试更有效些。
Positive Technologies拥有大型安全研究中心,每年发现大约700个应用安全漏洞。传统技术依然统治模糊测试领域,比如使用符号执行的模糊测试。不过,机器学习和其他新技术也为该领域吹入了一股新风。下一次大型安全会议上估计就会有人描述能颠覆行业的新东西了。
很难将网络罪犯是否已经在用AI模糊测试,因为他们通常不会谈论自己的手法。模糊测试就是模糊测试,模糊测试器背后的算法一般不会在漏洞被暴露时成为人们的话题中心。
由于AI提供了快速找出漏洞的可能性,能够找出传统方法没检测出的漏洞,AI模糊测试领域可能会出现一场军备竞赛。如果攻击者提升其模糊测试技术,安全人员就必须跟进。
本文由月兔网络(https://www.chinavlan.cn)转载安全牛(https://www.aqniu.com/)
发表评论: