当前位置: 首页 > news >正文

Google 提供基于AI的模糊测试框架

人工智能驱动的 OSS-Fuzz 工具可以帮助发现漏洞,并与自动修补管道相结合。

图片

       模糊测试可以成为找出软件中零日漏洞的宝贵工具。为了鼓励开发人员和研究人员使用它,谷歌周三宣布,免费提供其模糊测试框架OSS-Fuzz。

       根据谷歌的说法,通过使用该框架在大型语言模型(LLM)的帮助下自动执行模糊测试方面,可以获得切实的安全提升。“我们使用LLM来编写特定于项目的代码,以提高模糊测试覆盖率并发现更多漏洞,”谷歌开源安全团队成员Dongge Liu和Oliver Chang以及机器语言安全团队成员Jan Nowakowski和Jan Keller在公司博客中写道。

       他们指出,到目前为止,OSS-Fuzz 及其由 LLM 生成的改进模糊测试策略已经让 Google 在 cJSON 和 libplist 中发现了两个新漏洞,尽管这两个广泛使用的项目已经被模糊测试了多年。他们补充说,如果没有完全由LLM生成的代码,这两个漏洞可能会很难被发现和修复。

模糊测试是一种自动化测试

       Synopsys Software Integrity Group 的高级安全产品经理 John McShane 表示:“模糊测试已经存在了几十年,并且因其成功发现以前未知或零日漏洞而越来越受欢迎,Synopsys Software Integrity Group 是一家针对 DevSecOps 优化的安全平台提供商。“臭名昭著的 Heartbleed 漏洞是由安全工程师使用商业模糊测试产品 Defensics 发现的。”

       模糊测试可以捕获很多“唾手可得的果实”,但它也可能暴露一些高影响的项目,例如缓冲区溢出,渗透测试公司 Cobalt Labs 的网络安全服务主管 Gisela Hinojosa 补充道。“由于模糊测试是一项自动化测试,因此不需要额外的人员参与,”她说。“它只会做它的事情,你真的不必担心它。这是一种相对容易发现漏洞的方法。

模糊测试不能替代安全设计策略

       然而,Rust基金会的顾问、华盛顿特区国际事务和经济智库大西洋理事会的高级研究员Shane Miller警告说,“对模糊测试等动态测试工具的投资并不能替代设计安全策略,比如选择内存安全的编程语言,但它们是提高软件安全性的有力工具。

       Miller 补充道:“模糊测试通过探索具有意外输入的软件行为来扩大测试范围,这些输入可以发现漏洞,例如最近针对美国水处理厂、电网、石油和天然气管道以及交通枢纽的国家支持的网络攻击中利用的漏洞。

       虽然模糊测试对开发人员有益,但它的手动确认方面一直阻碍开源维护者有效地模糊测试他们的项目——谷歌希望通过免费提供对其模糊测试框架来解决这一问题。“由于开源维护者通常是没有资金或资金有限的志愿者,因此花时间并支付运行资源密集型工具的成本并不总是可行的,”软件供应链安全公司Dark Sky Technology的首席执行官Michael J. Mehlberg说。

       “即使是这样,”Mehlberg 继续说道,“模糊测试工具也会使原本简单的构建环境复杂化,可能会产生大量误报,从而为已经捉襟见肘的团队带来审查和分析工作,并可能产生由于网络安全技能或经验不足而无法采取的行动。

安全是漏洞修复中最重要的一环

       谷歌还为开发人员和研究人员提供了使用LLM构建自动修补管道的指导。“这种人工智能驱动的补丁方法解决了15%的目标错误,为工程师节省了大量时间,”谷歌安全团队成员在他们的博客中写道。

       虽然使用 LLM 自动打补丁是一个有趣的想法,但 Hinojosa 指出,挑战在于 LLM 是否拥有在不破坏事物的情况下有效打补丁所需的所有上下文知识。“我认为自动化系统提出修复建议是一个好主意,但人类在实施之前手动审查它。

       “总的来说,打补丁最重要的部分不是自动化,而是安全,”普渡大学计算机科学助理教授Dave (Jing) Tian补充道。“事实证明,证明一个补丁完全符合其应有的作用并非易事,”他说。“因此,就目前而言,只能自动修复有限数量的漏洞类别。这些补丁很简单,例如将变量的 32 位整数更改为 64 位整数。对于更复杂的补丁,我们仍然需要并且应该要求领域专家在AI自动注入补丁后对其进行审查。

oss-fuzz-gen项目地址:https://github.com/google/oss-fuzz-gen

文章来源:csoonline


http://www.mrgr.cn/news/34892.html

相关文章:

  • Axure-本地发布,局域网内用户访问
  • 如何使用MacPorts安装tesseract来进行简单的OCR识别
  • C++中stack类和queue类
  • 【Canvas与诗词】铁马冰河入梦来
  • lambda表达式详解
  • AI赋能千人千面营销:从数据采集到精准用户画像的全流程解析
  • 亚马逊云科技的成功秘诀:韧性与持续创新的经验之道
  • .NET 一款新的内网对抗综合利用工具
  • 循环遍历把多维数组中的某个值改成需要的值
  • wpf如何进行数据绑定与动态数据操作?
  • 【电商搜索】现代工业级电商搜索技术-Ha3搜索引擎平台简介
  • 管理方法(11)-- 阿米巴经营
  • 深度学习之表示学习 - 贪心逐层无监督预训练篇
  • eBPF系列:开发流程
  • 数据科学的秘密武器:defaultdict——Python字典的自动化填充神器,让数据结构更灵活
  • python 实现word frequency functions词频函数算法
  • 卷积神经网络(CNN)图像处理与识别原理
  • 汽车HMI:UI设计进入了3D时代,设计师准备好了吗?
  • LabVIEW提高开发效率技巧----使用状态机架构
  • 低侧双向电流检测电路设计