当前位置: 首页 > news >正文

从ChatGPT代码执行逃逸到LLMs应用安全思考

摘要

11月7日OpenAI发布会后,GPT-4的最新更新为用户带来了更加便捷的功能,包括Python代码解释器、网络内容浏览和图像生成能力。这些创新不仅开辟了人工智能应用的新境界,也展示了GPT-4在处理复杂任务方面的惊人能力。然而,与所有技术进步一样,新功能的引入往往伴随着新挑战。GPT-4新功能上线后,我们第一时间对其功能进行了安全分析,其中发现Python代码解释器疑似存在沙盒逃逸漏洞。

本文将深入探讨该漏洞的发现和挖掘过程,分享OpenAI官方对该问题的处理态度和处置思路,也希望该漏洞能够提供给大家更多对大语言模型(LLMs)应用安全风险的理解和思考。

01 漏洞发现与分析

绿盟研究团队起初的研究切入点为OpenAI本次更新当中支持了GPT-4在对话过程中能够根据用户的描述进行自动化的图表生成,并且通过界面上的分析按钮可以查看相关的图表是基于Python的matplotlib.pyplot库完成。

图片

在发现GPT-4已经支持用户输入Python代码后,我们第一时间尝试对Python代码执行功能进行初步的测试,了解相关功能的使用范围和相关限制,并关注整个过程中是否存在安全保护机制以及针对Python环境实施的安全策略。在直接通过Python解释器执行系统id命令以及间接通过字符串拼接实现id命令的执行时,发现GPT-4针对Python执行系统功能时,存在一定的安全限制,针对恶意的代码组合方式会拒绝进行Python代码执行,从而限制⽤户运行影响进程⽂件和Python环境完整性的操作。

图片

图片

在多次测试与代码执行后,我们推测GPT-4中针对这一特性存在相关的安全检测机制:

\1. ⽤户输⼊ → 2. ChatGPT检测执⾏代码是否影响系统进程、⽂件、⽹络等,⽆⻛险则继续 → 3. 组合⽤户输⼊和预制逻辑形成待执行代码 → 4. 执⾏代码 → 5. GPT-4解释执⾏结果

GPT-4沙箱逃逸到任意命令执行

尽管GPT-4具备这些安全措施,但依然可能实现Python沙盒逃逸。我们研究发现利用多次会话上文和ASCII编码隐藏敏感命令,最终通过字符串触发执行,绕过了GPT-4的安全检查,执行了cat /etc/issue命令,成功获取到了目标环境的Linux发行版。

图片

02 漏洞提交过程 && OpenAI官方处理态度

在确认Python沙箱逃逸漏洞的可行性后,团队于第一时间上报国家漏洞库,并于11月8日通过BugCrowd向OpenAI提交了这一安全问题,并详细描述了相关的发现过程及绕过安全策略的方法。

图片

11月9日OpenAI官方针对我们提交的漏洞进行了回复,比较遗憾的是,官方将此问题归类为模型幻觉问题,并且认为相关代码执行过程是大模型模拟出来并给出的虚假结果,并告知由于大模型的安全问题存在一定的特殊性,与模型提示词输入与响应内容相关的问题不在安全问题的范围之内,因此拒绝收录此漏洞。

图片

后续我们多次对该问题进行了验证和测试,包括对代码执行环境的分析、GPTs私有化知识库探测等,依旧判定为是实际上的代码执行而非“模型幻觉问题”,关于GPTs应用的安全风险我们会在下一篇文章当中进行介绍。

03 OpenAI官方修复策略

在官方回复漏洞提交记录后,我们于11月13日重新测试发现先前在Python解释器中的安全检查机制已被移除,用户可无限制在Python解释器中输入并执行相关的系统命令,无需再绕过任何安全机制。以下是我们通过执行env命令输出的系统环境变量信息,可以看到Python解释器的Agent功能是放在K8S集群中执行的,并且用户在系统中的执行权限为sandbox。

图片

图片

我们分析代码执行沙箱的K8S 集群架构图如下:

图片

站在OpenAI官方视角来看,该问题是很难直接在应用层面进行修复,大语言模型的魅力在于其对自然语言的理解、推理和生成能力,而在安全视角中,自然语言的多样性以及复杂的逻辑多样性又使得我们在以往传统应用安全中基于输入输出做变量控制的检测防御实践很难在LLM安全场景中应用起来,单一的应用层安全策略不足以应对复杂的安全挑战。

值得借鉴的是OpenAI在处置本次风险时直接在应用安全层面放开了Python代码的执行限制,选择在容器架构层面进行安全加固以及攻击面的收敛,通过基于K8S Pod的形式运行Python解释器沙箱,在底层Pod运行时环境中实施严格的安全措施,包括网络连接限制、可读写目录限制、Pod运行存活时间、禁用高危命令等限制策略,以此来修复问题。这种做法增强了模型应用基座系统的安全性,将攻击影响限制在了可控的范围之内。

04 总结:LLMs时代下的应用安全

在本文我们通过实证测试深入探讨了GPT-4的安全漏洞,同时也对OpenAI的安全策略和对待安全漏洞的态度进行了深入的分析。在LLMs时代,如何确保LLMs应用的安全性,已成为一个亟待解决的关键问题。

OpenAI针对该漏洞直接在应用层面修复此类问题面临较大难度,OpenAI选择在容器架构层面进行安全加固以及攻击面的收敛制策略,但即便如此,该场景下依然存在部分安全风险,包括代码执行和资源滥用、数据安全问题甚至容器逃逸风险等。突显出在LLMs时代,面对日益复杂的安全威胁,需要采取更为全面和多层次的安全策略。随着人工智能技术的快速发展,我们必须不断审视和更新我们的安全策略,以确保在LLMs时代下应用的安全和可靠性。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

相关文章:

从ChatGPT代码执行逃逸到LLMs应用安全思考

摘要 11月7日OpenAI发布会后,GPT-4的最新更新为用户带来了更加便捷的功能,包括Python代码解释器、网络内容浏览和图像生成能力。这些创新不仅开辟了人工智能应用的新境界,也展示了GPT-4在处理复杂任务方面的惊人能力。然而,与所有…...

Python入门-基础知识-变量

1.标识符与关键字 Python语言规定,标识符由字母、数字和下画线组成,且不允许以数字开头。合法的标识符可以 是student_1、 addNumber、num等,而3number、2_student等是不合法的标识符。在使用标识符时应注意以下几点。 (1)命名时应遵循见名知…...

设计模式原则——接口隔离原则

设计模式原则 设计模式示例代码库地址: https://gitee.com/Jasonpupil/designPatterns 接口隔离原则 要求程序员尽量将臃肿庞大的接口拆分为更小的和更具体的接口,让接口中只包含客户感兴趣的方法接口隔离原则的目标是降低类或模块之间的耦合度&…...

MySQL数据库——在Centos7环境安装

MySQL在Centos7环境安装 1.切换root用户 安装与卸载中,用户全部切换成为root,安装好后,普通用户也能使用 2.卸载不要的环境 要将自己环境中有关mysql的全都删除,避免安装过程中被影响 ps axj | grep mariadb 先检查是否有mari…...

怎样规避液氮容器内部结霜的问题

液氮容器内部结霜问题一直是我们在使用液氮储存罐时遇到的一个棘手难题。液氮的极低温度使得容器内部很容易产生结霜现象,这不仅影响了容器的正常使用,还可能对内部样品或设备造成损坏。因此,如何有效规避液氮容器内部结霜问题成为了每个使用…...

冶金工业5G智能工厂工业物联数字孪生平台,推进制造业数字化转型

冶金工业5G智能工厂工业物联数字孪生平台,推进制造业数字化转型。传统生产方式难以满足现代冶金工业的发展需求,数字化转型成为必然趋势。通过引入5G、工业物联网和数字孪生等先进技术,冶金工业可以实现生产过程智能化、高效化和绿色化&#…...

一文入门机器学习参数调整实操

作者前言: 通过向身边的同事大佬请教之后,大佬指点我把本文的宗旨从“参数调优”改成了“参数调整”。实在惭愧,暂时还没到能“调优”的水平,本文只能通过实操演示“哪些操作会对数据训练产生影响”,后续加深学习之后,…...

基于51单片机的银行排队呼叫系统设计

一.硬件方案 本系统是以排队抽号顺序为核心,客户利用客户端抽号,工作人员利用叫号端叫号;通过显示器及时显示当前所叫号数,客户及时了解排队信息,通过合理的程序结构来执行排队抽号。电路主要由51单片机最小系统LCD12…...

JXCategoryView的使用总结

一、初始化 -(JXCategoryTitleView *)categoryView{if (!_categoryView) {_categoryView [[JXCategoryTitleView alloc] init];_categoryView.delegate self;_categoryView.titleDataSource self;_categoryView.averageCellSpacingEnabled NO; //是否平均分配项目之间的间…...

Centos9 安装VBox增强功能问题

安装步骤 更新gcc 首先手动更新gcc,防止无法兼容最新版本的内核,我这里将gcc 11更新到gcc 13 1.首先更新当前gcc和支持 yum install -y gcc gcc-c 2.下载新版本gcc压缩包 wget http://ftp.gnu.org/gnu/gcc/gcc-13.1.0/gcc-13.1.0.tar.gz 解压到usr ta…...

【JVM】Java虚拟机运行时数据分区介绍

JVM 分区(运行时数据区域) 文章目录 JVM 分区(运行时数据区域)前言1. 程序计数器2. Java 虚拟机栈3. 本地方法栈4. Java 堆5. 方法区6. 运行时常量池7. 直接内存 前言 之前在说多线程的时候,提到了JVM虚拟机的分区内存…...

大数据面试题之Kafka(2)

目录 Kafka的工作原理? Kafka怎么保证数据不丢失,不重复? Kafka分区策略 Kafka如何尽可能保证数据可靠性? Kafka数据丢失怎么处理? Kafka如何保证全局有序? 生产者消费者模式与发布订阅模式有何异同? Kafka的消费者组是如何消费数据的 Kafka的…...

前端面试题(基础篇十一)

一、DOCTYPE 的作用是什么&#xff1f; <!DOCTYPE> 声明一般位于文档的第一行&#xff0c;它的作用主要是告诉浏览器以什么样的模式来解析文档。一般指定了之后会以标准模式来进行文档解析&#xff0c;否则就以兼容模式进行解析。在标准模式下&#xff0c;浏览器的解析规…...

【论文阅读】Answering Label-Constrained Reachability Queries via Reduction Techniques

Cai Y, Zheng W. Answering Label-Constrained Reachability Queries via Reduction Techniques[C]//International Conference on Database Systems for Advanced Applications. Cham: Springer Nature Switzerland, 2023: 114-131. Abstract 许多真实世界的图都包含边缘标签…...

Git Flow 工作流学习要点

Git Flow 工作流学习要点 Git Flow — 流程图Git Flow — 操作指令优点&#xff1a;缺点&#xff1a;Git Flow 分支类型Git Flow 工作流程简述关于 feature 分支关于 Release 分支关于 hotfix 分支 总结 Git Flow — 流程图 图片来源&#xff1a;https://nvie.com/posts/a-succ…...

blender 快捷键 常见问题

一、快捷键 平移视图&#xff1a;Shift 鼠标中键旋转视图&#xff1a;鼠标中键缩放视图&#xff1a;鼠标滚动框选放大模型&#xff1a;Shift B线框预览和材质预览切换&#xff1a;Shift Z 二、常见问题 问题&#xff1a;导入模型成功&#xff0c;但是场景中看不到。 解…...

HTTP详解:TCP三次握手和四次挥手

一、TCP协议概述 TCP协议是互联网协议栈中传输层的核心协议之一&#xff0c;它提供了一种可靠的数据传输方式&#xff0c;确保数据包按顺序到达&#xff0c;并且没有丢失或重复。TCP的主要特点包括&#xff1a; 面向连接&#xff1a;TCP在传输数据之前需要建立连接。可靠传输&…...

详解HTTP:有了HTTP,为何需要WebSocket?

在日常生活中&#xff0c;HTTP 常用于请求数据。例如&#xff0c;当你打开一个天气预报网站时&#xff0c;浏览器会发送一个 HTTP 请求到服务器&#xff0c;请求当前的天气数据&#xff0c;服务器返回响应&#xff0c;浏览器解析并显示这些数据。 但是&#xff0c;当涉及到需要…...

Spring Boot 启动流程是怎么样的

引言 SpringBoot是一个广泛使用的Java框架&#xff0c;旨在简化基于Spring框架的应用程序的开发过程。在这篇文章中&#xff0c;我们将深入探讨SpringBoot应用程序的启动流程&#xff0c;了解其背后的机制。 Spring Boot 启动概览 SpringBoot应用程序的启动通常从一个包含 m…...

【学习笔记】数据结构(三)

栈和队列 文章目录 栈和队列3.1 栈 - Stack3.1.1 抽象数据类型栈的定义3.1.2 栈的表示和实现 3.2 栈的应用举例3.2.1 数制转换3.2.2 括号匹配的检验3.2.3 迷宫求解3.2.4 表达式求值 - 波兰、逆波兰3.2.5 反转一个字符串或者反转一个链表 3.3 栈与递归的实现3.4 队列 - Queue3.4…...

学习python笔记:10,requests,enumerate,numpy.array

requests库&#xff0c;用于发送 HTTP 请求的 Python 库。 requests 是一个用于发送 HTTP 请求的 Python 库。它使得发送 HTTP 请求变得简单且人性化。以下是一些基本的 requests 函数及其用途&#xff1a; requests.get(url, **kwargs) 发送一个 GET 请求到指定的 URL。 i…...

经典神经网络(13)GPT-1、GPT-2原理及nanoGPT源码分析(GPT-2)

经典神经网络(13)GPT-1、GPT-2原理及nanoGPT源码分析(GPT-2) 2022 年 11 月&#xff0c;ChatGPT 成功面世&#xff0c;成为历史上用户增长最快的消费者应用。与 Google、FaceBook等公司不同&#xff0c;OpenAI 从初代模型 GPT-1 开始&#xff0c;始终贯彻只有解码器&#xff0…...

MySQL库与表的操作

目录 一、登录并进入数据库 1、登录 2、USE 命令 检查当前数据库 二、库的操作 1、创建数据库语法 2、举例演示 3、退出 三、字符集和校对规则 1、字符集&#xff08;Character Set&#xff09; 2、校对集&#xff08;Collation&#xff09; 总结 3、操作命令 …...

TTS 语音合成技术学习

TTS 语音合成技术 TTS&#xff08;Text-to-Speech&#xff0c;文字转语音&#xff09;技术是一种能够将文字内容转换为自然语音的技术。通过 TTS&#xff0c;机器可以“说话”&#xff0c;这大大增强了人与机器之间的互动能力。无论是在语音助手、导航系统还是电子书朗读器中&…...

小公司做自动化的困境

1. 人员数量不够 非常常见的场景, 开发没几个, 凭什么测试要那么多, 假设这里面有3个测试, 是不是得有1个人会搞框架? 是不是得有2人搞功能测试, 一个人又搞框架, 有些脚本, 真来得及吗? 2. 人员基础不够 现在有的大公司, 是这样子协作的, 也就是某模块需求谁谁测试的, 那么…...

基于pytorch框架的手写数字识别(保姆级教学)

1、前言 本文基于PyTorch框架,采用CNN卷积神经网络实现MNIST手写数字识别,不仅可以在GPU上,同时也可以在CPU上运行。方便即使只有CPU的小伙伴也可以运行该模型。本博客手把手教学,如何手写网络层(3层),以及模型训练,详细介绍各参数含义与用途。 2、模型源码解读 该模型…...

注意力机制在大语言模型中的应用

在大语言模型中&#xff0c;注意力机制&#xff08;Attention Mechanism&#xff09;用于捕获输入序列中不同标记&#xff08;token&#xff09;之间的关系和依赖性。这种机制可以动态地调整每个标记对当前处理任务的重要性&#xff0c;从而提高模型的性能。具体来说&#xff0…...

qt 实现对字体高亮处理原理

在Qt中实现对文本的字体高亮处理&#xff0c;通常涉及到使用QTextDocument、QTextCharFormat和QSyntaxHighlighter。下面是一个简单的例子&#xff0c;演示如何为一个文本编辑器&#xff08;假设是QTextEdit&#xff09;添加简单的关键词高亮功能&#xff1a; 步骤 1: 定义关键…...

SAP中通过财务科目确定分析功能来定位解决BILLING问题实例

接用户反馈&#xff0c;一笔销售订单做发货后做销售发票时&#xff0c;没有成功过账到财务&#xff0c;提示财户确定错误。 这个之前可以通过VF02中点击小绿旗来重新执行过财动作&#xff0c;看看有没有相应日志来定位问题。本次尝试用此方法&#xff0c;也没有找到相关线索。 …...

充电站,正在杀死加油站

最近&#xff0c;深圳公布了一组数据&#xff0c;深圳的超级充电站数量已超过传统加油站数量&#xff0c;充电枪数量也已超过加油枪数量。 从全国范围看&#xff0c;加油站关停的速度在加快。 充电站正在杀死加油站。 加油站&#xff0c;未来何去何从&#xff1f; 01. 减少 我…...

直接在原备案号下增加新网站/营销网

有没有发现&#xff0c;最近学Python的程序员越来越多了&#xff0c;不少人开始把Python当做第一语言来学习。但结合我最近这些年Python的学习、开发经验&#xff0c;发现超90%的人在初学Python时都可能会遇到下面这些问题&#xff1a; 应用方向太多了&#xff0c;完全不知道怎…...

网站首页样式/杭州网站关键词排名优化

配置办法https://blog.csdn.net/qq342643414/article/details/78364601 可能会遇到的问题https://www.cnblogs.com/chuijingjing/p/9880095.html转载于:https://www.cnblogs.com/helf/p/10709686.html...

网页设计入门 电子书下载/江西seo推广软件

1.插件介绍 redis simple插件。 连接redis&#xff0c;进行查看、修改、删除数据。 2.安装方式 第一种方式&#xff0c;是在IDEA上搜索插件进行安装&#xff0c;会适配当前IDEA的版本。 第二种安装方式是使用离线插件进行安装。 插件下载地址&#xff1a;https://plugins.…...

网站色彩代码/谷歌广告平台

基础篇 面向对象Java基础知识Java并发编程 进阶篇 Java底层知识设计模式网络编程知识框架知识应用服务器知识工具 高级篇 性能优化线上问题分析编译原理知识操作系统知识数据库知识数据结构与算法知识大数据知识网络安全知识 底层篇 JVMJava内存模型虚拟机性能监控与故障处…...

海门住房和城乡建设局网站/深圳做网站

我做的是 PC端 即时支付功能 app支付也是验签失败下面是log 公钥 跟支付宝的也对过了&#xff0c;没错 &#xff0c;支付宝存在 常量里 是字符串下载的是官方demo 文件名 create_direct_pay_by_user-JAVA-UTF-82017-03-31 17:48:55,918 -[oow] DEBUG [com.ccytsoft.print.contr…...

.net怎么做网站/精准引流的网络推广

随机显示矩阵已经完成了&#xff0c;接下来就是怎么根据输入移动数字 1.首先需要一个issort函数&#xff0c;判断是否排序完成&#xff0c;如果否&#xff0c;则printf输入需要移动的数字&#xff0c;然后根据输入找到要移动的数字&#xff0c;找到下划线的位置&#xff0c;判断…...