内容安全复习 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 - 对抗攻击与防御
文章目录 概述攻击对抗性攻击的目的攻击的损失函数如何攻击FGSM黑盒与白盒真实世界的攻击 防御被动防御主动防御 概述 动机 (1)不仅要在实验室中部署机器学习分类器,也要在现实世界中部署;实际应用 (2)分类…...
淘宝店铺商家订单API-接入ERP,多平台订单同步的利器
淘宝开放平台给商家们提供了丰富的API,以方便大家扩展业务流程。但是需要调用这些API,商家们要提交资质审核,审核条件也是很严格的。第三方数据公司的存在可以为大家解决这个问题。 custom-自定义API操作 请求参数 请求参数:ap…...
【微前端-Single-SPA、qiankun的基本原理和使用】
背景 在实际项目中,随着日常跌倒导致的必然墒增,项目会越来越冗余不好维护,而且有时候一个项目会使用的其他团队的功能,这种跨团队不好维护和管理等等问题,所以基于解决这些问题,出现了微前端的解决方案。…...
多元化功能空间,打造影像产业生态圈
国际数字影像产业园的多元化功能空间定位涵盖了从产业实训、研发创新、资产交易、集群发展到孵化服务、大数据支持、产学研合作以及人力资源服务等多个方面,旨在为数字影像产业提供全方位的支持和服务,推动产业的升级和发展。 1、产业实训空间࿱…...
华为鸿蒙正式杀入工业自动化,反攻开始了!
导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 在近日举行的2024华为开发者大会上,华龙讯达与华为共同发布了基于鸿蒙内核技术的“HualongOS 华龙工业操作系统”,这一里…...
学历优先还是专业优先?高考志愿填报的抉择
学历优先还是专业优先?高考志愿填报的抉择 2024年高考帷幕落下,新一轮的思考与选择悄然来临。对于每一位高考考生,选择学校和专业是开启大学新生活的两个前置必选项。然而,有时候“鱼与熊掌不可兼得”,在分数受限的情…...
SpringAOP常用功能实现
1. 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 2. 核心通知 package com.example.aspect;import lombok.SneakyThrows; import org.aspectj.l…...
Java基础的重点知识-04-封装
文章目录 面向对象思想封装 面向对象思想 在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 面向对象思想的三大基本特征: 封装、继承、多态 1.类和对象 类是对象的抽象ÿ…...
win7 的 vmware tools 安装失败
没有安装vmware tools的系统屏幕显示异常。桌面是比较小的图像,四周是黑边在 vmware 软件里 方法1,下补丁 https://www.catalog.update.microsoft.com/Search.aspx?qkb4474419 方法2,使用老版vm tools http://softwareupdate.vmware.com/c…...
【杂记-浅谈OSPF协议之IR、ABR、ASBR、BR】
OSPF协议之IR、ABR、ASBR、BR 一、 内部路由器 IR二、骨干路由器 BR三、边界路由器 ABR四、自治系统边界路由器 ASBR 一、 内部路由器 IR 概念 IR,Internal Router,即内部路由器,指的是所有接口都属于同一个OSPF区域的路由器。这类路由器只维…...
element 问题整合
没关系,凡事发生必有利于我 文章目录 一、el-table 同级数据对齐及展开图标的位置问题二、el-table 勾选框为圆角及只能勾选一个 一、el-table 同级数据对齐及展开图标的位置问题 element 官方提供的扩展tree型数据在表格里默认是靠左边对齐,项目需求需要…...
Linux下vi文件的时候替换指定的内容
需要将nginx.conf中的192.168.222.188,替换为178.21.120.225 操作步骤: 1、vi 文件 vi nginx.conf2、输入 :%s/192.168.222.188/178.21.120.225/g3、最后保存 :wq...
【知识学习】阐述Unity3D中MaterialTexture的概念及使用方法示例
在Unity3D中,Material和Texture是渲染过程中非常重要的两个概念,它们共同工作以实现丰富的视觉效果。 Material Material是Unity中的一个组件,用于定义物体表面的视觉属性。一个Material可以包含多种属性,如颜色、纹理、反射率等…...
java创建0byte的空文件
在Java中,使用File类创建一个文件通常不会自动创建一个0字节的文件,它只是用来表示文件系统中的一个文件或目录。如果你想要创建一个0字节的文件,你需要使用FileOutputStream来写入文件。以下是创建一个0字节文件的示例代码: imp…...
Qt 实战(6)事件 | 6.2、事件过滤器
文章目录 一、事件过滤器1、什么是事件过滤器?2、如何实现事件过滤器?3、应用示例4、总结 前言: 在Qt的事件处理机制中,事件过滤器(Event Filter)是一种非常强大且灵活的工具,它允许开发者在一个…...
【PyTorch】【机器学习】图片张量、通道分解合成和裁剪
一、导入所需库 from PIL import Image import torch import numpy as np import matplotlib.pyplot as plt二、读取图片 pic np.array(Image.open(venice-boat.jpg))上述代码解释:先用Image.open()方法读取jpg格式图片,再用np.array()方法将图片转成…...
如何提高工业交换机的电源功耗?
工业交换机的电源功耗是指在工作状态下所消耗的能量。随着工业自动化技术的发展,工业交换机在生产和制造领域中扮演着至关重要的角色。它们通过连接各种设备和系统,实现信息的传输和处理,提高生产效率和质量。然而,工业交换机的大…...
源站静态文件更新后,CDN会自动刷新吗
源站静态文件更新后,CDN不会自动刷新缓存,而是在缓存时间过期后,才会经由用户触发回源获取最新文件。如希望在缓存过期时间之前,实现CDN节点与源站静态文件同步更新,则需要通过CDN控制台-【刷新预取】菜单,…...
Token的应用场景
JWT JWT由三部分组成:头部(Header)、有效载荷(Payload)和签名(Signature)头部通常指定了Token的类型和使用的哈希算法;有效载荷包含了一系列的声明,例如用户的ID、Token…...
机器学习课程复习——奇异值分解
1. 三种奇异值分解 奇异值分解(Singular Value Decomposition, SVD)包含了: 完全奇异值分解(Complete Singular Value Decomposition, CSVD)紧奇异值分解(Tight Singular Value Decomposition, TSVD&…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
