三方并肩:NOFX AI 交易系统漏洞守卫战

加密货币 互联网
欧易

欧易OKX交易所

全球三大交易所之一,注册领取价值6,0000元数字货币盲盒

APP下载    官网注册
三方并肩:NOFX AI 交易系统漏洞守卫战

作者:Yao & Thinking & Pds 编辑:7732T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

背景

随着 AI 大模型实盘交易竞赛的升温,越来越多的加密社区与开发者开始尝试以 AI 驱动的自动化交易,诸多开源方案也被快速投入使用。然而,这些项目中不乏安全隐患。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

NOFX AI 是一款基于 DeepSeek/Qwen AI 的开源加密货币期货自动交易系统,支持 Binance、Hyperliquid 与 Aster DEX 等交易所。慢雾安全团队接到 @Endlessss20 提供的最初情报,怀疑该系统可能会导致交易所 API Key 等泄漏,遂对此展开安全分析。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

开源地址:https://github.com/NoFxAiOS/nofx32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

漏洞成因分析32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

经过慢雾安全团队的深入分析,发现 NOFX AI 在不同 commit 版本中存在两类主要鉴权问题。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

“零鉴权”漏洞版本32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

2025 年 10 月 31 日的提交 517d0caf6fb091235e56c27889170b53a16e4e6b(origin/main、origin/dev 等分支均包含)引入了“默认管理员模式”,该 commit 版本的管理员模式默认开启且中间件直接放行。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

config.json.example:1-24 与数据库迁移脚本都把 admin_mode 设为 true,main.go:42-63 在读取后直接调用 auth.SetAdminMode(true)。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

(Refer:https://github.com/NoFxAiOS/nofx/blob/517d0caf6fb091235e56c27889170b53a16e4e6b/config.json.example)32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

(Refer:https://github.com/NoFxAiOS/nofx/blob/517d0caf6fb091235e56c27889170b53a16e4e6b/config/database.go#L214)32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

(Refer:https://github.com/NoFxAiOS/nofx/blob/517d0caf6fb091235e56c27889170b53a16e4e6b/main.go#L42-63)32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

更关键的是,在代码 api/server.go#L799 可以看到,只要 auth.IsAdminMode() 为 true,中间件会直接 return,完全跳过了 Authorization 认证头的检查。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

(Refer:https://github.com/NoFxAiOS/nofx/blob/517d0caf6fb091235e56c27889170b53a16e4e6b/api/server.go#L799)32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

因此在这个 commit 提交及之前,只要部署保持默认管理员模式,任何人都能直接访问 /api/exchanges,拿到全部交易所 API/私钥。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

在这种模式下,所有受鉴权保护的 API 包括 /api/exchanges 都会按 “admin” 身份执行,因此任何人只需向公开的 API 发起 GET 请求就能拿到数据库中 ExchangeConfig 的完整内容。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

ExchangeConfig 字段包括 api_key、secret_key、hyperliquid_wallet_addr 以及 aster_private_key,均为交易所登录密钥或私钥。也就是说,只要保持默认管理员模式,任何人都可直接访问 /api/exchanges 并获取全部交易所 API/私钥。这份 commit 的代码相当于将所有交易所密钥暴露在一个无需登录的 GET 接口上。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

要求 Authorization 的版本32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

在 2025 年 11 月 5 日的提交 be768d91a3969b39741623c9507f3119e583eb16(PR #540 “Enable admin password in admin mode”) 中, 开发者移除了原先只要检测到 admin_mode 就直接放行不验证 Authorization 的逻辑。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

需要注意的是该 commit 目前只在 dev 系列分支里(包括本地 dev 和 origin/dev 等)。origin/main 并没有包含这个提交。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

authMiddleware 被改写为 api/server.go:1471-1511 的形式,必须携带 Authorization: Bearer <token> 才能进入受保护路由。若格式错误或 JWT 验证失败,会直接返回 401。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

(Refer:https://github.com/NoFxAiOS/nofx/blob/be768d91a3969b39741623c9507f3119e583eb16/api/server.go#L1471)32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

同一提交还新增了 /api/admin-login,要求部署者设置环境变量 NOFX_ADMIN_PASSWORD,也就是管理员模式不再是“无需登录自动生效”。如果 admin_mode 还是 true,main.go:203-226 会检查环境变量 NOFX_ADMIN_PASSWORD,并调用 log.Fatalf 直接终止进程,除非事先设置了该变量。设置完成后,管理员必须通过新的 /api/admin-login 接口提交这个密码才能拿到 JWT;没设密码就启动,会在初始化阶段被强制退出。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

不过,这次改动只是把“完全无鉴权”升级为“必须提供 JWT”,仍然没有解决两个核心问题。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

一是 config.json.example:1-27 依旧写死 jwt_secret,main.go:203-214 在环境变量缺失时继续回退到那个公开字符串。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

若开发者直接使用示例配置文件,将导致默认密钥被启用,从而存在安全风险。而项目中的的默认部署脚本 start.sh 文件在检测到缺失配置时,会直接复制示例配置文件来使用。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

二是 /api/exchanges 仍然以 JSON 形式把 api_key、secret_key、Aster 私钥等敏感字段原样返回。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

因此,该版本访问 /api/exchanges 虽需 Authorization,但攻击者仍可通过默认密钥创建 JWT 或调用默认登录接口获取 token,从而读取全部密钥。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

当前版本固定 JWT 问题依旧存在32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

截至目前(2025 年 11 月 13 日左右),dev 分支的 HEAD 为 b2e4be91523dc606be8708ec6602fecbbb0c20ea(PR #546 “Feature/faq”)。慢雾安全团队重新 checkout 这份提交后核对发现:32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

  • authMiddleware 仍是 api/server.go:1471-1511 的实现,需要 Bearer token;32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

  • /api/exchanges 仍直接返回 ExchangeConfig(api/server.go:1009-1021);32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

  • config.json.example:1-27 和 main.go:198-226 依旧硬编码 admin_mode=true 与默认 jwt_secret。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

    32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

因此,只要运维人员没有主动更换 jwt_secret 并关闭管理员模式,攻击者仍可利用公开密钥创建固定 JWT,进而访问 /api/exchanges 并获取所有交易所 API/私钥。换言之,2025-11-05 的修复仅仅把漏洞从“零鉴权”变成了“凭默认密钥鉴权”,问题的根源依然存在。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

影响32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

我们根据程序特征,全网搜索,发现公网存在 1000+ 已经私有化部署并且对外开放的系统:32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

慢雾安全团队意识到,随时可能出现攻击情况,第一时间全盘考虑安全方案,最终我们决定联系币安安全团队、OKX 安全团队,慢雾与币安、OKX 成立安全作战室,我们提供情报、影响范围,币安安全团队、OKX 安全团队各自独立交叉验证,根据获得的 api_key 反向推进,从系统层面定位受影响用户,告知用户面临的安全风险,第一时间更换 api_key、secret_key 等信息,防止用户资产被对敲导致资损,保护用户资产安全。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

截至 11 月 17 日,所有受影响的 CEX 用户均已完成通知,并已废弃相关密钥,用户资产处于安全状态。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

对于少数 Aster、Hyperliquid 用户,慢雾与币安团队已尝试主动联系,但由于地址为去中心化钱包地址,我们无法直接触达具体用户。如您正在使用 Aster、Hyperliquid 的自动化交易系统,请及时检查并处理相关风险。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

同时,我们将与 NOFX AI 团队沟通本次漏洞详情,并提供修复建议,协助其完善系统安全。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

总结与建议32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

当下 AI 大模型量化项目正热,但多数开源实现仍处于早期阶段。部署这类新兴开源系统时,务必要先做充分的代码安全审计并强化风控措施,避免造成资金的损失。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

综合上述分析,NOFX 项目虽经修复尝试,但核心问题仍未解决。任何部署 NOFX 项目的 commit 517d0caf 及更早版本(origin/main 目前仍停在这一代)都处于“无需 Authorization”状态,必须立即升级或手工关闭 admin 模式。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

即便升级到 be768d9 或当前 HEAD,如果继续使用默认 jwt_secret,攻击者仍可以通过创建固定 Authorization 头拿到密钥。要彻底修复该漏洞,需要同时做到:32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

1. 随机化 JWT 密钥:启动时若发现 jwt_secret 与模板相同,拒绝运行;建议改为写入安全存储或密钥管理系统。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

2. 禁用默认管理员模式:仅在显式配置时才允许 admin 模式,并要求强密码 + OTP;非 admin 模式下 /api/admin-login 应直接关闭。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

3. 最小化 /api/exchanges 响应:默认只返回启用状态、测试网标志等非敏感字段;导出 API/私钥需单独接口并二次验证,且服务端对字段做脱敏或加密。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

在开发团队完成这些修复之前,任何面向公网的部署都应视为高危。尤其是 origin/main 仍处于 517d0c 的“零鉴权”阶段,维护方需尽快同步最新代码并严格执行自定义密钥及接口加固策略。32T比特币学堂 - 比特币加密货币圈新手入门基础知识学习教程

最新区块链知识
山寨币网络上发生令人担忧的事件:开发者发表声明

山寨币网络上发生令人担忧的事件:开发者发表声明

Injective发布声明,说明其生态系统内部分验证节点因网络加速更新而暂时停用。该项目表示,Injective区块链并未遭受攻击,用户资金安全无虞。根据 Injective 的声明,社区贡献者昨

0阅读
知名分析师:“那些声称比特币会在此日期前创下历史新高的人都是在撒谎”

知名分析师:“那些声称比特币会在此日期前创下历史新高的人都是在撒谎”

加密货币分析师 Sherlock 认为,根据比特币的历史价格周期,新的历史最高点 (ATH) 可能要到 2027 年 6 月才会出现。根据Sherlock的评估,比特币已经329天没有突破2025年10月6日创

0阅读
随着比特币(Btc)价格回调,恐慌与贪婪指数也开始下降!详情如下。

随着比特币(Btc)价格回调,恐慌与贪婪指数也开始下降!详情如下。

尽管市场情绪略有下滑,但 CoinMarketCap 的加密货币恐惧与贪婪指数仍维持在“贪婪”区域。该指数较昨日下跌 2 点至 73。该指数用于衡量加密货币市场的投资者情绪。数值越接

0阅读
美国证券交易委员会发布关于加密货币的积极官方公告!

美国证券交易委员会发布关于加密货币的积极官方公告!

美国证券交易委员会(SEC)宣布了一项新的规则变更提案,旨在更新沿用数十年的注册过户代理机构相关法规。该法规力求在现有规则框架内,更清晰地反映证券发行和股份转让过程中电子

0阅读
最近最热门的话题是 Robinhood Chain,哪些山寨币与之关联?

最近最热门的话题是 Robinhood Chain,哪些山寨币与之关联?

Robinhood 的生态系统围绕其自主开发的二层网络 Robinhood Chain 构建,正在加密货币市场开创新的局面。近期,Lighter (LIT)、Morpho (MORPHO)、Uni wap (UNI)、LayerZero (ZRO

0阅读
美联储高级成员巴尔发表了有关利率的声明,加密货币不会喜欢这种利率。

美联储高级成员巴尔发表了有关利率的声明,加密货币不会喜欢这种利率。

美联储理事迈克尔·巴尔表示,如果通胀没有充分下降,他准备支持加息。巴尔在华盛顿的一个银行业论坛上发表讲话时表示,通胀率连续近五年半高于美联储 2% 的目标,增加了经济中更广

0阅读
Strategy Ceo就牛市发表了声明,称他们没有出售比特币的计划!以下是详情。

Strategy Ceo就牛市发表了声明,称他们没有出售比特币的计划!以下是详情。

Strategy首席执行官Phong Le表示,比特币正进入强劲的牛市,公司没有出售其比特币持仓的计划。Le在接受彭博社采访时表示,Strategy将继续其比特币增持策略,即使价格上涨,也可能继续

0阅读
突发新闻:Coinbase 出人意料地决定上线山寨币!

突发新闻:Coinbase 出人意料地决定上线山寨币!

/* cu tom c */.tdb_ ingle_featured_image{ margin-bottom: 26px; }.tdb_ ingle_featured_image.tdb- fi- tretch{ o

0阅读
比特币在九月份表现如何?以下是您需要了解的信息。

比特币在九月份表现如何?以下是您需要了解的信息。

比特币(BTC)在历来表现疲软的9月伊始便出现下跌。9月1日,比特币价格跌破78,000美元,短期前景面临压力,这既受季节性因素影响,也受到美联储利率政策预期的影响。由于比特币在加密货

0阅读
币安创始人赵长鹏宣布,加密货币行业已经度过了历史上最严峻的“加密寒冬”!以下是详情。

币安创始人赵长鹏宣布,加密货币行业已经度过了历史上最严峻的“加密寒冬”!以下是详情。

/* cu tom c */.tdb_ ingle_featured_image{ margin-bottom: 26px; }.tdb_ ingle_featured_image.tdb- fi- tretch{ o

0阅读
猜你感兴趣
Bitget Ceo就黑客事件发表最新声明!提款重新开放日期公布。

Bitget Ceo就黑客事件发表最新声明!提款重新开放日期公布。

加密货币交易所Bitget在安全事件发生后上调了已确认的损失金额。Bitget首席执行官陈嘉琪表示,攻击已被完全控制,不会再发生未经授权的资产转移。据陈先生称,已确认转移至攻击者

99阅读
突发新闻:Bitget黑客事件仍在继续——最新进展!

突发新闻:Bitget黑客事件仍在继续——最新进展!

据称属于加密货币交易所 Bitget 的钱包出现异常活动,引发了人们对可能遭受黑客攻击的怀疑。链上数据显示,高价值资产正从该交易所的热钱包和冷钱包中转移,其中相当一部分资金被

98阅读
比特币价格怎么查询?BTC实时价格、涨跌幅和市值怎么看

比特币价格怎么查询?BTC实时价格、涨跌幅和市值怎么看

比特币价格可以通过提供BTC实时行情的数据平台、金融终端或合规交易服务查询。由于比特币在全球多个市场全天候交易,不同平台的价格可能存在小幅差异,因此查询时应同时核对计价货币、数据来源、更新时间和成交量。对于普通读者来说,只看

97阅读
突发新闻:Bitget 疑似遭遇重大黑客攻击!

突发新闻:Bitget 疑似遭遇重大黑客攻击!

有指控称,加密货币交易所Bitget的链上出现了异常活动。据称,事件规模超过1亿美元。虽然一些用户报告称提现被阻止,但高价值资产转移似乎已从标记为属于 Bitget 的热钱包和冷钱

96阅读
比特币的关键时期即将到来:Btc 即将进入牛市!历史会重演吗?以下是相关数据……

比特币的关键时期即将到来:Btc 即将进入牛市!历史会重演吗?以下是相关数据……

自7月以来,领先的加密货币比特币一直处于上涨趋势。目前,比特币在7月和8月均收涨,并有望在9月继续保持上涨势头。如果9月底比特币价格上涨,这将标志着比特币在7月至9月期间连续

94阅读
这波山寨币浪潮席卷市场!中国创始人将其与比特币相提并论,并宣布 Grayscale 已达到里程碑!详情如下……

这波山寨币浪潮席卷市场!中国创始人将其与比特币相提并论,并宣布 Grayscale 已达到里程碑!详情如下……

随着比特币和山寨币牛市持续,Zca h (ZEC) 凭借其强劲的表现,已成为加密货币市场中的佼佼者。Zca h 的上涨伴随着流入 Gray cale 旗下 Zca h ETF (ZCSH) 的资金增加,以及人们对

93阅读