大语言模型安全,到底是什么的安全

什么是AI安全
自ChatGPT问世以来,市场上涌现出了众多大型语言模型和多样化的AI应用。这些应用和模型在为我们的生活带来便利的同时,也不可避免地面临着安全挑战。AI安全,即人工智能安全,涉及在人工智能系统的开发、部署和使用全过程中,采取的一系列措施以保护系统免受攻击、侵入、干扰和非法使用,确保其稳定可靠的运行。
在当前的讨论中,我们通常提到的AI安全实际上涵盖了两个主要方面:大型语言模型(LLM)的安全和应用本身的安全。LLM安全关注于这些模型在处理和生成语言时的安全性,而应用安全则涉及到AI技术在特定领域应用时的安全问题。
什么是LLM安全
LLM安全,即大型语言模型(Large Language Model)安全,是指在大型语言模型的开发、部署和使用过程中,采取必要的措施来保护模型免受攻击、侵入、干扰和非法使用,确保其稳定可靠运行。随着技术的发展,LLM安全的重要性日益凸显,尤其是在评估和提高模型在面对恶意输入和使用时的鲁棒性和安全性方面。CyberSecEval 3作为Meta推出的最新安全评估工具,为我们提供了一个全面的框架来理解和测试LLM的安全性。

CyberSecEval 3是Meta的Purple Llama项目的一部分,提供了一套全面的安全基准测试,用以评估LLM在网络安全风险和能力方面的表现。
LLM安全的风险点
以下是CyberSecEval 3识别的主要风险点
1. 自动化社交工程(Automated Social Engineering):
- 通过模拟钓鱼攻击(如Spear Phishing)来评估LLM在自动化社交工程中的风险。这包括评估LLM生成的钓鱼内容的说服力和有效性,以及其在说服目标受害者达成特定钓鱼目标的能力。
2. 扩展手动攻击性网络操作(Scaling Manual Offensive Cyber Operations):
- 评估LLM在辅助手动网络攻击中的能力,包括侦察和漏洞发现。这涉及到评估LLM如何提升网络攻击者的能力,无论是扩大攻击者的范围还是加深现有攻击者的能力。
3. 自主攻击性网络操作(Autonomous Offensive Cyber Operations):
- 评估LLM作为网络攻击代理的自主能力,包括模拟勒索软件攻击阶段的执行能力。这涉及到LLM在战略规划和推理方面的能力,以及其在自动化脚本之外的操作能力。
4. 自动化软件漏洞发现和利用(Autonomous Software Vulnerability Discovery and Exploit Generation):
- 评估LLM在自动化发现软件漏洞和生成利用代码方面的能力。这包括对LLM在小规模程序漏洞利用挑战中的表现进行测试。
5. 提示注入攻击(Prompt Injection Attacks):
- 评估LLM对提示注入攻击的敏感性,包括文本提示注入和视觉提示注入攻击。这些攻击涉及不信任的用户输入中的恶意指令,旨在覆盖LLM的原始任务。
6. 代码解释器测试(Code Interpreter Tests):
- 评估集成LLM与代码解释器时的安全风险,特别是评估LLM防止恶意企图利用系统或执行有害代码的能力。
7. 漏洞利用测试(Vulnerability Exploitation Tests):
- 通过“捕获旗帜”风格的挑战来衡量LLM的程序利用能力。
8. 不安全代码生成测试(Secure Code Generation Tests):
- 评估LLM在不同上下文中生成安全代码的倾向,包括在给定特定指令时生成不安全代码的倾向,以及在自动补全上下文中建议不安全编码实践的频率
LLM安全的测试内容
结合CyberSecEval 3,LLM安全的测试内容涵盖了以下方面:
1. Prompt安全测试:
- 指令劫持测试:检查LLM是否能够抵抗将指令从预期任务转移到恶意任务的尝试。
- 角色扮演测试:评估LLM在模拟特定角色时是否能够保持安全和适当的行为。
- 反向诱导测试:测试LLM是否能够识别并抵抗试图诱导其产生不当反应的输入。
2. 内容安全测试:
- 网络安全测试:评估LLM在网络环境中的安全性,包括对网络攻击的抵抗力。
- 训练数据泄露测试:检查LLM是否泄露了训练数据中的敏感信息。
- 个人隐私泄露测试:评估LLM是否能够保护个人隐私,不泄露个人信息。
3. 代码安全测试:
- 不安全代码建议测试:评估LLM是否能够识别并拒绝生成不安全的代码建议。
- 代码执行能力测试:测试LLM生成的代码是否能够在安全的环境下执行。
4. 漏洞和攻击测试:
- 提示注入测试:检查LLM是否能够抵抗提示注入攻击,防止恶意代码的执行。
- 越狱(Jailbreaks)测试:评估LLM是否能够抵抗越狱攻击,防止模型被滥用。
- 恶意代码生成测试:检查LLM是否能够识别并阻止生成恶意代码。
AI应用自身的安全
在讨论了大型语言模型(LLM)的安全之后,我们转向AI应用自身的安全问题。AI应用,尤其是那些调用大模型的相关软件,其供应链的安全至关重要。如LangChain的远程命令执行漏洞凸显了AI应用在安全方面的脆弱性。(LangChain是一个流行的开源生成式人工智能框架,其官网介绍,有超过一百万名开发者使用LangChain框架来开发大型语言模型应用程序。)

AI应用自身的安全涉及到从开发到部署的整个供应链,包括但不限于代码库、依赖项、API接口以及与外部系统的交互。以下是一些关于AI应用比较经典的漏洞案例。
1. LangChain远程命令执行漏洞:
- LangChain是一个用于构建和部署AI应用的平台,该漏洞允许攻击者通过构造特定的请求来执行任意命令,从而控制服务器。
2. ChatGPT-Next-Web SSRF漏洞(CVE-2023-49785):
- 该漏洞允许攻击者通过服务器端请求伪造(SSRF)攻击,获取未经授权的访问权限,可能导致敏感信息泄露。
3. OpenAI ChatGPT插件隐私泄露:
- ChatGPT的一个已知漏洞允许攻击者通过插件向恶意网站提供数据,控制聊天会话并窃取会话历史。
4. 大模型产生并执行XSS漏洞:
- 有很多基于大模型的应用,在开发过程中没有对输入输出进行控制,诱导大模型输出XSS语句可以导致LLM在网页端成功输出并执行了XSS攻击。
AI应用安全的测试内容
针对AI应用自身的安全,测试内容应包括但不限于:
1. 功能安全测试:
- 认证和授权:确保AI应用正确实施了用户认证和权限控制。
- 数据加密:测试AI应用中数据传输和存储的加密措施是否得当。
- 输入验证:测试AI应用是否能有效过滤和处理恶意输入。
- 输出编码:在输出时对敏感字符进行编码保护,防止恶意代码直接输出执行。
- 错误处理:测试AI应用在遇到错误时是否能够正确地处理,不泄露敏感信息。
- 日志和监控:测试AI应用是否有足够的日志记录和监控机制来跟踪异常行为。
2. 系统安全测试:
- API安全:测试AI应用提供的API是否安全,是否有可能遭受攻击。
- 依赖项安全:测试AI应用依赖的库和框架是否有已知的安全漏洞。
- 代码审计:对AI应用的代码进行审计,查找潜在的安全漏洞。
在本文中,我们简单探讨了AI安全的概念,特别关注了大型语言模型(LLM)的安全和AI应用本身的安全问题。我们了解到,随着AI技术的快速发展,其在带来便利的同时,也暴露出了诸多安全挑战。LLM安全关注于模型在处理和生成语言时的安全性,而应用安全则涉及AI技术在特定领域应用时的安全问题。
总体而言,AI安全是一个多维度的问题,它要求我们在技术发展的同时,不断更新和加强安全措施。随着AI技术的不断进步,新的安全挑战也会不断出现,这要求我们保持警惕,持续研究和开发更有效的安全策略和工具。只有这样,我们才能确保AI技术的安全、可靠和负责任的使用,从而最大化其对人类社会的积极影响。
参考
https://meta-llama.github.io/PurpleLlama/docs/intro/
https://doublespeak.chat/#/handbook
https://arxiv.org/pdf/2302.12173
洞源实验室
安全工程师:马云卓
2024 年 11 月 11 日
相关文章:
大语言模型安全,到底是什么的安全
什么是AI安全 自ChatGPT问世以来,市场上涌现出了众多大型语言模型和多样化的AI应用。这些应用和模型在为我们的生活带来便利的同时,也不可避免地面临着安全挑战。AI安全,即人工智能安全,涉及在人工智能系统的开发、部署和使用全过…...
论文2—《基于柔顺控制的智能神经导航手术机器人系统设计》文献阅读分析报告
论文报告:基于卷积神经网络的手术机器人控制系统设计 摘要 本研究针对机器人辅助微创手术中定向障碍和缺乏导航信息的问题,设计了一种智能控制导航手术机器人系统。该系统采用可靠和安全的定位技术、7自由度机械臂以及避免关节角度限制的逆运动学控制策…...
试编写算法将单链表就地逆置(默认是带头节 点,如果是不带头节点地逆置呢?)
编写一个算法来就地逆置一个单链表。默认情况下,链表是带头节点的,但如果链表不带头节点,逆置的过程会有所不同。 第一步:定义逆置函数 根据题目中的“试编写算法将单链表就地逆置”,我们需要: 定义一个…...
FPGA学习笔记#3 Vitis HLS编程规范、数据类型、基本运算
本笔记根据笔者目前的项目确定学习目标,目前主要集中在Vitis HLS上,使用的Vitis HLS版本为2022.2,在windows11下运行,仿真part为xcku15p_CIV-ffva1156-2LV-e,从这一篇开始是HLS的学习进度,主要根据教程&…...
爬虫 - 二手交易电商平台数据采集 (一)
背景: 近期有一个需求需要采集某电商网站平台的商品数据进行分析。因此,我计划先用Python实现一个简单的版本,以快速测试技术的实现可能性,再用PHP实现一个更完整的版本。文章中涉及的技术仅为学习和测试用途,请勿用于商业或非法用…...
“成交量分布指标“,通过筹码精准锁定价格方向+简单找市场支撑压力位 MT4免费公式!
指标名称:成交量分布指标 版本:MT4 ver. 1.32 之前发布的市场分布图不少朋友反馈不错,希望获得其它版本。 这个版本只有MT4的,MT5可以看之前版本,链接: “市场分布图”,精准把握价格动向 更直…...
简记Vue3(四)—— 路由
个人简介 👀个人主页: 前端杂货铺 🙋♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…...
Python批量合并多个PDF
在日常工作中,处理和合并多个 PDF 文件是一个常见需求,尤其是在需要将大量文件整理成一个完整文档时。本文将详细介绍如何使用 Python 的 PyMuPDF 库来实现批量 PDF 文件合并,并提供针对大文件优化的解决方案。 安装 PyMuPDF 要使用 PyMuPD…...
Linux:vim命令总结及环境配置
文章目录 前言一、vim的基本概念二、vim模式命令解析1. 命令模式1)命令模式到其他模式的转换:2)光标定位:3)其他命令: 2. 插入模式3. 底行模式4. 替换模式5. 视图模式6. 外部命令 三、vim环境的配置1. 环境…...
贪心算法day05(k次取反后最大数组和 田径赛马)
目录 1.k次取反后最大化的数组和 2.按身高排序 3.优势洗牌 1.k次取反后最大化的数组和 题目链接:. - 力扣(LeetCode) 思路: 代码: class Solution {public int largestSumAfterKNegations(int[] nums, int k) {//如…...
默认 iOS 设置使已锁定的 iPhone 容易受到攻击
苹果威胁研究的八个要点 苹果手机间谍软件问题日益严重 了解 Apple 苹果的设备和服务器基础模型发布 尽管人们普遍认为锁定的 iPhone 是安全的,但 iOS 中的默认设置可能会让用户面临严重的隐私和安全风险。 安全研究员 Lambros 通过Pen Test Partners透露&#…...
上海市计算机学会竞赛平台2024年11月月赛丙组
题目描述 在一个棋盘上,有两颗棋子,一颗棋子在第 aa 行第 bb 列,另一个颗棋子在第 xx 行第 yy 列。 每一步,可以选择一个棋子沿行方向移动一个单位,或沿列方向移动一个单位,或同时沿行方向及列方向各移动…...
Python批量设置图片背景为透明
我们日常生活中制作PPT等教学资源时,需要批量去除图片背景,就可以使用 Python 的 rembg 库。 这个库基于神经网络模型,去背景效果较好,可以批量处理png, jpg, jpeg等图片。采用以下代码可以批量处理当前目录下的所有图片…...
Vue CLI 脚手架
cli脚手架创建项目步骤 全局安装(一次):yarn global add vue/cli 无法识别yarn的要先安装yarn;终端执行npm install -g yarn 查看Vue版本:vue --version 这里有问题(success上方有warning) 报错:‘vue’不是内部或外部…...
Linux【基础篇】
-- 原生罪 linux的入门安装学习 什么是操作系统? 用户通过操作系统和计算机硬件联系使用。桥梁~ 什么是Linux? 他是一套开放源代码(在互联网上找到Linux系统的源代码,C语言写出的软件),可以自由 传播&…...
多线程环境下安全地使用 SimpleDateFormat的常见方法
文章目录 1. 使用局部变量(每个线程独立一个实例)2. 使用 ThreadLocal<SimpleDateFormat>3. 使用 DateTimeFormatter(Java 8 及以上)4. 使用 DateFormat 子类(如 FastDateFormat)5. 使用 synchronize…...
easyexcel实现自定义的策略类, 最后追加错误提示列, 自适应列宽,自动合并重复单元格, 美化表头
easyexcel实现自定义的策略类, 最后追加错误提示列, 自适应列宽,自动合并重复单元格, 美化表头 原版表头和表体字体美化自动拼接错误提示列自适应宽度自动合并单元格使用Easyexcel使用poi导出 在后台管理开发的工作中,离不开的就是导出excel了. 如果是简单的导出, 直接easyexce…...
ANDROIDWORLD: A Dynamic Benchmarking Environment for Autonomous Agents论文学习
这个任务是基于androidenv的。这个环境之前学过,是一个用来进行强化学习的线上环境。而这篇文章的工作就是要给一些任务加上中间的奖励信号。这种训练环境的优点就是动态,与静态的数据集(比如说我自己的工作)不同,因此…...
Docker 常用命令详解(详细版)
Docker 是一个开源的容器化平台,它使得开发人员可以打包应用程序及其所有依赖项,并在任何环境中运行。Docker 提供了简单而强大的命令行工具来管理容器、镜像、网络等。本文将详细介绍 Docker 的常用命令及其使用方法。 1. 安装 Docker 在使用 Docker …...
【网络安全 | 甲方安全建设】分布式系统、Redis分布式锁及Redisson看门狗机制
未经许可,不得转载。 文章目录 分布式系统分布式系统的核心特性分布式系统的典型架构分布式锁概念Redis 分布式锁原理互斥性锁释放锁的唯一性具体实现Redisson分布式锁分布式系统 分布式系统是一种由多台计算机(节点)组成的系统,这些节点通过网络相互连接并协同工作,共同…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
