Hermes惊现后门:揭秘一场针对搜索服务设置的特洛伊木马

本文揭露了一起在Hermes社区中发生的隐蔽商业渗透事件。Parallel.ai公司员工通过向Hermes Agent、OpenClaw等十多个主流开源项目提交代码,将自家的搜索服务设置为默认搜索引擎,且多数未公开雇佣关系。

文章详细分析了该行为的技术实现、波及范围、背后的商业模式以及对用户隐私和数据安全的潜在威胁。

最后,为普通用户提供了检测、修复和防御的完整行动指南,强调通过手动配置、使用防火墙和自行编译源码等方式,夺回对AI工具的控制权。

开源项目的“特洛伊木马”:Parallel.ai如何悄悄成为你AI助手的默认搜索引擎

现在很多开源AI工具,在你完全不知情的情况下,正把你的每一次网页搜索请求,偷偷发给一家叫Parallel.ai的公司。这不是什么阴谋论,是实实在在发生的事。就像你买了一辆新车,结果发现它每次启动都会先把你的驾驶习惯发给一个你从没听说过的轮胎厂。

这事儿之所以炸锅,是因为有人在代码里翻出了证据。更让人头皮发麻的是,这不是某一个人的失误,而是一场有组织、有预谋,渗透了几十个开源项目的“暗渡陈仓”。

搜索引擎后门:一个藏在代码里的“免费午餐”

事情要从一个普通用户的发现说起。有人在自己电脑上跑了一个叫Hermes Agent的开源AI助手,这玩意儿能干很多事,比如上网帮你查资料。他无意间去翻了翻运行日志(就是软件自己记的“小本本”),结果发现了一个惊天大秘密:他的AI助手每次上网搜索,都不是用的大家默认的DuckDuckGo,而是悄咪咪连到了一个叫search.parallel.ai/mcp的地址。

这哥们儿瞬间就懵了。他从来没设置过这个服务,也没给过什么API密钥(你可以理解为“门禁卡”),这流量咋就自己拐弯了呢?他赶紧去扒了软件的源代码(就像去翻盖房子的设计图纸),在一个代号叫e0e2571的修改记录里,找到了问题的根源。

他发现,有个叫“NormallyGaussian”的程序员,往项目里提交了一段代码,把默认的搜索引擎从DuckDuckGo换成了Parallel.ai。这本来也没什么,开源项目嘛,谁都可以提建议。但关键点是,这个“NormallyGaussian”的真名叫Matt H,他的邮箱是mharris@parallel.ai——他根本就是个路人甲,他是Parallel.ai公司自己的员工!

这就像什么呢?就好比可口可乐公司的一个员工,跑去麦当劳的后厨,悄无声息地把所有可乐机的糖浆管子,都接到了百事可乐的桶上,还没跟任何人打招呼。这操作,你说绝不绝?

更绝的是,这个修改在提交后仅仅4.5小时,就被Hermes项目的创始人给批准合并了,而且没有任何第二个人来复查代码。这速度,简直快到飞起。一个关系到所有用户隐私和安全的核心修改,就这么被“秒批”了。你说这是正常的代码审查速度,还是有人打了招呼?

疯狂的水军:一个人如何“攻陷”14个开源世界

你以为就Hermes Agent一个项目中招了?那你也太小看这场“战役”的规模了。这位Parallel.ai的员工,或者说“功臣”,他的“业绩”远超你的想象。

热心网友顺着网线去扒了这位Matt H的“光辉历史”,结果发现了一个令人咋舌的名单。这个人,在短短时间内,向至少14个不同的开源项目,总共提交了161次代码修改请求(就是PR)。他干的活儿都一模一样:把自己公司Parallel.ai的搜索服务,设置成这些项目的默认搜索引擎。

被他“染指”的项目名单,说出来都吓人:openclawcentaurmassgenopencodeagno,甚至包括langchain的官方文档和docker的组件注册中心。这些名字你可能不熟悉,但它们就像AI世界里的乐高积木,是无数开发者搭建自己AI工具时必不可少的“标准件”。

这就不是偷偷换一根可乐管子的问题了,这是有人开着油罐车,想把整个饮料行业的供水系统都换成自己的货。在被他成功合并的10次代码修改里,有9次他没有公开自己是为Parallel.ai工作的身份。这叫什么?这叫“隐蔽营销”,或者更严重一点,叫“商业间谍”行为。

更让人后背发凉的是,他开了个坏头。有人发现,现在已经开始出现“模仿犯”了。其他一些人也学着这个套路,在别的项目里提交类似的代码。一个隐秘的商业模式,就这么病毒式地扩散开了。好家伙,一个“平行世界”就这么被搭建起来了。

开源乌托邦的破灭:16,000个PR和没人看的“说明书”

事情被曝光后,社区里炸开了锅。大家纷纷去质问Hermes Agent的团队:“你们怎么能让这种事发生?你们的安全审查流程呢?”

面对大家的质疑,Hermes团队的官方账号跑出来回应了。他们的回答,简直可以用“灾难”来形容。一个叫teknium的团队成员说:“我们每天要处理成千上万个PR(代码修改请求),难道要为每一个都录个讲解视频吗?而且这个改动还没正式版本发布呢。”

这个回应,直接把所有人的怒火从“A级”点燃到了“S级”。这是什么神仙逻辑?每天PR多是你不做安全审查的理由吗?没正式发布就不算事儿吗?你的代码都被合并到主干了,用户一更新就会用上,这不就等于已经“发布”到用户电脑上了吗?

另一条来自官方账号的评论更离谱:“我们团队有30人,每天要从17,000个PR里进行审查。” 好家伙,17,000个!30个人审17,000个,平均每人每天要看566个。一个代码修改,哪怕只是简单看一眼,也得几分钟吧?这算下来,他们团队得一天工作48小时才能完成。

所以真相只有一个:他们根本没在认真审查。这已经不是工作疏忽了,这是整个流程的设计缺陷,或者说,是一种默许。一位网名为“MamaMurpheysGourds”的用户一针见血地指出:“你们应该认识到,根本不可能用人力去诚实审查每天17,000个PR……你们来这儿给出一个懒洋洋的套话,根本解决不了信任问题。”

想象一下,你住的小区有30个保安,每天有17,000个陌生人进出,保安说他们会挨个检查身份证。你信吗?你只会觉得,这个小区的安全系统形同虚设,全靠业主自己小心。开源世界的美好幻想,在这一刻被无情地击碎了。

数据是新时代的石油,而Parallel.ai想成为加油站

可能有人会问:“就算我的搜索请求被他们转发了一下,又能怎样?我又没损失什么钱。”

这么想,你就太小看这件事了。一位叫“BackgroundLand2816”的网友,道出了最核心的真相。他说:“真正的棋局更大。如果Parallel成为AI代理访问网页的默认层,那么他们就成为了出版商和AI之间的收费站。当出版商开始要求AI为访问他们的内容付费时(他们一定会这么做的),谁控制了管道,谁就控制了经济。”

这就是整个商业模式的精髓。Parallel.ai根本不稀罕你那一两次搜索的记录。他们要的是“位置”,是所有AI通往互联网世界的“收费闸口”。

让我们用个比喻来理解这件事。互联网上的所有信息,就像一个巨大的石油矿藏。以前,你得自己开着车去矿里挖油、运油。现在,Parallel.ai做的,就是在所有矿区的必经之路上,悄悄建了一个加油站。他们不生产石油,但所有运油的车,都得从它这儿过,都得加它的油。

一旦这个“加油站”建成了,它的商业模式就活起来了。它可以向想从这里经过的车(AI代理)收费,也可以向想把石油运出去的矿主(内容出版商)收费。你今天觉得免费用了它的搜索,明天它就可能让你花钱才能搜到完整内容。你今天觉得只是被转发了几个请求,明天它手里就握着整个AI行业的生命线。

这就像谷歌的AdSense模式,但针对的不是网页,而是AI代理。不要钱的东西往往是最贵的,因为他们从一开始要的就不是你的钱,而是你的“必经之路”。

指挥官手册:如何夺回你AI助手的“方向盘”

故事讲完了,阴谋也扒开了,现在到了最重要的部分:你该怎么办?作为一个普通用户,你不能指望每个开源项目的维护者都火眼金睛、尽职尽责。你能依靠的,只有你自己。下面的步骤,就是你的“指挥官手册”,帮你把被偷走的“方向盘”抢回来。

第一步:体检——检查你的AI助手是否“叛变”

首先,你得确认自己是不是受害者。别自己吓自己,先看看你的系统日志。如果你用的是Hermes Agent,可以打开终端,运行下面这个命令,它会告诉你当前正在用的搜索后端是谁:

bash
hermes tools
终端会吐出一堆信息。你需要在里面找到类似这样的一行:
Resolved web_search backend ddgs
这里的ddgs代表DuckDuckGo。如果显示的是parallel或者其他你看不懂的名字,那恭喜你,中奖了。赶紧去给你的AI助手“消毒”。

如果你用的是其他项目,比如OpenClaw,最直接的办法就是去翻项目的GitHub仓库,在Issues(问题讨论区)里搜“Parallel”或者“web search default”。你放心,这种大事,一定已经有人在讨论了。看看大家都在用什么方案,跟着做就行。

第二步:换药——手动配置一个信得过的搜索引擎

这是最核心的一步。不管你有没有中招,都应该自己动手,给AI助手指定一个你信得过的搜索引擎。绝不要相信任何“默认”或“免费”的馅饼。

对于Hermes Agent,你可以通过修改配置文件来搞定。一般来说,配置文件在项目的根目录下,叫.env。你需要找到关于WEB_SEARCH_BACKEND或者类似的设置项,把它改成你想要的。

一个非常推荐的选项是SearXNG。这是一个开源的、注重隐私的元搜索引擎。它本身不追踪你,只是帮你聚合其他搜索引擎的结果。你可以自己搭建一个(稍微有点技术门槛),也可以用别人搭建好的、公开的实例。

另一个选项是DuckDuckGo(简称DDGS)。它本身就是默认隐私保护做得比较好的商业搜索引擎,对于大多数用户来说,是简单易用且相对安全的选择。

把配置改成这样(具体变量名请参考官方文档,但思路是一样的):
WEB_SEARCH_BACKEND=searxng
然后,你可能还需要告诉它SearXNG实例的地址:
SEARXNG_BASE_URL=https://your-favorite-searx-instance.com
改完之后,记得重启你的AI助手,让配置生效。

第三步:筑墙——给你的系统装上“流量监控”

配置修改只能解决“默认”问题。万一你用的软件,或者你将来要用到的某个新软件,也藏了类似的后门呢?你不可能每次都去翻一遍代码。

这时候,你就需要一个更底层的工具:网络防火墙。这东西不是让你防黑客的,而是让你监控每一个软件的一举一动。

-   如果你用的是 MacOS,强烈推荐一个叫“Little Snitch”的软件。它就像一个网络流量检查站。任何软件想往外联网,它都会弹出一个窗口问你:“Hermes Agent想连接到search.parallel.ai,允许吗?” 你一看,这什么鬼网站?点“拒绝”。从此以后,这个软件就再也别想偷偷摸摸往外发数据了。
-   如果你用的是 Linux,别担心,你有免费且强大的替代品——OpenSnitch。它和Little Snitch的功能基本一样,能让你对所有网络连接了如指掌。
-   Windows用户呢?系统自带的防火墙功能比较基础,但你可以找一些第三方防火墙软件,或者更简单的,用“Windows Defender Firewall with Advanced Security”自己手动建规则。虽然麻烦点,但总比裸奔强。

用上防火墙,你就从“被通知”的居民,升级成了自己社区的“保安队长”。每个进出的人,你都要亲自盘问。这能挡住绝大多数类似Parallel.ai这种“偷偷摸摸”的行为。

第四步:免疫——养成“自己编译,绝不盲从”的习惯

对于追求极致安全和隐私的硬核玩家来说,还有终极大招:自己编译软件

你从网上下载的安装包,是一个“黑盒子”,你永远不知道里面除了官方代码,还打包了什么“赠品”。而自己编译,就像你自己买面粉、自己揉面、自己烤面包。你清楚地知道里面只加了面粉、水和盐。

一位叫“Obvious_Equivalent_1”的网友分享了他的经验:“我绝不会安装一个可执行文件,我总是自己编译它……这样就能构建出不带任何‘给家里打电话’把戏的版本。”

具体怎么做?很简单。不下载那个.exe或者.dmg安装包。而是去项目的GitHub页面,找到“源码”(Source code)的下载链接。下载下来后,按照项目里的“编译指南”(通常是README.md文件),在你的电脑上用命令去“制作”它。这个过程需要一些命令行基础,但一次学会,终身受益。

自己动手,丰衣足食。当你掌握了从源码构建软件的技能,你就真正从“软件使用者”变成了“软件主人”。任何想在你眼皮子底下搞小动作的代码,在编译这一步就可能被你发现或剔除。

 你的AI助手在“偷”你的搜索记录!Parallel.ai暗度陈仓,请保护你的数字主权!