「AI开源组件安全风险」系列一:配置缺陷,让你的GPU沦为矿机
云鼎实验室 2026-03-17 16:45 广东

AI开源组件的 Web 安全水位可能偏低,而其背后的高性能算力资源却成为黑产眼中的"香饽饽"。
一
引言
随着生成式AI技术的快速发展,ComfyUI、Stable Diffusion WebUI 等AI开源组件已成为 AI 应用开发的基础设施。然而,在这些组件快速迭代的背后,一个容易被忽视的安全问题正在浮现:AI开源组件的 Web 安全水位可能偏低,而其背后的高性能算力资源却成为黑产眼中的"香饽饽"。
腾讯安全云鼎实验室长期聚焦于 AI 组件生态的安全风险研究,对主流AI开源组件进行了系统性的安全分析,发现了多类普遍存在的安全隐患。本文是「AI开源组件安全风险分析」系列的第一篇,将重点分析AI开源组件中因配置缺陷导致的安全漏洞——包括组件自身的设计缺陷,以及用户部署时的配置失误,并结合真实云上攻击案例进行深度剖析。后续我们将持续披露更多研究成果(如供应链安全,AI Infra安全等),敬请关注。
二
AI开源组件配置缺陷
一个普遍存在的安全问题
近年来,多个主流 AI 开源组件被披露存在因配置缺陷导致的高危问题。这类问题往往具有共同特点:组件为了易用性/可扩展性,提供了“可远程触发的高权限能力”;而默认配置、暴露面判断或配套鉴权措施不足时,就会被攻击者利用。
典型案例(公开披露)

这些漏洞揭示了AI开源组件在安全设计上的共性问题:为了追求功能的灵活性和易用性,可能忽视了安全边界的控制。
在对 AI 组件生态进行横向观察时,我们发现 Stable Diffusion WebUI(下称 SD WebUI)同样存在典型的“配置缺陷”风险。更值得关注的是:即便某些保护机制已在项目侧引入,仍会因为“反向代理暴露、端口转发、多用户共享、升级滞后”等现实部署场景,导致公网中持续存在大量高风险实例。
三
深度分析
Stable Diffusion WebUI的配置缺陷
⚠️ 重要说明:此漏洞于2023年被披露,属于已知的Nday漏洞(CNVD-2023-81119)。官方已提供有效修复方案——通过 disable_extension_access 参数默认禁止公网环境下的远程扩展安装。请所有用户立即检查并更新至最新版本,并参照本文末尾「安全配置建议」进行安全加固,避免因配置不当或版本滞后导致实例暴露于风险之中。 3.1 漏洞原理 漏洞的原理非常直接:攻击者可以远程安装恶意扩展插件,从而实现任意代码执行。 在SD WebUI的代码中,扩展安装流程会直接执行插件目录下的install.py脚本: 这意味着,一旦用户安装了恶意扩展,攻击者编写的任意Python代码就会在目标机器上执行。 3.2 官方修复方案 CNVD-2023-81119漏洞披露后,SD WebUI官方的修复方案是在安装远程插件之前增加了检查机制: 关键参数:disable_extension_access 这个参数是官方修复的核心,其值由多个启动配置共同决定: 官方修复后的安全逻辑解析: 3.3 为什么公网仍存在大量可攻击实例 虽然官方已经默认对开到公网的服务加了限制,但我们实际发现外网的机器多数都开启了扩展安装功能,可被此漏洞攻击。 可能的原因: 服务开启在本地,通过反向代理或端口转发暴露到公网:用户在本地启动SD WebUI(此时扩展安装默认开启),然后通过Nginx反向代理、frp、ngrok、Cloudflare Tunnel等方式将服务暴露到公网。由于SD WebUI检测不到公网暴露,安全限制不会生效。 主动开启了 --enable-insecure-extension-access:部分用户为了便利性,在启动命令中添加了此参数,强制允许远程安装扩展。 使用的 Stable Diffusion WebUI 版本很老:2023年修复前的旧版本(<=1.6.0)完全没有 disable_extension_access 安全检查,任何公网可访问的实例都可被直接攻击。 四 云上威胁态势 通过腾讯云主机安全和网络入侵等产品的安全感知能力,我们捕获到多起真实的云上 SD WebUI 失陷事件,以其中一次真实入侵事件为例,还原了攻击者从初始入侵到挖矿牟利的完整攻击链路。 整个攻击过程分为以下四个阶段: 阶段一:初始入侵。受害主机以 --listen 模式启动 SD WebUI,扩展安装 API 暴露于公网。攻击者远程安装了恶意扩展,安装后即为攻击者提供了一个持久化的 Web Shell。 阶段二:信息收集。攻击者通过 Web Shell 执行了 whoami、ps aux、lscpu、uname -a、nvidia-smi 等命令,快速确认当前用户权限、运行环境和 GPU 算力情况,评估主机的利用价值。 阶段三:持久化。攻击者下载并安装了 sshx 远程终端工具,随后执行 sshx -q > /var/tmp/sshx_link.txt 生成远程访问链接。sshx 是一个开源工具,被攻击者滥用为反向隧道后门,通过浏览器即可获得完整 Shell 权限,属于无文件持久化技术,更难被检测。 阶段四:目标达成。攻击者下载 XMRig v6.22.2 挖矿程序,将其重命名为 rdxr 以规避进程名检测,连接矿池。最终通过 nohup + trap + while true 无限循环实现持久化挖矿,确保进程被杀死后自动重启。 五、核心问题 高性能算力成为黑产新目标 行业特点导致安全水位偏低 5.1 传统Web应用 vs AI开源组件 5.2 黑产的新目标:高性能GPU算力 AI开源组件的典型硬件配置: 消费级:RTX 4090(24GB显存) 专业级:NVIDIA A10(24GB显存) 企业级:A100(40GB/80GB显存) 这些GPU的算力价值: 挖矿收益:单张4090每日可产生5-10美元的挖矿收益 AI算力租赁:A100的云端租赁价格高达每小时2-4美元 规模化攻击:批量控制100台机器,月收益可达数万美元 5.3 为什么AI开源组件安全水位偏低? 技术栈侧重不同 AI 组件开发者通常更专注于模型算法与推理效果,Web 安全并非其核心关注领域 这与传统 Web 开发团队长期积累的安全经验形成了客观差异 快速发展阶段的共性挑战 AI 开源生态正处于高速发展期,功能迭代速度快,安全审查机制尚在完善中 第三方扩展生态蓬勃发展的同时,统一的安全规范和准入标准仍在建立过程中 部署场景的复杂性 部分组件在设计时主要面向本地或可信环境使用 但实际部署中,公网暴露、反向代理转发、多用户共享等场景较为普遍,超出了原始设计预期 依赖管理的混乱 Python等语言生态的依赖问题 扩展插件权限过高 六 纵深防御 如何保护AI开源组件安全 面对AI开源组件的安全威胁,需要从网络边界到主机层面构建纵深防御体系。 6.1 腾讯云安全产品方案 腾讯云NDR 腾讯云容器安全入侵防御模块支持对漏洞的后利用恶意行为的检测 6.2 安全配置建议 优先本地访问:默认仅监听本地地址,避免直接暴露公网 启用认证:如需远程访问,务必配置访问认证 反向代理加固:如通过Nginx反向代理,可以在配置时添加基础认证 七 结语 本文作为「AI开源组件安全风险分析」系列的第一篇,重点分析了因配置缺陷导致的安全漏洞。从ComfyUI-Manager到Stable Diffusion WebUI,我们看到: AI开源组件的扩展安装机制普遍缺乏安全控制 配置参数的复杂性增加了用户出错的概率 公网中仍存在大量可被攻击的脆弱实例 关于我们 腾讯安全云鼎实验室长期深耕云安全领域,持续关注AI生态的安全问题。 腾讯云提供完整的云原生安全产品矩阵,可有效应对AI开源组件面临的安全威胁: 腾讯云主机安全:漏洞检测能力,实时监控异常进程,阻断恶意程序,主机安全的最后一道防线。 腾讯云WAF:支持Web漏洞的检测和防护。 腾讯云防火墙:精细化的访问控制和入侵防御。 腾讯云NDR:网络流量深度分析,发现C2通信和横向移动。# SD WebUI 扩展安装代码(简化)def run_extension_installer(extension_dir): path_installer = os.path.join(extension_dir, "install.py")ifnot os.path.isfile(path_installer):returntry: env = os.environ.copy() env['PYTHONPATH'] = f"{script_path}{os.pathsep}{env.get('PYTHONPATH', '')}" # 危险:直接执行远程扩展的install.py脚本stdout = run(f'"{python}""{path_installer}"', errdesc=f"Error running install.py for extension {extension_dir}") if stdout: print(stdout) except Exception as e: errors.report(str(e))# 安装前的安全检查(官方修复)if disable_extension_access == True:return # 禁止远程安装扩展# disable_extension_access 的判断逻辑is_exposed_to_internet = any([ cmd_opts.share, # --share: 使用Gradio公共分享链接 cmd_opts.listen, # --listen: 监听0.0.0.0允许外部访问 cmd_opts.ngrok, # --ngrok: 使用ngrok隧道 cmd_opts.server_name # --server-name: 指定非默认服务器名称])disable_extension_access = is_exposed_to_internet andnot cmd_opts.enable_insecure_extension_access





END
更多精彩内容点击下方扫码关注哦~
关注云鼎实验室,获取更多安全情报
