您的位置:首页 > 理论基础 > 计算机网络

机器学习在网络安全领域的应用(三)

2018-05-18 16:24 253 查看

                                                        机器学习在网络安全研究中的应用

      本节主要介绍机器学习在网络基础设施的安全以及网络安全检测方面的相关研究成果,主要包括机器学习技术在BGP的异常检测、恶意域名检测、僵尸网络检测、网络入侵检测以及恶意加密流量的识别中的应用研究。

一、网络基础设施安全

       路由系统和域名系统是网络空间中重要的网络基础设施,这些系统安全可靠的运行是各项网络活动安全开展的基础和前提。

       BGP的异常检测:

             边界网关协议(Border Gateway Protocol简称BGP)是互联网的核心路由协议,互联网的域间路由通过BGP路由信息交换完成,但BGP缺乏一个安全可信的路由认证机制,无法对邻居自治系统宣告的路由信息进行完整性和真实性的验证。这一缺陷导致路由器面临多种攻击,其中前缀劫持(prefix hijacking)、异常BGP的更新消息等问题严重影响了互联网的连通性和安全性。目前异常路由检测是通过提取当前BGP更新消息的特征或时序序列,将当前流量识别为正常路由或异常路由。该问题可抽象为机器学习中的二分类问题。

             针对前缀劫持定位问题,可以进行一个系统实验,采用层次聚类算法(Hierarchical Clustering)对系统中部署的大量监控器分成若干个簇,每个簇的监控器到目标前缀具有相似的路径,当前缀被劫持时,每个簇中的监控器基于目标前缀被污染的路径的概率进行排名,排名最高的监控器最有可能定位到前缀劫持,选择每个簇中的排名最高的监控器监控目标前缀 ,由此提供精准的前缀劫持定位。

        恶意域名检测 :
                域名系统是互联网中的核心应用之一,域名系统经常成为攻击的目标或被攻击者利用作为攻击工具。早期的恶意域名检测是在域名系统、防火墙或网络入侵检测系统中设置恶意域名黑名单或拦截名单,该方法极易被攻击者躲避检测。

                 基于机器学习的恶意域名检测通常为离线模型和在线模型的组合。离线模型中,将带有标签的合法域名和恶意域名作为训练数据集,从中提取基于网络层的特征、基于区域的特征、基于时间的特征、基于DNS应答的特征、基于TTL的特征或者基于域名信息等不同层次的特征,然后选取决策树、X-Means聚类算法等构建训练模型,同时可采用诸如malwareurl.com或NortonSafe等网站提供的已知域名数据集对训练模型进行验证和参数调整。在线监测模型中,网络中实时采集的域名流量经过被动查询域名分析,进行域名特征提取,如果是已知域名信息,即已标记的域名特征,则输入训练模型继续训练;如果是未知的域名信息,即无标签的特征,则输入已训练好的分类器对该域名进行判别是否为恶意域名。

二、网络安全检测 

               网络安全检测主要指对网络的安全状态或者面临的风险进行分析和预测,对不同接入网络的行为进行分析和控制,以发现潜在的威胁或正在进行的攻击。
    僵尸网络检测:
                僵尸网络是攻击者处于恶意目的,传播僵尸程序bot以控制大量计算机,并通过一对多的命令与控制信道所组成的网络。应用机器学习技术的僵尸网络检测分为基于网络流量分析和基于关联分析的检测技术。
    网络入侵检测技术:

                网络入侵检测即根据网络流量数据或主机数据来判断系统的正常行为或异常行为,可以抽象为分类问题。根据入侵检测系统中检测引擎使用方法的不同,网络入侵检测分为误用检测、异常检测以及混合检测。误用检测是以已知攻击为特征,将入侵行为与异常行为按照已知的特征区分开来。该类方法效率高且误报率低,但只能发现已知的入侵、漏报率较高,并且特征的维护多采用人工方式完成。异常检测指将当前网络行为与系统正常行为模式进行比较,若两者偏差较大,超过了预定义的阙值,则认为系统出现了异常或被入侵。异常检测对新的攻击类型敏感,能够有效发现新的攻击,并且能够监测零日漏洞。混合入侵检测是指将误用检测与异常检测相结合,用于提高已知入侵检测率并降低未知攻击的误报率。

   恶意加密流量识别:

       基于深度包监测或者模式匹配等方法都对加密流量束手无策,因此识别加密网络流量中包含的威胁是一项具有挑战的工作。 

       具体论文可见:

                 Identifying Encrypted Malware Traffic with Contextual Flow Data,它是思科的研究人员提出的,首先采集了百万级的正常流量和恶意流量,然后分析了TLS流、DNS流和HTTP流的不同之处,具体包括未加密TLS握手信息、TLS流中与目的IP地址相关的DNS相应信息、相同源IP地址5min窗口内的HTTP流的头部信息,然后从上述信息中提取特征,将该特征采用零均值和单位方差进行归一化处理,随后利用logistic回归分类器获得检测模型最优权值并采用十倍交叉验证进行模型验证。该项研究不依赖于加密有效载荷的检测,而利用了TLS流相关背景信息(包括TLS扩展、证书是否自签名、密码套件等)辅助恶意加密流量检测。但该项研究是基于windowsXP系统的5分钟窗口采集的流量数据,因此使用该数据集的模型可能会有偏差。

              

                  Analyzing Android Encrypted Network Traffic to Identify User Actions 则考虑另一个研究方向,它利用机器学习技术分析网络加密流量,用于识别移动终端用户的行为,在不与移动终端交互的前提下,利用已知app在移动终端生成网络流量,在网络侧截取网络流量,将网络流的时间序列进行标记,生成有标签的训练集,之后利用层次聚类算法将网络流聚类,相似的流被分组在同一个簇中代表有相似的用户行为,不同的流分组至不同的簇,利用整数形式表示每个簇的特征,再使用随机森林算法进行分类。

  三、总结

                    基于机器学习构建在线网络安全检测模型,应满足三方面的要求:时间复杂度、增量更新能力以及泛化能力。现有的研究中能够达到线性级复杂度的神经网络算法无法满足对实时流的处理,满足增量更新能力的隐马尔可夫模型及朴素贝叶斯网络等算法会带来很高的计算复杂度,具有良好泛化能力的模型则强烈依赖于输入数据集。因此,这方面需要进一步研究。

              阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: