【论文阅读】深度学习中的后门攻击综述
深度学习中的后门攻击综述
- 1.深度学习模型三种攻击范式
- 1.1.对抗样本攻击
- 1.2.数据投毒攻击
- 1.3.后门攻击
- 2.后门攻击特点
- 3.常用术语和标记
- 4.常用评估指标
- 5.攻击设置
- 5.1.触发器
- 5.1.1.触发器属性
- 5.1.2.触发器类型
- 5.1.3.攻击类型
- 5.2.目标类别
- 5.3.训练方式
1.深度学习模型三种攻击范式
后门攻击是一种隐秘而具有挑战性的网络安全威胁,它指的是攻击者利用漏洞或特殊访问权限,在系统中植入隐藏的访问通道。这种方法让攻击者能够在未被发现的情况下进入系统,绕过常规的安全控制,潜伏在其中,进行潜在破坏或数据窃取。在这篇博客文章中,我们将深入探讨后门攻击的本质、影响以及防范方法,帮助您了解并保护自己免受这种隐秘威胁的影响。
现阶段, 针对深度学习模型的攻击手段主要有对抗样本攻击、数据投毒攻击以及后门攻击,三者存在一定的区别,如下表所示:
| 攻击类型 | 攻击阶段 | 对模型的影响 |
|---|---|---|
| 对抗样本攻击 | 推理阶段 | 欺骗模型(模型没有发生变化) |
| 数据投毒攻击 | 训练阶段 | 破坏模型 |
| 后门攻击 | 训练阶段 | 诱导模型 |
1.1.对抗样本攻击
定义: 针对一个已经训练好的模型, 希望构造一个能够欺骗模型的样本, 而不会修改和破环已有的模型。
理解: 对抗样本攻击是发生在 推理阶段 的一种针对 模型 进行的攻击:通过构造 人眼无法察觉 的对抗样本(作为推理时模型的输入),使模型在推理时发生判断错误。
1.2.数据投毒攻击
定义: 使模型的泛化性能变差, 也即在测试集上的效果变差, 模型不能进行有效的学习, 甚至无法收敛。
理解: 数据投毒攻击是发生在 训练阶段 的一种针对 模型 进行的攻击。通过训练时掺入一些有毒的训练数据,导致模型的泛化性变差,即:训练时训练的挺好也已经收敛了,但在测试集上进行测试时效果就不好了,模型没有得到有效的学习。
1.3.后门攻击
定义: 使模型学习到攻击者指定的内容, 其对正常样本仍旧具有良好的测试效果, 但对于中毒样本则会输出攻击者预先设定的标签。
理解: 后门攻击是发生在 训练阶段 的一种针对 模型 进行的攻击。在训练时,同样掺入了一些特殊的训练数据(这类数据带有特定的触发器),导致模型测试的时候,在正常样本上测试效果很多,但在特定样本(带有触发器的样本)上性能会急剧下降。
2.后门攻击特点
复杂性: 后门攻击发生在训练阶段,涉及更多的步骤,包括:数据采集、数据预处理、模型构建、模型训练、模型保存、模型部署,更多的步骤意味着攻击者有更多的机会,模型的安全威胁也更多。
隐蔽性: 植入后门的模型,对正常样本来说不会表现出异常,只有面对带有特定触发器的样本时才会表现出异常,因此用户难以察觉。此外,后门攻击注入的中毒样本通常非常之少, 仅需 0.5%左右。
实际性: 后门攻击在正常测试集上仍具有良好的效果,因此经过后门攻击的模型很大概率会部署并投入使用。
3.常用术语和标记
| 符号 | 中文 | 解释 |
|---|---|---|
| x i x_i xi | 正常样本 | 未经后门攻击的原始数据 |
| x b x_b xb | 中毒样本 | 通过后门攻击手段得到的样本数据,通常是对正常样本进行修改得到的 |
| y i y_i yi | 源标签 | 正常样本对应的标签 |
| t t t | 目标标签 | 攻击者所指定的用于埋藏后门的类别标签,通常是使模型错误分类的类别 |
| D D D | 正常数据集 | 不含中毒样本的原始数据集 |
| D b D_b Db | 中毒数据集 | 含中毒样本的数据集 |
| M M M | 正常模型 | 通过正常数据集训练的模型 |
| M b M_b Mb | 中毒模型 | 通过中毒样本训练得到的含有后门的模型 |
| Δ \Delta Δ | 触发器/后门模式 | 后门攻击中用来生成中毒样本和激活模型后门的一种模式 |
4.常用评估指标
对于深度学习模型中的后门攻击来说, 主要通过以下三个指标进行评估。
-
攻击成功率 (Attack Success Rate, ASR): 指成功使模型误分类为目标类别的中毒样本所占的比例。
-
准确率下降 (Accuracy Decline, AD) : 指模型在后门攻击前后,对于正常样本预测准确率的下降值。
-
攻击隐匿性 (Attack Stealthiness, AS): 指后门攻击方法躲避人类视觉检查以及一些检测方法的能力。
注意:
- ASR 和 AD 针对模型的表现而言,通常来说模型经过后门攻击后,对于正常样本预测的准确率会有所下降, 而准确率下降越少,越不易引起使用者或防御者的察觉,模型也会更可能部署使用。因此攻击者希望尽可能减小对模型正常性能的损害, 使 ASR 尽量高而 AD 尽量低。
- AS 则从攻击方法本身的隐蔽性或不可见性出发,对后门攻击方法的设计提出要求。为了躲避人类视觉检查或一些检测方法,通常需要对触发器的形状、 大小、透明度以及投毒率等进行限制。为了量化体现 AS,可以定义例如数值变化率、结构相似性等指标进行评估。
5.攻击设置
5.1.触发器
5.1.1.触发器属性
触发器属性包括:大小、形状、位置、透明度。
5.1.2.触发器类型
触发器类型主要包括:确定图案、动态图案、良性特征。
- 确定图案: 使用攻击者设计的固定图案作为触发器。
- 动态图案: 具有输入感知功能的攻击方式,可以根据不同输入产生不同图案的触发器。
- 良性特征: 不植入额外特征,使用原数据本身具有的良性特征作为触发器,例如:人脸面部特征。
5.1.3.攻击类型
- 单对单攻击: 指单个触发器激活单类目标后门。
- 多对单攻击: 使用多个触发器, 当多个触发器同时触发时才激活某单类目标的后门。
- 单对多攻击: 使用同一触发器, 根据不同的触发强度来激活不同目标的后门。
5.2.目标类别
- 单对单攻击: 仅使某一类别的数据,在添加触发器后被分类为目标类别,其他类别添加触发器 后仍正常分类。单对单攻击希望模型学习某一类数据和触发器的特征组合与目标标签之间的联系。(举例:自动驾驶物体分类领域,只针对“行人”这一个类别进行攻击,添加了触发器之后使“行人”类别进行了错误分类,但汽车、交通灯等类别分类则没有发生变化。)
- 多对单攻击: 使所有或多个类别的数据(如:“行人”、“汽车”两个类别),在添加触发器后被分类为目标类别。多对单攻击则希望模型学习触发器本身的特征, 从而使模型对所有带有触发器的数据都按照预定的标签输出。
5.3.训练方式
- 从头训练: 使用中毒数据集对模型从零开 进行训练, 通常耗时较长, 但效果通常较好。
- 微调: 使用中毒数据集对已在正常数据集上训练好的模型进行重训练,耗时较短,但有时效果 一般。
- 不训练: 直接篡改模型参数达到与训练注入后门同样的效果。
相关文章:
【论文阅读】深度学习中的后门攻击综述
深度学习中的后门攻击综述 1.深度学习模型三种攻击范式1.1.对抗样本攻击1.2.数据投毒攻击1.3.后门攻击 2.后门攻击特点3.常用术语和标记4.常用评估指标5.攻击设置5.1.触发器5.1.1.触发器属性5.1.2.触发器类型5.1.3.攻击类型 5.2.目标类别5.3.训练方式 1.深度学习模型三种攻击范…...
Spring Boot中加@Async和不加@Async有什么区别?设置核心线程数、设置最大线程数、设置队列容量是什么意思?
在 Spring 中,Async 注解用于将方法标记为异步执行的方法。当使用 Async 注解时,该方法将在单独的线程中执行,而不会阻塞当前线程。这使得方法可以在后台执行,而不会影响主线程的执行。 在您提供的代码示例中,a1() 和…...
Vue_00001_CLI
初始化脚手架 初始化脚手架步骤: 第一步(仅第一次执行):全局安装vue/cli。 命令:npm install -g vue/cli 第二步:切换到要创建项目的目录,然后使用命令创建项目。 命令:vue creat…...
kubernetes ResourceQuotas Limits(资源配额)
开头语 写在前面:如有问题,以你为准, 目前24年应届生,各位大佬轻喷,部分资料与图片来自网络 内容较长,页面右上角目录方便跳转 简介 当多个用户或团队共享具有固定节点数目的集群时,人们会…...
【ARMv8架构系统安装PySide2】
ARMv8架构系统安装PySide2 Step1. 下载Qt资源包Step2. 配置和安装Qt5Step3. 检查Qt-5.15.2安装情况Step4. 安装PySide2所需的依赖库Step5. 下载和配置PySide2Step6. 检验PySide2是否安装成功 Step1. 下载Qt资源包 if you need the whole Qt5 (~900MB): wget http://master.qt…...
ECMAScript6详解
ECMAScript 6,也被称为 ES6 或 ECMAScript 2015,是 JavaScript 编程语言标准的一个主要更新。它于 2015 年正式发布,并带来了许多新特性和改进,使得 JavaScript 开发更加现代化和高效。下面是 ES6 的一些关键特性的详解࿱…...
[C#]使用PaddleInference图片旋转四种角度检测
官方框架地址】 https://github.com/PaddlePaddle/PaddleDetection.git 【算法介绍】 PaddleDetection 是一个基于 PaddlePaddle(飞桨)深度学习框架的开源目标检测工具库。它提供了一系列先进的目标检测算法,包括但不限于 Faster R-CNN, Ma…...
stable diffusion 基础教程-提示词之光的用法
基图 prompt: masterpiece,best quality,1girl,solo,looking at viewer,brown hair,hair between eyes,bangs,very long hair,red eyes,blush,bare shoulders,(white sundress),full body,Negative prompt: EasyNegative,badhandv4,nsfw,lowres,bad anatomy,bad hands,text…...
第9课 回声抑制(AEC+AGC+ANS)的实现
在第8课中,我们将推流端与播放端合并实现了一对一音视频聊天功能,一切看起来还不错。但在实际使用时,会遇到一个烦心的问题:说话时会听到比较大的回声,影响正常使用。所以,这节课我们来重点解决这个问题。 …...
软件测试|Python中的变量与关键字详解
简介 在Python编程中,变量和关键字是非常重要的概念。它们是构建和控制程序的基本要素。本文将深入介绍Python中的变量和关键字,包括它们的定义、使用方法以及一些常见注意事项。 变量 变量的定义 变量是用于存储数据值的名称。在Python中࿰…...
修改安卓apk设置为安卓主屏幕(launcher)
修改安卓apk 将apk可以设置安卓主屏幕 原理: 将打包好的apk文件进行拆包增加配置文件在重新编译回apk包 需要得相关文件下载 解包 apktool :https://pan.baidu.com/s/1oyCIYak_MHDJCvDbHj_qEA?pwd5j2xdex2jar:https://pan.baidu.com/s/1Nc-0vppVd0G…...
unity中 canvas下物体的朝向跟随
public Transform target; private Vector3 direction; void Update() { //第一种 //direction target.position - transform.position; //transform.up -direction.normalized; //第二种 if (target ! null ) { …...
HarmonOS 日期选择组件(DatePicker)
本文 我们一起来看基础组件中的 DatePicker 这就是 日程开发中的日期组件 他可以创建一个日期的范围 并创建一个日期的滑动选择器 这里 我们先写一个组件的骨架 Entry Component struct Index {build() {Row() {Column() {}.width(100%)}.height(100%)} }然后 我们先在Column组…...
linux中的系统安全
一.账号安全 将非登录用户的shell设为/sbin/nologin 系统中用户有三种:超级管理员 普通用户 程序用户 前两种用户可以登录系统,程序用户不给登录 所以称为非登录用户 命令格式: usermod -s /sbin/nologin(改已有用户&#…...
LeetCode(209)长度最小的子数组⭐⭐
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入:s 7, nums [2,3,1,2,4,3]输出:2…...
【JAVA】MySQL中datetime类型23:59:59自动变为下一天的00:00:00
如:2024-08-11 23:59:59 变成了 2024-08-12 00:00:00。 解析:数据库入库的时候会有500毫秒的进位,然而程序在赋值时间给变量的时候很大概率会超过500ms,有时是999ms。 解决方案 // DateUtil Hutool官网 将生成的时间往前偏移99…...
Unity游戏内相机(主角头部视角)的旋转问题:“万向节锁定”(Gimbal Lock)
前言: 在Unity中,相机的正前方是Z正半轴,相机的正右方是X正半轴,相机的正上方是Y正半轴。这个很好理解。 现在,我想要相机看向左前上方45,你会觉得要怎么做呢? 如果是我的话,我的第一…...
Keras实现seq2seq
概述 Seq2Seq是一种深度学习模型,主要用于处理序列到序列的转换问题,如机器翻译、对话生成等。该模型主要由两个循环神经网络(RNN)组成,一个是编码器(Encoder),另一个是解码器…...
1080p 1k 2k 4k 8k 分辨率,2K就不应该存在。
众所周知 1K(1080P):分辨率为19201080像素,2K:分辨率为25601440像素4K:分辨率为38402160像素8K:分辨率为76804320像素 边长比例,和像素比例如下: 2K宽高都是1k的1.333…...
接口芯片选型分析 四通道差分驱动可满足ANSI TIA/EIA-422-B 和ITU V.11 的要求 低功耗,高速率,高ESD
四通道差分驱动可满足ANSI TIA/EIA-422-B 和ITU V.11 的要求 低功耗,高速率,高ESD。 其中GC26L31S可替代AM26LS31/TI,GC26L32S替代AM26LS32/TI,GC26E31S替代TI的AM26LV31E...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
Docker、Wsl 打包迁移环境
电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本: 2.2.4.0 内核版本: 5.15.153.1-2 WSLg 版本: 1.0.61 MSRDC 版本: 1.2.5326 Direct3D 版本: 1.611.1-81528511 DXCore 版本: 10.0.2609…...
