赞
踩
基于大语言模型LLM的产品已经越来越多地被个大公司应用到自己的业务当中,这固然带来了新的商业机会,但也给应用的安全工作带来了新的挑战。一方面,大语言模型技术被黑客应用到攻击的实践中,提升了他们的攻击效率;另一方面,LLM由于自己本身的特点,比如输入的提示和模型应用的数据是不可严格分开的,以及模型设计是不确定的,导致LLM具有它特定的风险挑战。
LLM应用有它特有的安全漏洞,比如提示注入漏洞,恶意用户通过精心构造提示内容或者间接提供给LLM含有提示注入风险的内容让其处理,从而被攻击者利用产生非预期的结果。同时,LLM应用也有一些与Web应用共通的漏洞,比如数据越权访问。提升基于LLM的应用安全性,既需要保留部分原来的安全防范策略,也需要针对性地更新或采用LLM特有的安全策略。
安全工作就像是一场攻防战,“攻其必守,守其必攻”的第一要务就是要明白这场攻防战需要保护的核心资产是什么。LLM应用的安全核心组成大致分为下面四类:
大语言模型作为机器学习的一个分支,它的能力也是从数据中学习到的。垃圾进,垃圾出,如果恶意用户精心构造的有毒数据被输入LLM,自然也会得到不怀好意的输出。因此,对模型的数据安全的防护尤为重要。像提示注入漏洞(Prompt Injection)、训练数据毒化漏洞(Training Data Poisoning)就是数据安全出现了问题。这可能导致模型产出带有偏见、仇恨的内容,给业务带来风险。
模型本身如果被恶意破坏,攻击者通过篡改它的参数或者输出,使得模型的输出不再可信。因此,需要保护模型免受篡改,并确保其参数和输出的完整性。采取措施防止对模型的架构和参数进行未经授权的修改或更改,维护其学习表示的可信度。
这不是LLM特有的安全事项,但基础设施安全对于LLM的稳健性有着至关重要的作用。通过采取严格的措施来保护服务器、网络连接和托管环境的其他组件,部署安全协议,如防火墙、入侵检测系统和加密机制,以防范潜在威胁和未经授权的访问。
涉及采取措施防止LLM生成有害内容、误导信息或带有偏见的输出。确保这些模型负责任地部署和使用,以促进更负责任、值得信赖的LLM技术应用。
LLM应用的安全开发过程,需要从上述4个方面进行保障。而针对这些要素的攻击,涉及到对漏洞的利用。
OWASP Top 10漏洞和相应描述:
漏洞 | 描述 |
---|---|
提示注入 (Prompt Injection) | 通过巧妙的构造提示输入LLM,导致LLM产生意外的行为。直接注入会覆盖系统提示,而间接注入则操纵来自外部来源的输入。 |
不安全的输出处理 (Insecure Output Handling) | 漏洞发生在接受LLM输出而不经过审查的情况下,攻击者通过巧妙的输入使得LLM输出危险内容,后端系统一旦未经验证即接受LLM的输出,可能导致如XSS、CSRF、SSRF、权限升级或远程代码执行。 |
训练数据毒化 (Training Data Poisoning) | 当LLM训练数据毒化,意味着操纵预训练数据或在微调或嵌入过程中涉及的数据,以引入漏洞、后门或偏见,可能会危及模型的安全性、有效性或道德行为。 |
模型拒绝服务 (Model Denial of Service) | 攻击者对LLM进行资源密集型操作,导致服务降级或运行成本被拉高。 |
供应链漏洞 (Supply Chain Vulnerabilities) | LLM可能采用其他公司提供的预训练模型,或者采用第三方的数据进行训练。在这些供应链中可能存在漏洞,影响训练数据、机器学习模型和部署平台的完整性。 |
敏感信息泄露 (Sensitive Information Disclosure) | LLM 应用有可能通过它们的输出透露敏感信息、专有算法或其他机密细节。这可能导致未经授权访问敏感数据、知识产权、隐私侵犯和其他安全漏洞。 |
不安全的插件设计 (Insecure Plugin Design) | LLM插件可能存在不安全的输入和不足的访问控制。这种应用程序控制的缺乏使它们更容易受到利用,可能会导致远程代码执行等后果。 |
过度代理 (Excessive Agency) | 当对LLM依赖的代理赋予过多功能、权限或自主权,可能被攻击者利用进而执行了本不具备权限的操作。 |
过度依赖 (Overreliance) | 过度依赖LLM而缺乏监督的系统或个人可能面临误导、沟通失误、法律问题和安全漏洞,因为LLM生成的内容不正确或不适当。 |
模型盗窃 (Model Theft) | 这涉及对专有LLM模型的未经授权访问、复制或外泄。其影响包括经济损失、竞争优势受损以及可能访问敏感信息。 |
在一个典型的基于LLM的应用架构中,这些漏洞的可视化图:
从上图中可以看出:
对于其中漏洞的防范,可以参看《LLM应用的OWASP Top 10漏洞》以及文章后面给出的相关参考资料。
应用的安全开发不是一个孤立事情,即不能指望由应用开发人员单一角色进行承担整个应用安全的落地实施,安全涉众包括但不限于:企业管理层 、安全应急团队、运维团队、技术团队及产品团队,甚至包括相关采购人员、HR等。各方人员的配合需要一套高效开放的制度流程保障。
在基于LLM应用的安全开发中,有以下经验可以遵循。
LLM应用安全开发并不是推翻原有安全策略,更多的是将目前LLM领域安全策略集成到组织已有的安全策略当中。针对当前已经实施的安全策略进行复盘:
风险建模是一种系统性的方法,用于识别、分析和评估组织所面临的各种潜在风险。这一过程涉及确定可能的威胁、潜在的漏洞以及可能受到影响的资产,然后评估这些风险对组织的影响程度和概率。在部署大型语言模型之前进行威胁建模以及针对生成式人工智能加速攻击的威胁建模是最经济的方式,可以识别和减轻风险、保护数据、保护隐私,并确保与业务的安全、合规整合。
建模分析可以结合OWASP Top 10项目,针对业务形态和应用架构来评估分析。作为SDL一部分,建议威胁建模在产品需求和研发设计时并行实施。
安全治理是为了建立一个透明负责的安全响应制度。指定明确的责任人,制定跟业务相匹配的响应流程和明确的管理机制,是团队组织能够快速响应安全问题、减少企业业务伤害的必要手段。
强调的是,这里的法律和监管不仅仅是技术层面的问题,对于道德考虑的保护需要对应用所部署的当地社会法律保持及时的跟进和遵循。
1. Comprehensive Guide to Large Language Model (LLM) Security
2. LLM AI Cybersecurity & Governance Checklist
3. Exploring the Security Risks of Using Large Language Models
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。