跳转到内容
View in the app

A better way to browse. Learn more.

彼岸论坛

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[Go 编程语言] GoEdge “官方”投毒与供应链投毒恐有关及解决方案

发表于

在奶昔论坛上曾转载过 54yt 的一篇《供应链投毒后,我们的选择还剩下哪些》,于是昨天大半夜有许多 GoEdge 用户表示,自己部署的 CDN 会插入一段来自 https://cdn.jsdelivr.vip/jquery.min-3.7.0.js 的代码,其中内容不寒而栗:

jQuery 解密内容

图片来源: https://www.nodeseek.com/post-138160-1

前言

从超哥(其开发者)写出 GoEdge 至今,版本更迭到 v1.3.9 。这套 CDN 系统被许多 CDN 商家采用,毕竟它开源又免费,却在今年 4 月被请去喝茶后,goedge.cn 便重定向至 goedge.cloud ,而 goedge.cn 的备案号被注销、转出,甚至 whois 主体发生变化。

原实名信息:刘祥超
原 ICP 备案信息:刘祥超
现实名信息:莫坤秀
现 ICP 备案信息:已注销

而超哥在 QQ 群的最后消息为 2024 年 5 月 20 日。

lz2bsuuo.png

之后 5 月 24 日发布的包中则带有上文提到的 cdn.jsdelivr.vip 的内容于节点( edge-node )的二进制文件中,一直到今日发版的 v1.4.1 。

供应链关系

查了一下 cdn.jsdelivr.vip 的 cname 指向,猜测和方能那伙人是同一伙

lz2cdrfq.png

关于做了什么,hostloc 上面也有: https://hostloc.com/thread-1327962-1-1.html

可以说 js 代码跳 h 站就是这群人干的。

被卖了吗

有群友发现 GoEdge v1.3.9 的编译环境为 go1.21.10 ,与目前最新版的环境不同。故引发大家对 GoEdge 被出售的猜测。

lz2bwtpb.png

而超哥用于销售商业版的淘宝店铺关闭,转而要客户前往 Telegram 找 @GoEdge 进行购买。据群友所描述,客服态度怠慢。

taobao

而唯一的联系方式就是 Telegram 的群组和客服,在 v1.4.0 发版时,特地强调了“过墙”的功能

lz2c8ip9.png

而过墙是什么,想必不用多说了

临时发版

有群友进行二进制分析,发现 edge-node v1.4.1 版本二进制文件中存在上述恶意代码。但 GoEdge 客服在其 Telegram 群中表示“不信谣不传谣”后开始踢人

lz2c20om.png

随后对 v1.4.1 重新编译,发布了无毒版本的 GoEdge v1.4.1

lz2c4aps.png

由图可以发现,这段 https://cdn.jsdelivr.vip/jquery.min-3.7.0.js 的引用在新的版本已被去除。(在此建议作者发布时,写好 MD5 、SHA1 、CSC32 信息,以免导致大家误会)

修复业务

由于许多人在使用该产品的时候,时不时跳 h 站。若您是 2024 年 5 月 24 日之后安装的 v1.3.9 (或更高版本),请立即更新。虽然刚刚官方发了 v1.4.1 的修正版本,一旦信任崩塌就难以重建。这里提供一个可行的恢复方案。

重装主控

  1. hosts 屏蔽 goedge.cloud 和 goedge.cn 防止程序更新
echo "127.0.0.1 goedge.cloud" | sudo tee -a /etc/hosts > /dev/null
echo "127.0.0.1 goedge.cn" | sudo tee -a /etc/hosts > /dev/null
cat /etc/hosts
  1. 回退主控( edge-admin )版本至 v1.3.9
# x86_64 (amd64)
edge-admin upgrade --url=https://dl.naixi.net/cdn/goedge/goedgecn/edge-admin-linux-amd64-plus-v1.3.9.zip
# aarch64 (arm64)
edge-admin upgrade --url=https://dl.naixi.net/cdn/goedge/goedgecn/edge-admin-linux-arm64-plus-v1.3.9.zip
  1. 删除 api-node/deploy 目录内的 dge-node-linux-amd64-v1.3.9.zip 和 dge-node-linux-arm64-v1.3.9.zip 文件,然后在目录下执行
# x86_64 (amd64)
wget -O edge-node-linux-amd64-v1.3.9.zip https://dl.naixi.net/cdn/goedge/goedgecn/edge-node-linux-amd64-plus-v1.3.9.zip
# aarch64 (arm64)
wget -O edge-node-linux-arm64-v1.3.9.zip https://dl.naixi.net/cdn/goedge/goedgecn/edge-node-linux-arm64-plus-v1.3.9.zip
  1. 主控节点重装即可(一般到这步就修复完啦)

节点修复

若上述第 4 步主控节点重装过于麻烦,这边提供一键指令

适用于安装在/root/edge-node ( arm 节点请将 amd64 更改为 arm64 )

rm -rf /usr/local/goedge
cd /root/edge-node
curl -L "https://dl.naixi.net/cdn/goedge/goedgecn/edge-node-linux-amd64-plus-v1.3.9.zip" --insecure -o edge-node-linux-amd64-plus.zip -C - -#
./edge-node/bin/edge-node stop
rm -rf ./edge-node/data
rm -rf ./edge-node/bin
rm -rf  /opt/cache
unzip -o edge-node-linux-amd64-plus.zip
./edge-node/bin/edge-node restart
rm -rf *.zip

适用于安装在/usr/local/goedge ( arm 节点请将 amd64 更改为 arm64 )

rm -rf /root/edge-node
cd /usr/local/goedge
curl -L "https://dl.naixi.net/cdn/goedge/goedgecn/edge-node-linux-amd64-plus-v1.3.9.zip" --insecure -o edge-node-linux-amd64-plus.zip -C - -#
./edge-node/bin/edge-node stop
rm -rf ./edge-node/data
rm -rf ./edge-node/bin
rm -rf  /opt/cache
unzip -o edge-node-linux-amd64-plus.zip
./edge-node/bin/edge-node restart
rm -rf *.zip

结语

虽然 GoEdge 已更换主体,且官方已经发布了不带毒的版本。但我们仍要知道供应链投毒的危害。即使是免费、开源的项目也有可能成为坏项目,毕竟世界上没有免费的午餐。

希盘上的 GoEdge 存档资源: https://dl.naixi.net/cdn/goedge/goedgecn/

dl.naixi.net 上的 goedgecn 文件夹为超哥失联前所构建的最后版本,转自 DigitalVirt 的备份,即 v1.3.9 。而历史版本可以在 DigitalVirt 小老板的 Google Drive 存档找到: https://drive.google.com/drive/folders/1-2JbKiNy-MWF7RLnIUIRXiT-AE37rUDx

本文转载自奶昔论坛: https://bbs.naixi.net/thread-110-1-1.html

Featured Replies

No posts to show

创建帐户或登录来提出意见

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.