山石说AI|如何构建面向网络安全领域的大模型

admin 2024年11月20日17:28:28评论188 views字数 11009阅读36分41秒阅读模式

山石说AI|如何构建面向网络安全领域的大模型

山石说AI|如何构建面向网络安全领域的大模型

【山石说AI】第3篇
如何构建面向网络安全领域的大模型

山石说AI|如何构建面向网络安全领域的大模型

网络安全领域正面临日益加剧的威胁,亟需智能高效的解决方案来应对复杂且不断演变的攻击。大模型为网络安全社区提供了新的机会。通过对海量数据的训练,大模型积累了丰富的知识,发展了强大的理解和推理能力,能够为网络安全提供有力的决策支持。

推进网络安全需要专为该领域定制的大模型,充分利用其学习领域特定数据和知识的潜力。本文首先聚焦于构建网络安全领域大模型的关键技术,包括大模型的持续预训练(continual pre-training,CPT)和监督微调(supervised fine-tuning,SFT)等训练方法,以及全参数训练和参数高效微调(parameter-efficient fine-tuning,PEFT)等技术实现方式。接下来,将介绍多个用于评估大模型网络安全能力的领域数据集,这些数据集可以在构建网络安全大模型时指导选择合适的基础模型。最后,总结现有通过微调通用大模型构建领域特定模型的工作,这些模型应用于包括漏洞检测、程序修复、安全代码生成等多个方面。

山石说AI|如何构建面向网络安全领域的大模型
山石说AI|如何构建面向网络安全领域的大模型
关键技术

大模型利用了Transformer架构和自监督预训练策略,展现了出色的理解和内容生成能力。然而,从零开始开发一个专门用于网络安全的大模型将需要大量的资源,对大多数研究团队来说并不实际。幸运的是,现有的通用大模型已经具备了广泛的知识并表现出显著的泛化能力。通过将这些预训练的大模型与网络安全特定的数据集结合进行训练,我们可以采用更高效的方法来增强模型的能力。这种方法不仅显著减少了预训练所需的计算成本,还最大化地利用了大模型已学到的知识,从而提升其理解和执行网络安全相关任务的能力,例如自动化威胁检测、漏洞识别和安全策略推荐等。

山石说AI|如何构建面向网络安全领域的大模型

图1:领域大模型训练方法的比较。持续预训练(continual pre-training,CPT)和监督微调(supervised fine-tuning,SFT)提供了基于现有大模型提升领域特定性能的方法,而全参数训练(FULL parameter training)和参数高效微调(parameter-efficient fine-tuning,PEFT)则代表了这些训练过程中不同的技术路径

为了使通用大模型适应网络安全,研究人员主要采用两种方法:持续预训练(continual pre-training,CPT)和监督微调(supervised fine-tuning,SFT)。

持续预训练是指利用大量无标签的领域特定数据对已经预训练的大模型进行进一步训练。此方法旨在提高模型对领域知识的理解和应用能力,从而显著增强其在网络安全领域的广泛适用性。持续预训练基于一个核心假设,即即使经过广泛的预训练,模型仍然具备进一步提升的潜力,特别是在特定领域或任务上的表现。该过程通常包含几个关键步骤:首先,选择能恰当代表目标领域特征的数据集;其次,确定持续预训练的策略;最后,执行预训练,如有必要可调整模型结构或优化算法以适应新的训练目标。

另一方面,监督微调使用带标签的领域特定数据进行训练,从而直接优化模型在特定网络安全任务上的表现。与持续预训练相比,SFT更专注于增强任务的特定性能。在SFT中,模型权重通过任务特定的损失函数计算的梯度进行优化。该损失函数量化了模型预测与实际标签之间的偏差,从而促进模型学习任务导向的模式和细节。SFT依赖于高质量的人类标注数据,即一组提示及其相应的响应。监督微调对于像ChatGPT这样的模型尤为重要,因为这些模型旨在遵循用户指令并在较长文本中保持在特定任务上。这种特定类型的微调也称为指令微调(instruction fine-tuning)。

山石说AI|如何构建面向网络安全领域的大模型

在持续预训练和监督微调的过程中,研究人员可以选择全参数微调或参数高效微调两种方式。

全参数微调是一种传统方法,在训练过程中对模型的所有参数进行调整。这种方法可以使模型完全适应并专注于目标领域的细微差别,通过调整所有参数,模型有可能在特定任务或数据集上实现最佳性能。然而,这种全面的参数更新需要大量的计算能力和时间,特别是在大模型不断增多的情况下,效率和可扩展性方面面临挑战。

相反,参数高效微调(parameter-efficient fine-tuning,PEFT)方法只微调少量(额外的)模型参数,同时冻结预训练大模型的大部分参数,从而大幅降低计算和存储成本。PEFT还提高了模型的便携性,用户可以使用PEFT方法微调模型,得到仅几MB大小的小型检查点,与全参数微调的大型检查点相比更为轻便。PEFT方法备受青睐,因为它仅需少量可训练参数即可达到与全参数微调相当的性能。PEFT方法有多种,包括适配器微调(adapter tuning)、前缀微调(prefix tuning)、提示微调(prompt tuning)、低秩适配(LoRA)、量化低秩适配(QLoRA)等:

  • 适配器微调(adapter tuning):在Transformer架构的多头注意力层和前馈层后插入适配器,仅微调适配器中的参数,而冻结模型的其他参数。

  • 前缀微调(prefix tuning):冻结语言模型的参数,仅优化称为前缀的小型连续任务特定向量。

  • 提示微调(prompt tuning):通过反向传播和合并带标签的示例来微调软提示,以适应特定任务。

  • 低秩适配(LoRA):是一种小型可训练子模块,可以插入到Transformer架构中,冻结预训练模型的权重,在每层Transformer架构中注入一个可训练的低秩分解矩阵,从而大幅减少下游任务的可训练参数数量。训练完成后,将低秩分解矩阵的参数与原始大模型的参数结合使用。

  • 量化低秩适配(QLoRA):是对LoRA的进一步优化,在一个冻结的4位量化预训练语言模型上对低秩适配器进行梯度反向传播,大幅减少微调的内存需求,同时性能几乎接近全参数微调。

通过整合这些技术,研究人员可以选择适合网络安全领域特定需求和条件的微调方法,如图1所示。此外,新兴技术也为构建网络安全大模型提供了见解。例如,模型编辑技术可以精确地修改大模型,将网络安全知识纳入其中而不会对其他知识产生负面影响。提示工程(prompt engineering)则通过设计有效的提示引导大模型生成所需输出,缓解了构建网络安全大模型所需的训练数据和资源瓶颈。

山石说AI|如何构建面向网络安全领域的大模型
基础模型的选择

如上所述,从零开始训练一个网络安全大模型是具有挑战性的。通常的做法是选择一个通用的大模型作为基础模型,然后对其进行微调。然而,如何在众多大模型中选择合适的基础模型?基本思路是选择在网络安全领域具备较强能力或在特定安全任务中表现良好的大模型,这样的模型更擅长理解和处理安全相关问题。现有的网络安全能力评估主要分为三类:网络安全知识评估、安全代码生成评估和IT运维能力评估。

网络安全知识评估。侧重于评估模型对网络安全概念的理解及其提供准确安全威胁信息和缓解策略的能力。CyberBench[1]是一种面向领域的多任务基准工具,用于评估大模型在网络安全任务中的能力。作为网络安全领域的大模型基准套件,CyberBench提供了一种通用且一致的方法,缓解了之前在评估大模型方面遇到的局限性。SecEval[2] 用于评估大模型在网络安全知识方面的表现,包含2000多道涵盖九个领域的多项选择题,包括软件安全、应用安全、系统安全、网络安全、密码学、内存安全、网络安全和渗透测试。通过评估十种最先进的基础模型,该研究提供了大模型在网络安全领域表现的新见解。Norbert T等人[3]开发了CyberMetric基准数据集,包含10000道题目,旨在评估大模型在网络安全领域的知识。此外,SecQA[4],是基于《计算机系统安全:成功规划》教材生成的多项选择题数据集,专门评估大模型对安全原则的理解和应用。SecQA的问题分为两种复杂度,不仅是评估工具,还推动了大模型在高安全意识环境中的应用。

安全代码生成评估。测试模型生成不仅具有功能性且符合安全最佳实践的代码的能力,旨在减少漏洞。Manish B等人[5]提出了名为CyberSecEval的安全编码基准,评估大模型生成代码时可能带来的安全风险和攻击倾向。通过评估包括Llama 2、Code Llama和OpenAI的GPT在内的七个模型,CyberSecEval有效地定位了关键的网络安全风险,并提供了改进模型的实用见解。Catherine T等人[6]提出了LLMSecEval,这是一个包含150个自然语言提示的数据集,基于MITRE前25个常见弱点枚举(CWE)描述的漏洞。通过将大模型生成的代码与每个提示的安全实现示例进行比较,LLMSecEval可以评估大模型生成代码的安全性。Siddiq M等人[7]提出了SecurityEval,专注于评估代码生成模型的安全性,以防止生成易被利用的代码,避免开发者的潜在误用。该数据集包含130个样本,涵盖75种漏洞类型,并映射到CWE标准。Kamel A等人[8]提出了PythonSecurityEval,这是一个从Stack Overflow上收集的真实世界数据集,用于评估大模型生成安全Python代码的能力及其修复安全漏洞的能力。DebugBench[9]包含4253个实例,涵盖C++、Java和Python中的四大错误类别和18个小错误类型。该综合评估揭示了大模型在自动调试方面的优劣,显著推动了对其在实际编码场景中的适用性和限制的理解。

山石说AI|如何构建面向网络安全领域的大模型

IT运维能力评估。关注模型在管理和保护IT基础设施方面的能力,包括网络安全态势感知、安全威胁分析和事件响应等方面。Yukai M等人[10]提出了NetEval,这是一个评估大模型在多语言背景下网络运维知识和推理能力的评估集。NetEval包含5732道关于网络运维的题目,覆盖五个不同的网络运维子领域。通过NetEval,研究人员系统地评估了26个公开可用的大模型的网络运维能力。此外,OpsEval [11]包含7184道多项选择题和1736个问答题,涵盖中英文,旨在综合评估大模型在IT运维任务中的表现,包括故障根因分析、运维脚本生成和警报信息总结等任务。

评估大模型的网络安全能力不仅可以指导微调过程中基础模型的选择,还展示了通用大模型具备一定的网络安全能力。这支持了直接利用大模型(无需微调)来辅助网络安全应用的可行性。此外,这些研究帮助研究人员和开发者识别大模型在网络安全领域的局限性,为推进人工智能向更高标准和更专业的安全发展提供了方向。

山石说AI|如何构建面向网络安全领域的大模型
领域微调大模型的应用

研究人员利用上述技术和基础模型,定制了面向网络安全领域特定问题的大模型。这些努力突显了将领域特定知识融入语言模型以增强其能力的巨大潜力,尤其是在漏洞检测、故障定位、程序修复等关键应用中。

漏洞检测。涉及识别和分类软件代码中的潜在安全弱点。Alexey S等人[12]对WizardCoder[13]进行了Lora微调,专门用于漏洞检测,重点在于二分类判断Java函数是否包含漏洞。Ferrag M等人[14]对FalconLLM[15]进行了部分参数微调,使用C代码样本生成了SecureFalcon,该模型可以以高达96%的准确率区分存在漏洞和无漏洞的样本,并进一步提出了使用FalconLLM修复漏洞的方法。Aidan Y等人[16]提出了基于新语言模型的故障定位方法LLMAO,通过在CodeGen[17] [18]上添加双向适配器层,使模型能够学习代码的双向表示并预测代码行中的缺陷概率。

安全代码生成。旨在提高自动生成代码的安全性,减少漏洞风险。Storhaug A等人[19]提出了一种称为漏洞约束解码的新方法,在模型训练中整合了漏洞标签。在解码过程中避免生成带有标签的漏洞显著减少了漏洞代码的生成。通过在GPT-J[20]上微调证实合成代码中的漏洞减少。Jingxuan H等人[21]通过指令微调提升了大模型生成代码的安全性。使用包含安全和不安全程序的数据集进行监督微调,将CodeLlama[22]转化为SafeCoder,从而在各种主流大模型和数据集上实现了约30%的安全性提升,同时保持了实用性。

自动化程序修复。旨在无需人工干预自动修复软件中的错误。André S等人[ 23]提出了一种称为RepairLLaMA的新程序修复方法,通过对CodeLlama应用Lora微调,显著提升了大模型的程序修复能力,其在Java基准数据集Defects4J和HumanEval-Java上的表现优于GPT-4。

二进制代码处理。是计算机代码的最基本形式,了解其含义和使用方法非常重要。Nan J等人[24]将大模型的优势引入到二进制领域,通过在专用二进制代码预训练语料库和新任务上对StarCoder[25]进行持续训练,开发出了Nova和Nova+。在监督微调后,增强的大模型可以有效应对二进制代码相似性检测、二进制代码翻译和二进制代码恢复等特定任务。

山石说AI|如何构建面向网络安全领域的大模型

IT运维。负责维护日常任务和其他维持基础设施正常运行的活动。Hongcheng G等人[26]描述了名为Owl的专用IT运维大模型的开发,通过在收集的Owl-Instruct数据集上对Llama进行监督微调。Owl在与IT相关的任务上超越了现有模型,并在Owl-Bench基准上展示了有效的泛化能力。

网络安全知识助手。通过与用户交互帮助提升用户的安全意识,并协助用户防御网络攻击。Jie Z等人[27]提出了Hackmentor,通过开发适用于网络安全领域的指令和对话数据集,并在此基础上对Llama和Vicuna[28]进行Lora微调,充分展示了大模型在网络安全应用中的广阔潜力。

这些研究表明了大模型在网络安全领域的巨大潜力,不仅验证了通过监督微调和持续预训练适应大模型的有效性,还为网络安全相关的未来研究开辟了新的方向。

山石说AI|如何构建面向网络安全领域的大模型
结论

综上所述,面向网络安全的领域大模型展示了显著的潜力与广泛的应用前景。通过持续预训练与监督微调等技术手段,将通用大模型进一步适配于网络安全任务,不仅提高了模型在漏洞检测、代码生成、安全策略建议等任务上的准确性和适用性,还显著降低了开发与训练成本。

同时,基于参数高效微调的创新方法,如适配器微调和低秩适配等,为模型的高效部署和性能优化提供了新的途径。随着这些技术的不断发展,大模型将在网络安全的智能化防御、自动化运维以及安全知识辅助等方面发挥愈加重要的作用。未来的研究应致力于解决大模型在网络安全应用中的局限性,推动大模型向更高安全标准与更专业领域的应用迈进。

向上滑动,查看所有参考文献

1.Zefang Liu, Jialei Shi, and John F Buford. Cyberbench: A multi-task benchmark for evaluating large language models in cybersecurity.

2.Guancheng Li, Yifeng Li, Wang Guannan, Haoyu Yang, and Yang Yu. Seceval: A comprehensive benchmark for evaluating cybersecurity knowledge of foundation models. https://github.com/XuanwuAI/SecEval, 2023.

3.Norbert Tihanyi, Mohamed Amine Ferrag, Ridhi Jain, and Merouane Debbah. Cybermetric: A benchmark dataset for evaluating large language models knowledge in cybersecurity. arXiv preprint arXiv:2402.07688, 2024.

4.Zefang Liu. Secqa: A concise question-answering dataset for evaluating large language models in computer security. arXiv preprint arXiv:2312.15838, 2023.

5.Manish Bhatt, et al. Purple llama cyberseceval: A secure coding benchmark for language models. arXiv preprint arXiv:2312.04724, 2023.

6.Catherine Tony, Markus Mutas, Nicolás E. Díaz Ferreyra, and Riccardo Scandariato. Llmseceval: A dataset of natural language prompts for security evaluations. arXiv preprint arXiv:2303.09384, 2023.

7.Mohammed Latif Siddiq and Joanna C. S. Santos. Securityeval dataset: mining vulnerability examples to evaluate machine learning-based code generation techniques. In Proceedings of the 1st International Workshop on Mining Software Repositories Applications for Privacy and Security, MSR4P&S 2022, page 29–33, New York, NY, USA, 2022. Association for Computing Machinery.

8.Kamel Alrashedy and Abdullah Aljasser. Can llms patch security issues? arXiv preprint arXiv:2312.00024,2024.

9.Runchu Tian, Yining Ye, Yujia Qin, Xin Cong, Yankai Lin, Zhiyuan Liu, and Maosong Sun. Debugbench: Evaluating debugging capability of large language models. arXiv preprint arXiv:2401.04621, 2024.

10.Yukai Miao, et l. An empirical study of netops capability of pre-trained large language models. arXiv preprint arXiv:2309.05557, 2023.

11.Yuhe Liu, et al. Opseval: A comprehensive it operations benchmark suite for large language models. arXiv preprint arXiv:2310.07637, 2024.

12.Alexey Shestov, Rodion Levichev, Ravil Mussabayev, and Anton Cheshkov. Finetuning large language models for vulnerability detection. arXiv preprint arXiv:2401.17010, 2024.

13.Ziyang Luo, Can Xu, Pu Zhao, Qingfeng Sun, Xiubo Geng, Wenxiang Hu, Chongyang Tao, Jing Ma, Qingwei Lin, and Daxin Jiang. Wizardcoder: Empowering code large language models with evol-instruct. arXiv preprint arXiv:2306.08568, 2023.

14.Mohamed Amine Ferrag, Ammar Battah, Norbert Tihanyi, Merouane Debbah, Thierry Lestable, and Lucas C Cordeiro. Securefalcon: The next cyber reasoning system for cyber security. arXiv preprint arXiv:2307.06616,2023.

15.Ebtesam Almazrouei, Hamza Alobeidli, Abdulaziz Alshamsi, Alessandro Cappelli, Ruxandra Cojocaru,Mérouane Debbah, Étienne Goffinet, Daniel Hesslow, Julien Launay, Quentin Malartic, et al. The falcon series of open language models. arXiv preprint arXiv:2311.16867, 2023.

16.Aidan ZH Yang, Claire Le Goues, Ruben Martins, and Vincent Hellendoorn. Large language models for test-free fault localization. In Proceedings of the 46th IEEE/ACM International Conference on Software Engineering,pages 1–12, 2024.

17.Erik Nijkamp, Bo Pang, Hiroaki Hayashi, Lifu Tu, Huan Wang, Yingbo Zhou, Silvio Savarese, and Caiming Xiong. Codegen: An open large language model for code with multi-turn program synthesis. arXiv preprintarXiv:2203.13474, 2023.

18.Erik Nijkamp, Hiroaki Hayashi, Caiming Xiong, Silvio Savarese, and Yingbo Zhou. Codegen2: Lessons for training llms on programming and natural languages. arXiv preprint arXiv:2305.02309, 2023.

19.André Storhaug, Jingyue Li, and Tianyuan Hu. Efficient avoidance of vulnerabilities in auto-completed smart contract code using vulnerability-constrained decoding. In 2023 IEEE 34th International Symposium on Software Reliability Engineering (ISSRE), pages 683–693. IEEE, 2023.

20.Ben Wang. Mesh-Transformer-JAX: Model-Parallel Implementation of Transformer Language Model with JAX. https://github.com/kingoflolz/mesh-transformer-jax, May 2021.

21.Jingxuan He, Mark Vero, Gabriela Krasnopolska, and Martin Vechev. Instruction tuning for secure code generation. arXiv preprint arXiv:2402.09497, 2024.

22.Baptiste Roziere, Jonas Gehring, Fabian Gloeckle, Sten Sootla, Itai Gat, Xiaoqing Ellen Tan, Yossi Adi, Jingyu Liu, Tal Remez, Jérémy Rapin, et al. Code llama: Open foundation models for code. arXiv preprint arXiv:2308.12950, 2023.

23.André Silva, Sen Fang, and Martin Monperrus. Repairllama: Efficient representations and fine-tuned adapters for program repair. arXiv preprint arXiv:2312.15698, 2023.

24.Nan Jiang, Chengxiao Wang, Kevin Liu, Xiangzhe Xu, Lin Tan, and Xiangyu Zhang. Nova+: Generative language models for binaries. arXiv preprint arXiv:2311.13721, 2023.

25.Raymond Li, Loubna Ben Allal, Yangtian Zi, Niklas Muennighoff, Denis Kocetkov, Chenghao Mou, Marc Marone, Christopher Akiki, Jia Li, Jenny Chim, et al. Starcoder: may the source be with you! arXiv preprint arXiv:2305.06161, 2023.

26.Hongcheng Guo, Jian Yang, Jiaheng Liu, Liqun Yang, Linzheng Chai, Jiaqi Bai, Junran Peng, Xiaorong Hu, Chao Chen, Dongfeng Zhang, et al. Owl: A large language model for it operations. arXiv preprint arXiv:2309.09298,2023.

27.Jie Zhang, Hui Wen, Liting Deng, Mingfeng Xin, Zhi Li, Lun Li, Hongsong Zhu, and Limin Sun. Hackmentor: Fine-tuning large language models for cybersecurity. In 2023 IEEE International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom). IEEE, 2023.

28.Wei-Lin Chiang, Zhuohan Li, Zi Lin, Ying Sheng, Zhanghao Wu, Hao Zhang, Lianmin Zheng, Siyuan Zhuang,Yonghao Zhuang, Joseph E Gonzalez, et al. Vicuna: An open-source chatbot impressing gpt-4 with 90%* chatgpt quality. See https://vicuna. lmsys. org (accessed 14 April 2023), 2(3):6, 2023.

山石说AI|如何构建面向网络安全领域的大模型
山石说AI|如何构建面向网络安全领域的大模型

原文始发于微信公众号(山石网科新视界):山石说AI|如何构建面向网络安全领域的大模型

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月20日17:28:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   山石说AI|如何构建面向网络安全领域的大模型https://cn-sec.com/archives/3415899.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息