大语言模型安全,到底是什么的安全
什么是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分布式锁分布式系统 分布式系统是一种由多台计算机(节点)组成的系统,这些节点通过网络相互连接并协同工作,共同…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...