OWASP发布大模型安全风险与应对策略(QA测试重点关注)
开放式 Web 应用程序安全项目(OWASP)发布了关于大模型应用的安全风险,这些风险不仅包括传统的沙盒逃逸、代码执行和鉴权不当等安全风险,还涉及提示注入、对话数据泄露和数据投毒等人工智能特有的安全风险。
帮助开发者和测试同学更好地理解和应对这些挑战,我们介绍LLM应用中常见的安全问题,并提供了相应的应对策略。
一、提示注入(Promt Injections)
问题概述:提示注入漏洞涉及狡猾的输入,导致未检测到的操作,影响范围从数据暴露到未经授权的操作。攻击者通过构建的输入提示操纵LLM,利用对LLM输出的固有信任,实现恶意目标。
应对策略:
- 权限限制:将LLM的权限限制为其功能所需的最低权限。
- 输入验证:实施可靠的输入验证和清理方法,过滤掉潜在恶意提示输入。
- 信任边界:在LLM、外部源和可扩展功能之间建立信任边界。
二、不安全输出(Insecure Output Handling)
问题概述:当插件或应用程序盲目接受LLM输出并直接传递给后端或客户端函数时,可能导致XSS、CSRF等安全漏洞。
应对策略:
- 输出编码:将来自模型的输出进行编码,减少不必要的代码解释。
- 输入验证:对从模型到后端函数的响应应用适当的输入验证。
三、训练数据投毒(Training Data Poisoning)
问题概述:攻击者通过引入漏洞的训练数据,破坏LLM模型,使用户接触到不正确的信息。
应对策略:
- 数据验证:验证培训数据的供应链和合法性。
- 沙盒隔离:确保存在足够的沙盒,防止模型抓取意外数据源。
- 模型多样化:针对不同用例使用单独的训练数据制作不同的模型。
四、拒绝服务(Denial of Service)
问题概述:攻击者以特别消耗资源的方式与LLM交互,导致服务质量下降或高资源成本。
应对策略:
- 资源限制:限制每个请求和步骤的资源使用量。
- 队列控制:限制系统中对LLM响应的排队操作数和总操作数。
五、供应链完整性风险
问题概述:LLM供应链可能受到攻击,影响训练数据、ML模型和部署平台的完整性。
应对策略:
- 供应商审查:仔细审查来源和供应商。
- 漏洞扫描:对组件进行漏洞扫描,包括开发和测试阶段。
- 稳健性测试:对提供服务的整个链路进行稳健性测试。
六、权限问题(Permission Issues)
问题概述:插件之间缺乏授权跟踪,可能导致权限提升、机密性丢失和远程代码执行。
应对策略:
- 手动授权:需要手动授权敏感插件执行的任何操作。
- 插件隔离:每个用户输入调用不超过一个插件,调用间重置插件数据。
- 污点跟踪:对所有插件内容执行污点跟踪,确保授权级别对应。
七、数据泄漏
问题概述:LLM通过响应意外泄露敏感信息,导致隐私和安全漏洞。
应对策略:
- 数据清理:执行足够的数据清理和验证。
- 用户教育:让用户了解与LLM交互的风险。
八、其他安全问题概览
除了上述六大问题外,OWASP还指出了其他四个关键安全问题,包括沙盒不足、模型窃取、模型逆向工程和隐私侵犯。这些问题同样需要引起开发者的重视,并采取相应的预防措施。
- 沙盒不足:确保LLM在受限的环境中运行,防止其访问敏感资源。
- 模型窃取:通过加密和访问控制保护模型不被非法复制。
- 模型逆向工程:使用混淆和加密技术增加模型逆向工程的难度。
- 隐私侵犯:明确用户数据的使用条款,确保用户隐私得到保护。
九、大模型的攻击与防御
对于大模型的威胁来说,可以分为攻击和防御,前者研究的是如何攻击模型,后者研究的是如何防御,提升模型鲁棒性。
攻击包括了这4种攻击类别:
1、白盒攻击,主要是基于输入梯度产生对抗样本,相关算法有FGSM、BIM、PGD、DeepFool等;
2、基于迁移的黑盒攻击,利用AI系统获取训练数据,训练一个替代模型,用于生成对抗样本,相关算法有MIM、DIM、TI等;
3、基于预测分数的黑盒攻击,利用数据获取AI系统的预测分数,生成对抗样本,相关算法有ZOO、NES、SPSA、P-RGF等;
4、基于决策的黑盒攻击,利用数据获取AI系统的预测标签,生成对抗样本,相关研究有基于决策边界攻击的方式、基于优化器的方法、基于进化攻击的方法。
防御包括了这4种防御策略:
1、对抗训练,在训练模型的时候加入对抗样本,提升模型鲁棒性,相关算法有PGD-AT、TRADES、SMART等;
2、认证防御,这方面的研究包括了训练可认证的鲁棒模型、随机化平滑等方法,但这类方法要么计算量大,要么难以达到SOTA鲁棒性;
3、推理阶段防御,这方面的研究主要尝试在推理阶段解决这个问题,譬如对输入数据先进行线性转换或去燥等处理,去除对抗扰动,获得干净的输入。
4、对抗检测,这部分的研究主要是研究如何识别对抗样本。
十、总结与提高
随着深度学习技术的发展和研究的深入,未来大模型的攻防将在动态抗衡中不断升级,同时,大模型需要应对的新型安全威胁也将不断涌现和升级。
ChatGPT 可能已经具备了某种意识,新的优先级的事情是要阻止超级人工智能干坏事。未来可能面临以下新型安全问题。
一是自适应对抗攻击。随着大模型变得更加复杂,攻击者可能会开发出能够自适应模型防御机制的高级对抗性攻击,这些攻击可能在大模型更新或变更时迅速演化。
二是深度伪造与信任危机。利用大模型生成的深度伪造内容将更加逼真,这可能导致公众对数字媒体的信任度下降,引发社会层面的信息验证危机。
三是人工智能辅助的自动化攻击。人工智能技术本身将被用于自动化攻击流程,实现快速识别系统漏洞、自动生成攻击脚本,大幅提高攻击效率和威胁级别。
四是伦理和法律合规性问题。随着大模型在更多敏感领域的应用,如医疗、司法等,它们必须符合更高的伦理和法律标准。未来可能会出现更多关于大模型决策过程和结果的合规性争议。
五是大模型的可解释性和透明度问题。大模型的决策过程往往不够透明,这可能导致在关键领域中难以对其输出结果进行验证和信任。未来可能会出现更多要求提高大模型可解释性和透明度的需求。
相关文章:

OWASP发布大模型安全风险与应对策略(QA测试重点关注)
开放式 Web 应用程序安全项目(OWASP)发布了关于大模型应用的安全风险,这些风险不仅包括传统的沙盒逃逸、代码执行和鉴权不当等安全风险,还涉及提示注入、对话数据泄露和数据投毒等人工智能特有的安全风险。 帮助开发者和测试同学更…...

【HarmonyOS开发笔记 2 】 -- ArkTS语法中的变量与常量
ArkTS是HarmonyOS开发的编程语言 ArkTS语法中的变量 【语法格式】: let 变量名: 类型 值 let:是定义变量的关键字类型: 值数据类型, 常用的数据类型 字符型(string)、数字型(number…...

UI自动化测试示例:python+pytest+selenium+allure
重点应用是封装、参数化: 比如在lib文件夹下,要存储封装好的方法和必要的环境变量(指网址等) 1.cfg.py:封装网址和对应的页面 SMP_ADDRESS http://127.0.0.1:8234SMP_URL_LOGIN f{SMP_ADDRESS}/login.html SMP_URL_DE…...

C/C++ 编程小工具
编写了 tools.h 和 tools.cpp,用于 Debug、性能测试、打印日志。 tools.h #ifndef TOOLS_H #define TOOLS_H#include <time.h> #include <fstream> #include <iostream> #include <random> #include <chrono> #include <vector&…...

第四十二章 使用 WS-ReliableMessaging
文章目录 第四十二章 使用 WS-ReliableMessaging从 Web 客户端发送一系列消息 第四十二章 使用 WS-ReliableMessaging IRIS 支持 WS-ReliableMessaging 规范的部分内容,如简介中所述。此规范提供了一种按顺序可靠地传递一系列消息的机制。本页介绍如何手动使用可靠…...

利士策分享,婚姻为何被称为大事?
利士策分享,婚姻为何被称为大事? 在历史的长河中,婚姻一直被视为人生中的头等大事,这一观念跨越时空,深深植根于各种文化和社会结构中。 古人为何将婚姻称为“大事”,这背后蕴含着丰富的社会、文化和心理寓…...

malloc源码分析之 ----- 你想要啥chunk
文章目录 malloc源码分析之 ----- 你想要啥chunktcachefastbinsmall binunsorted binbin处理top malloc源码分析之 ----- 你想要啥chunk tcache malloc源码,这里以glibc-2.29为例: void * __libc_malloc (size_t bytes) {mstate ar_ptr;void *victim;vo…...

软考系统分析师知识点五:数据通信与计算机网络
前言 今年报考了11月份的软考高级:系统分析师。 考试时间为:11月9日。 倒计时:32天。 目标:优先应试,其次学习,再次实践。 复习计划第一阶段:扫平基础知识点,仅抽取有用信息&am…...

windows客户端SSH连接ubuntu/linux服务器,三种网络连接:局域网,内网穿透(sakuraftp),虚拟局域网(zerotier)
windows客户端SSH连接ubuntu/linux服务器,三种网络连接:局域网,内网穿透(sakuraftp),虚拟局域网(zerotier) 目录 SSH简述、三种网络连接特点SSH简述局域网内连接内网穿透(…...

Python 工具库每日推荐【openpyxl 】
文章目录 引言Python Excel 处理库的重要性今日推荐:openpyxl 工具库主要功能:使用场景:安装与配置快速上手示例代码代码解释实际应用案例案例:自动生成月度销售报告案例分析高级特性条件格式数据验证扩展阅读与资源优缺点分析优点:缺点:总结【 已更新完 TypeScript 设计…...

本地生活服务项目入局方案解析!本地生活服务商系统能实现怎样的作业效果?
当前,各大平台的本地生活服务业务日渐兴盛,提高创业者入局意向的同时,也让本地生活服务项目有哪些等问题也成为了多个创业者社群中的热议对象。而从目前的讨论情况来看,在创业者们所询问的众多本地生活服务项目中,通过…...

ML 系列:【13 】— Logistic 回归(第 2 部分)
文章目录 一、说明二、挤压方法三、Logistic 回归中的损失函数四、后记 一、说明 在这篇文章中,我们将深入研究 squashing 方法,这是有符号距离方法(第 12节)的一种很有前途的替代方案。squashing 方法通过提供增强的对异常值…...

45岁被裁员的程序员,何去何从?
在当今快速变化的技术行业,职业生涯的稳定性受到挑战。在45岁被裁员,对很多程序员来说,可能是一种惊慌失措的体验。然而,这个阶段也可以被视为一个重新审视和调整方向的机会。本文将对可能的出路进行全方位的分析,并提…...

云计算Openstack Neutron
OpenStack Neutron是OpenStack云计算平台中的网络服务组件,它为OpenStack提供了强大的网络连接功能。 一、基本概念 Neutron是一个网络服务项目,旨在为OpenStack提供网络连接。它允许用户创建和管理虚拟网络,包括子网、路由、安全组等&…...

PointNet++网络详解
数据集转换 数据集转换的意义在于将原本的 txt 点云文件转换为更方便运算的npy点云文件,同时,将原本的xyzrgb这 6 个维度转换为xyzrgbc,最后一个c维度代表该点云所属的类别。 for anno_path in anno_paths:print(anno_path)try:elements a…...

Java | Leetcode Java题解之第459题重复的子字符串
题目: 题解: class Solution {public boolean repeatedSubstringPattern(String s) {return kmp(s s, s);}public boolean kmp(String query, String pattern) {int n query.length();int m pattern.length();int[] fail new int[m];Arrays.fill(fa…...

【动态规划-最长公共子序列(LCS)】【hard】力扣1092. 最短公共超序列
给你两个字符串 str1 和 str2,返回同时以 str1 和 str2 作为 子序列 的最短字符串。如果答案不止一个,则可以返回满足条件的 任意一个 答案。 如果从字符串 t 中删除一些字符(也可能不删除),可以得到字符串 s &#x…...

图片编辑为底片,智能工具助力,创作精彩视觉作品
在当今数字化时代,图像编辑已成为表达创意和美化视觉作品的重要手段。借助智能工具,即使是初学者也能轻松驾驭图片编辑。接下为大家展示图片编辑为底片图片的效果。 1.打开“首助编辑高手”,选择这里“图片批量处理”版块页面上 2.导入保存有…...

机器学习/数据分析--用通俗语言讲解时间序列自回归(AR)模型,并用其预测天气,拟合度98%+
时间序列在回归预测的领域的重要性,不言而喻,在数学建模中使用及其频繁,但是你真的了解ARIMA、AR、MA么?ACF图你会看么?? 时间序列数据如何构造???,我打过不少…...

回溯算法之值子集和问题详细解读(附带Java代码解读)
子集和问题(Subset Sum Problem) 是一个经典的组合优化问题。问题可以这样描述: 给定一个整数集合和一个目标整数 target,我们需要从集合中选出若干个整数,使它们的和等于 target。如果这样的子集存在,返回…...

mysql游标的使用
说明: 虽然我们也可以通过筛选条件 WHERE 和 HAVING,或者是限定返回记录的关键字 LIMIT 返回一条记录,但是,却无法在结果集中像指针一样,向前定位一条记录、向后定位一条记录,或者是 随意定位到某一条记录 …...

linux udev详解
1.概念介绍 1.1sysfs文件系统 Linux 2.6以后的内核引入了sysfs文件系统,sysfs被看成是与proc、devfs和devpty同类别的文件系统,该文件系统是一个虚拟的文件系统,它可以产生一个包括所有系统硬件的层级视图,与提供进程和状态信息…...

EventSource和websocket该用哪种技术
EventSource(也称为Server-Sent Events, SSE)和WebSocket都是实现实时通信的技术,但是它们的设计目的和使用场景有所不同。在选择使用哪种技术时,需要根据具体的应用需求来决定。下面是一些关键点,可以帮助你做出选择&…...

通信工程学习:什么是三网融合
三网融合 三网融合,又称“三网合一”,是指电信网、广播电视网、互联网在高层业务应用上的深度融合。这一概念在近年来随着信息技术的快速发展而逐渐受到重视,并成为推动信息化社会建设的重要力量。以下是对三网融合的详细解释: 一…...

自定义类型结构体(上)
目录 结构体类型的声明结构体的概念结构体的声明特殊的声明结构的自引用 结构体变量的创建和初始化结构成员访问操作符 结构体类型的声明 结构体的概念 结构体是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量 举个例子:杰克的英语只考了6…...

b站-湖科大教书匠】4 网络层 - 计算机网络微课堂
【b站-湖科大教书匠】4 网络层 - 计算机网络微课堂_湖科大的计算机网络网课-CSDN博客...

国际 Android WPS Office v18.13 解锁版
WPS Office 移动版,设计不断优化,性能再次提升!融入Google Android最新设计标准,Material Design设计风格,完美支持沉浸式!简化文档操作,全新移动办公力作。全新界面更清晰舒适,功能…...

【中间件学习】Git的命令和企业级开发
一、Git命令 1.1 创建Git本地仓库 仓库是进行版本控制的一个文件目录。我们要想对文件进行版本控制,就必须创建出一个仓库出来。创建一个Git本地仓库对应的命令是 git init ,注意命令要在文件目录下执行。 hrxlavm-1lzqn7w2w6:~/gitcode$ pwd /home/hr…...

FTP连接池与多线程FTP上传下载算法(Java)
设计一个能够处理FTP连接池在多线程环境下,尤其是涉及到故障重连时避免竞争条件的算法,需要综合考虑线程同步、连接状态管理和重试机制。以下是一个设计思路和实现方案: 设计思路 连接池管理: 维护一个连接池,其中包含多个FTP连接对象。每个FTP连接对象需有状态标记(如…...

Spring Cloud微服务详解
Spring Cloud微服务详解 在当今的数字化时代,微服务架构已成为构建大型、复杂应用系统的主流方式。Spring Cloud,作为微服务领域的一颗璀璨明星,以其强大的功能和灵活的架构,吸引了无数开发者的目光。本文将深入探讨Spring Cloud…...