头条 AI Agent被投毒,43000个聚宽策略疑被偷

-- 次阅读

作者: 量化岛

这两天,在聚宽JoinQuant社区里闲逛的时候,看到了一篇帖子,标题是“JqCli 的坑”。

1
帖子链接:https://www.joinquant.com/view/community/detail/5086c85f16cb103dde1f5983d863dfe8

以为是什么代码库安装失败或狂出bug的diss,点进去一看,却是一个报案贴。

贴主咱就叫他“阿探”吧,他说,在使用jqcli创建策略和提交回测时,自己的策略,会被同步复制到另一个陌生的JoinQuant账号中,而这个账号里目前已经堆积了4w多个策略源码。

更让人后背发凉的地方是,阿探并不是手动运行每一条命令,而是让小龙虾这类AI Agent安装、配置和使用工具,于是一个原本用来提升量化研究效率的AI助手,在用户毫不知情的情况下,成了一套策略复制盗取流程的高效执行者。

看到这里,很多小伙伴会疑惑,jqcli是啥?为什么要装它?装jqcli策略被偷是不是活该?

好的,咱就从jqcli是啥开始,详细捋一遍这次的暴雷事件。

现在要想让AI大模型获得与外部环境交互的能力,无非就是通过MCP、Skill和CLI这3种方式,CLI的全称是Command Line Interface,命令行界面的意思,简单来说,AI有了CLI以后,就从一个光动嘴的,成了一个能动手的,AI是大脑,CLI就是手脚。

举个栗子,你用逗包搞旅游攻略,聊完之后是不是还得自己定机票酒店,假设现在有个“斜程CLI”,那么你跟AI聊完之后,它顺手就能把机票酒店定了,这之前AI最多算个顾问,现在它就进化成Agent了,变成了给你干活的助理。

搞量化也是一样啊,比如说AI开发JoinQuant策略,AI编写完代码之后,需要自己copy代码、打开聚宽网页、创建策略、粘贴代码、设置回测时间和金额、点击运行、等待运行结束,然后再手动将运行日志或回测结果copy回AI,AI根据出现的bug或结果的变化对策略代码再进行改进,然后你又再手动…..

是不是感觉很繁琐~

那就轮到jqcli登场了,它就是聚宽JoinQuant的CLI,本质上是一个使用Python开发的聚宽命令行客户端,定位是“聚宽策略与回测管理命令行工具”,它把原本需要在聚宽网页中完成的认证、策略管理、回测提交和运行记录查询等操作,封装成可以在终端中调用的命令,并且,它还支持Json格式输出,使脚本或者AI Agent能够稳定读取策略执行结果。

jqcli的吸引力就在于它能够把AI写代码和聚宽回测之间的最后一堵墙打通,AI Agent可以直接读取本地策略文件,调用命令在聚宽账号中新建策略,提交回测,再把运行日志和回测结果取回来继续修改,整个过程都能在终端中形成闭环,这才让现在流行的Loop Engineering具有可实现性。

阿探可能就是基于jqcli的便利性,给小龙虾安装了这个CLI,问题出现在一次回测排查,发现策略提交回测了,但是本地看不到回测记录,接着就用claude code排查出,他安装的jqcli源代码配置里面,除了自己的聚宽账号之外,还存在一个名为cp、手机号为186****7762的账号,每次进行回测和创建策略,都会给这个账号复制和提交一份,cp应该就是copy的缩写了。

阿探通过cp账号的token,拉取了这个账户底下的策略列表,发现足足有43000多个,想把策略都下载到本地时,可能是cp账号主人发觉,改了密码,导致token认证失败,只下载了几百个,有其他聚宽用户新提交的非公开策略源码也在里面。

看上去这么好的一个CLI工具,怎么就成小偷了?是不是因为jqcli开发者人性的扭曲和道德的沦丧?

经过在评论区对账还原事情全貌,发现还真不是,jqcli的原作者现身,发现阿探安装的并不是原版,而是二创之后的投毒版,相当于是给Agent的手脚动了手脚,这个中了蛊的助手在隐藏区多配置了一个账号,每个策略都copy一份上传给了别人。

原始版jqcli:

https://github.com/breakhearts/jqcli

投毒版jqcli:

https://github.com/linbirg/jqcli

从安装链接当中就可以看出来,原作者的github账户是【breakhearts】,投毒版的账户则是【linbirg】,但库的名称都是jqcli,李逵是李逵,李鬼是李鬼,不要冤枉了好人。

所以这是一个有预谋的CLI投毒事件,投毒者的目的就是盗取使用这个工具用户的策略源码,相当于是AI时代的木马。

由于目前阿探只下载到了cp账户当中的几百个策略源码,所以无法辨别这全部的43000多个策略是不是都是盗取的,只能说是疑似盗取,不知道这背后到底是多少个聚宽用户受害,感觉目前能知道最终真相的,只有两个人,一个是投毒者本人,另一个就是聚宽官方,因为目前是可以获取cp账户完整的手机号,通过这个手机号理论上官方是可以看到这个账号上全部的策略,只能说继续关注事情发展吧。

平时很多人甩个链接给AI就装个Skill,装个CLI,可能从来没有想过当中也是有恶意代码的,这次的AI木马事件正好给咱们提个醒。

阿探想不起来他当初是看来哪篇文章装了这个投毒版jqcli库,我代入思考投毒者,怎么才能把这个库扩散出去,这样我才能收获到更多的策略,我感觉最好的方式之一,就是在各个自媒体上写相关的干货类文章,大伙儿对这类的文章抵触比较小,没啥戒心,比如说《还在手动复制策略?一个库帮你打通AI改进聚宽策略的闭环》,《全自动聚宽策略批量回测,不要让自己成为AI量化的效率瓶颈》,然后在文章里附上github链接,告诉你发给AI就可以安装了。

现在AI基本是来者不拒,里面又没安杀毒软件,你给什么就安装什么,所以为了避免以后类似的悲剧发生,在安装skill、cli这些之前最好先让AI过一遍源码再安装,不要一上来就直接安装,特别是涉及到敏感信息。

古语云,害人之心不可有,防人之心不可无,AI时代也适用。


来源: 微信公众号

目录

×