内容安全复习 7 - 对抗攻击与防御

2024-06-22 23:36

本文主要是介绍内容安全复习 7 - 对抗攻击与防御,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 概述
  • 攻击
    • 对抗性攻击的目的
    • 攻击的损失函数
    • 如何攻击
    • FGSM
    • 黑盒与白盒
    • 真实世界的攻击
  • 防御
    • 被动防御
    • 主动防御

概述

  • 动机
    (1)不仅要在实验室中部署机器学习分类器,也要在现实世界中部署;实际应用
    (2)分类器对噪声具有鲁棒性和在“大多数情况下”有效是不够的。
    (3)想要鲁棒的分类器用来对付用户愚弄分类器的输入;面对人类的恶意
    (4)特别适用于垃圾邮件分类、恶意软件检测、网络入侵检测等。
  • 攻击 AI
    在这里插入图片描述
    上图描述了一些攻击 AI 的方式以及后果。
    (1)对抗攻击会导致破坏模型完整性;
    (2)漏洞挖掘和利用会导致破坏模型可用性;
    (3)模型萃取和数据窃取会导致破坏模型机密性。
  • 逃逸攻击
    指攻击者在不改变目标机器学习系统的情况下,通过构造特定输入样本以完成欺骗目标系统的攻击
  • 投毒攻击
    攻击者通过篡改训练数据或添加恶意数据来影响模型训练过程,最终降低其在预测阶段的准确性。

攻击

对抗性攻击的目的

对抗性攻击的目的是通过在原始图像中添加人眼无法察觉的扰动,使得模型的预测结果出错。

攻击的损失函数

在这里插入图片描述

  • 训练损失: L t r a i n ( θ ) = C ( y 0 , y t r u e ) L_{train}(\theta)=C(y^0,y^{true}) Ltrain(θ)=C(y0,ytrue)。这个公式表示训练神经网络的损失函数,其中 y 0 y^0 y0 是神经网络对原始输入 x 0 x^0 x0 的输出, y t r u e y^{true} ytrue 是该输入的真实标签例如,猫 C C C 衡量 y 0 y^0 y0 y t r u e y^{true} ytrue 之间的差异。
  • 无目标攻击损失: L ( x ′ ) = − C ( y ′ , y t r u e ) L(x')=-C(y',y^{true}) L(x)=C(y,ytrue)。在这种情况下, y ′ y' y 是对 x ′ x' x 的输出。无目标攻击的目的是使 y ′ y' y 偏离 y t r u e y^{true} ytrue,即使预测与真实标签差异增大。因此我们取负的 C C C,最大化估计差异。
  • 有目标攻击损失: L ( x ′ ) = − C ( y ′ , y t r u e ) + C ( y ′ , y f a l s e ) L(x')=-C(y',y^{true})+C(y',y^{false}) L(x)=C(y,ytrue)+C(y,yfalse)。有目标攻击的目的是使 y ′ y' y 更接近一个错误的估计 y f a l s e y^{false} yfalse,不同与无目标,有目标攻击多了“目的地”例如,把猫的图片分类为鱼。第一项 − C ( y ′ , y t r u e ) -C(y',y^{true}) C(y,ytrue) 希望输出值远离真实标签、第二项 C ( y ′ , y f a l s e ) C(y',y^{false}) C(y,yfalse) 希望输出接近错误标签。
  • 约束: d ( x 0 , x ′ ) ≤ ϵ d(x^0, x') \le \epsilon d(x0,x)ϵ。具体如下图,右上角展示了 x ′ x' x x 0 x^0 x0 之间的距离 Δ x \Delta x Δx。图中下方展示了两种衡量距离的方法。 L 2 − L2- L2 范数和 L − ∞ L-\infty L 范数。
    在这里插入图片描述

如何攻击

就像训练一个神经网络,但是网络参数 θ \theta θ x ′ x' x替代。
在这里插入图片描述

  • x ∗ = a r g min ⁡ d ( x 0 , x ′ ) ≤ ϵ L ( x ′ ) x^*=arg \min_{d(x^0, x') \le \epsilon} L(x') x=argmind(x0,x)ϵL(x),这个公式指:在约束条件下 d ( x 0 , x ′ ) ≤ ϵ d(x^0, x') \le \epsilon d(x0,x)ϵ 原始输入与扰动图像之间的距离不超过ϵ下,找到使 L ( x ′ ) L(x') L(x) 最小的 x ′ x' x
  • 由此可以看出,在对抗性攻击种,我们的目标是:希望生成一个扰动图像,在这个扰动图像接近原始图像且满足约束条件的前提下,最小化损失。最小化损失L(x')在上面的有目标攻击和无目标攻击中,都体现为C更大,即更加偏离真实标签,攻击的效果越好。
  • 下方展示了 f i x ( x t ) fix(x^t) fix(xt)中距离的计算方法。
    在这里插入图片描述

FGSM

FGSM 全称 Fast Gradient Sign Method,快速梯度逐步算法。
在这里插入图片描述
在这里插入图片描述

黑盒与白盒

  • 在前面的攻击中,我们固定网络参数 θ \theta θ 而寻找最优的输入 x ′ x' x。如果攻击时,我们需要知道 θ \theta θ,那么这就叫做白盒攻击

  • 白盒攻击需要 θ \theta θ,那么如果我们不公布(绝大多数 API 都不提供网络参数),是否安全呢?
    不会,因为存在黑盒攻击。

  • 在黑盒攻击中:
    (1)如果我们有目标网络的训练数据,可以使用这些数据训练一个代理网络 (proxy network)。这个代理网络模仿目标网络的行为,攻击者可以在代理网络上进行对抗样本生成,然后将这些对抗样本应用于目标网络。用目标的网络数据生成网络,在网络上模拟,然后在模拟网络上生成AE(对抗性样例)。
    (2)如果我们没有目标网络的训练数据,则需要获取一些目标网络的输入和预测输出,以此来构建代理网络,然后进行和训练数据生成代理网络后一样的攻击。和(1)的区别就是,是用目标网络的输入和预测输出生成的代理网络。

真实世界的攻击

单像素攻击

防御

对抗性攻击无法通过正则化,dropout 和模型集成来防御。

防御可以分为两种:主动防御和被动防御。

被动防御

在不修改模型的情况下找到攻击图像。

  • 去噪
    除非对手不知道去噪的存在,否则还是可能受到白盒攻击。
  • 随机化
    (1)如果攻击者不知道随机化存在,则效果最佳;
    (2)如果知道,由于随机模式过多,防御依然有效。
  • 梯度掩码/隐藏
    治标不治本,本质是提高了攻击者搞清楚弱电的难度,模型本身稳定性并未提高。

主动防御

训练一个对对抗性攻击具有鲁棒性的模型。

  • 对抗训练
    这种方法对训练目标算法 A 有效,但对未被训练的目标算法 B 无效。
  • 防御性蒸馏
    (1)通过梯度生成的对抗性样例攻击性降低;
    (2)随蒸馏温度提升,对抗性样例生成困难,提升模型鲁棒性;
    (3)对黑盒攻击无能为力;
    (4)仅适用于基于概率分布的 DNN 模型。

这篇关于内容安全复习 7 - 对抗攻击与防御的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085730

相关文章

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

Linux从文件中提取特定内容的实用技巧分享

《Linux从文件中提取特定内容的实用技巧分享》在日常数据处理和配置文件管理中,我们经常需要从大型文件中提取特定内容,本文介绍的提取特定行技术正是这些高级操作的基础,以提取含有1的简单需求为例,我们可... 目录引言1、方法一:使用 grep 命令1.1 grep 命令基础1.2 命令详解1.3 高级用法2

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

Java中常见队列举例详解(非线程安全)

《Java中常见队列举例详解(非线程安全)》队列用于模拟队列这种数据结构,队列通常是指先进先出的容器,:本文主要介绍Java中常见队列(非线程安全)的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一.队列定义 二.常见接口 三.常见实现类3.1 ArrayDeque3.1.1 实现原理3.1.2

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2