【论文速读】 | AI驱动修复:漏洞自动化修复的未来

图片

本次分享论文为:AI-powered patching: the future of automated vulnerability fixes

基本信息

原文作者:Jan Nowakowski, Jan Keller

作者单位:Google Security Engineering

关键词:AI, 安全性漏洞, 自动化修复, LLM, sanitizer bugs

原文链接:
https://storage.googleapis.com/gweb-research2023-media/pubtools/pdf/4fd3441fe40bb74e3f94f5203a17399af07b115c.pdf

开源代码:[暂无]

论文要点

论文简介:本文介绍了一种利用大语言模型(LLMs)自动修复软件中的安全漏洞的方法。通过建立一个自动化流程,从发现漏洞到生成修复代码,再到测试和人工审查,这一流程能够有效加速并提高软件修复的质量和速度。

研究背景:随着AI技术的快速发展,其在软件安全领域的应用也越来越广泛。尤其是在自动化发现和修复漏洞方面,AI技术展现出巨大的潜力。

研究贡献:

a. 提出了一个完整的AI驱动漏洞修复流程,包括漏洞发现、复现与隔离、生成修复代码、测试和人工审查等步骤。

图片

b. 成功利用LLMs自动修复了15%的sanitizer漏洞,大大减少了工程师的工作量。

c. 展示了AI技术在提高软件安全性方面的巨大潜力,为未来的自动化安全防御提供了新的思路。

引言

当前,随着AI技术的不断进步,其在软件开发和安全领域的应用也日益增多。特别是在自动化发现和修复软件漏洞方面,AI提供了一种高效且可行的解决方案。Google的安全工程团队利用大语言模型(LLMs),如Gemini模型,建立了一个自动化的漏洞修复流程。这一流程不仅能自动发现和隔离漏洞,还能生成修复代码供人工审查,极大提高了修复效率和速度。

背景知识

自动化安全漏洞修复技术的研究背景包括了漏洞检测、隔离和修复的整个过程。其中,漏洞检测通常由sanitizers完成,这是一类能在代码运行时检测出各种安全漏洞的工具。随后,通过自动化流程隔离并复现这些漏洞,以便更准确地生成修复代码。最后,修复代码通过自动化测试和人工审查,以确保其正确性和有效性。

论文方法

理论背景:研究团队利用LLMs的语言生成能力,针对由sanitizers发现的内存安全漏洞,自动生成修复代码。这一过程依赖于LLMs强大的模式识别和代码生成能力。

方法实现:通过建立一个从漏洞发现到修复的完整自动化流程,包括漏洞发现、隔离与复现、利用LLMs生成修复代码、代码测试和人工审查等环节。在此过程中,研究团队使用了Gemini模型,并通过实验对比不同模型在漏洞修复中的效果。

实验

实验设置:实验通过自动化流程处理真实世界中的sanitizer漏洞,评估了LLMs在生成有效修复代码方面的能力。

实验结果:实验结果显示,Gemini模型能够自动修复15%的sanitizer漏洞,相比人工修复大大减少了工作量。此外,这一过程还发现不同模型在处理不同类型漏洞时的效率差异,为未来选择最适合的模型提供了参考。

论文结论

本研究展示了利用AI技术,特别是LLMs在自动化修复软件安全漏洞方面的巨大潜力。通过自动化的漏洞修复流程,不仅可以加快修复速度,还可以提高软件的安全性。未来,随着AI技术的进一步发展,自动化安全漏洞的修复将变得更加高效和普遍。

原作者:论文解读智能体

润色:Fancy

校对:小椰风

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Objective-C blocks 概要

1.block的使用 1.1什么是block? Blocks是C语言的扩充功能:带有自动变量(局部变量)的匿名函数。 “带有自动变量”在Blocks中表现为“截取自动变量" “匿名函数”就是“不带名称的函数” 块,封装了函数调用及调用…

全方位碾压chatGPT4的全球最强模型Claude 3发布!速通指南在此!保姆级教学拿脚都能学会!

🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏《Spring 狂野之旅:从入门到入魔》 &a…

Android开发岗还不会这些问题,温故而知新

前言 前前后后经历过大项目、小项目,跨平台,小程序,Nodejs服务等等,目前在做的Rom开发,定制各种手机中的奇葩需求,从应用层到Framework层,再到C层,再到驱动,最终到Linux&…

MybatisPlus入门详解

一、MyBatisPlus 简介 1.1 创建新模块 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.1</version></dependency> 由于mp并未被收录到idea的系统内置配置,无法…

Solidity Uniswap V2 Pair中添加流动性

添加流动性的功能的用户入口&#xff0c;UniswapV2在UniswapV2Router中实现&#xff0c;它用来计算新的流动性并发行LP-Token&#xff0c;流动性管理简单地视为LP-Token管理。当你为一个pair增加流动性时&#xff0c;合约会创造LP Token;当你移除流动性时&#xff0c;LP-Token就…

【debug】element-ui时间控件回显后不可编辑且显示为空

问题&#xff1a;使用element-ui的时间控件回显数据&#xff0c;编辑数据没有反应&#xff1a;点时间和“确认”按钮都没反应。 输入框中会显示数据&#xff0c;但提交时的校验显示为空。 <el-form-item label"开始时间" prop"limitStartTime"><…

局部最小值问题

局部最小值问题&#xff1a; 条件&#xff1a;n个数的无序数组 array&#xff0c;相邻两个数一定不相等&#xff0c;找出其中的一个局部最小值。 如果array[0]< array[1] ,返回 array[0];如果array[n-1]<array[n-2]&#xff0c;返回array[n-1];其他的位置需要满足 array[…

xss.haozi.me:0X0D

alert(1) -> 记住要回车一下-->是js的一个注释符但是只能用在最前面前面有一个空格都不行

【LeetCode】升级打怪之路 Day 14:二叉树的遍历

今日题目&#xff1a; 144. 二叉树的前序遍历94. 二叉树的中序遍历145. 二叉树的后序遍历102. 二叉树的层序遍历107. 二叉树的层序遍历 II199. 二叉树的右视图637. 二叉树的层平均值429. N 叉树的层序遍历515. 在每个树行中找最大值116. 填充每个节点的下一个右侧节点指针117. …

【YOLO v5 v7 v8 v9小目标改进】RevCol:解决深度学习信息从低层(输入)传递至高层(输出)的过程中,信息会逐层丢失问题

RevCol&#xff1a;解决深度学习信息从低层&#xff08;输入&#xff09;传递至高层&#xff08;输出&#xff09;的过程中&#xff0c;信息会逐层丢失问题 学习解耦表示可逆列网络&#xff08;RevCol&#xff09;子特征1&#xff1a;多级可逆单元子特征2&#xff1a;可逆列架构…

ARM电源策略单元Power Policy Unit

本规范描述了电源策略单元&#xff08;PPU&#xff09;架构。它定义了PPU架构的1.1版本。 PPU规范的1.1版本增加了操作模式支持。这使得能够为功能或更高粒度的电源控制原因提供组件特定的电源模式支持。 在本文档中&#xff0c;对PPU或PPU的引用指的是实现了此PPU架构的设备…

十四、重写与多态

重写、多态 上一讲是&#xff0c;子类对父类横向上的扩展 这一讲是&#xff0c;子类对父类纵向上的扩展 方法重写 使用override关键字重写父类的方法 将父类原本方法的逻辑更新成新版本的逻辑 注&#xff1a;仅能重写可见的父类成员&#xff0c;并且重写要保持签名一致。 签名一…

GEE 将裁剪后的Sentinel-2影像 在ArcGIS中去除空值

在ArcGIS中&#xff0c;可以使用栅格计算器&#xff08;Raster Calculator&#xff09;工具来设置NoData值为空。以下是在ArcGIS中将NoData值设置为空的步骤&#xff1a; 打开ArcGIS软件并加载下载的Sentinel-2影像数据。 影像Nodata空值以黑色背景呈现&#xff0c;影响矢量数据…

SpringCloud2023最新版本该如何进行组件选型?

前言 Developing distributed systems can be challenging. Complexity is moved from the application layer to the network layer and demands greater interaction between services. Making your code ‘cloud-native’ means dealing with 12-factor issues such as exte…

鸿蒙4.0-DevEco Studio界面工程

DevEco Studio界面工程 DevEco Studio 下载与第一个工程新建的第一个工程界面回到Project工程结构来看 DevEco Studio 下载与第一个工程 DevEco Studio 下载地址&#xff1a;点击跳转 https://developer.harmonyos.com/cn/develop/deveco-studio#download 学习课堂以及文档地址…

《金三银四求职攻略》:程序员面试季倒计时

程序员的金三银四求职宝典 大家好&#xff0c;我是小明&#xff0c;一位即将面临春季求职季的程序员。在这个黄金时段&#xff0c;如何在众多应聘者中脱颖而出&#xff0c;拿下理想的offer&#xff0c;成为了我思考的重点。今天&#xff0c;我将分享一些我个人的求职攻略&…

增强型YOLOv5应用于扩展PASCAL VOC数据集

目录 摘要关键词 1. 引言2. 性能研究2.1 YOLO2.2 PASCAL VOC 2007 数据集2.3 MS COCO 数据集 3 实验方法3.1 利用COCO数据集扩展PASCAL VOC 2007&#xff08;以elephant大象为例&#xff09;3.2 方法实现&#xff08;以YOLOv5为例&#xff09;3.2.1 YOLOv5介绍3.2.2 YOLOv5…

【详识C语言】动态内存管理

本章重点 为什么存在动态内存分配 动态内存函数的介绍 malloc free calloc realloc 常见的动态内存错误 几个经典的笔试题 柔性数组 为什么存在动态内存分配 我们已经掌握的内存开辟方式有&#xff1a; int val 20;//在栈空间上开辟四个字节char arr[10] {0};//在栈空间上开…

Three.js--》探寻Cannon.js构建震撼的3D物理交互体验(二)

我们用three.js可以绘制出各种酷炫的画面&#xff0c;但是当我们想要一个更加真实的物理效果的话&#xff0c;这个时候我们就需要一个物理的库&#xff0c;接下来我们就讲解一下今天要学习的canon&#xff0c;它可以给我们提供一个更加真实的物理效果&#xff0c;像物体的张力、…

2024护网面试题精选(一)

0x00.基础漏洞篇 00-TOP10漏洞 1.SQL注入 2.失效的身份认证和会话管理 3.跨站脚本攻击XSS 4.直接引用不安全的对象 5.安全配置错误 6.敏感信息泄露 7.缺少功能级的访问控制 8.跨站请求伪造CSRF 9.实验含有已知漏洞的组件 10.未验证的重定向和转发 01-SQL注入漏洞 …