无监督的加密恶意流量检测方法、装置、设备及介质与流程

文档序号:17147740发布日期:2019-03-19 23:08阅读:600来源:国知局
无监督的加密恶意流量检测方法、装置、设备及介质与流程

本公开涉及流量数据检测技术领域,具体为一种无监督的加密恶意流量检测方法、装置、电子设备及存储介质。



背景技术:

网络通信是当前几乎所有企业和个人都会涉及的信息应用。随着企业以及个人用户对于信息安全的重视程度越来越高,当前网络通信中加密技术的使用场景越来越多。即通过加密方法让通信内容无法被网络上除通信双方之外的其他用户识别。

与此同时,各类恶意程序如网络木马、蠕虫等在与控制端进行通信时,为了躲避网络检测设备的识别,往往也采用加密流量通信。这就造成了正常加密流量与恶意加密流量无法区分的问题,为网络安全检测带来了很大的挑战。

当前对于加密恶意流量的检测主要采用有监督机器学习的方法。通过恶意加密流量和正常加密流量的检测模型,该检测模型即可以用于判别加密流量是否为恶意流量。

现有方案存在的主要问题在于:

(1)模型训练依赖大量的黑样本,样本数量不足很可能导致训练得到的检测模型不准确;

(2)依赖专家知识分析和提取流量特征,如果专家经验不可靠,则最终的分类结果可能会存在较大问题;

(3)由于基于之前的经验知识,所以对于新的攻击样本检测能力比较差;

(4)容易被攻击者根据特征集合绕过,即一旦攻击者发现检测所用的特征集,则可以通过一定技术手段规避这些特征。

因此,如何有效的分离恶意流量已经成为一个亟待解决的技术问题。



技术实现要素:

本公开的目的在于提供一种无监督的加密恶意流量检测方法、装置、电子设备及存储介质,能够快速地检测流量信息中的恶意加密流量。

第一方面,本公开提供一种无监督的加密恶意流量检测方法,包括如下步骤:

步骤s101:基于网络流量采集所需的数据特征集;

步骤s102:利用采集的所述数据特征集建立客户端与服务端之间的二分图;

步骤s103:通过图切分方法对客户端和服务端节点进行初次聚类;

步骤s104:对所述初次聚类当中较大联通子图的客户端和服务端节点进行向量化处理;

步骤s105:对向量化后的数据利用dbscan算法再次聚类;

步骤s106:利用所述再次聚类后的聚类结果判定恶意流量和节点。

可选的,所述数据特征集包括:

客户端加密套件、客户端支持的tls扩展、服务端证书。

可选的,所述利用采集的所述数据特征集建立客户端与服务端之间的二分图,包括:

随机挑选任意客户端节点,连接其对应关联的服务端节点,形成所述客户端节点与服务端节点的边;

遍历所有客户端节点和服务端节点,所述数据特征集中所有所述客户端节点与服务端节点都形成对应的连接关系;

利用所述客户端节点与服务端节点形成的连接关系建立二分图。

可选的,所述通过图切分方法对客户端或服务端节点进行初次聚类,包括:

将所述二分图进行子图聚类;

将完全没有关联关系的各个子图分成不同的簇,从而进行初次聚类。

可选的,对所述初次聚类当中较大联通子图的客户端和服务端节点进行向量化处理,包括:

挑选所述初次聚类当中节点数量较多的联通子图;

从所述子图中任意一个节点出发,按照联通关系随机选择一个节点作为下一节点,形成一个长度为t的序列;

对于序列中的每一个节点,使用skip-gram方法,利用它周围的其他节点学习自身的特征表示,将每个节点的表示从多维度的onehot编码降维成节点特征向量。

可选的,所述dbscan算法包括:

计算各节点之间的距离;

基于所述距离判定所述节点相似性;

将具有相似性的节点聚为一类。

可选的,所述利用所述再次聚类后的聚类结果判定恶意流量和节点,包括:

利用再次聚类后每个簇内服务端节点和/或客户端节点的特征进行恶意流量判定;

如果一个簇内大部分的服务端节点和/或客户端节点的特征为非正规特征,则判定该簇为恶意簇;

将所述恶意簇中所有的客户端节点和服务端节点存在的对应关系恢复,则为所要检测的恶意流量。

第二方面,本公开提供一种无监督的加密恶意流量检测装置,包括:

数据采集单元,用于基于网络流量采集所需的数据特征集;

构建单元,用于利用采集的所述数据特征集建立客户端与服务端之间的二分图;

初次聚类单元,用于通过图切分方法对客户端和服务端节点进行初次聚类;

向量化单元,用于对所述初次聚类当中较大联通子图的客户端和服务端节点进行向量化处理;

再次聚类单元,对向量化后的数据利用dbscan算法再次聚类;

判定单元,用于利用所述再次聚类后的聚类结果判定恶意流量和节点。

第三方面,本公开提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序指令,所述处理器执行所述计算机程序指令时,实现第一方面任一所述的方法步骤。

第四方面,本公开提供一种计算机可读存储介质,存储有计算机程序指令,所述计算机程序指令在被处理器调用和执行时实现第一方面任一所述的方法步骤。

与现有技术相比,本公开实施例的有益效果是:

本公开利用基于图的无监督学习模型,可以在没有先验知识和标注样本集的情况下直接进行加密流量检测,通过对图进行二分获得不同类型的族,将大族转化为小族,再分别通过流量的特征进行检验识别出恶意流量,方法简单易操作,能够高效的检测出加密的恶意流量。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例提供的无监督的加密恶意流量检测方法流程示意图;

图2为本公开实施例提供的无监督的加密恶意流量检测方法二分图示意图;

图3为本公开实施例提供的无监督的加密恶意流量检测装置的结构示意图;

图4为本公开实施例提供的电子设备的结构示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

在本公开实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应当理解,尽管在本公开实施例中可能采用术语第一、第二、第三等来描述技术名称,但这些技术名称不应限于这些术语。这些术语仅用来将技术名称区分开。例如,在不脱离本公开实施例范围的情况下,第一校验签名也可以被称为第二校验签名,类似地,第二校验签名也可以被称为第一校验签名。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。

请参阅图1,第一方面,本公开提供一种无监督的加密恶意流量检测方法,包括如下步骤:

步骤s101:基于网络流量采集所需的数据特征集;

可选的,所述数据特征集包括:

客户端加密套件、客户端支持的tls扩展、服务端证书。

步骤s102:利用采集的所述数据特征集建立客户端与服务端之间的二分图;

如图2所示,通过流量中提取的客户端元数据特征如图左侧节点,证书元数据特征如图右侧节点,那么任意一条流都可以表示成一个客户端特征组成的节点到证书节点的边。而且由于客户端元数据之间不会有边,数字证书之间也不会有边。因此相当于节点分成两类,形成一个二分图。

具体可选的,所述利用采集的所述数据特征集建立客户端与服务端之间的二分图,包括:

随机挑选任意客户端节点,连接其对应关联的服务端节点,形成所述客户端节点与服务端节点的边;

遍历所有客户端节点和服务端节点,所述数据特征集中所有所述客户端节点与服务端节点都形成对应的连接关系;

利用所述客户端节点与服务端节点形成的连接关系建立二分图。

步骤s103:通过图切分方法对客户端和服务端节点进行初次聚类;

其中,图切分方法是指,针对步骤s102形成的二分图,会存在多个子图,即这些子图之间是没有边的,他们之间没有交集,从而形成离散的族,依据这个特征可以将节点分成不同的组,完成初次聚类。

具体的,所述通过图切分方法对客户端或服务端节点进行初次聚类,包括:

将所述二分图进行子图聚类;

将完全没有关联关系的各个子图分成不同的簇,从而进行初次聚类。

步骤s104:对所述初次聚类当中较大联通子图中的客户端和服务端节点进行向量化处理;

可选的,对所述初次聚类当中较大联通子图的客户端和服务端节点进行向量化处理,包括:

挑选所述初次聚类当中节点数量较多的联通子图;

从所述子图中任意一个节点出发,按照联通关系随机选择一个节点作为下一节点,形成一个长度为t的序列;

对于序列中的每一个节点,使用skip-gram方法,利用它周围的其他节点学习自身的特征表示,将每个节点的表示从多维度的onehot编码降维成节点特征向量。

具体的,向量化处理需要具体两个步骤:

第一步是利用随机游走建立节点序列,具体方法如下:

从图中任意一个节点出发,按照联通关系随机选择一个节点作为下一个节点,形成一个序列,定义序列长度为t,则可以形成一个客户端节点与服务端节点交替出现的长度为t的序列;

图中的每一个节点都要作为初始节点进行上述步骤,如果存在q个节点,则会生成q个长度为t序列。

第二步是对这些序列中的节点利用skip-gram方法取得每个节点的特征向量,具体方法如下:

它的输入是一串节点序列,每个节点都用onehot编码表示:针对一个节点n,如果他的排序为n,那么它所对应的初始向量为(0,0,0,0,0,……,1,……,0,0,0,0),即除了第n位为1,其余位都为0的向量。它的输出是节点的更低维度的特征向量p,其长度为p,一般情况下p远远小于n。

将onehot特征降维成p的过程如下,对于每一个节点x,可以得到它在不同序列中的不同上下文y(1-k),对于每一个(x,y)对,使用反向传播算法训练一个神经网络,神经网络的输入是onehot的x,训练标签是onehot的y,隐藏层是p,训练参数是m*p的矩阵w(m是节点总数)。由于x中只有一个位置的值是1,在反向传播的过程中,只会更新w中某一行的参数值,这一行的参数就是训练得到x的低维度特征p。对于每一个x,都可以用上述方法得到一个低维度p特征向量。

步骤s105:对向量化后的数据利用dbscan算法再次聚类;

dbscan算法的基本思想是计算节点之间的距离,基于距离判定节点相似性,将具有相似性的节点聚为一类,从而完成数据聚类。

可选的,所述dbscan算法包括:

计算各节点之间的距离;

基于所述距离判定所述节点相似性;

将具有相似性的节点聚为一类。

步骤s106:利用所述再次聚类后的聚类结果判定恶意流量和节点。

聚类后每个簇内都会存在服务端证书节点以及客户端加密套件指纹节点。利用证书节点中的cn字段、san字段中的域名,可以判断该证书的服务端是否为正规网站。如果一个簇内大部分的证书为非正规网站证书,则可以认为该簇为恶意簇。将本簇中所有的客户端与服务段存在的对应的关系恢复,则为所要检测的恶意流量。

可选的,所述利用所述再次聚类后的聚类结果判定恶意流量和节点,包括:

利用再次聚类后每个簇内服务端节点和/或客户端节点的特征进行恶意流量判定;

如果一个簇内大部分的服务端节点和/或客户端节点的特征为非正规特征,则判定该簇为恶意簇;

将所述恶意簇中所有的客户端节点和服务端节点存在的对应关系恢复,则为所要检测的恶意流量。

本公开利用基于图的无监督学习模型,可以在没有先验知识和标注样本集的情况下直接进行加密流量检测,通过对图进行二分获得不同类型的族,将大族转化为小族,再分别通过流量的特征进行检验识别出恶意流量,方法简单易操作,能够高效的检测出加密的恶意流量。

实施例2

如图3所示,第二方面,本公开提供一种无监督的加密恶意流量检测装置,包括:数据采集单元301,构建单元302,初次聚类单元303,向量化单元304,再次聚类单元305以及判定单元306,具体的,

数据采集单元301,用于基于网络流量采集所需的数据特征集;

构建单元302,用于利用采集的所述数据特征集建立客户端与服务端之间的二分图;

初次聚类单元303,用于通过图切分方法对客户端和服务端节点进行初次聚类;

向量化单元304,用于对所述初次聚类当中较大联通子图的客户端和服务端节点进行向量化处理;

再次聚类单元305,对向量化后的数据利用dbscan算法再次聚类;

判定单元306,用于利用所述再次聚类后的聚类结果判定恶意流量和节点。

实施例3

本公开提供一种计算机可读存储介质,存储有计算机程序指令,所述计算机程序指令在被处理器调用和执行时实现第一方面任一所述的方法步骤。

本公开利用基于图的无监督学习模型,可以在没有先验知识和标注样本集的情况下直接进行加密流量检测,通过对图进行二分获得不同类型的族,将大族转化为小族,再分别通过流量的特征进行检验识别出恶意流量,方法简单易操作,能够高效的检测出加密的恶意流量。

实施例4

如图4所示,本公开提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序指令,所述处理器执行所述计算机程序指令时,实现第一方面任一所述的方法步骤。

下面参考图4,其示出了适于用来实现本公开实施例的电子设备400的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图4示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图4所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(rom)402中的程序或者从存储装置408加载到随机访问存储器(ram)403中的程序而执行各种适当的动作和处理。在ram403中,还存储有电子设备400操作所需的各种程序和数据。处理装置401、rom402以及ram403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。

通常,以下装置可以连接至i/o接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许电子设备400与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的电子设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从rom402被安装。在该计算机程序被处理装置401执行时,执行本公开实施例的方法中限定的上述功能。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。

或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1