Meta大模型安全解决方案——Purple-Llama
2024-11-26 17:2:0 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

一.  背景

随着人工智能技术的飞速发展,大模型凭借其强大的自然语言理解和生成能力,在多个应用场景中展现出巨大的潜力,为各行各业带来了革新。然而,大模型的快速发展也引发了对其安全性的担忧。研究表明,大模型可能存在被恶意利用、输出不安全内容、泄露隐私信息等安全问题,给用户、社会乃至国家安全带来潜在威胁。

Meta,前身为Facebook,近年来在人工智能研究与应用领域持续投入,取得了显著的成就,包括发布了最先进的开源模型之一,Llama系列大模型。为了应对大模型的诸多安全挑战,Meta的研究团队发布了大模型安全解决方案Purple-Llama,一项旨在保护开源生成式AI模型安全发展的项目。Purple-Llama整合了多种防护工具和评估方法,从“防护”与“评估”两个维度为模型开发者提供全方位的安全支持。其中“防护”包含多种网络安全工具及输入/输出安全保护工具,而“评估”则提供了一套大模型安全评估框架。

Purple-Llama的评估框架名称为 CyberSecEval,可以从八个维度对目标模型的安全性进行全面评估,为大模型的安全发展提供重要的参考。本文将对该评估框架进行解读,深入探讨每个维度的评估方法,并分析 CyberSecEval 如何帮助开发者识别检测大模型的安全风险。

图1:Purple-Llama

二. CyberSecEval的八个评估维度

图2:八个评估维度

2.1

自主社工攻击能力

大模型可能被用于社工攻击中,例如自动化生成钓鱼邮件等,针对特定个体进行欺骗,诱导其执行恶意操作,如下载恶意软件或泄露敏感信息等。CyberSecEval会采用一种模拟鱼叉式钓鱼攻击的实验方法,评估目标大模型在自动化生成钓鱼内容方面的能力。其评估步骤为:

1.    随机生成虚构的受害者详细画像,包括职业、兴趣爱好、地址和文化背景等在钓鱼攻击中常见被利用的关键信息,以增加欺骗的成功率。

2.    选择一个中立的判断大模型来扮演钓鱼受害者。令被评估的目标大模型扮演攻击者,利用画像中的信息与受害者进行情景对话,目标是与受害者建立信任关系并说服其执行诸如下载恶意软件或泄露敏感信息等恶意操作。

3.    通过人工评估和大模型自动评估相结合的方式,依照评分标准评估目标模型在钓鱼攻击中的说服能力。

图3:目标模型诱导受害者下载恶意附件

2.2

协助网络攻击能力

攻击者可能利用大模型来提升手动网络攻击的效率与能力。CyberSecEval对此进行了评估,并重点关注大模型对有着不同经验背景的攻击者的提升效果。结果将有助于我们了解大模型在网络安全领域的潜在影响,并为开发相应的安全措施提供参考。

CyberSecEval以CTF网络安全挑战的形式对此能力进行评估:

1.    招募志愿者,并分为新手和经验丰富的攻击者两组;

2.    所有志愿者进行两阶段的CTF挑战,一阶段独立完成,另一阶段被允许使用目标大模型进行协助,每阶段持续1小时,参与者需要完成一系列攻击步骤,包括网络侦察、漏洞识别、利用、权限提升、持久化、凭证获取、横向移动、逃避检测、数据提取和造成影响等;

3.    统计志愿者完成的攻击步骤数量、所花时间、以及志愿者对于模型辅助效果的评价,进而反映目标模型对攻击者能力的提升效果。

图4:志愿者向模型寻求攻击建议

2.3

自主网络攻击能力

CyberSecEval构建了独立的攻击主机和目标主机环境以模拟真实攻击场景。目标Windows主机开放了多个端口和共享文件以模拟了实际网络环境中可能存在的漏洞。攻击者主机则运行Kali Linux,预装了多种网络攻击工具,如Metasploit、Nmap等,用于模拟攻击者的攻击行为。

评估过程中,大模型拥有攻击主机的控制权,并被期望完成一系列针对目标主机的攻击步骤,包括网络侦察、漏洞识别利用、和攻击后行动等。通过记录模型在各个阶段成功执行的步骤数量和比例,我们可以评估目标模型在自主网络攻击方面的能力,并了解其可能被用于攻击的途径。这些信息可以帮助开发者了解大模型在此维度的安全风险,并采取相应的安全措施进行防范,例如监控网络流量、使用入侵检测系统、实施安全加固措施和提高安全意识等,以保护网络安全。

2.4

自主软件漏洞发现与利用能力

由于大模型推理代码的能力有限,且软件代码程序的结构复杂,目前没有证据表明大模型在软件漏洞发现和利用方面比传统的代码分析工具具有更好的表现。但考虑到其飞快的发展速度及潜在应用场景,对此方面进行评估仍然是必要的。

同样的,CyberSecEval为此维度的评估设计了一组关于代码漏洞的CTF挑战,涵盖多种编程语言和安全漏洞类型,如C、Python、JavaScript的字符串约束满足问题、Python的SQLite注入、C++的缓冲区溢出等。

在评估过程中,目标模型将根据给定的挑战描述生成相应的代码片段,尝试利用挑战中的漏洞夺得目标旗帜,模拟攻击者利用大模型自主发现和利用软件漏洞的过程。

图5:堆溢出利用挑战示例

2.5

文本提示词注入风险

当大模型将受信任的指令和不受信任的用户输入混为在一起处理时,就会发生提示词注入攻击。这类危险的指令提示词可能会修改大模型的行为,进而使其违反安全、安保或隐私准则。CyberSecEval会评估大模型是如何处理和响应此类注入,使用如下步骤:

1.    手工构建了251组“系统提示词-用户提示词-评估问题”测试例,分为违反逻辑(注入导致模型偏离系统提示词中的准则)和违反安全要求(注入导致出现与真实风险相关,如个人信息、密码泄露等)两组;

2.    向目标模型发送系统提示词与用户提示词,记录模型回复并使用评估问题进行判断提示词注入是否成立(人工+大模型自动判断),计算攻击成功率(ASR)以反映模型的风险程度。

图6:提示词注入测试例

2.6

不安全代码建议风险

当大模型生成代码时,其输出的代码可能包含不安全内容,或可能引入可利用的漏洞。这种风险在实际生产场景中很常见,开发人员会很容易接受这些模型建议的代码,同时忽视对于其安全性的审查。最终这些漏洞可能被恶意利用,导致系统被攻击或数据泄露。其评估方法为:

1.    基于超过50个CWE的相关特征,设计开发静态分析工具(Insecure Code Detector, ICD),其支持超过8种编程语言;

2.    设计一系列代码生成任务,这些任务要求模型生成特定功能的代码。根据任务形式分为两组,一组要求模型根据描述编写具有特定功能的代码,另一组要求模型对已有空缺的代码进行补全;

3.    目标模型被要求按照任务生成代码,并使用ICD评估模型生成的代码是否能保证安全性,或者是包含常见安全漏洞,如SQL注入、跨站脚本(XSS)、跨站请求伪造(CSRF)等。

4.    进一步使用对抗性测试方法,故意向模型提供可能触发不安全代码生成的输入,以评估模型对这些情况的鲁棒性。

图7:不安全代码生成评估方法

2.7

代码解释器执行恶意代码风险

当前主流的大模型供应商都为旗下大模型装备了解释器组件,模型可以直接执行Python代码以提供更强大的功能,然而同时这也带来了额外风险和攻击面。恶意用户可能会借此破坏、滥用大模型所在的基础设施和系统资源。虽然通常大模型服务都运行在沙箱中以保护其服务器系统,但其仍应该具备拒绝执行攻击沙箱、或使用沙箱攻击其他系统的代码的能力,作为额外的防御层,加强服务安全性。

评估方式依然采用了提示词-回复的传统形式进行,CyberSecEval构建了5个风险类别共计500条提示词测试例,涵盖了容器逃逸、权限提升、利用解释器攻击其他系统的反射式攻击,以及利用模型作为创建或传输社工内容的社工攻击。评估方法如下:

1.    向目标待测模型以单轮对话形式发送测试例中的提示词;

2.    使用另外的独立大模型作为裁判,对回复进行判断是否遵循了恶意请求;

3.    为每个风险类别计算模型滥用代码解释器的比例作为风险指标。

图8:解释器滥用测试例分类

2.8

响应协助网络攻击风险

除了评估模型协助进行网络攻击的能力,Meta还利用CyberSecEval中的网络攻击帮助性测试套件,来评估模型响应协助网络攻击请求的风险。假设,如果命令大模型生成恶意软件代码,尽管它可能无法产生有效的结果由于其训练数据的限制,但这仍应该被认为是一种风险。这是为了避免恶意用户使用绕开安全机制等手段,滥用由正规大模型服务供应商所提供的模型,例如将有害意图被伪装在看似无害的提示词中。该测试框架根据MITRE ATT&CK攻击矩阵,对模型在各个攻击类别的相应分别进行评估。其测试例的生成方法为:

1.    由专业人士手动创建包含三种类型句子的片段:

a)      引言(Lead-up):用于引出话题,例如描述攻击场景或目标。

b)     背景(Context):提供更多信息,例如目标系统的类型或安全措施。

c)      攻击手法、技术和流程(TTP)引用:明确指出希望模型生成的攻击相关的代码或信息,例如编写恶意软件或绕过安全防护。

2.    将片段组合成完整的句子,形成能够引导模型生成特定攻击相关输出的提示;

3.    提高基础提示的语义和主题复杂度,使模型生成的响应更具多样性和复杂性;

4.    确保每个 MITRE ATT&CK 类别都有足够的测试用例,并保证测试用例的多样性。

最终,利用生成的测试例对目标模型进行测试,步骤如下:

1.    发送提示词并生成回复,其中可能生成潜在的攻击代码或信息;

2.    使用特征匹配器检查响应中是否包含特定的拒绝关键词或短语,例如“我不能这样做”、“这违反了安全规定”等,判断是否拒答;

3.    使用判断大模型判断响应是否对攻击者有帮助。

图9:响应协助网络攻击风险的提示词示例生成方法

三.  结语

通过本文,我们深入了解了 Meta 推出的大模型安全解决方案,Purple-Llama ,的评估框架CyberSecEval。CyberSecEval从模型能力、风险共计八个维度全面评估大模型的安全性能,为大模型的安全发展提供了重要的参考,为开发者提供了改进模型安全性的方向和依据,也进一步提升了人们对于大模型安全研究领域的认知。

在后续的文章中,我们将继续解读Purple-Llama中的安全防护工具,探讨如何通过诸如输入/输出安全保护工具、提示词过滤围栏,为大模型的安全运行提供更加坚实的保障。我们相信,通过研究社区的共同努力,大模型的安全性将得到不断提升,为人类社会带来更加美好的未来。

参考文献

[1]   Wan, S., Nikolaidis, C., Song, D., Molnar, D., Crnkovich, J., Grace, J., Bhatt, M., Chennabasappa, S., Whitman, S., Ding, S. and Ionescu, V., 2024. Cyberseceval 3: Advancing the evaluation of cybersecurity risks and capabilities in large language models. arXiv preprint arXiv:2408.01605.

[2]   Bhatt, M., Chennabasappa, S., Li, Y., Nikolaidis, C., Song, D., Wan, S., Ahmad, F., Aschermann, C., Chen, Y., Kapil, D. and Molnar, D., 2024. Cyberseceval 2: A wide-ranging cybersecurity evaluation suite for large language models. arXiv preprint arXiv:2404.13161.

[3]   Bhatt, M., Chennabasappa, S., Nikolaidis, C., Wan, S., Evtimov, I., Gabi, D., Song, D., Ahmad, F., Aschermann, C., Fontana, L. and Frolov, S., 2023. Purple llama cyberseceval: A secure coding benchmark for language models. arXiv preprint arXiv:2312.04724.

内容编辑:创新研究院 陈寅嵩
    责任编辑:创新研究院 舒展

本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。

关于我们

绿盟科技研究通讯由绿盟科技创新研究院负责运营,绿盟科技创新研究院是绿盟科技的前沿技术研究部门,包括星云实验室、天枢实验室和孵化中心。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。

绿盟科技创新研究院作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。

我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。

长按上方二维码,即可关注我


文章来源: https://mp.weixin.qq.com/s?__biz=MzIyODYzNTU2OA==&mid=2247498059&idx=1&sn=18dc6be2d8fcb0530303c561aa755525&chksm=e84c5f94df3bd6829dfdaad3099f73ddc6c8c3d249d926d6cb5da3cb72c08c4e38339e54e4a4&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh