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

news2024/11/23 15:22:23

图片

本次分享论文为: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.coloradmin.cn/o/1493949.html

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

相关文章

C++初阶篇----类与对象下卷

目录 1.再谈析构函数1.1构造函数体赋值1.2 初始化列表1.3 explicit关键字 2.Static成员2.1概念2.2 特性 3.友元3.1 概念3.2友元函数3.3 友元类 4.内部类4.1 概念 5.匿名对象5.1 概念 6.拷贝对象时的一些编译器优化7.再次理解封装 1.再谈析构函数 1.1构造函数体赋值 在对类的实…

力扣大厂热门面试算法题 - 动态规划

爬梯子、跳跃游戏、最小路径和、杨辉三角、接雨水。每题做详细思路梳理,配套Python&Java双语代码, 2024.03.05 可通过leetcode所有测试用例。 目录 70. 爬楼梯 解题思路 完整代码 Python Java 55. 跳跃游戏 解题思路 完整代码 Python 代码…

LeetCode每日一题 二叉树的最大深度(二叉树)

题目描述 给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root [1,nul…

大摩突发:将推出比特币ETF

作者:秦晋 随着比特币ETF愈发火爆,华尔街另一家管理1.3万亿美元资产的大型经纪自营商「摩根士丹利」正在蠢蠢欲动,准备进军比特币ETF。 据彭博社数据显示,目前10只比特币现货ETF在上周三创下单日交易新纪录,成交量超过…

太惊艳了!多微信管理利器,让你事半功倍!

作为现代社交媒体的主要平台之一,微信在商务领域中扮演着重要的角色。为了提高我们的工作效率,微信管理系统应运而生。 这个系统可以同时登录多个微信账号,并进行统一管理。除了便捷的登录管理功能外,微信管理系统还提供了许多实…

优思学院|质量和企业的盈利能力有何关系?

质量和企业的盈利能力有何关系?三十年前,这个问题就已经被提出。当时的学者们研究了高质量产品如何带来更高的盈利。虽然这听起来像是老生常谈,但它的真理至今仍深深影响着我们的商业决策。 为了更直观地理解,一些学者绘制了以下…

Redis 核心面试题归纳

文章目录 RedisAOF 相关1. redis AOF 文件备份时,是使用的 write ahead log 的方式吗2. redis 开启AOF后的写入步骤3. redis AOF文件重写过程4.AOF 持久化策略 RDB 相关1.RDB 写入过程rdb 过程中,复制的页表是什么 Redis 主从同步1.PSYNC 和 SYNC 的区别…

Vue 前端开发 v-for和v-if两个指令不能混合使用

原由: 在进行项目开发的时候因为在一个标签上同时使用了v-for和v-if两个指令导致的报错。 提示错误:The undefined variable inside v-for directive should be replaced with a computed property that returns filtered array instead. You should no…

安装QT时,安装进程(qt.tools.perl)运行期间出现错误

安装QT时,安装进程(qt.tools.perl)运行期间出现错误 解决方法

小智浏览器助手

作为使用者来说,这个浏览器头痛的地方就是不能随意的切换地址,每次都要重新配置ini文件 再重新打开。 于是,我想了个办法,在使用前面加个能切换,维护地址的程序,让它来调用这个浏览器不就实现我的要求了&a…

【CSP考点回顾】前缀和数组

一、一维数组前缀和 前缀和算法是一种用于处理数组的技术,它可以快速计算任何连续子数组的和。适合在多次查询中需要求解多个范围和的情况。使用前缀和算法可以将每次求和的时间复杂度从 O(n) 降低到 O(1)。 前缀和的思想是创建一个新数组 A r r Arr Arr&#xff0…

kamailio转发电话到目的地,目的返回失败时再转给其他IP

按图中这样测试: A---->kamailio------->B B返回480等失败错误码(非200 OK),能进入failure_route[TOVOICEMAIL],但是t_relay_to_udp执行失败。 好吧,说是:在 failure_route 中处理的是…

干货!Python函数定义与调用

1.函数定义 函数主要有两部分组成:声明部分和实现部分 def 是 define的简写,表示定义的意思 函数名类似于变量名,遵守标识符命名规则,尽量做到见名知意 ():里面放的是参数列表,参数列表中的参数可以为空 函数体:表…

Claude3荣登榜首,亚马逊云科技为您提供先行体验!

Claude3荣登榜首,亚马逊云科技为您提供先行体验! 个人简介前言抢先体验关于Amazon BedrockAmazon Bedrock 的功能 Claude3体验教程登录Amazon Bedrock试用体验管理权限详细操作步骤1.提交应用场景详细信息2.请求模型的访问权限3.请求成功,开始…

Windows下Golang开发环境的安装

以下是在Windows操作系统下安装Go语言环境(Golang)的步骤。 请注意,安装步骤可能因Go的版本更新而有所变化,以下教程适用于撰写本文时的最新稳定版。 1、下载Go语言安装包 打开Go语言的官方下载页面:https://golang.go…

MySQL高可用性攻略:快速搭建MySQL主从复制集群 !

MySQL高可用性攻略:快速搭建MySQL主从复制集群 ! MySQL基础知识:介绍MySQL数据库的基本概念和常用命令,如何创建数据库、表、用户和权限管理等。 MySQL安装教程:Centos7 安装MySQL5.7.29详细安装手册 MySQL数据类型&…

Python 过滤函数filter()详解

一、过滤函数定义 它用于对容器中的元素进行过滤处理。 二、 过滤函数语法 filter(function,iterable) 参数function:提供过滤条件的函数,返回布尔型 参数iterable: 容器类型数据 三、过滤函数的应用场景 1、筛选符合条件的元素 需求:在列表…

VMware安装Ubuntu(保姆级)

VMware安装Ubuntu(保姆级) 文章目录 VMware安装Ubuntu(保姆级)一、镜像下载二、开始安装①:创建一个新的虚拟机②:开始安装③:安装 ssh 服务 提示:以下是本篇文章正文内容&#xff0…

第1题:两数之和

题目内容: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。…

“比特币刚破6.9万又套牢”?超31万人爆仓11.5亿美元!后市将如何发展?

时隔846天(2021年11月10日)之久,比特币终于在昨晚最高触及69080美元,再度创下历史新高,引发社群一片感慨:比特币再不亏欠任何人! 怎料,比特币刚站上历史高点就急速下挫,一…