智能网联汽车新兴攻击方式有哪些?分别有哪些特点?
一、基于车辆通信模块信息泄露的远程控制劫持攻击
安全研究人员发现,国内自主品牌汽车大多使用专用apn,通过车内通信模块中的T-box连接与车辆控制相关的TSP后端服务器。通过ISP拉出一条专线,可以在一定程度上保护后端服务器的安全,但也会给后端服务器带来更多的安全隐患。由于专网apn的存在,Tsp不会暴露在公网,导致Tsp安全人员忽略了专网和Tsp本身的安全问题。专网内部没有严格的安全访问控制,T-box过于可信,允许T-box随意访问专网内部资产。同时,许多不必要的基础设施服务也暴露在APN专网中,这将导致更多的安全风险。
二、基于生成对抗网络的自动驾驶算法攻击
这种攻击是由于在深度学习模型的训练过程中缺乏特殊的训练数据,如对策样本。因此,一种常用的防御方法是增强神经网络本身的鲁棒性,将对抗样本放入训练数据中,重新训练网络,同时在使用过程中标记未识别的样本,并使用这些数据不断训练网络,以不断提高输入数据的识别精度。但是,无论在训练过程中加入多少对抗性样本,仍然有新的对抗性攻击样本可以再次欺骗网络。
三、基于V2V通信协议的伪造数字签名攻击
车对车(V2V)通信,即车辆之间的直接对话,以协调其运动并防止碰撞,有望在不久的将来成为智能互联交通基础设施的重要组成部分。V2V通信不需要视线,这使得V2V成为激光雷达或摄像头等传感器技术的补充。然而,在重大安全问题得到解决之前,V2V技术不能被视为足够安全。例如,如果从另一辆车接收的信息预测即将发生的碰撞,驾驶员需要迅速做出反应。因此,对传入消息进行身份验证非常重要;否则,可能会根据伪造的信息采取果断行动(如转弯),导致碰撞、车道偏离或其他不安全的结果。对于这种攻击,区块链技术可以更有效地保证车辆身份认证的安全性。
网络攻击的几种类型
网络攻击(Cyber
Attacks,也称赛博攻击)是指针对计算机信息系统、基础设施、计算机网络或个人计算机设备的,任何类型的进攻动作。对于 计算机 和计算机网络来说,破坏、揭露、修改、使软件或服务失去功能、在没有得到授权的情况下偷取或访问任何一计算机的数据,都会被视为于计算机和计算机网络中的攻击。
网络攻击的种类
1、主动攻击
主动攻击会导致某些数据流的篡改和虚假数据流的产生。这类攻击可分为篡改、伪造消息数据和终端(拒绝服务)。
(1)篡改消息
篡改消息是指一个合法消息的某些部分被改变、删除,消息被延迟或改变顺序,通常用以产生一个未授权的效果。如修改传输消息中的数据,将“允许甲执行操作”改为“允许乙执行操作”。
(2)伪造
伪造指的是某个实体(人或系统)发出含有其他实体身份信息的数据信息,假扮成其他实体,从而以欺骗方式获取一些合法用户的权利和特权。
(3)拒绝服务
拒绝服务即常说的DoS(Deny of Service),会导致对通讯设备正常使用或管理被无条件地中断。通常是对整个网络实施破坏,以达到降低性能、终端服务的目的。这种攻击也可能有一个特定的目标,如到某一特定目的地(如安全审计服务)的所有数据包都被阻止。
2、被动攻击
被动攻击中攻击者不对数据信息做任何修改,截取/窃听是指在未经用户同意和认可的情况下攻击者获得了信息或相关数据。通常包括窃听、流量分析、破解弱加密的数据流等攻击方式。
(1)流量分析
流量分析攻击方式适用于一些特殊场合,例如敏感信息都是保密的,攻击者虽然从截获的消息中无法的到消息的真实内容,但攻击者还能通过观察这些数据报的模式,分析确定出通信双方的位置、通信的次数及消息的长度,获知相关的敏感信息,这种攻击方式称为流量分析。
(2)窃听
窃听是最常用的手段。应用最广泛的局域网上的数据传送是基于广播方式进行的,这就使一台主机有可能受到本子网上传送的所有信息。而计算机的网卡工作在杂收模式时,它就可以将网络上传送的所有信息传送到上层,以供进一步分析。如果没有采取加密措施,通过协议分析,可以完全掌握通信的全部内容,窃听还可以用无限截获方式得到信息,通过高灵敏接受装置接收网络站点辐射的电磁波或网络连接设备辐射的电磁波,通过对电磁信号的分析恢复原数据信号从而获得网络信息。尽管有时数据信息不能通过电磁信号全部恢复,但可能得到极有价值的情报。
由于被动攻击不会对被攻击的信息做任何修改,留下痕迹很好,或者根本不留下痕迹,因而非常难以检测,所以抗击这类攻击的重点在于预防,具体措施包括虚拟专用网VPN,采用加密技术保护信息以及使用交换式网络设备等。被动攻击不易被发现,因而常常是主动攻击的前奏。
被动攻击虽然难以检测,但可采取措施有效地预防,而要有效地防止攻击是十分困难的,开销太大,抗击主动攻击的主要技术手段是检测,以及从攻击造成的破坏中及时地恢复。检测同时还具有某种威慑效应,在一定程度上也能起到防止攻击的作用。具体措施包括自动审计、入侵检测和完整性恢复等。
攻击的方法主要有:
[if !supportLists]· [endif]口令入侵
[if !supportLists]· [endif]特洛伊木马
[if !supportLists]· [endif]WWW欺骗
[if !supportLists]· [endif]电子邮件
[if !supportLists]· [endif]节点攻击
[if !supportLists]· [endif]网络监听
[if !supportLists]· [endif]黑客软件
[if !supportLists]· [endif]安全漏洞
[if !supportLists]· [endif]端口扫描
如何避免网络攻击呢,第一种是同源检测的方法
服务器根据 http 请求头中 origin 或者referer 信息来判断请 求是否为允许访问的站点,从而对请求进行过滤。当 origin 或者 referer 信息都不存在的 时候,直接阻止。这种方式的缺点是有些情况下referer 可以被伪造。还有就是我们这种方法 同时把搜索引擎的链接也给屏蔽了,所以一般网站会允许搜索引擎的页面请求,但是相应的页面 请求这种请求方式也可能被攻击者给利用。
第二种方法是使用 CSRF Token 来进行验证
服务器向用户返回一个随机数 Token ,当网站 再次发起请求时,在请求参数中加入服务器端返回的 token ,然后服务器对这个 token 进行 验证。这种方法解决了使用 cookie 单一验证方式时,可能会被冒用的问题,但是这种方法存在一个缺点就是,我们需要给网站中的所有请求都添加上这个 token,操作比较繁琐。还有一 个问题是一般不会只有一台网站服务器,如果我们的请求经过负载平衡转移到了其他的服务器,但是这个服务器的 session 中没有保留这个 token 的话,就没有办法验证了。这种情况我们可以通过改变 token 的构建方式来解决。
第三种方式使用双重 Cookie 验证的办法
服务器在用户访问网站页面时,向请求域名注入一个 Cookie,内容为随机字符串,然后当用户再次向服务器发送请求的时候,从cookie 中取出 这个字符串,添加到 URL 参数中,然后服务器通过对 cookie 中的数据和参数中的数据进行比 较,来进行验证。使用这种方式是利用了攻击者只能利用 cookie,但是不能访问获取 cookie 的特点。并且这种方法比 CSRF Token 的方法更加方便,并且不涉及到分布式访问的问题。这 种方法的缺点是如果网站存在 XSS 漏洞的,那么这种方式会失效。同时这种方式不能做到子域 名的隔离。
第四种方式Samesite Cookie
是使用在设置 cookie 属性的时候设置 Samesite限制 cookie 不能作为被第三 方使用,从而可以避免被攻击者利用。Samesite 一共有两种模式,一种是严格模式,在严格模式下 cookie 在任何情况下都不可能作为第三方 Cookie 使用,在宽松模式下,cookie 可以 被请求是 GET 请求,且会发生页面跳转的请求所使用。
Samesite Cookie 表示同站 cookie,避免 cookie 被第三方所利用。将 Samesite 设为 strict ,这种称为严格模式,表示这个 cookie 在任何情况下都不可能作 为第三方 cookie。将 Samesite 设为 Lax ,这种模式称为宽松模式,如果这个请求是个 GET 请求,并且这个请求改变了当前页面或者打开了新的页面,那么这个 cookie 可以作为第三方 cookie,其余情 况下都不能作为第三方 cookie。
使用这种方法的缺点是,因为它不支持子域,所以子域没有办法与主域共享登录信息,每次转入子域的网站,都回重新登录。还有一个问题就是它的兼容性不够好。
神经网络中的对抗攻击与对抗样本
对抗攻击
对抗攻击论文参考:
《Intriguing properties of neural networks》
《神经网络有趣的特性》
《Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey》,以下简称『Survey』。
图片做适当修改后能欺骗深度学习模型的可能性
1.举例理解:
左边是一张能够被GoogLeNet正常分类为熊猫的图片,在添加一定的噪音后变成右图,在人的肉眼看来,它还是熊猫,但GoogLeNet会判定为长臂猿。这种被修改后人类无法明显察觉,却被机器识别错误的数据即为 对抗样本 ,而这整个过程就可以理解为 对抗攻击 。
2.数学理解:
神经网络中每层神经元的输入 a = g(Wx+b),其中 g 为激活函数,W 为权重参数,x 为上一层的样本数据,b 为偏置参数,那么从拓扑学角度来看,在一个二维平面上,这个过程相当于哪几个步骤呢?
(1)一次使用权重参数矩阵 W 的线性变换
(2)一次使用偏执向量 b 的移动
(3)一次应用非线性激活函数 g 的变换
在 二维平面 ,其实是将整个平面进行了 旋转、移动和拉伸 三步。
分类问题
简单分类问题:通过较少几次变换将问题转换为一条直线可分割的空间。
既是一层神经网络就可以完成分类,通过变换空间布局,最终通过一条直线完成分类。
举例:
简单转换ing........
转换结果看下图
复杂分类问题:通过多几次的转换完成将问题转换为一条直线可分割的空间。
就是多层神经网络完成分类,通过变换空间布局,最终通过一条直线完成分类。
举例:
动态多步转换
以上是从低维度理解神经网络的训练,其中也有难以拉伸的例外,下图所示的圆套圆的情况,就是难以在二维空间将其拉伸到理想的位置的例子。
但,增加神经元,可以在 三维空间 中轻松将其分离。
看!
归纳 同样对于复杂问题可以通过,增加神经元在高维度通过更长且复杂的方式解决。
但是例如两个相互套起来的环,按照推测需要在四维空间中才能完全分开,然而我们难以想象四维空间,在现实世界的数据集中,这种死结或者缠绕问题可能会更复杂。
对于神经网络来,可以选择 将打成死结的数据尽可能拉伸开,而不是完全解开 ,如下图,对于分类问题来说,已经具有较高的准确率和召回率。
部分情况下,为了更精确地分类,较宽的神经网络可能相对深度来说更重要。
综上所述
1. 神经网络中包含语义信息的不在每个独立的神经单元,而是整个空间。 神经网络在最后一层能将样本中诸多变化的因子理清楚并理解其语义,并不是因为某个独立神经元中包含了什么特定的语义,而是 对整个空间进行变换后从最终的表征层中学到的 ,经过学习,神经网络会 放大某些相关因子,同时缩小某些无关因子 。
2. 神经网络学习到的输入到输出的映射在很大程度上是不连续的。 就像上面图中为了解开一个死结所做的拉伸结果一样, 在人看来,在拉伸距离较大的地方我们可以认为这种映射是连续的, 然而 对于仍然缠绕在一起的部分,之前可以用来划分界限的直线或者超平面已经无法连续 。
通过仔细观察可以区分出来,但是上文只是一个简单的例子,现实世界中的真实数据较为复杂,对于肉眼来说可能很难分清楚缠绕在一起的部分。对于神经网络来说, 对抗样本已经严重的跨过了用于分类的界限 ,而对于肉眼其实还 看不出来它有移动。
()线性特性的攻击行为()和()高效制造对抗样本的方法()
参考论文:
《Explaining and harnessing adversarial examples》
《对抗性例子的解读和掌握》
深度神经网络在高纬空间中的线性特性已经足以产生这种攻击行为 ,并提出了一种 更高效生成对抗样本的方法 ,接下来我们就简单分析一下这一理论和方法。
目前神经网络为了提高训练效率所使用的激活函数在局部都过于线性。
例如:
类比先前举出的拓扑学例子,在 最后的表征层 都是 通过直线或超平面完成的分类 ,在线性的假设下,暂且不通过二维或三维空间来理解,先从一个简单的数学公式角度开始。
数学解释
公式内容解释:
w 是训练好的参数向量
x 表示真实样本数据向量
η 表示给图像加入的噪音向量
x ~表示加入噪音后新生成的样本
当加入足够小的 η 时,肉眼无法区分出 x 的变化,直观感觉上左边的式子可能也不会变化很大。
事实上 ,然而 η 当的方向与 w 完全一致的时候,即使很小,也会使整个激活值变化很大。
假设证明:
如果 w 是一个 n 维向量,而其权值的平均大小为 m,那么激活值将会增加 nm。可见,在一个肉眼几乎无法差觉的扰动干扰下,对神经网络最终激活层的计算会产生巨大的干扰,从而迷惑神经网络训练出来的模型。
寻找正确方向
当 η 与 w 的方向一致时会使激活值最大,那么,如何找到这个正确的方向呢?
结论,那就是损失函数在待构造样本上的梯度方向,即下面的式子。
ε 是一个调节系数
sign() 是一个符号函数,代表的意思也很简单,就是取一个值的符号
(当值大于 0 时取 1,当值等于 0 时取 0,当值小于 0 时取 -1)
▽ 表示求 x 的梯度,可以理解为偏导,
J 是训练模型的损失函数。
结论的由来
在正常的神经网络模型训练过程中,有一个过程叫反向传播,就是对参数求偏导,然后将参数更新,我们结合下面这张图看一下。
假设图中的函数即为 损失函数 ,为了使损失函数降到最低,我们会根据当前值的梯度去调整。
当梯度小于 0 的时候我们可以看出,当前值需要右移。
而当梯度大于 0 的时候,当前值需要左移。
这个过程实际上就是用 θ 减去 θ。扩展到损失函数 J(θ, x, y) 中,θ 即为 我们要调整的参数 ,因此在样本 x 和 y 不改变的情况下,我们会**不断去调整参数 θ **以寻求局部最优解,即 θ = θ - θ 。
生成对抗样本,也可以采用类似的方法,那就是 固定参数 θ,调整 x 同时使损失函数增大 ,而不是变小,此时就应该让 x 往相反的方向走,即 x = x + x ,这样是不是很容易可以理解上面 η 的定义呢?在实践中,我们还需要通过 ε 这个参数来 调节噪音的大小 ,这种方法相比之前提到的优化方法非常高效,基本只需要一次计算就可以找到对抗样本,因此作者将这种方法叫做 快速梯度符号法 (Fast Gradient Sign Method,FGSM)。总结一下FGSM,这种方法通过替换目标值 y 就可以 让攻击样本朝着指定的分类目标走 ,即,可以做任意目标的欺骗。
将线性假设简化到二维空间,我们要求的 η 其方向正好就接近于参数 w 的方向,不再展开说明,有兴趣的读者可以自行画一画。
建立在一个高维空间线性的假设或猜测前提下,需要 实验 支撑,根据下列图片分析展开。
图片解释
这张图是对数据集CIFAR-10的分类器的决策边界示意图。
其中每个小格子代表的是不同的CIFAR-10样本,
每个小格子中:
横向从左往右代表的是FGSM算法中的梯度方向,
纵向代表的是FGSM梯度方向的正交方向,
白色表示模型能分类正确的情况
彩色代表预测出错的情况
不同的颜色代表不同的错误预测分类。
可以看出,在出错的区域都程线性分布,另外,如果横轴的方向走的不够远,即便再往其他方向走都无法使模型出错,而一单进入这个区域,就会出现大量的对抗样本。而在随机找到的对抗样本中,这种分布也是很随机的,甚至很难找到,见下图。
从实验结果表明
高维空间中的线性假设也是合理的
举例
一匹叫做 Clever Hans 的马,刚出现的时候人们认为这匹马会做算术,但实际上它只是会阅读人的表情,当它点马蹄的次数接近正确答案时,人们的表情会更兴奋,它就知道该这个时候停止了。
隐喻神经网络,一个测试效果良好的分类器,其实并不像人类一样学习到了所分类样本的真正底层概念,只不过刚好构建了一个在训练数据上运行相当良好的模型,所以,你以为你以为的就是你以为的吗?
分类器能够在训练集的不同子集上训练时获得大致相同的分类权重,因为机器学习算法能够泛化, 基础分类权重的稳定性反过来又会导致对抗性样本的稳定性。因此, 对抗攻击可以认为是存在于任何神经网络模型。
以上是论文二的线性特性的攻击行为
高效制造对抗样本的方法
目前来看还没有能够完全抵抗这种攻击的方法,其实结合攻击的原理也不难看出,即便分类器做得再好,总能使一个样本用最小的干扰走到错误的分类区域,我们能做的更多是如何构造鲁棒性更强的模型,同时也保持对这个领域的关注。『Survey』(注意第一篇论文的引用有注释)中总结的目前抵御攻击的办法可以分为三大类:
1.修改训练样本 ———— 通过添加更多的对抗样本到训练集中可以有效避免一部分攻击 ,但这更像是一种无奈的做法, 当扩大样本集的时候,其实分类边界有可能也在随之扩大 。
2.修改训练网络 ,这类方法会对训练网络做出一定调整,其中有一种方式是模拟生物学 在最后一层使用更加非线性的激活函数 ,但这种方式又会 导致训练效率和效果下降 。修改训练网络的方法分为 完全抵抗 和 仅检测 两种方式,完全抵抗其实就是让模型能将对抗样本识别为正确的分类,而仅检测是为了发现这种攻击样本,从而拒绝服务。
3.附加网络 ,这种方式是在 不改变原有模型的情况下使用额外的网络进行辅助 ,这样可以使原有网络保持不变,其中最有效的一种方式是生成式对抗网络——GAN。同样的,这种方式也分为 完全抵抗 和 仅检测 两种方式。
总结一下
定义:
对抗样本:是指在数据集中通过故意添加细微的干扰所形成的输入样本,会导致模型以高置信度给出一个错误的输出。
原因分析:
对抗样本出现的主要原因之一是过度线性, 神经网络主要是基于线性块构建的,实现的整体函数被证明是高度线性的,如果一个线性函数具有许多输入,那么它的值可以非常迅速地改变。
参考:
0条大神的评论