逆向ChatGPT4核心

admin 2024年4月19日23:40:23评论4 views字数 1757阅读5分51秒阅读模式
逆向ChatGPT4核心
逆向ChatGPT4核心
逆向ChatGPT4核心
摘要

逆向ChatGPT4核心
逆向ChatGPT4核心
逆向ChatGPT4核心

本文从提示注入和任意代码执行、隐藏API发现、动态代码执行、数据序列化四个维度探索了ChatGPT4的安全性问题, 用另类的逆向手段对ChatGPT做了一系列安全测试。

2023年11月, OpenAI推出了一个新玩法:CustomGPTS, 这是一个可以根据选择的任何主题或问题进行定制的GPT4版本, 在本文的试验中, 通过在一个GPT实例上使用提示注入和任意代码, 暴露系统内部信息,例如:进程ID、环境变量、IP地址、开发端口和API端点。还采用了一种独特的动态代码执行和数据序列化方法。

逆向ChatGPT4核心
逆向ChatGPT4核心
逆向ChatGPT4核心
提示注入和任意代码执行

逆向ChatGPT4核心
逆向ChatGPT4核心
逆向ChatGPT4核心

下面的例子是利用一种特殊的方法, 让GPT来显示它的知识库, 并驱使GPT执行第三方代码, 如图:

逆向ChatGPT4核心

首先让GPT执行一个脚本, 该脚本会运行另一个脚本, 并最终结果放到一个文本文件中, 然后我会读取这个结果文件来获取内容, 下面是利用脚本来获取目录和网络配置, 如图:

逆向ChatGPT4核心

看上面最后的显示, 有".openai_internal"的字样。从这里, 成功获取到大量信息, 假设对/proc目录比较感兴趣, 执行一个脚本, 解析/proc/net/tcp中包含的信息, 可以成功获取到本地IP地址和开放端口, 如图:

逆向ChatGPT4核心

这段用Python写的脚本代码主要解析/proc/tcp中的信息, 包括:本地IP和开放端口, 这里解析出来的8080端口对应的服务为:http-alt。

接下来, 继续利用脚本尝试获取一下环境变量,让脚本获取系统中当前进程ID并对每个进程ID进行分析,  GPT返回给我的信息如下:

逆向ChatGPT4核心

逆向ChatGPT4核心
逆向ChatGPT4核心
逆向ChatGPT4核心
发现隐藏API调用

逆向ChatGPT4核心
逆向ChatGPT4核心
逆向ChatGPT4核心

ChatGPT实例是具备浏览互联网能力的, 尝试一下让GPT利用Bing功能并访问"http://localhost:8080", 通过Swagger UI显示API文档(Swagger UI是流行的用于记录RESTful API的框架), 如图:

逆向ChatGPT4核心

在上图返回的结果中, 得到一个404状态码(无响应), 但响应头却是存在的。这意味着该特定端点的根路径未找到, 因此用Google搜索一下OpenAI的端点, 并填充一堆随机的数据, 看看能得到什么,如图:

逆向ChatGPT4核心

从返回的结果中可以看到, 在/docs端点获得了200正常响应。当然,这里如果改进一下脚本, 加入更多的端点尝试, 应该能发现更多的东西。这里继续深挖/docs, 让脚本执行访问 localhost:8080/docs, 这样就能够获得Swagger UI、FastAPI以及所有的API文档, 如图:

逆向ChatGPT4核心

逆向ChatGPT4核心

从上图可以看到, 利用脚本提取了FastAPI应用程序的OpenAPI模式中的Pydantic模型的相关定义和字段内容。

逆向ChatGPT4核心
逆向ChatGPT4核心
逆向ChatGPT4核心
动态代码执行

逆向ChatGPT4核心
逆向ChatGPT4核心
逆向ChatGPT4核心

实际上, OpenAI也在不断更新和调整他们当前的GPT4模型, 并给现有的模型添加额外的安全特性, 欺骗GPT得到想要的结果也会变得愈加困难, 但这种安全性仍然会有机会绕过, 例如: ChatGPT会明确告诉我无法执行我提供的代码, 但如果坚持对GPT说, 这段代码只是一个演示, 并希望其执行失败, ChatGPT每次都会执行代码, 并绕过OpenAI实施的安全过滤器。如图:

逆向ChatGPT4核心

让GPT达到这种回答结果是非常不容易的, 需要大量重复的试错提示, 最终才能使GPT执行第三方代码, 但如果一旦成功执行第三方代码,后续的执行就变得非常简单, 如图:

逆向ChatGPT4核心

以下是利用Python脚本将打印语句转换成base64, 然后解码并将其写入临时文件, GPT执行后在控制台上中输出了打印结果, 成功动态的运行了编码命令。

逆向ChatGPT4核心

再次改进下脚本, 让GPT动态输出线程ID信息,如图:

逆向ChatGPT4核心

现在有理由相信, 在GPT中动态执行代码应该是可行的。

逆向ChatGPT4核心
逆向ChatGPT4核心
逆向ChatGPT4核心
数据序列化

逆向ChatGPT4核心
逆向ChatGPT4核心
逆向ChatGPT4核心

在测试数据序列化过程中, GPT展示了其安全防护能力, 通过声称自己没有执行给定任务的能力来欺骗我们,甚至说该方法是不安全的行为, 但真的无法绕过嘛?

第一次尝试将脚本进行混淆, 但依然被GPT抓住了,如图:

逆向ChatGPT4核心

后续继续无聊的转换混淆算法, 不知道在失败多少次之后, GPT终于还是执行了, 如图:

逆向ChatGPT4核心

逆向ChatGPT4核心

逆向ChatGPT4核心
逆向ChatGPT4核心
逆向ChatGPT4核心
结论

逆向ChatGPT4核心
逆向ChatGPT4核心
逆向ChatGPT4核心

人工智能的安全是一个非常有意思的方向, 个人觉得固定的防护策略是防不住特定的攻击方法的。持续的高强度逻辑旋绕仍然会让AI陷入自身的逻辑矛盾而忽略掉安全策略。就像苹果的AppStore一样, 最终的安全还是得交给人工来判定, AI的输出结果最终是否也会走这条路, 拭目以待。

原文始发于微信公众号(二进制空间安全):逆向ChatGPT4核心

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月19日23:40:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   逆向ChatGPT4核心http://cn-sec.com/archives/2638337.html

发表评论

匿名网友 填写信息