【大模型安全】模型对抗攻击手段

embedded/2025/3/6 17:49:39/

大模型安全】模型对抗攻击手段

  • 1.基于梯度的攻击方法(白盒)
    • FGSM 攻击
    • PGD 攻击
  • 2.基于优化的攻击方法(白盒)
  • 3.基于迁移的攻击方法(黑盒)
  • 4.基于GAN的攻击方法(灰盒)
  • 5.基于决策边界的攻击方法(黑盒)
  • 6.模型对抗攻击的防御

对抗攻击通过对输入数据增加一些不易受到人类感知的扰动,使得模型在输入数据上产生错误的输出结果,从而干扰或破坏模型的性能和可靠性。数据投毒等攻击手段需要攻击者控制训练集等,而对抗攻击仅需针对模型生成特定扰动

对抗攻击的核心思想是通过对输入数据进行微小的扰动,使其几乎无法被人眼察觉,但会对模型的预测结果产生显著影响。这些微小的扰动包括添加、删除或修改输入数据中的一些特征。例如,在图像分类任务中,对抗攻击者可以通过微调像素值或添加噪声,使图像看起来与原始图像几乎没有差异,但却能使模型将其错误分类

1.基于梯度的攻击方法(白盒)

梯度是指函数在某一点的变化率,可以用来表示模型输出如何随输入的变化而改变。在机器学习中,攻击者可以利用梯度信息来生成对抗样本,使得模型误判。常见的基于梯度的攻击方法如下:

FGSM 攻击

FGSM 是一种快速生成对抗样本的方法,核心思想是利用损失函数对输入数据的梯度信息,在梯度方向上添加扰动,使模型产生误分类

在这里插入图片描述

假设有一个图像分类模型,输入图片 x 是一张“猫”的图片,模型正确地预测类别为“猫”。攻击者希望让模型错误分类

  • 计算损失函数对输入图像的梯度,得到梯度方向
  • 沿着梯度方向添加少量扰动 ,生成新的图片
  • 这张图片看起来和原图几乎一样,但模型可能会把它误分类为“狗”或其他类别

PGD 攻击

PGD 是 FGSM 的迭代版本,每次进行小步 FGSM 并确保对抗样本保持在允许范围内。它比 FGSM 更强大,因为它会不断优化对抗样本,使其对抗性更强

在这里插入图片描述

以识别“猫”的图片为例:

  • 计算损失函数对输入数据的梯度。
  • 沿着梯度方向更新输入,但步长较小,重复多次。
  • 通过“投影”操作,确保新图片不会改变得太多,依然在允许的扰动范围内。
  • 经过多轮迭代后,生成的对抗样本比 FGSM 更具攻击性,更容易欺骗模型。

2.基于优化的攻击方法(白盒)

不同于 FGSM 或 PGD 直接沿着梯度方向添加固定大小的扰动,CW 采用优化方法,在最小化扰动的前提下生成误分类的对抗样本。它通常使用 L2 范数、L0 范数、L∞ 范数 作为约束条件,确保对抗样本与原始样本的变化尽可能小

在这里插入图片描述

例如我们有一个图像分类模型,输入的是一张“猫”的图片,模型正确地预测类别为“猫”。攻击者希望找到最小的扰动,使模型错误分类,但同时肉眼几乎看不出变化

攻击步骤

1、构造优化目标:

  • 在 L2 范数的约束下,最小化图像修改的幅度
  • 让修改后的图片被模型误分类,例如变成“狗”

2、梯度优化:

  • 使用优化算法(如 Adam)调整输入,找到最小的像素改动,确保模型输出错误分类
  • 逐步调整权重参数 c ,平衡扰动和误分类的需求

3、生成对抗样本:

  • 经过迭代优化后,得到一个对抗样本,它与原图像视觉上几乎一致,但模型会误分类为“狗”

FGSM 和 PGD 类似于“蛮力”攻击,直接在梯度方向上添加较大的扰动,就像是大刀阔斧地修改图像,使其误分类。
CW 则更像是“精准雕刻”,精细地调整像素点,让对抗样本和原始样本的变化几乎察觉不到,但模型仍然会出错。


3.基于迁移的攻击方法(黑盒)

在黑盒攻击场景下,攻击者无法获取目标模型的结构、参数和梯度信息,因此无法直接利用梯度来生成对抗样本。基于迁移的攻击方法通过训练替代模型来近似目标模型的梯度,然后利用这个梯度生成对抗样本,并将其迁移到目标模型进行攻击

攻击方法:

  • 训练替代模型:使用与目标模型类似的数据集训练一个替代模型,让它的行为尽可能接近目标模型
  • 计算近似梯度:在替代模型上使用 FGSM、PGD 或 CW 生成对抗样本
  • 攻击目标模型:由于神经网络模型在不同架构之间存在一定的“迁移性”,对抗样本可能在目标模型上仍然有效

举个形象的例子,假设你想欺骗两位不同的老师:

  1. 你无法直接问第二位老师(目标模型)考试的评分标准(相当于无法获取梯度)
  2. 但你找到了第一位老师(替代模型),他评分的方式和第二位老师相似
  3. 你先向第一位老师提交答案,找到他评分的漏洞(相当于生成对抗样本)
  4. 然后,你把这个漏洞答案交给第二位老师,如果他也给你高分(相当于误分类),那么攻击就成功了

4.基于GAN的攻击方法(灰盒)

基于生成对抗网络(GAN, Generative Adversarial Network) 的攻击方法利用生成器(Generator)和判别器(Discriminator)的对抗关系来生成高度逼真的对抗样本,以欺骗机器学习模型或安全系统

核心思路是:

  • 生成器(G) 负责生成对抗样本,试图欺骗判别器。
  • 判别器(D) 负责区分对抗样本和真实样本,提高鉴别能力。
  • 二者不断对抗优化,直到生成的对抗样本足够逼真,能够欺骗目标模型。

举个形象例子,你可以把 GAN 的攻击方式比作考试作弊:

  1. 生成器(G) 相当于一个“伪造考卷的学生”,试图伪造一个正确答案。
  2. 判别器(D) 相当于老师,尝试分辨哪些答案是伪造的。
  3. 经过反复“练习”,生成器越来越擅长伪造答案,最终让老师分辨不出真假(即成功欺骗目标系统)。

这种方法不仅能用于对抗攻击(Adversarial Attack),还可以用于绕过安全检测、隐写数据、逃避入侵检测等攻击手段


5.基于决策边界的攻击方法(黑盒)

基于决策边界的攻击方法,不需要访问模型内部信息(如梯度),也不依赖于替代模型。其核心思想是:

  • 找到一个能改变分类结果的初始扰动向量(通常较大)。
  • 逐步减少扰动的幅度,尽可能保持攻击性,使目标模型的分类依然错误。
  • 最终达到最小扰动量,使得对抗样本既能欺骗模型,又尽量接近原始数据。

该攻击方法不需要像 FGSM、PGD 等方法一样调试学习率等参数,通过最小化扰动,使样本更容易跨过分类器的决策边界

举个现实的例子,在自动驾驶系统中,深度学习模型用于识别交通信号(如“停车”标志)

攻击场景:

1、原始样本:一个普通的“停车”标志 x
2、攻击目标:让自动驾驶系统错误地识别该标志(如“限速 60”)
3、攻击过程:

  • 找到较大的扰动,比如在标志上添加明显的噪声或贴纸,使分类器误判
  • 逐步减少扰动,确保攻击仍然有效,同时视觉上更隐蔽
  • 生成最终对抗样本,即一个外观正常的“停车”标志,但被误识别为“限速 60”

在这里插入图片描述

在黑盒攻击中,攻击者仅能与模型进行交互,得到样本的预测结果,然后使用成对的数据集等训练替代分类器,在替代分类器上进行对抗攻击。由于对抗样本的可迁移性,由此生成的对抗样本可以对目标模型实现攻击。

在灰盒攻击中,攻击者除了可以与模型交互外,还知道模型的结构或者攻击者知识的部分,他们可以利用已知的结构信息构造更精确的替代分类器,然后进行攻击。显而易见,其攻击性能优于黑盒攻击。由于对抗样本具有可转移性,因此白盒攻击生成的对抗样本同样适用于灰盒攻击。其中,AdvGAN不仅属于黑盒攻击,也属于灰盒攻击。

在白盒攻击中,攻击者知道模型的全部信息,所以其攻击效果是最好的。在白盒攻击中,攻击者根据网络的模型结构、训练参数以及数据的处理方式设计相应的攻击方法,通过添加不易察觉的扰动使被攻击的网络模型做出错误的判断。


6.模型对抗攻击的防御

1、对抗样本训练

在训练过程中,向模型提供经过攻击的对抗样本,使其学会正确分类,从而提高鲁棒性,例如使用最强的梯度攻击生成对抗样本,让模型学习如何抵御这些攻击(如 OpenAI 在 GPT-3 训练时采用的策略)

2、防御性数据增强

在输入阶段进行数据增强,以减少对抗样本的有效性,比如:

  • 添加噪声:在输入文本中插入随机字符或同义词,打破对抗样本的结构。
  • 数据变换:使用随机替换、同义词替换(如 WordNet)、语法变换等方式,让模型适应不同表达方式,提高泛化能力。

举个例子:若对抗样本是 “今天天气很好” → “今夭天气很好”(通过类似视觉字符替换攻击)。则可通过OCR 预处理+拼写校正 恢复原句,提高模型鲁棒性

3、模型集成

使用多个模型进行集成决策,如果多个模型的输出分歧较大,则可能存在对抗样本,可采用蒸馏训练,通过多个教师模型训练一个学生模型,提高其对抗鲁棒性

例如,Google 在 NLP 任务中尝试集成多个 Transformer 变体,通过投票机制提高模型的抗攻击能力

4、模型压缩和剪枝

减少冗余参数,降低模型对特定扰动的敏感度,从而减少对抗样本的影响

例如:

  • 通过L1/L2 正则化:减少模型的复杂度,使其对微小扰动不敏感
  • 模型剪枝:删除不重要的神经元或权重,如 BERT 剪枝减少 40% 参数后仍能保持 95% 以上的准确率

5、检测和防御机制

检测输入是否异常,如果检测到可能是对抗样本,则拒绝处理或给出警告

常见方法:

  • 置信度检测:如果模型对输入的置信度异常低,可能是对抗样本。
  • 言统计检测:分析文本的句法结构、字频分布,检测异常模式(如拼写篡改攻击)。
  • 对抗性输入拒绝机制:如 OpenAI API 在遇到恶意 Prompt Injection 时,返回 “无法处理”。

这种方法可能导致误判率较高,影响正常用户输入

6、隐私保护和鉴别性对抗训练

这种方法防止攻击者通过训练数据推测模型行为,增强隐私保护机制,例如使用:

  • 差分隐私(Differential Privacy):在训练过程中添加噪声,避免攻击者反向推导训练数据。
  • Federated Learning(联邦学习):训练数据分布式存储,减少单点数据泄露风险。

7、安全评估和漏洞分析

对模型进行渗透测试,提前发现对抗样本攻击风险,并进行修复


http://www.ppmy.cn/embedded/170532.html

相关文章

版本控制器Git和gdb

一.版本控制器Git 1.版本控制简单来讲可以对每一份代码版本进行复制保存,保证每一版代码都可查 2.仓库的本质也是一个文件夹 3.git既是一个客户端,也是一个服务器,是一个版本控制器。而gitee和GitHub都是基于git的网站或平台 4.git的基本…

Centos 7.9内核升级

手动内核从3.10升级到5.15 从https://dl.lamp.sh/kernel/el7/下载两个包 安装主内核包 sudo rpm -ivh kernel-ml-5.15.148-1.el7.elrepo.x86_64.rpm 安装开发包(编译 eBPF 必需) sudo rpm -ivh kernel-ml-devel-5.15.148-1.el7.elrepo.x86_64.rpm …

23种设计模式之《模板方法模式(Template Method)》在c#中的应用及理解

程序设计中的主要设计模式通常分为三大类,共23种: 1. 创建型模式(Creational Patterns) 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。 工厂方法模式&#xff0…

【漫话机器学习系列】119.小批量随机梯度方法

1. 引言 在机器学习和深度学习中,梯度下降(Gradient Descent)是一种常见的优化算法,用于调整模型参数以最小化损失函数。然而,在处理大规模数据集时,使用传统的梯度下降(GD)可能会面…

LangChain-08 Query SQL DB 通过GPT自动查询SQL

我们需要下载一个 LangChain 官方提供的本地小数据库。 安装依赖 SQL: https://raw.githubusercontent.com/lerocha/chinook-database/master/ChinookDatabase/DataSources/Chinook_Sqlite.sql Shell: pip install --upgrade --quiet langchain-core langchain-community la…

[内网安全] Windows 本地认证 — NTLM 哈希和 LM 哈希

关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01:SAM 文件 & Windows 本地认证流程 0x0101:SAM 文件简介 Windows 本地账户的登录密码是存储在系统本地的 SAM 文件中的,在登录 Windows 的时候&am…

GCC RISCV 后端 -- cc1 入口

GCC编译工具链中的 gcc 可执行程序,实际上是个驱动程序(Driver),其根据输入的参数,然后调用其它不同的程序,对输入文件进行处理,包括编译、链接等。可以通过以下命令查看: gcc -v h…

UV安装GPU版本PyTorch

经过同事推荐,开始尝试使用uv管理Python环境,效果相当不错。 安装PyTorch遇到的问题 但在安装PyTorch时,采用默认的uv add方式会报错,而使用uv pip install安装PyTorch的cuda版本,虽然没有问题,但并不能同…