中转站数据泄露实测

开发调优开发调优, Lv1人工智能软件开发
查看原帖
akatyan
akatyan 楼主
#1

前言

一直都在说中转站泄漏数据,但是到底泄漏了什么数据,没人思考过,难道只是对话提示词和返回结果吗?带着这个疑问,我搭了一套审计系统。

方案

和codex讨论后,搭了一套sub2api,然后在caddy和sub2api中间加了一套审计系统,codex给的方案:

裸奔的数据

使用的提示词:你参考目前deploy里面的脚本,告诉我如何部署,如何回滚?

除了提示词,原来我的各种密钥也在裸奔,用户名在裸奔,url也在裸奔(图中隐私数据我已经做过混淆了)

查了下,被泄漏的内容在本地的配置文件.env里面,和我的提示词毫无关系,我也不知道codex传我这些配置数据干什么。

建议

能开安全沙箱尽量安全沙箱,不给codex一丁点的文件夹外的读取权限。
项目目录绝对不要包含真实的隐私信息/密钥,如果需要codex帮忙线上调试,建议调试完后更换密钥。
用中转站就要做好整个项目都被打包上传的心理准备,涉密部门的佬友们不要抱有侥幸心理,真不是泄漏几个提示词的事儿。

补充

我想表达的不是项目明文泄漏,而是codex会悄悄的上传无关的信息,里面包含了我的密钥!这个提示词本身根本不需要这个密钥,我也压根没想到会泄漏!这个.env都是运行时才需要的参数!
codex虽然能给出正确结果,但是思考过程中可能会泄漏太多信息了!而且你根本意识不到!

:heart:87:+1:5:distorted_face:1:laughing:1:open_mouth:1
gamemo中转又贵又不安全, 都是谁在用啊
barton公益站呢?
TOPIC OWNER
76楼层
75回复
57用户
akatyan qzy3344 darrelwangsz doryyang admin2 JamesHO

评论第 2 页,共 2 页

Aggron
Aggron
#54

是只有codex吗,claude中转有这个问题吗?我主要claude中转用的多,但claude多是项目plan和review codex的活为主,不知道这样会不会有泄露 :sob:

一样的 用中转就是会有泄露风险
jefferywang
#55

这个用例好像看不出来是codex的问题还是中转站吧 :thinking:

1个回复
akatyan
akatyan 楼主

codex泄漏的,整个工作空间都不可信,codex都可能读取并上传给openai,只不过中间如果有一层中转站的话,中转站也能拿到同样的数据。

TOPIC OWNER
↓ 跳到帖子
touch
#56

这只是 Codex 泄露数据,不是中转站泄露

不如 .env 放点 LLM Key, Github/NPM token,做个蜜罐钓鱼 :tieba_022:

akatyan
akatyan 楼主 ↶ @jefferywang
#57

codex泄漏的,整个工作空间都不可信,codex都可能读取并上传给openai,只不过中间如果有一层中转站的话,中转站也能拿到同样的数据。

TOPIC OWNER
MUZIJIXING
MUZIJIXING
#58

我担心项目完整代码会泄露吗?我和大模型讨论sub2api,管理员页面也许看不到具体的会话记录,但是服务器日志中可以抓包到完整的会话记录。

everyback
everyback
#59

没事,反正公司不出钱买plan,我就权限各种给了 :grin:那天被中转站漏了只能算老板活该倒霉

:+1:1:clap:1
zariba
#60

很有意义的实测,那最后测出来codex的安全边界是怎样的?

比如开了沙箱的情况下,整个工作目录都会上传,还是说甚至.CODEX的.env也会被上传?

Kuiper
Kuiper
#62

那以前萌新,已经用了好多中转站,怎么查电脑有没有受影响呢?

Ma1r6K
Ma1r6K
#63

所以每次用中转都会看着点有没有grep不该看的文件 :innocent:能不用还是尽量不用吧

black_ancker
black_ancker
#64

你在codex中有看到ai去读你的.env文件的记录吗?

black_ancker
black_ancker
#65

严格来说,你的标题有误,是codex主动去读了你的.env文件,和是不是中转站没有关系

1个回复
paceai.tian

佬说的对,读你电脑环境数据的任何行为都是codex或cc,而不是中转站,只不过中转站能拿到你codex或cc读取的并传给oai或A\的数据罢了。。

codex或cc的官订使用的是https的链接,你请求的内容默认只有oai和A\能看到,但这样就没办法走中转,走中转就只能把这个链接换成http或者使用中转站证书的https链接,中转才能转发你的请求到oai或A\,否则你请求的是 http:中转, A\怎么才能收到你的请求?

又要中转传数据,又让中转看不到数据,除非走透明代理,那就需要你自己有oai或A\账号,你自己都有了还走什么中转?

:+1:1
↓ 跳到帖子
paceai.tian ↶ @black_ancker
#66

佬说的对,读你电脑环境数据的任何行为都是codex或cc,而不是中转站,只不过中转站能拿到你codex或cc读取的并传给oai或A\的数据罢了。。

codex或cc的官订使用的是https的链接,你请求的内容默认只有oai和A\能看到,但这样就没办法走中转,走中转就只能把这个链接换成http或者使用中转站证书的https链接,中转才能转发你的请求到oai或A\,否则你请求的是 http:中转, A\怎么才能收到你的请求?

又要中转传数据,又让中转看不到数据,除非走透明代理,那就需要你自己有oai或A\账号,你自己都有了还走什么中转?

:+1:1
1个回复
black_ancker
black_ancker

目前有一些本地方案,会让ai在读一些密钥文件时真实获取的内容是脱敏后的内容

↓ 跳到帖子
black_ancker
black_ancker ↶ @paceai.tian
#67

目前有一些本地方案,会让ai在读一些密钥文件时真实获取的内容是脱敏后的内容

water_king
#68

还是codex上传的太多了,全靠中转站的良心

paceai.tian
#69

再多说一点,我自己做的claude code 防封号项目,在vps上拦截请求内容然后修改各种header包括tool use里的路径,再发送给A\,几百毫秒替换或删除所有我指定的个人隐私强封号信号标签内容为稳定的不会被封号的内容,再计算出cch附进去,A\收到返回内容后再拦截替换回原始的标签内容防止工具不一致。 电脑上是完全无感知的,如果我想,我在vps上完全可以把传给A\的传给豆包,或者A\返回的内容,直接注入或者完全修改成我想要的攻击内容,电脑端是完全无感知的。尤其是用subagent的场景。

:+1:1
paceai.tian
#70

既然用中转,就代表你接受中转的数据泄露可能性,而且不是可能性,是一定会漏。

:+1:1
hika
hika
#71

所以这也是我一直不敢用中转站的原因。

oyfvqqk
oyfvqqk
#72

其实说到底,还是codex和cc这些工具太黑盒了,它们会做什么用户根本无法预料,既然用了数据肯定就会泄露,区别无非是泄露给公益站、中转站还是官方罢了

:+1:1
XGCoder
XGCoder
#73

cc 可以设置某个文件夹或者文件禁止访问, codex 配置文件中应该怎么配置呢

eliosec
eliosec ↶ @JamesHO
#74

伪装成Autodesk Forge SDK 的马,这个是AI幻觉触发下载的npm包。

1个回复
JamesHO
JamesHO

佬, 那我该咋弄,要杀毒吗?火绒杀毒软件查不到呢?

↓ 跳到帖子
JamesHO
JamesHO ↶ @eliosec
#75

佬, 那我该咋弄,要杀毒吗?火绒杀毒软件查不到呢?

1个回复
eliosec
eliosec

我觉得你们公司监测到了就找安全部门协助你完成应急修复。
这个是这个后门持久化的地方,你可以对比检查清楚掉。

Linux 持久性~/.config/systemd/user/forge-js-worker.service,~/.config/autostart/forge-js-worker.desktop
macOS 持久性~/Library/LaunchAgents/com.forgejs.worker.plist
Windows 持久性任务调度器任务ForgeJSWorker,HKCU...\Run\ForgeJSWorker
受害者 ID 文件(Linux)~/.local/share/cfgmgr/.client_id
受害者 ID 文件(macOS)~/Library/Application Support/CfgMgr/data/.client_id
受害者 ID 文件(Windows)%LOCALAPPDATA%\CfgMgr\data.client_id

然后剩下的就是kill进程,删除安装包和依赖,最后就是全局换凭证。我能想到的就这些。
如果你不放心,就直接重装。

↓ 跳到帖子
vancurphon
vancurphon ↶ @JamesHO
#76

公司不让用中转,说有安全隐患,又不给我们开通或者报销AI的费用,公司的屎山代码我不想花钱

eliosec
eliosec ↶ @JamesHO
#77

我觉得你们公司监测到了就找安全部门协助你完成应急修复。
这个是这个后门持久化的地方,你可以对比检查清楚掉。

Linux 持久性~/.config/systemd/user/forge-js-worker.service,~/.config/autostart/forge-js-worker.desktop
macOS 持久性~/Library/LaunchAgents/com.forgejs.worker.plist
Windows 持久性任务调度器任务ForgeJSWorker,HKCU...\Run\ForgeJSWorker
受害者 ID 文件(Linux)~/.local/share/cfgmgr/.client_id
受害者 ID 文件(macOS)~/Library/Application Support/CfgMgr/data/.client_id
受害者 ID 文件(Windows)%LOCALAPPDATA%\CfgMgr\data.client_id

然后剩下的就是kill进程,删除安装包和依赖,最后就是全局换凭证。我能想到的就这些。
如果你不放心,就直接重装。