BEAGLE: Forensics of Deep Learning Backdoor Attack for Better Defense(论文阅读)

将论文中内容精简了一下,并做了下总结。

目录

摘要

背景介绍

Contribution:

提出的方法:BEAGLE的核心目标

简化的具体步骤:

ThreatModel:

方法限制:

案例分析: 

EAGLE 自动生成的扫描器的效果


摘要

从传统的网络攻击中,指出取证技术是一种重要的防御手段,用于调查和追踪攻击的来源以及方法。

新型模型后门取证技术的提出
论文中提出了一种新的取证技术,该技术旨在通过少量带有后门触发器的样本来分析和拆解攻击:

分解攻击样本:技术能够自动将攻击样本(即带有后门触发器的输入)分解为干净的输入(没有恶意触发器的正常输入)和相应的触发器。触发器可能表现为两种形式:一种是类似补丁的输入模式,另一种是输入空间的转换函数

触发器聚类与分类:这些触发器会根据它们的属性进行聚类,帮助自动分类和总结不同类型的后门攻击。

在分析后,技术可以自动生成后门扫描器,这些扫描器可以用于检测其他模型中相同类型的后门攻击实例。这提供了一种自动化的机制来应对不同类型的后门攻击。

背景介绍

网络攻击过程以及防御阶段与DL中后门攻击与防御类似:

网络攻击模型(图1):在传统的网络攻击中,攻击者(Adversary)通过利用应用程序中的漏洞(bug),通过特定的恶意输入(exploit input)触发系统的错误行为(如系统崩溃、数据泄露等)。攻击后会产生某种负面后果(consequence)。

网络取证的流程(图2):在传统网络攻击中,取证技术的目的是:

识别攻击的根本原因:包括漏洞的来源、恶意输入的类型。

评估损害:了解攻击所造成的破坏范围。

构建工具:通过取证得出的信息,可以开发出漏洞检测工具或恶意软件扫描器,从而更好地检测类似的攻击实例以及同类型的漏洞。

现有的研究集中于取证中的某些子问题,比如检测后门输入或者清理有毒样本。相当于整个取证技术的基础。

Contribution

  1. 提出了一种新的深度学习后门攻击取证技术,包含自动化的攻击根因分析、攻击总结与扫描器合成。
  2. 引入了一个循环优化流程,能够将带有后门的输入分解为干净的输入和触发器。
  3. 通过两种数学形式来表达现有的攻击方法,使得不同的攻击可以通过不同的系数分布进行建模,实现自动分类和扫描器合成。

提出的方法:BEAGLE的核心目标

原理:

首先检测到了发生后门攻击,然后根据已有的攻击实例也就是后门样本进行分解,得到干净的样本和触发器,然后结合分解的结果分析后门样本的共性,进行聚类,每一个类表示一种后门攻击方法。然后根据不同类型的攻击通过数学模型中的系数分布进行建模来合成扫描器,扫描器可以无需后门输入就可以判断模型是否被植入后门,会通过损失函数反向推导出模型中的后门触发器。推导成功则被认为存在后门。

讨论了论文提出的解决方案,称为“攻击取证”(Attack Forensics),并解释了它相对于传统触发器反转(trigger inversion)方法的改进。论文中的核心思路是通过对少量攻击实例进行逆向工程,反向提取攻击的具体信息,如触发器的形态以及如何注入的。这些信息被用于生成额外的损失项,以改变损失函数的“地形”,从而使梯度能够引导触发器反转到被破坏的子空间。

该方法旨在通过分析少量攻击实例,来自动化地分解这些攻击输入,过程包括:

1.将带有后门的输入(trojaned input)分解为干净的输入和触发器。

2.触发器可能表现为两种形式:一种是类似补丁的输入模式,另一种是输入空间的转换函数

分解的要求:

1.分解后的干净输入应当与原始的干净输入非常接近,即便BEAGLE并不知道原始的干净输入。

2.分解出来的触发器应与注入的真实触发器十分相似,尽管BEAGLE也不知道实际的注入触发器。

3. 该触发器应具有较强的普适性——即当应用于其他大量干净输入时,它也能使模型输出相同的错误目标标签。这类似于传统网络攻击取证中的根本原因分析,在这类分析中,需要识别导致攻击的根源因素。

聚类与归纳:

将分解的结果自动对这些攻击实例进行聚类:

每个聚类代表一种特定类型的后门攻击。

对于每个聚类,BEAGLE进一步总结出一组分布(distributions),这些分布代表该类型后门的特征。

根据这些分布,BEAGLE能够自动合成对应的扫描器,以便在其他模型中找到相同类型的后门。

解决一个难点:可以应对不同形式的同类攻击

后门攻击实例的差异性:不同模型上的后门攻击实例(即相同类型的后门攻击在不同模型上的表现)可能存在较大的差异:

比如,补丁攻击在不同模型上可能表现为不同的形状、大小、像素模式,甚至补丁的贴图位置也可能不同。

因此,仅仅依赖于直接利用取证分析得到的触发器很难检测到其他类似的攻击实例。

它能够抽象出攻击实例的共性,而不是直接依赖于分解得到的原始触发器。通过这种抽象,它可以检测到其他模型上相同类型的后门攻击。

这种方法类似于传统网络安全中的做法:通过取证结果构建漏洞和恶意软件检测工具,从而有效识别相同或类似的攻击。

 

简化的具体步骤:

将攻击分解的步骤设计为一个循环优化问题

1在最初,分解得到的干净输入和触发器的质量非常低,比如可能只是随机分解的结果。

2循环优化确保每次对干净输入的改进都会带来触发器的改进,反之亦然。

3随着这个过程的迭代,当循环优化收敛时,能够得到高质量的分解结果

该方法将后门攻击形式化为两种数学表达:

1.Patching attacks:这种攻击引入局部的输入扰动,类似于补丁攻击,触发器只影响输入的一小部分区域。

2.Transforming attacks:这种攻击引入全局性的输入扰动,可能改变整个输入空间的特性。

不同类型的攻击可以通过这些数学模型中的系数分布来进行建模,从而实现自动攻击分类。

使用这些数学模型和它们的系数分布,BEAGLE 能够为扫描器合成损失函数

扫描器的作用类似于传统的漏洞或恶意软件扫描工具,可以无需恶意输入就判断模型是否包含后门。

  • BEAGLE 会通过损失函数反向推导出模型中的后门触发器。
  • 如果这种反向推导成功,则模型被认为是存在后门的。
  • 反向推导过程本质上是通过梯度下降法生成能够引发模型误分类的小型扰动模式或变换函数。

ThreatModel

主要应用场景是用户观察到模型出现了一些异常的错误分类,这些错误分类可能通过手动检查或使用特定工具(如后门输入检测工具)被发现,然后攻击样本被检测和保存以供取证分析(类似于首次发现缓冲区溢出的情况)。

用户可以提供一小部分的干净输入,例如每个模型提供100个干净样本,以辅助分析过程。

除了用户提供的信息外,分析员还可以使用生成对抗网络(GAN)来表示输入分布:这种假设是合理的,因为现实中的深度学习模型通常遵循物理世界的分布,而预训练的高质量GAN可以很好地代表这些分布。

方法限制:

攻击者可能注入的后门只会将非常相似的类(例如类A类B)的样本相互转换,而这些类别对人类来说是难以区分的。虽然这类攻击是否对攻击者有利尚存争议,因为这些类别本身的决策边界已经非常模糊,但处理这种类型的攻击超出了本文的范围

就是说这篇文章处理的是较为明显的后门攻击,例如像不同国家的短脚猫会有些差距,但是视觉上基本看不出来,像这种本身决策边界模糊的后门攻击没有去分析。

此外,一个模型可能包含多个后门攻击实例,但在这个威胁模型中,假设所有的中毒输入样本都利用了同一个后门。(取样分析然后分解的时候是一种种后门攻击方法去处理的,不能同时处理多种)

过程中遇到的问题及解决方案

问题:

不同的攻击会影响输入空间的不同部分,而这些被破坏的子空间可能非常小。传统的触发器反转方法依赖于交叉熵损失函数的梯度,但在输入空间中的这些小且孤立的子空间中,梯度可能无法提供有效的指引,导致无法找到触发器。举例来说,当攻击实例的分布较为稀疏时,从干净的输入样本开始,梯度会无法引导模型找到触发器对应的区域。

解决方案:

 论文提出了一个新的方法,通过“攻击取证”来解决上述问题。具体来说,BEAGLE系统通过对少量攻击样本的逆向工程,提取触发器的形态及其注入方式,并基于这些信息生成额外的损失项。这些新生成的损失项改变了损失函数的地形,使得梯度能够引导触发器反转找到被破坏的子空间。

案例分析: 

BEAGLE 系统通过攻击取证 (forensics) 生成有针对性的扫描器,以有效检测不同类型的后门攻击。通过对几个攻击实例的分析,BEAGLE可以从这些实例中逆向提取出干净的图像和触发器的相关特征。以下是对图7 中三个案例的具体说明:

 

图 7(A) - 补丁攻击的取证 (Patch Attack Forensics)

图7(A) 主要展示了 TrojAI 中补丁攻击的取证过程。BEAGLE 从两个带有触发器的攻击样本出发,这些触发器位于图像的不同位置。通过其技术,BEAGLE 将攻击实例分解为干净的图像和触发器,尽管原始的干净图像是未知的。通过对这些分解实例的分析,BEAGLE 能够总结出触发器的位置大小、以及触发器区域的像素值等特征的分布。利用这些分布,系统自动合成了一个新的损失函数来检测相同类型的后门攻击。

图八介绍了 BEAGLE 系统的设计,通过图8展示了整体技术流程的概述。系统的工作流程主要分为三个步骤:

1. 攻击样本分解(Attack Sample Decomposition)

  • 目的:将带有后门触发器的图像分解为干净的图像和触发器。这是 BEAGLE 系统的第一个关键步骤。
  • 操作:从带有触发器的图像入手,BEAGLE 使用其技术将输入样本分解成两个部分:一个是干净的图像(没有触发器),另一个是攻击中使用的触发器。这个步骤为后续的攻击总结和扫描器生成提供了基础数据。

2. 攻击总结(Attack Summarization)

  • 目的:提取和总结多个攻击样本的关键信息,这些样本可能来自不同的模型或包含各种后门。
  • 操作:BEAGLE 分析和总结攻击样本的多个关键分布,包括:
    • 触发器的大小和形状分布:描述触发器的几何特征。
    • 变换系数分布:如果触发器是通过某种变换注入的,则分析变换系数的分布。

这个步骤的重要特点是:不需要假设所有攻击实例都属于同一类型的后门攻击,因为 BEAGLE 会自动将不同的攻击进行聚类和总结。但假设大多数攻击实例的输入是利用相同的后门。

3. 扫描器合成(Scanner Synthesis)

  • 目的:生成一个扫描器,通过调节触发器反转过程中的损失函数项来检测相同类型的后门。
  • 操作:BEAGLE 使用在前两个步骤中总结出的攻击特征,自动合成新的损失函数项。这些损失项可以改变反转过程中损失函数的地形,使得触发器反转能够有效找到类似的后门触发器。这一步骤的目标是生成一种通用的扫描器,它能够检测同类攻击,即使这些攻击的触发器细节不同。

EAGLE 自动生成的扫描器的效果

表1最后一行显示了通过 BEAGLE 自动合成的扫描器的扫描结果。BEAGLE 使用了每种攻击类型的3个受攻击模型来进行取证,这些模型与用于扫描评估的模型是分离的。结果表明,基于这些扫描器,BEAGLE 能够准确地检测出被植入后门的模型。

然而,仅仅依靠 BEAGLE 逆向工程提取的触发器来判断模型是否具有类似的后门并不有效。这是因为不同模型在后门攻击的具体表现上有所差异,因此直接使用触发器作为检测依据的方式不具备通用性,这一点可以从表1第四行的结果中看出。

通过这些例子,BEAGLE 系统展示了其强大的攻击取证能力,能够对不同类型的攻击进行分析,并合成针对性的扫描器来检测后门模型。

总结

BEAGLE 的整体设计由三个核心步骤组成,分别是攻击样本分解攻击总结扫描器合成。这些步骤使得系统能够从少量的攻击实例中总结出关键信息,并生成有效的扫描器,用于检测其他模型中的类似后门攻击。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/468164.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EasyUI弹出框行编辑,通过下拉框实现内容联动

EasyUI弹出框行编辑,通过下拉框实现内容联动 需求 实现用户支付方式配置,当弹出框加载出来的时候,显示用户现有的支付方式,datagrid的第一列为conbobox,下来选择之后实现后面的数据直接填充; 点击新增:新…

Node.js 全栈开发进阶篇

​🌈个人主页:前端青山 🔥系列专栏:node.js篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来node.js篇专栏内容:node.js- 全栈开发进阶篇 前言 大家好,我是青山。在上一篇文章中,…

单双链表及其反转

一,空指针的补充 1. 空指针的定义 在 C 语言中,空指针通常被定义为 NULL,或者在 C 中为 nullptr。它的本质是一个指针,指向无效的地址,用来表示一个指针当前没有指向有效的内存空间。空指针并不指向实际的内存地址&am…

Scrapy框架:Python爬虫开发快速入门与初试

在众多编程语言中,Python以其简洁的语法和强大的库支持,成为了编写爬虫的首选语言。而在Python的爬虫库中,Scrapy框架无疑是其中的佼佼者。Scrapy是一个开源的、基于Python的爬虫框架,它提供了一套完整的工具和功能,使…

C语言 | Leetcode C语言题解之第543题二叉树的直径

题目: 题解: typedef struct TreeNode Node;int method (Node* root, int* max) {if (root NULL) return 0;int left method (root->left, max);int right method (root->right, max);*max *max > (left right) ? *max : (left right);…

探索Python视频处理的瑞士军刀:ffmpeg-python库

文章目录 **探索Python视频处理的瑞士军刀:ffmpeg-python库**第一部分:背景介绍第二部分:ffmpeg-python库是什么?第三部分:如何安装ffmpeg-python库?第四部分:简单库函数使用方法1. 视频转码2. …

King3399(ubuntu文件系统)wifi设备树分析

该文章仅供参考,编写人不对任何实验设备、人员及测量结果负责!!! 0 引言 文章主要介绍King3399(ubuntu)wifi设备树,涉及king-rk3399.dts、rp-wifi-sdio.dtsi内容修改与介绍 在使用wifi前本人遇到了一个比较奇怪的问…

Elmo驱动器上位机软件的详细配置

续接上文,本文讲解Elmo驱动器上位机软件更详细的配置,重点关注,在电机的位置受到约束的情况下,完成驱动器的参数整定过程,以及一些调试方法 一 硬件介绍 本文使用的是另一套设备,假设电机的位置是受到约束的 1 编码器规格书 编码器已知信息是 :读数头是26位的,通讯…

【Python】爬虫使用代理IP

1、代理池 IP 代理池可以理解为一个池子,里面装了很多代理IP。 池子里的IP是有生命周期的,它们将被定期验证,其中失效的将被从池子里面剔除池子里的ip是有补充渠道的,会有新的代理ip不断被加入池子中池子中的代理ip是可以被随机…

Ascend Extension for PyTorch是个what?

1 Ascend Extension for PyTorch Ascend Extension for PyTorch 插件是基于昇腾的深度学习适配框架,使昇腾NPU可以支持PyTorch框架,为PyTorch框架的使用者提供昇腾AI处理器的超强算力。 项目源码地址请参见Ascend/Pytorch。 昇腾为基于昇腾处理器和软…

【HarmonyOS Next】数据本地存储:@ohos.data.preferences

【HarmonyOS Next】数据本地存储:ohos.data.preferences 在开发现代应用程序时,数据存储是一个至关重要的过程。应用程序为了保持某些用户设置、应用状态以及其他小量数据信息通常需要一个可靠的本地存储解决方案。在 HarmonyOS Next 环境下&#xff0c…

数据结构——二叉树(续集)

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨个人…

MySQL性能测试方案设计

在现代互联网系统中,数据库性能直接影响到整体应用的速度和用户体验。而MySQL作为广泛使用的关系型数据库,随着数据量和并发请求的增长,其性能问题也日益突出。今天我们将深入探讨如何设计一套高效的MySQL性能测试方案,帮助你精准…

cv::intersectConvexConvex返回其中一个输入点集,两个点集不相交

问题:cv::intersectConvexConvex返回其中一个输入点集,但两个点集并不相交 版本:opencv 3.1.0 git上也有人反馈了intersectConvexConvex sometimes returning one of the input polygons in case of empty intersection #10044 是凸包嵌套判…

【学习笔记】SAP ABAP——内表

内表定义 ​ 内表是SAP ABAP中最具有影响力且最重要的功能之一,简而言之,用一句话概括内表的定义就是:***内表是可以在程序内部定义并且使用的表,属于本地表。***如下图展示出了参照数据库表sflight定义的内表的结构 内表与数据库…

MinerU容器构建教程

一、介绍 MinerU作为一款智能数据提取工具,其核心功能之一是处理PDF文档和网页内容,将其中的文本、图像、表格、公式等信息提取出来,并转换为易于阅读和编辑的格式(如Markdown)。在这个过程中,MinerU需要利…

[产品管理-66]:七步法创新工具:SCAMPER法,也被称为奔驰法,一种创新思考工具,帮助我们基于现有的产品找到产品创新突破的方向

SCAMPER法,也被称为奔驰法,是一种创新思考工具,由美国心理学家罗伯特艾伯尔(也有说法是教育家和创新思考专家鲁伯特普里斯科特)提出。这种检核表主要藉几个字的代号或缩写,代表七种改进或改变的方向&#x…

算法求解(C#)-- 寻找包含目标字符串的最短子串算法

1. 引言 在字符串处理中,我们经常需要从一个较长的字符串中找到包含特定目标字符串的最短子串。这个问题在文本搜索、基因序列分析等领域有着广泛的应用。本文将介绍一种高效的算法来解决这个问题。 2. 问题描述 给定一个源字符串 source 和一个目标字符串 targe…

IDEA启动提示Downloading pre-built shared indexes

Download pre-built shared indexes Reduce the indexing time and CPU load with pre-built JDK shared indexes 翻译: 下载预构建的共享索引 使用预构建的JDK共享索引减少索引时间和CPU负载. 使用预构建的JDK共享索引可以显著减少索引构建时间和CPU负载&#xf…

【DM系列】DM 集成 JDBC 开发指南

前言 数据库访问是数据库应用系统中非常重要的组成部分,DM 作为一个通用数据库管理系统,提供了多种数据库访问接口,包括 ODBC、JDBC、DPI 等方式。本开发指南详细介绍了 DM 的各种访问接口、相应开发环境的配置、以及一些开发用例。本指南的主…