利用深度学习实现网络安全.docx

上传人:b****3 文档编号:1842941 上传时间:2022-10-24 格式:DOCX 页数:11 大小:222.07KB
下载 相关 举报
利用深度学习实现网络安全.docx_第1页
第1页 / 共11页
利用深度学习实现网络安全.docx_第2页
第2页 / 共11页
利用深度学习实现网络安全.docx_第3页
第3页 / 共11页
利用深度学习实现网络安全.docx_第4页
第4页 / 共11页
利用深度学习实现网络安全.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

利用深度学习实现网络安全.docx

《利用深度学习实现网络安全.docx》由会员分享,可在线阅读,更多相关《利用深度学习实现网络安全.docx(11页珍藏版)》请在冰豆网上搜索。

利用深度学习实现网络安全.docx

利用深度学习实现网络安全

利用深度学习实现网络安全

目录

一、前言3

二、信息安全领域中深度学习系统的现状3

三、前馈神经网络概述5

四、案例研究:

使用深度学习检测TOR流量8

五、数据实验-TOR流量检测12

六、尾记16

一、前言

本文简要介绍深度学习以及它支持的一些现有信息安全应用,并提出一个基于深度学习的TOR流量检测方案。

我们看到的大多数深度学习应用程序通常面向市场、销售、金融等领域,但在使用深度学习来保护这些领域的产品和业务、避免恶意软件和黑客攻击方面,则鲜有文章或资源。

像谷歌、脸谱、微软和SalesForce这样的大型科技公司已经将深度学习嵌入他们的产品之中,但网络安全行业仍在迎头赶上。

这是一个具有挑战性的领域,需要我们全力关注。

               

本文中,我们简要介绍深度学习(DeepLearning,DL)以及它支持的一些现有信息安全(此处称为InfoSec)应用。

然后,我们深入研究匿名TOR流量检测这个有趣的问题,并提出一个基于深度学习的TOR流量检测方案。

本文的目标读者是已经从事机器学习项目的数据科学专业人员。

本文内容假设您具备机器学习的基础知识,而且当前是深度学习和其应用案例的初学者或探索者。

二、信息安全领域中深度学习系统的现状

深度学习不是解决所有信息安全问题的“灵丹妙药”,因为它需要广泛的标注数据集。

不幸的是,没有这样的标记数据集可供使用。

但是,有几个深度学习网络对现有解决方案做出重大改进的信息安全案例。

恶意软件检测和网络入侵检测恰是两个这样的领域,深度学习已经显示出比基于规则和经典机器学习的解决方案有更显著的改进。

网络入侵检测系统通常是基于规则和签名的控件,它们部署在外围以检测已知威胁。

攻击者改变恶意软件签名,就可以轻易地避开传统的网络入侵检测系统。

Quamar等[1]在他们的IEEE学报论文中指出,有望采用自学的基于深度学习的系统来检测未知的网络入侵。

基于深度神经网络的系统已经用来解决传统安全应用问题,例如检测恶意软件和间谍软件[2]。

与传统的机器学习方法相比,基于深度学习的技术的泛化能力更好。

Jung等[3]基于深度学习的系统甚至可以检测零日恶意软件。

毕业于巴塞罗那大学的Daniel已经做了大量有关CNN(ConvolutionalNeuralNetworks,卷积神经网络)和恶意软件检测的工作。

他在博士论文中提及,CNNs甚至可以检测变形恶意软件。

现在,基于深度学习的神经网络正在用户和实体行为分析(UserandEntityBehaviourAnalytics,UEBA)中使用。

传统上,UEBA采用异常检测和机器学习算法。

这些算法提取安全事件以分析和基线化企业IT环境中的每一个用户和网络元素。

任何偏离基线的重大偏差都会被触发为异常,进一步引发安全分析师调查警报。

UEBA强化了内部威胁的检测,尽管程度有限。

现在,基于深度学习的系统被用来检测许多其他类型的异常。

波兰华沙大学的PawelKobojek[4]使用击键动力学来验证用户是否使用LSTM网络。

Capitalone安全数据工程总监JasonTrost发表了几篇博客[5],其中包含一系列有关深度学习在InfoSec应用的技术论文和演讲。

三、前馈神经网络概述

人工神经网络的灵感来自生物神经网络。

神经元是生物神经系统的基本单元。

每一个神经元由树突、细胞核和轴突组成。

它通过树突接收信号,并通过轴突进行传递(图1)。

计算在核中进行。

整个网络由一系列神经元组成。

AI研究人员借用这个原理设计出人工神经网络(ArtificialNeuralNetwork,ANN)。

在这样的设置下,每个神经元完成三个动作:

∙它收集来自其他不同神经元的输入或者经过加权处理的输入

∙它对所有的输入进行求和

∙基于求和值,它调用激活函数

因此,每个神经元可以把一组输入归为一类或者其他类。

当仅使用单个神经元时,这种能力会受到限制。

但是,使用一组神经元足以使其成为分类和序列标记任务的强大机制。

图1:

我们能获得的最大灵感来自大自然——图中描绘了一个生物神经元和一个人工神经元

可以使用神经元层来构建神经网络。

网络需要实现的目标不同,其架构也是不同的。

常见的网络架构是前馈神经网络(FeedForWardNeuralNetwork,FFN)。

神经元在无环的情况下线性排列,形成FFN。

因为信息在网络内部向前传播,它被称为前馈。

信息首先经过输入神经元层,然后经过隐藏神经元层和输出神经元层(图2)。

图2:

具有两个隐藏层的前馈网络

与任何监督学习模型一样,FFN需要使用标记的数据进行训练。

训练的形式是通过减少输出值和真值之间的误差来优化参数。

要优化的一个重要参数是每个神经元赋予其每个输入信号的权重。

对于单个神经元来说,使用权重可以很容易地计算出误差。

然而,在多层中调整一组神经元时,基于输出层算出的误差来优化多层中神经元的权重是具有挑战性的。

反向传播算法有助于解决这个问题[6]。

反向传播是一项旧技术,属于计算机代数的分支。

这里,自动微分法用来计算梯度。

网络中计算权重的时候需要用到梯度。

在FFN中,基于每个连接神经元的激活获得结果。

误差逐层传播。

基于输出与最终结果的正确性,计算误差。

接着,将此误差反向传播,以修正内部神经元的误差。

对于每个数据实例来说,参数是经过多次迭代优化出来的。

四、案例研究:

使用深度学习检测TOR流量

网络攻击的主要目的是窃取企业用户数据、销售数据、知识产权文件、源代码和软件秘钥。

攻击者使用加密流量将被盗数据混夹在常规流量中,传输到远程服务器上。

大多数经常攻击的攻击者使用匿名网络,使得安全保护人员难以跟踪流量。

此外,被盗数据通常是加密的,这使得基于规则的网络入侵工具和防火墙失效。

最近,匿名网络以勒索软件/恶意软件的变体形式用于C&C。

例如,洋葱勒索[7]使用TOR网络和其C&C服务器进行通信。

图3:

Alice与目标服务器之间TOR通信的说明。

通信开始于Alice向服务器请求一个地址。

TOR网络给出AES加密的路径。

路径的随机化发生在TOR网络内部。

包的加密路径用红色显示。

当到达TOR网络的出口节点时,将简单分组转发给服务器。

出口节点是TOR网络的外围节点。

匿名网络/流量可以通过多种方式完成,它们大体可分为:

∙基于网络(TOR,I2P,Freenet)

∙基于自定义系统(子图操作系统,Freepto)

其中,TOR是比较流行的选择之一。

TOR是一款免费软件,能够通过称为洋葱路由协议的专用路由协议在互联网上进行匿名通信[9]。

该协议依赖于重定向全球范围内多个免费托管中继的互联网流量。

在中继期间,就像洋葱皮的层一样,每个HTTP包使用接收器的公钥加密。

在每个接收点,使用私钥对数据包进行解密。

解密后,下一个目标中继地址就会披露出来。

这个过程会持续下去,直到找到TOR网络的出口节点为止。

在这里数据包解密结束,一个简单的HTTP数据包会被转发到原始目标服务器。

在图3中展示了Alice和服务器之间的一个示例路由方案。

启动TOR最初的目的是保护用户隐私。

但是,攻击者却用它代替其他不法方式,来威逼善良的人。

截至2016年,约有20%的TOR流量涉及非法活动。

在企业网络中,通过不允许安装TOR客户端或者拦截保护或入口节点的IP地址来屏蔽TOR流量。

不管怎样,有许多手段可以让攻击者和恶意软件访问TOR网络以传输数据和信息。

IP拦截策略不是一个合理的策略。

一篇来自Distil网站[5]的自动程序情势不佳报告显示,2017年70%的自动攻击使用多个IP,20%的自动攻击使用超过100个IP。

可以通过分析流量包来检测TOR流量。

这项分析可以在TOR节点上进行,也可以在客户端和入口节点之间进行。

分析是在单个数据包流上完成的。

每个数据包流构成一个元组,这个元组包括源地址、源端口、目标地址和目标端口。

提取不同时间间隔的网络流,并对其进行分析。

G.He等人在他们的论文“从TOR加密流量中推断应用类型信息”中提取出突发的流量和方向,以创建HMM(HiddenMarkovModel,隐马尔科夫模型)来检测可能正在产生那些流量的TOR应用程序。

这个领域中大部分主流工作都利用时间特征和其他特征如大小、端口信息来检测TOR流量。

我们从Habibi等人的“利用时间特征来发现TOR流量的特点”论文中得到启发,并遵循基于时间的方法提取网络流,用于本文TOR流量的检测。

但是,我们的架构使用了大量可以获得的其他元信息,来对流量进行分类。

这本质上是由于我们已经选择使用深度学习架构来解决这个问题。

五、数据实验-TOR流量检测

为了完成本文的数据实验,我们从纽布伦斯威克大学的HabibiLashkari等人[11]那里获取了数据。

他们的数据由从校园网络流量分析中提取的特征组成。

从数据中提取的元信息如下表所示:

元信息参数

参数解释

FIAT

前向中间达到时间,向前发送两个数据包之间的时间(平均值,最大值,最小值,标准方差)

BIAT

后向中间达到时间,向后发送两个数据包之间的时间(平均值,最大值,最小值,标准方差)

FLOWIAT

流中间达到时间,向任何一个方向发送两个数据包之间的时间(平均值,最大值,最小值,标准方差)

ACTIVE

时间量,在变成空闲之前的活跃时间

IDLE

时间量,在变成空闲之前的活跃时间

FBPSEC

每秒流字节数。

每秒流量包。

持续时间:

数据流的持续时间。

 表1:

从[1]获得的元信息参数

除了这些参数之外,其他基于流的参数也包括在内。

图4显示了一个数据集的样例。

图4:

本文使用的数据集实例

请注意,源IP/端口、目标IP/端口和协议字段已经从实例中删除,因为它们会导致模型过拟合。

我们使用具有N隐藏层的深度前馈神经网络来处理其他所有特征。

神经网络的架构如图5所示。

图5:

用于Tor流量检测的深度学习网络表示。

隐藏层层数在2和10之间变化。

当N=5时是最优的。

为了激活,线性整流函数(RectifiedLinearUnit,ReLU)用于所有隐藏层。

隐藏层每一层实际上都是密集的,有100个维度。

Keras中的FFN的Python代码片段:

model=Sequential()

model.add(Dense(feature_dim, input_dim=feature_dim,kernel_initializer='normal',activation='relu'))

for_inrange(0, hidden_layers-1):

model.add(Dense(neurons_num, kernel_initializer='normal',activation='relu'))

model.add(Dense(1,kernel_initializer='normal', activation='sigmoid'))

pile(optimizer='adam', loss='binary_crossentropy',metrics=["accuracy"])

输出节点由Sigmoid函数激活。

这被用来输出二分类结果-TOR或非TOR。

我们在后端使用带有TensorFlow的Keras来训练深度学习模块。

使用二元交叉熵损失来优化FFN。

模型会被训练不同

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1