山石网科谈代码安全新格局:大模型为开发者保驾护航
大模型(LLMs)近年来在自然语言处理领域取得了突破性进展,并逐渐被应用于网络安全领域,展现出显著的创新潜力。在网络安全场景中,数据的多样性、威胁的复杂性以及实时响应的需求不断推动大模型的应用研究。与传统的安全工具和算法相比,大模型凭借其强大的文本理解和生成能力,使得自动化威胁检测、漏洞识别和修复等任务的智能化水平得到了显著提升。
编写代码是一门艺术,编写安全代码更是一门科学。大模型不仅能生成功能强大的代码,还能在安全性上进行深度优化。通过本章,您将了解如何利用大模型确保代码的安全性,消除潜在隐患,并助力开发者构建更可信的软件生态。
已有大量研究证实了大模型具备良好的代码理解能力。然而,生成代码的安全性至关重要,许多研究探讨了大模型是否能够提供安全的代码。
评估大模型生成代码的安全性
大模型是否知晓生成的代码是否安全?
RaphalK等人通过一系列实验验证了大模型生成代码的安全性,并在不同场景下发现生成代码中的漏洞。尽管在要求大模型审查时,它可能识别出生成代码中的漏洞,但实验表明大模型仍会生成不安全代码,除非明确要求生成安全代码。他们还指出,深度神经网络的不可解释性带来了一个关键问题,即重复询问同一问题往往会得到不同答案(例如代码是否不安全),且难以找到最大化成功识别漏洞的策略。
JingxuanH等人更直接地尝试通过某些机制指定大模型生成安全或不安全的代码。他们提出了一种名为svGen的方法,使大模型根据用户需求生成安全或不安全的代码。除了生成代码的描述,他们还引入了特定属性的连续向量,称为前缀,这些前缀与大模型的隐藏状态形状匹配。这些前缀通过提供初始隐藏状态来引导大模型的生成过程,使代码符合所需的安全标准,而无需修改模型的底层权重。
为提升大模型生成代码的安全性,JingxuanH等人提出了SafeCoder,一种创新的指令微调方法,通过使用从GitHub自动化管道收集的高质量数据集将标准指令微调与安全特定微调相结合,显著提升了代码安全性,同时在不同任务中保持大模型的实用性,展示了其在提升大模型生成代码安全性方面的多样性和适用性。
大模型作为静态分析助手
HammondP等人探索了大模型(如OpenAI的Codex)在逆向工程领域的应用,特别是在理解软件功能和从代码中提取信息方面。大模型主要用于分析逆向工程工具(如Ghidra)提供的C类代码,这些C代码是通过反编译从二进制文件中获得的。在逆向工程中,反编译也是一项重要任务。HanzhuoT等人专注于将大模型用于反编译,将编译后的机器代码转换回可读的源代码。他们在大量C代码和汇编代码对上微调了一个名为DeepSeek-Coder的大模型,并通过重新编译和执行反编译代码来评估其性能。ChongzhouF等人探讨了大模型在代码分析任务中的潜力和局限性,特别是在处理混淆代码的背景下。他们的实验还让大模型生成去混淆版本的代码,即从混淆代码中恢复原始、更加可读的代码。
PeiY等人专注于如何利用大规模语言模型帮助恶意软件的动态分析。研究的核心思想是使用GPT-4为每个API调用生成解释文本,然后利用预训练语言模型BERT基于先前分析生成一系列API序列,以执行进一步分析。此方法可理论上为所有API调用生成表示,无需在生成过程中训练数据集。HimariF等人使用大模型(特别是ChatGPT)分析勒索软件通讯的语言和策略要素,通过研究勒索软件样本,揭示了勒索策略的进化特征,包括复杂的语言使用和心理操控。其他研究包括:探讨了大模型在制定反勒索软件策略中的潜力和挑战;通过分析JavaScript包,利用GPT-3和GPT-4检测npm生态系统中的潜在恶意软件;研究引入SocketAIScanner,一种多阶段工作流,利用迭代自我优化和零样本角色扮演链式思维提示技术,增强了模型识别代码中恶意意图的能力;通过比较大模型与静态分析工具的性能,研究表明大模型能够以更高的准确率和更低的误报率有效检测恶意软件。
大模型作为动态调试助手
RunchuT等人引入了DebugBench,这是一个用于评估大模型编程调试能力的基准,涵盖C++、Java和Python中不同错误类别的4253个实例。该基准通过收集LeetCode代码片段,利用GPT-4植入错误,并进行严格的质量检查构建而成。ZheL等人针对移动应用程序的图形用户界面(GUI)自动化测试难题提出了一种名为GPTDroid的新方法,将GUI测试问题转化为问答任务,让大模型与移动应用程序交互,通过传递GUI页面信息生成测试脚本。执行这些脚本后,将应用程序反馈迭代传递给大模型以指导进一步测试。BaleeghA等人提出了一个名为FLAG的方法,以帮助人工调试人员识别并定位代码中的安全和功能性错误。FLAG通过输入代码文件并重新生成每一行与原始代码进行比较,将显著差异标记为异常以供进一步检查。
山石网科公司介绍:
山石网科是中国网络安全行业的技术创新领导厂商,由一批知名网络安全技术骨干于2007年创立,并以首批科创板上市公司的身份,在2019年9月登陆科创板(股票简称:山石网科)。
现阶段,山石网科掌握30项自主研发核心技术,申请540多项国内外专利。山石网科于2019年起,积极布局信创领域,致力于推动国内信息技术创新,并于2021年正式启动安全芯片战略。2023年进行自研ASIC安全芯片的技术研发,旨在通过自主创新,为用户提供更高效、更安全的网络安全保障。目前,山石网科已形成了具备“全息、量化、智能、协同”四大技术特点的涉及边界安全、云安全、数据安全、业务安全、内网安全、智能安全运营、安全服务、安全运维等八大类产品服务,50余个行业和场景的完整解决方案。