事情经过
Cloud Native
OneAPI 是在开源代码托管平台 GitHub 上拥有 2万 Star 的 AI 网关工具,该工具的用户发现安装最新版本镜像后,会固定消耗一定比例的 CPU[1]。
最终定位是 DockerHub 的镜像被投毒,向镜像植入了 XMR 门罗币挖矿脚本,导致 CPU 跑高:



Docker 镜像被注入挖矿脚本并不是个别现象,而是一个需要引起重视的安全问题。
一些背景知识
Cloud Native
因为 DockerHub 提供免费服务,很多开源软件项目选择在这里发布他们的容器镜像。这使得用户可以很方便地获取、安装和使用这些软件。
-
提高整体服务的稳定性:当一个模型出问题时,可以切换到另一个模型。 -
降低成本:可以在适当的时候用便宜的模型替代昂贵的模型,例如使用 DeepSeek 替代 ChatGPT。
并且,这种切换对用户是无感知的,使用体验不会受到影响。通过 AI 网关,可以更灵活高效地利用各种模型资源。因此被 AI 应用开发者广泛采纳。
如何防范类似风险
Cloud Native
本文作者是另一款开源 AI 网关项目 Higress 的维护成员之一。在关注 OneAPI 时,看到了这个问题,所以向大家分享下 Higress 防范此类风险的相关经验。
-
不受 DockerHub 网络封禁影响,对国内用户更友好,镜像拉取速度也更快。 -
可以进行镜像安全扫描,自动拦截有风险的镜像提交。
第二点,也是防范开源镜像投毒的核心,如下截图所示:


Higress 和 OneAPI 的对比
Cloud Native
|
|
|
|
|---|---|---|
| 核心功能 |
|
|
| 维护方式 |
|
|
| 系统安全 |
|
|
| 内容安全 |
|
|
| 模型管理 |
|
|
| 可观测性 |
|
|
| 可扩展性 |
|
|
| 云集成 |
|
|
快速体验 Higress AI 网关
Cloud Native
Higress AI 网关支持一行命令安装:
curl -sS https://higress.cn/ai-gateway/install.sh | bash
执行完命令后可以通过命令行初始化配置,可以看到,Higress 的 AI 网关能力支持对接国内外所有主流 LLM 模型供应商:


import jsonfrom openai import OpenAIclient = OpenAI(api_key=xxxxx, # ? 可以通过Higress生成消费者Key实现API key的二次分租base_url="http://127.0.0.1:8080/v1")completion = client.chat.completions.create(# model="qwen-max",# model="gemini-1.5-pro",model="deepseek-chat", # ? 可以填写任意模型名称,Higress根据模型名称路由到对应供应商messages=[{"role": "user", "content": "你好"}],stream=True)for chunk in completion:print(chunk.choices[0].delta)可以在监控面板看到每个模型,以及每个消费者的 token 消耗情况以及调用延时:
此外,相比 OneAPI,Higress 提供了更多实用的功能,例如:
-
API Key 治理:支持配置 API Key 池实现多 Key 均衡,API Key 被限流等不可用情况会自动屏蔽,并在可用时自动恢复。 -
消费者管理:可以通过创建消费者,实现 API Key 的二次分租,无需将真正的供应商 API Key 暴露给调用方,并且可以精细化管理不同消费者的调用权限和调用额度。 -
兜底模型:支持配置兜底模型,例如当请求 DeepSeek 模型失败时,自动降级到 OpenAI 模型。 -
模型灰度:支持模型平滑按比例灰度,可以参考《DeepSeek-R1来了,如何从OpenAI平滑迁移到DeepSeek》。


