用户
搜索
  • TA的每日心情
    开心
    2019-1-22 09:13
  • 签到天数: 4 天

    连续签到: 2 天

    [LV.2]偶尔看看

    i春秋-见习白帽

    Rank: 3Rank: 3

    4

    主题

    80

    帖子

    224

    魔法币
    收听
    0
    粉丝
    0
    注册时间
    2016-3-26

    春秋文阁

    发表于 2019-7-11 15:00:15 1274
    1.关于这篇文章                 论坛的时候发现关于个方向的文章比较少,恰巧我的毕业论文题目是和这个有关系,所以我把毕业论文给进行了简单的修改,就有了这篇文章。本人才疏学浅,如有错误,请各位表哥多多指教。话不多说,进入正题。
    2.文章背景
         目前,Web3.0时代已经来临,网络逐步实现一体化,赋予网络用户极为广阔的自由空间,可以切实满足他们的实际需求。在此背景下,多样化软件应运而生。但是这也产生了严重的安全问题,在以往十年当中,全球前沿的科技企业,例如:谷歌以及Facebook等,均出现过极为恶劣的各类网络安全事件,造成了大量用户数据泄露,从而危害到网络用户自身的财产安全。故而在当前时期,应当致力于推进网络入侵检测工作,实现全面的智能化。当然了,以上的原因都是废话,主要原因是现在的黑客攻击手法层出不穷,传统的基于规则集的网络入侵检测无法很好的防护这些千变万化的攻击手法,所以将机器学习与网络入侵检测相结合,迫在眉睫。
    3.聚类分析
         这次主要应用K-Means和DBSCAN两种聚类算法,来比较其在面对测试数据时的性能高低。下面先简单介绍一下这两种聚类算法。
         3.1 K-Means
             K-Means是一种基于距离的聚类算法,从本质上而言,K-Means聚类算法实则基于空间存在的k个点,来实现后期的聚类工作。K-Means采用距离作为相似性的评价指标,两个点的距离越近,其相似度就越大,并将其中最近的相关点进行细致归类,借助于迭代的首选,分别更新多样化聚类中心的实际数值,以此来获得最佳效果。下面给出该算法的流程图:
    k-means.png
    K-Means算法流程图
         3.1 DBSCAN
             DBSCAN聚类算法与K-Means不同,它是基于密度的一种聚类算法。它旨在假设类别可以取决于样本分布过程中所表现出的紧密性。由此得知,对于类别完全相同的样本而言,其彼此之间实则表现为紧密结合的关系,将其聚合起来即为聚类类别。在此情况下,只需将全部紧密结合的样本进行细致划分,使其生成多样化类别,即可获得全部聚类类别结果。下面也给出简单的流程图:

    DBSCAN

    DBSCAN
    DBSCAN算法流程图
    4.入侵检测的性能对比
       4.1 KDDCUP99数据集简介
            这次实验使用KDDCUP99数据集,下面简单介绍一下该数据集。该数据集包含500多万条网络连接数据,并且将一个网络连接定义为在某个时间内从开始到结束的TCP数据包序列,并且在这段时间内,数据在预定义的协议下(如TCP、UDP)从源IP地址到目的IP地址的传递。每个网络连接被标记为正常(normal)或异常(attack),异常类型被细分为4大类共39种攻击类型,其中22种攻击类型出现在训练集中,另有17种未知攻击类型出现在测试集中。每条数据又如下41个特征来描述:
    2, tcp, smtp, SF, 1684, 363, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0.00, 0.00, 0.00, 0.00, 1.00, 0.00, 0.00, 104, 66, 0.63, 0.03, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, normal.
    每个特征值的含义,表哥们可以自行百度一下。
        4.2 数据预处理
              从以上的的特征来看,特征之中有离散值,字符,连续值。所以需要先将字符值转换成数值,并且还需要对转换后的数据进行标准化和归一化。下面是一部分的数据处理以后的展示。
             数据数值化以后的数据展示:
    预处理.png          
    数值化以后的数据
            数据标准化所使用的公式以及数据展示:
                  首先对各属性的平均值                              和平均绝对误差 进行计算和标准化度量,公式如下:
                    公式一.PNG 公式二.PNG
                    上述数据经过处理以后,如下:
                                test.png
                标准化以后的数据
                    数据归一化的所使用的公式以及数据展示:
                                   本次归一化所使用的的方法是[0-1]标准化,也叫离差标准化,公式如下:
                                                 公式三.PNG
                                          
                                       相同的数据归一化以后如下所示:
                                           guiyihua.png

                                         归一化的数据


                       以上就是所有的数据处理过程,下面就只需要将数据输入到算法里面生成模型就可以了。

                4.3 模型建立

                   为了方便,模型建立过程直接调用
    sklearn中的K-Means算法和DBSCAN算法来进行建模,建模以后输入测试数据即可,下面是我的测试结果:

                                                                  

                       K-Means.png

         K-Means测试结果


                            DBSCAN测试结果.png

    DBSCAN测试结果

                  由此可以从结果上看出DBSCAN的准确率是高于K-Means的。

    总结

    就目前来说,后端的算法建模这些技术都比较成熟了,该检测技术的难点在于标签数据的缺少和对实时连接的处理。目前这篇文章只是后端建立了一个简单模型,下面准备写一个前端对连接的处理,有兴趣的表哥可以联系我。
    代码过大,想要的表格可以留一下QQ邮箱,我会发过来




    表哥,还没写完。。。
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册