这两年,随着大模型代码能力的增强,很多公司已经在采用大模型编写代码,大大提升效率。
大模型虽然代码写得快,但写的代码并不安全,很多甚至不如成熟程序员写的代码。一方面,代码生成速度大幅提升,另一方面,代码质量并不提高,结果就是对测试越来越大的挑战。
怎么办?用大模型对抗大模型是现在比较流行的方法。大模型在安全测试方面也有了很多的发展。Fuzzing就是一个比较重要的领域。
CI Spark
Code Intelligence是一家德国公司,他们的CI Spark利用生成式 AI 的代码分析和生成功能来自动生成模糊测试,这是 AI 驱动的白盒测试的核心。
它的主要能力包括:
-
识别接受用户控制输入的入口点
-
识别有效的 API 序列及可触发的行为
-
识别 API 的有效参数
-
处理数据流和控制流依赖关系
简单地说,它可以自动识别模糊测试候选对象并自动生成模糊测试的代码。此外,CI Spark 提供了一种交互模式,允许用户快速与之交互以纠正任何漏报并提高生成测试的质量。嗯嗯,自然语言交互。
Code Intelligence的网站上提供了一个Demo,地址在https://www.code-intelligence.com/product-ci-spark
在Demo中,体现了几个特点:
-
测试代码生成直接整合进IDE中。
IDE右边的部分用于交互。
2. 自然语言交互的测试代码生成能力
要求检查生成的代码里不能有”<script”,防止SQL注入。直接生成测试的Java代码。
还可以更详细的要求,增加一个有意义的输出:
看上去生成的测试代码还可以。
3. 测试代码可以直接保存到项目中,测试结果可以直接在IDE中运行
准确地找到了相关代码的位置。看上去测试效果还可以。
更多调查
有一篇论文专门研究了大模型用于模糊测试的情况:
https://arxiv.org/html/2402.00350v1
文章对众多的大模型Fuzzing测试的工具做了调查:
扩展
用AI增强测试已经有非常多的应用,Gartner专门做了排行
已经有很多厂商了,但看上去中国的还比较少。
非常怀疑搞这个排行的人不懂中文。至少,国内的云起无垠在这方面走的比较靠前,大模型能力也非常强,有兴趣的可以看一下:https://clouditera.com/。
他们还专门发了个白皮书:
END
Gartner排行榜:
https://www.gartner.com/reviews/market/ai-augmented-software-testing-tools
原文始发于微信公众号(AI与安全):AI大模型用于Fuzzing测试
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论