2023DataCon——AI赛道复盘

2023DataCon——AI安全赛道复盘

今年的DataCon新开放了AI安全赛道,同学邀请我也参加了这一次的比赛,但是0基础。因为最近正好想了解学习一下神经网络相关内容,借这个比赛为契机接触这个领域。因为队里基本都是0基础,所以理所当然的寄了,这里记录一下我的AI安全的起点吧!

比赛背景

随着人工智能技术的快速发展,我们迎来了一个全新的数字时代,其中人工智能应用例如大语言模型已经成为我们日常生活和商业领域的不可或缺的一部分。然而,正如任何技术的发展都伴随着挑战一样,人工智能技术也不例外。一个日益严峻的问题是机器学习中的后门攻击,一种隐蔽而危险的威胁攻击方式,攻击者巧妙地将精心设计的恶意样本混入机器学习模型训练数据中,目的是在未来某种特定条件下激活并危害机器学习模型的安全性与完整性。目前,对于后门攻击的检测和删除方法的研究尚未达到成熟水平,与此同时,后门攻击技术的不断演进也增加了后门检测和清除的难度。此外,社会对AI系统的安全性和可信度提出了更高的期望,人们迫切需要能够信赖的AI系统来保护隐私、维护数据安全以及维护公共利益。正因如此,为了迎接这个严峻的挑战,组织一场后门攻击比赛显得尤为重要。这类比赛将鼓励技术创新,推动更强大的后门攻击检测和删除技术的研发,以提升AI系统的安全性水平,保障个人隐私和数据安全,并满足社会对AI系统可信度的急迫需求。

挑战一:模型后门检测

挑战内容:参赛者需要设计算法构建一个后门检测器,该检测器能够判断给定的神经网络模型中是否存在后门,并给出对应的攻击目标标签和后门触发器。我们为您提供了一个包含标签(后门、干净)的神经网络模型数据集,用于构建后门检测器。值得注意的是,每个后门神经网络模型的触发器以及对应的攻击目标标签是唯一。

挑战二:模型后门删除

挑战内容:参赛者需要设计一个能够有效删除神经网络中后门的算法。所设计的后门删除算法应尽可能的减少对主任务的影响,即不破坏模型主任务的性能。

我们对最后的成绩也是很菜,记录一下作为警醒吧。

作者比赛成绩

下面我们先介绍一下神经网络后门

了解神经网络后门

认识神经网络后门

了解神经网络后门最好的方法还是去读相关的论文,下面将我读的几篇论文列出来:

  • BackdoorSurvey_TNNLS
  • Black-Box_Detection_of_Backdoor_Attacks_With_Limited_Information_and_Data_ICCV_2021_paper
  • Data-free Backdoor Removal based on Channel Lipschitzness
  • Deep Learning Backdoor
  • Detecting Backdoor Attacks on Deep Neural Networks
  • Fine-mixingMitigating Backdoors in Fine-tuned Language Models
  • Fine-Pruning Defending Against Backdooring Attacks on Deep Neural Networks
  • Neural Attention Distillation Erasing Backdoor Triggers from Deep Neural Networks
  • Neural_cleanse_Identifying_and_mitigating_backdoor_attacks_in_neural_networks
  • STRIP A Defence Against Trojan Attacks on Deep Neural Networks(2019.2)
  • Threats to Training A Survey of Poisoning Atacks and Defenses on Machine Learning Systems

并且在这里推荐一下清华的神经网络后门相关资源的github地址:https://github.com/THUYimingLi/backdoor-learning-resources#survey

我在这里就简单地介绍一下神经网络后门:

首先看一下后门的定义:**后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。**在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。但是,如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成了安全风险,容易被黑客当成漏洞进行攻击。

神经网络后门也是如此,神经网络的后门攻击旨在将隐藏的后门嵌入深度神经网络(dnn)中,使被攻击模型在良性样本上表现良好,而如果隐藏的后门被攻击者指定的触发器激活,则其预测将被恶意改变。

这里我们使用“Backdoor Learning:A Survey”论文中的一幅图来解释:
后门示意图

这是一个识别手写数字0-9的模型,上图图展示了创建后门以及后门的作用的过程:

我们要求有后门的模型在对正常的输入可以有正常的输出,只有当我们输入一个trigger(触发器)时才会进入后门,图的最上面是设置trigger:只要图片中右下角存在那一个点,就会触发后门从而使对应的标签为0

怎样做到呢?就是在训练的时候,使用脏数据集来进行训练,也就是图片中间的部分:将带有trigger的图片的标签设置为0,训练模型,这种方式也叫作投毒攻击。

最后的结果就是正常输入数据都可以正常的进行识别,但是只要输入的图片右下角有一个小点就会指向标签0,这种后门的危害是巨大的,如果是用在无人驾驶汽车上,在交通标志中加入后门,就会造成严重的安全问题。

后门攻击分类

  • 基于投毒的后门攻击分类
    • BadNets:对一些训练样本进行投毒
    • (Invisible Backdoor Attacks)隐形后门攻击:有毒的样本可以逃避人类的检查,有配合图像隐写的(可以通过检查训练样本的图像标签关系来检测阴影攻击)
    • (Optimized Backdoor Attacks)优化后门攻击
    • (Semantic Backdoor Attacks)语义后门攻击:不改变样本,只修改样本的标签就可以生成触发器
    • (Sample-specific Backdoor Attacks)特定样本的后门攻击:不同的投毒样本对应不同的触发器
    • (Physical Backdoor Attacks)物理后门攻击:在物理世界中设置触发器
    • (All-to-all Backdoor Attacks)全对全后门攻击:多个触发器
    • (Black-box Backdoor Attacks)黑箱后门攻击:训练集不可访问时,使用替代训练样本来生成触发器
  • 非投毒的后门攻击
    • 权重导向的后门攻击
    • 修改结构的后门攻击

后门防御

  • 经验后门防御
    • 基于预处理的防御:在将样本输入DNN之前引入预处理模块,用来改变被攻击样本中包含的触发模式,因此修改后的触发器不再与隐藏的后门匹配,从而防止后门激活
    • 基于修改模型重建的防御:通过直接修改可疑模型来消除受感染模型中隐藏的后门
    • 基于触发合成的防御:合成后门触发器,通过抑制触发器的效果来消除隐藏的后门
    • 基于模型诊断的防御:基于预训练的元分类器来判断可以模型是否收到感染,并拒绝部署受到感染的模型
    • 基于毒抑制的防御:在训练过程中抑制有毒样本的有效性,以防止创建隐藏的后门
    • 基于训练样本过滤的防御:从训练数据集中过滤有毒样本
    • 基于测试样本过滤的防御:过滤测试过程中的样本,可以移除触发模式
  • 认证后门防御

复盘

我们的基本思路就是找到相应的论文并进行复现,对论文的开源代码进行修改使用,这也符合历年datacon的比赛风格。

赛题一

对于赛题一,我们采用的是”Neural_cleanse_Identifying_and_mitigating_backdoor_attacks_in_neural_networks“这篇2019年IEEE S&P顶会的论文,其被引量高达上千次。它的开源代码地址:https://github.com/bolunwang/backdoor

使用这篇论文也是在读了很多篇后门检测删除的论文后决定的,因为这篇论文给出了检测的方案,并且可以找到trigger,生成对应的trigger图像,并且检测出对应的label。但是在进行复现的时候遇到了问题,赛方给的模型都是torch生成的,但是因为这篇论文的代码是19年的,使用的是tensorflow,这两种框架的模型并不通用,所以我们的选择就有两个:

  1. 调整模型来适应代码
  2. 调整代码来适应模型

因为我们对大部分人是0基础,所以选择了看起来比较简单的调整模型,但是在调整模型时发现了很多问题。因为torch的版本不同所生成的模型结构也不同,而框架中给出的加载模型的API接口不能直接使用,所以我们就将pth模型转换为onnx中间模型再转换到tensorflow的模型h5格式。但是在进行了一系列的转换后,发现转换后的模型还是不能使用,因为多了一个功能层。这就到了我们的知识盲区了。再挣扎了一天的时间后,我们还是放弃了这个思路,我们就赶紧找另一篇论文进行复现。

第二篇论文是:”Rethinking the Reverse-engineering of Trojan Triggers“,它是AI领域的顶会NeurIPS 2022年的一篇论文,开源代码地址:https://github.com/RU-System-Software-and-Security/FeatureRE

这篇论文的问题在于它的代码没有直接给出逆向的trigger,也就是不能完成neural cleanse中生成trigger图像的功能。但是因为当时时间已经不多了,就直接上这一篇论文了。因为这是2022年的论文,这个时候很多研究者都是使用的torch框架了,这一篇也不例外,所以可以直接使用,但是问题还是来到了环境配置的问题。这篇论文使用的是torch1.7.0,而赛方使用的应该是torch2.x以上,而使用旧版本的torch在读入模型时还是出现了问题。

赛题是四个数据集MNIST、CIFAR、fashionMNIST、GTSRB训练的60个不同的模型,有resnet、googlenet等等。我们最后只调通了十几个模型,还有很多没有检测出结果,还是有点遗憾的,不过能力如此也能接受。

赛题二

赛题二并不是我负责的部分,但是因为没有赛题一后门的检测以及trigger的逆向,导致赛题二的后门删除也差强人意。赛题二我们参考”Neural Attention Distillation: Erasing Backdoor Triggers from Deep Neural Networks“,虽然不是顶刊但是有二百多的被引量,github源码地址:https://github.com/bboylyg/NAD,它使用一小部分干净数据就可以完成模型的清洗,但是需要trigger,这就尬住了所以最后不出意外模型优化的分数也很低,因为我们使用的是默认的常见trigger。

总结

这一次比赛是我第一次接触AI安全甚至是第一次接触AI,所以基础很差,DNN的基本结构都不清楚,所以比赛中也只是单纯地对开源代码的使用,在算法层面完全空白,日后如果继续AI安全的学习还是要从头开始学起,把基础打牢才能更好地解决实际的安全问题。

一次接触AI安全甚至是第一次接触AI,所以基础很差,DNN的基本结构都不清楚,所以比赛中也只是单纯地对开源代码的使用,在算法层面完全空白,日后如果继续AI安全的学习还是要从头开始学起,把基础打牢才能更好地解决实际的安全问题。
请添加图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值