
【山石说AI】•第17篇
大模型在网络安全中的最新应用进展(六)
网络中那些隐匿的“异常信号”是潜在威胁的前兆。大模型凭借出色的异常模式捕捉能力,正成为检测恶意流量和系统异常的核心力量。我们将展示这一技术如何化繁为简,帮助企业守护数字世界的每一份安全。
在软件开发生命周期中,错误的存在对其产生深远影响,错误的检测和修复需要耗费大量资源。研究人员因此致力于寻找新方法,以自动识别和修复错误或漏洞。
评估现有大模型在程序修复方面的表现
针对不同的先进大模型(开源或专有),多项研究评估了它们在程序修复方面的能力。Julian Ar等人 [1]探讨了OpenAI的Codex模型在自动程序修复(APR)领域的应用,特别是其定位和修复软件漏洞的能力。他们使用QuixBugs基准(包含40个Python和Java中的漏洞)评估Codex在APR任务上的表现,尽管没有进行重新训练,Codex的表现超过了许多现有的APR技术。Dominik S等人 [2]开展了类似的研究,但使用ChatGPT而非Codex进行评估。Jan N等人 [3]讨论了大型语言模型Gemini在自动修复软件漏洞方面的应用,特别是C/C++、Java和Go代码中通过sanitizer工具发现的漏洞。尽管成功率可能不高,但研究人员认为这一方法能够显著减少工程上的努力。

Jiaxin Y等人 [4]评估了三个大模型(Gemini Pro、GPT-4和GPT-3.5)在具有实际代码审查中发现的安全缺陷的代码上的表现,结果显示GPT-4表现相对较优,但所有模型在响应简洁性、清晰度和准确性方面均有显著提升空间。Chunqiu S等人 [5]选择了九个大模型,与传统的自动程序修复方法进行了比较,展示了大模型在该领域的优异性能。Hammond P等人 [6]通过大规模实验探讨了大模型在零样本漏洞修复中的潜力,结果表明尽管大模型在简单场景下表现良好,但在复杂的真实世界示例中仍显不足。Yi W等人 [7]比较了大模型与基于深度学习的APR模型在修复Java漏洞方面的表现。他们在两个Java漏洞基准(Vul4J和VJBench)上评估了5个大模型、4个微调大模型和4个基于深度学习的APR技术,并设计了代码转换方法解决Codex面临的训练与测试数据重叠问题。
结合静态分析工具的大模型程序修复
部分研究结合了传统程序分析工具和大模型以提高程序修复的效率。Kamel A等人 [8]提出了一种新的方法称为反馈驱动安全补丁(Feedback-Driven Security Patching,FDSP),通过将静态代码分析工具Bandit的反馈传递给大模型生成潜在的安全漏洞解决方案,每个方案会返回给大模型进行验证。Matthew J等人 [9]提出了一个名为InferFix的程序修复框架,结合最新的静态分析器修复关键的安全和性能漏洞。InferFix包含一个检索器和一个生成器,检索器用于搜索语义等效的错误和修复,而生成器则基于包含错误类型注释和语义相似修复的提示进行微调。

通过不同策略提升修复能力
为了改进大模型在程序修复任务中的表现,研究人员采取了多种改进措施。David D等人 [10]对包含C代码漏洞的数据集进行了微调,并专门设计了结构化的代码表示供大模型使用,包括需要修复的代码行号、漏洞描述(如CWE描述)、完整源代码等。
Xinyun C等人 [11]提出了一种名为SELF-DEBUGGING的方法,该方法无需人为反馈代码的正确性或错误信息,模型通过观察执行结果并自然语言解释生成代码来自行识别错误。Toufique A等人 [13]探索了自一致性方法在程序修复中的应用,通过将commit-logs(Github上的bug修复提交)作为少样本提示中的推理路径,自一致性方法能够生成多样化的解决方案,并从多个样本中选择最频繁的解决方案以提高修补准确性。Yuxiang W等人 [14]提出了名为Repilot的程序修复框架,首先屏蔽存在缺陷的代码段,然后利用大模型生成候选补丁,并在生成过程中咨询补全引擎以修剪不可行的符号并主动完成代码,从而提高补丁的编译率和正确性。

Nafis T等人 [15]提出了SecRepair系统,通过强化学习结合语义奖励机制,改进模型生成准确代码注释和描述的能力,引导开发者有效解决安全问题。Yuxiao C等人 [16]研究了大模型在跨多个函数或文件的依赖代码修复方面的表现,提出了一个基准RepoBugs,包含来自开源代码库的124个错误以评估大模型在该方面的性能。
面向特定目标的程序修复
我们还收集了一些关于特定目标程序修复的研究文献。M.Caner T和Berk S [17]提出了一个名为ZeroLeak的框架,探索如何利用大模型自动生成修复代码来解决软件中的侧信道漏洞。ZeroLeak通过零样本学习引导大模型生成特定漏洞的补丁。生成的补丁会通过动态分析工具检测,以确保其在功能正确的同时也能防止信息泄露。Sudipta P等人 [18]提出了一个新框架DIVAS,将用户定义的SoC规范映射到常见弱点枚举(CWE),生成SystemVerilog断言(SVA)进行验证并执行安全策略,自动化漏洞检测和策略执行,减少手工工作并增强SoC安全性。
Baleegh A等人 [19]构建了一个硬件安全漏洞代表性数据集,并利用大模型自动修复其中的Verilog代码。Tan K L等人 [20]独特地关注了大模型在JavaScript程序安全漏洞修复中的应用,使用2023年CWE前25列表作为参考,选取JavaScript相关的漏洞评估模型生成正确补丁的准确性。研究结果强调了大模型在JavaScript安全性中的潜力,特别是在Web开发中占主导地位的这一编程语言中的表现。
向上滑动,查看所有参考文献
1.Baleegh Ahmad, Benjamin Tan, Ramesh Karri, and Hammond Pearce. Flag: Finding line anomalies (in code) with generative ai. arXiv preprint arXiv:2306.12643, 2023.
2.Julian Aron Prenner and Romain Robbes. Automatic program repair with openai’s codex: Evaluating quixbugs. arXiv preprint arXiv:2111.03922, 2021.
3.Dominik Sobania, Martin Briesch, Carol Hanna, and Justyna Petke. An analysis of the automatic bug fixing performance of chatgpt. arXiv preprint arXiv:2301.08653, 2023.
4.Jan Keller and Jan Nowakowski. Ai-powered patching: the future of automated vulnerability fixes. Technical report, 2024.
5.Jiaxin Yu, Peng Liang, Yujia Fu, Amjed Tahir, Mojtaba Shahin, Chong Wang, and Yangxiao Cai. Security code review by llms: A deep dive into responses. arXiv preprint arXiv:2401.16310, 2024.
6.Chunqiu Steven Xia, Yuxiang Wei, and Lingming Zhang. Practical program repair in the era of large pre-trained language models. arXiv preprint arXiv:2210.14179, 2022.
7.Hammond Pearce, Benjamin Tan, Baleegh Ahmad, Ramesh Karri, and Brendan Dolan-Gavitt. Examining zero-shot vulnerability repair with large language models. In 2023 IEEE Symposium on Security and Privacy (SP), pages 2339–2356, 2023.
8.Yi Wu, Nan Jiang, Hung Viet Pham, Thibaud Lutellier, Jordan Davis, Lin Tan, Petr Babkin, and Sameena Shah.How effective are neural networks for fixing security vulnerabilities. In Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA ’23. ACM, July 2023.
9.Kamel Alrashedy and Abdullah Aljasser. Can llms patch security issues? arXiv preprint arXiv:2312.00024,2024.
10.Matthew Jin, Syed Shahriar, Michele Tufano, Xin Shi, Shuai Lu, Neel Sundaresan, and Alexey Svyatkovskiy. Inferfix: End-to-end program repair with llms. arXiv preprint arXiv:2303.07263, 2023.
11.David de Fitero-Dominguez, Eva Garcia-Lopez, Antonio Garcia-Cabot, and Jose-Javier Martinez-Herraiz. Enhanced automated code vulnerability repair using large language models. arXiv preprint arXiv:2401.03741,2024.
12.Xinyun Chen, Maxwell Lin, Nathanael Schärli, and Denny Zhou. Teaching large language models to self-debug. arXiv preprint arXiv:2304.05128, 2023.
13.Toufique Ahmed and Premkumar Devanbu. Better patching using llm prompting, via self-consistency. In 2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 1742–1746, 2023.
14.Yuxiang Wei, Chunqiu Steven Xia, and Lingming Zhang. Copiloting the copilots: Fusing large language models with completion engines for automated program repair. In Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2023, page 172–184, New York, NY, USA, 2023. Association for Computing Machinery.
15.Nafis Tanveer Islam, Joseph Khoury, Andrew Seong, Mohammad Bahrami Karkevandi, Gonzalo De La Torre Parra, Elias Bou-Harb, and Peyman Najafirad. Llm-powered code vulnerability repair with reinforcement learning and semantic reward. arXiv preprint arXiv:2401.03374, 2024.
16.Yuxiao Chen, Jingzheng Wu, Xiang Ling, Changjiang Li, Zhiqing Rui, Tianyue Luo, and Yanjun Wu. When large language models confront repository-level automatic program repair: How well they done? arXiv preprint arXiv:2403.00448, 2024.
17.M. Caner Tol and Berk Sunar. Zeroleak: Using llms for scalable and cost effective side-channel patching. arXiv preprint arXiv:2308.13062, 2023.
18.Sudipta Paria, Aritra Dasgupta, and Swarup Bhunia. Divas: An llm-based end-to-end framework for soc security analysis and policy-based protection. arXiv preprint arXiv:2308.06932, 2023.
19.Baleegh Ahmad, Shailja Thakur, Benjamin Tan, Ramesh Karri, and Hammond Pearce. Fixing hardware security bugs with large language models. arXiv preprint arXiv:2302.01215, 2023.
20.Tan Khang Le, Saba Alimadadi, and Steven Y Ko. A study of vulnerability repair in javascript programs with large language models. arXiv e-prints, pages arXiv–2403, 2024.
“码”上阅读
【山石说AI】全系列文章
山石网科是中国网络安全行业的技术创新领导厂商,由一批知名网络安全技术骨干于2007年创立,并以首批科创板上市公司的身份,在2019年9月登陆科创板(股票简称:山石网科,股票代码:)。
现阶段,山石网科掌握30项自主研发核心技术,申请540多项国内外专利。山石网科于2019年起,积极布局信创领域,致力于推动国内信息技术创新,并于2021年正式启动安全芯片战略。2023年进行自研ASIC安全芯片的技术研发,旨在通过自主创新,为用户提供更高效、更安全的网络安全保障。目前,山石网科已形成了具备“全息、量化、智能、协同”四大技术特点的涉及边界安全、云安全、数据安全、业务安全、内网安全、智能安全运营、安全服务、安全运维等八大类产品服务,50余个行业和场景的完整解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/275385.html