您当前的位置:首页 > IT编程 > 异常检测
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 |

自学教程:深度学习在入侵检测中的应用

51自学网 2023-05-20 10:59:18
  异常检测
这篇教程深度学习在入侵检测中的应用写得很实用,希望能帮到您。

深度学习在入侵检测中的应用

基于机器学习的入侵检测方法中,80%的工作量是花在特征工程上,即思考该从各种日志,网络包中提取什么特征。大多数公司的数据科学家都花费大量精力做特征工程的工作。而深度学习的出现将我们从特征工程的工作中解放出来,通过深度的网络自动提取特征,大大提高了数据科学家的工作效率。下面介绍一个基于深度学习的入侵检测案例。

恶意URL检测

基于深度学习的恶意URL检测算法,只需要使用URL字符串本身的信息,无须看URL所指的内容,即可判断URL是否恶意。

下面是一些钓鱼URL的示例:

http://tarapotosecurity.com/updatepaypal/1a78275f842589a4902ebcdf769559de/mpp/date/websc-billing.php
http://bealesgifts.com/paypal-support-team/new-update/2016/login?cmd=_signin&dispatch=0d505bd63bb9d2b1c70ec1d2d&locale=en_us
http://payment-paypal.com.de/kundenservice/konfliktloesung/anmelden.php

上面几个URL有一个共同点:它们在模拟合法的paypal的网址。我们可以使用机器学习的方法识别类似的URL。

使用传统的方法,我们会考虑从URL串中提取特征作为机器学习算法的输入,这样的特征有,字符串长度,某些模式的出现次数。

 

但是以深度学习为代表的无特征方法却用了新的思路,训练一个模型去自动提取特征,而不是手动去设计特征。自动生成的特征的效果远优于手动设计的特征。

 

一个可训练的特征生成器

我们的无特征的URL检测方法框架如下图所示。

 

图1:算法框架图

如上图所示,我们先对URL使用嵌入的方法进行编码;然后再使用卷积的方法学习特征,最后再通过一个前向神经网络层计算一个URL是恶意的概率。整个过程,从character embedding到特征提取,再到分类,大概有几百万个参数被训练出来。下面我们详细描述各个过程的细节。

使用嵌入(embedding)的方法学习字符的意义

我们的算法框架中的第一个步骤是将字符编码成嵌入向量。

 

图2:character embedding

图2的过程中,每一个字符都被编码成一个向量,而URL就被编码成一个向量序列。你可以认为神经网络将字符映射成一个特征向量,这个特征向量代表字符的意义。图3表示神经网络学习出的URL字符之间的关系。

 

图3:字符关系图

从图3可以看出,大写字符更加相近,小写字母和数字更加相近,而运算符号之间更加相近。

使用卷积识别URL中的复杂模式

为什么我们的网络可以学习到字符的意义?因为它通过URL中的字符序列学习到更好的模式,我们通过卷积做到这点,参考图4.

 

图4:字符关系图图4:字符关系图

卷积滤波器是一组矩阵,沿着嵌入特征序列做加权,得到一组加权后的值,代表滤波器和子序列的匹配程度。我们的网络中使用了数百个长度不同的各种滤波器,在训练的过程中,滤波器可以识别出各种特征。

分类:计算一个URL是恶意的概率

我们的网络结构在URL序列上运行完卷积操作之后,接下来的工作是在卷积结果的基础上计算URL是恶意的概率。我们使用一个前向神经网络完成这项工作。

 

图5:全连接神经网络

结果:人工特征和机器特征的比较,机器胜

 

 

 


KDD99数据集的特征(Features)介绍
返回列表
51自学网自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1