CN105099799B - 僵尸网络检测方法和控制器 - Google Patents

僵尸网络检测方法和控制器 Download PDF

Info

Publication number
CN105099799B
CN105099799B CN201410186366.2A CN201410186366A CN105099799B CN 105099799 B CN105099799 B CN 105099799B CN 201410186366 A CN201410186366 A CN 201410186366A CN 105099799 B CN105099799 B CN 105099799B
Authority
CN
China
Prior art keywords
access
server
flow forwarding
servers
forwarding rule
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410186366.2A
Other languages
English (en)
Other versions
CN105099799A (zh
Inventor
陶敬
李剑锋
蔡启申
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Xian Jiaotong University
Original Assignee
Huawei Technologies Co Ltd
Xian Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Xian Jiaotong University filed Critical Huawei Technologies Co Ltd
Priority to CN201410186366.2A priority Critical patent/CN105099799B/zh
Publication of CN105099799A publication Critical patent/CN105099799A/zh
Application granted granted Critical
Publication of CN105099799B publication Critical patent/CN105099799B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种僵尸网络检测方法和控制器,该方法包括:接收SDN中openflow交换机上报的每个流转发规则的统计信息,统计信息包括子流转发规则的第一匹配次数和母流转发规则的第二匹配次数;根据各第一匹配次数和各第二匹配次数确定每个服务器被任一用户终端访问的访问概率集合;根据访问概率集合两两计算访问任两个服务器的用户终端的相似度得到访问相似度矩阵;采用谱聚类算法对访问相似度矩阵进行谱聚类以根据聚类结果确定是否存在僵尸网络。母流转发规则中的源IP地址为一个子网地址,大大降低了控制器的处理负载,基于访问相似度来确定僵尸网络,提高了僵尸网络的检测效率。

Description

僵尸网络检测方法和控制器
技术领域
本发明属于计算机网络安全技术领域,具体是涉及一种僵尸网络检测方法和控制器。
背景技术
僵尸网络(Botnet)是指攻击者使用一种或多种传播手段将大量主机感染僵尸(bot)程序,从而在攻击者和被感染主机之间形成的一个一对多的控制网络,其中,被感染主机即为僵尸主机,攻击者可以通过命令与控制(Command and Control,以下简称C&C)信道一对多地控制僵尸主机。僵尸网络构成一个攻击平台,利用这个平台可以发起各种各样的网络攻击行为,从而导致某些应用系统的瘫痪、个人隐私的泄露等。比如,利用僵尸网络发送垃圾邮件、窃取机密等网络攻击行为。
目前的僵尸网络检测方法,多是通过对网络数据流进行聚类来发现僵尸网络。这种聚类多是通过将被检测网络中广泛分布的多个交换机、网关设备等网络设备上的数据流信息镜像到一个用于僵尸网络检测的后台服务器中,以便后台服务器根据收到的该各个数据流信息中各自包含的特征信息比如源IP地址、目的IP地址、数据包大小、端口号等信息来对各个数据流信息进行聚类分析,从而基于聚类分析的结果发现与僵尸网络对应的网络流量的异常行为,进而检测出僵尸网络。
上述的僵尸网络检测方法中,由于网络设备的局限性,对广泛分布的比如各网关设备上的各个数据流进行流量镜像,进而解析各数据流中的数据包特征进行聚类分析,由于流量镜像采集获得的数据流非常庞大,并且需对多个数据包特征进行解析,使得处理负载过大,导致僵尸网络的检测效率较低。
发明内容
针对现有技术中存在的问题,本发明实施例提供一种僵尸网络检测方法和控制器,以用于克服现有技术中基于流量镜像和数据包特征进行聚类分析导致处理负载大、僵尸网络检测效率低的缺陷。
本发明实施例第一方面提供一种僵尸网络检测方法,包括:
接收软件定义网络SDN中的openflow交换机在第一预设时间段内上报的流转发规则的统计信息,所述流转发规则包括子流转发规则和与所述子流转发规则对应的母流转发规则,所述统计信息包括所述子流转发规则的第一匹配次数和所述母流转发规则的第二匹配次数;
其中,所述子流转发规则用于指示将SDN中与所述子流转发规则中的源IP地址对应的数据包转发至与所述子流转发规则中的目的IP地址对应的SDN外部的服务器,所述母流转发规则用于将SDN中与所述源IP地址对应的子网地址内的数据包转发至所述服务器;
根据所述第一匹配次数和所述第二匹配次数,计算所述服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器的访问概率集合;
根据所述访问概率集合,计算访问所述服务器中任意两个服务器的用户终端的相似度,得到访问相似度矩阵;
采用预设谱聚类算法对所述访问相似度矩阵进行谱聚类,获得聚类结果;
根据所述聚类结果确定是否存在僵尸网络。
结合第一方面,在第一方面的第一种可能的实现方式中,所述根据所述第一匹配次数和所述第二匹配次数,确定所述服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器的访问概率集合,包括:
根据下列公式计算服务器被所述SDN中的任一用户终端访问的平均访问次数:
其中,为对服务器s的平均访问次数,用户终端h为所述SDN中的任一用户终端,nhs为用于将用户终端h的数据包转发至服务器s的子流转发规则fhs的第一匹配次数,ms为目的IP地址对应所述服务器s的子流转发规则的个数;
根据下列公式依次计算所述流转发规则中目的IP地址对应的服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器的访问概率集合:
其中,phs为SDN中的任一用户终端h访问任一流转发规则中目的IP地址对应服务器s的访问概率,为采用第k个子流转发规则和对应的母流转发规则得到的h访问s的访问概率,根据下列公式确定:
其中,hk为采用第k个子流转发规则的用户终端,Hk为与第k个母流转发规则对应的SDN中的子网,为子网Hk中包含的用户终端数量,为第k个母流转发规则的第二匹配次数。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述访问概率集合,计算访问所述服务器中任意两个服务器的用户终端的相似度,得到访问相似度矩阵,包括:
依次针对所述服务器中的任意两个服务器sp和sq,根据下列公式计算所述SDN中访问服务器sp的用户终端与服务器sq的用户终端的相似度,得到访问相似度矩阵:
Apq=|Up∩Uq|/|Up∪Uq|
其中,Apq为所述相似度,Up为访问服务器sp的用户终端组成的群体,Uq为访问服务器sq的用户终端组成的群体,|UP∩Uq|为既访问服务器sp又访问服务器sq的用户终端的个数,根据下列公式确定:
|UP∪Uq|为访问服务器sp或者访问服务器sq的用户终端的个数,根据下列公式确定:
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述采用预设谱聚类算法对所述访问相似度矩阵进行谱聚类,获得聚类结果,包括:
对所述访问相似度矩阵进行谱分解,得到特征值;
获取大于第一预设阈值的特征值;
确定与所述大于第一预设阈值的特征值对应的特征向量;
采用预设聚类算法对所述特征向量进行聚类,获得至少两个第一类簇;
所述根据所述聚类结果确定僵尸网络包括:
根据所述至少两个第一类簇确定僵尸网络。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据所述至少两个第一类簇确定僵尸网络,包括:
分别以所述至少两个第一类簇中的每个第一类簇作为待处理类簇,根据所述访问相似度矩阵,确定所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度;
根据所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度,确定所述待处理类簇的平均访问相似度;
判断所述平均访问相似度是否大于预设访问相似度阈值,并且所述待处理类簇中包含的各服务器的数量是否大于预设数量;
当平均访问相似度大于预设访问相似度阈值并且所述待处理类簇中包含的各服务器的数量大于预设数量,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述确定所述待处理类簇中包含的各服务器构成一个僵尸网络之前,还包括:
判断待处理类簇的服务器平均访问次数是否小于第二预设阈值;
若小于所述第二预设阈值,则更新所述待处理类簇中包含的各服务器对应的母流转发规则中的子网地址,并根据更新后的各服务器对应的母流转发规则中的子网地址获得至少两个第二类簇;
所述确定所述待处理类簇中包含的各服务器构成一个僵尸网络,包括:
确定所述至少两个第二类簇中是否存在与所述待处理类簇中包含的各服务器的服务器相似度大于第三预设阈值的类簇;
若存在,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述根据更新后的各服务器对应的母流转发规则中的子网地址获得至少两个第二类簇,包括:
将所述更新后的流转发规则下发给所述openflow交换机,并根据所述openflow交换机在第二预设时间段内上报的所述更新后的流转发规则的统计信息获得至少两个第二类簇。
结合第一方面、第一方面的第一种、第二种、第三种、第四种、第五种或第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述接收软件定义网络SDN中的openflow交换机在第一预设时间段内上报的流转发规则的统计信息之前,还包括:
接收openflow交换机转发的待处理数据包,所述数据包中包括源IP地址和目的IP地址;
根据所述源IP地址和所述目的IP地址构造所述流转发规则,并将构造的所述流转发规则下发给所述openflow交换机。
本发明实施例第二方面提供一种控制器,包括:
第一接收模块,用于接收软件定义网络SDN中的openflow交换机在第一预设时间段内上报的流转发规则的统计信息,所述流转发规则包括子流转发规则和与所述子流转发规则对应的母流转发规则,所述统计信息包括所述子流转发规则的第一匹配次数和所述母流转发规则的第二匹配次数;
其中,所述子流转发规则用于指示将SDN中与所述子流转发规则中的源IP地址对应的数据包转发至与所述子流转发规则中的目的IP地址对应的SDN外部的服务器,所述母流转发规则用于将SDN中与所述源IP地址对应的子网地址内的数据包转发至所述服务器;
第一确定模块,用于根据所述第一匹配次数和所述第二匹配次数,计算所述服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器访问的概率集合;
计算模块,用于根据所述访问概率集合,计算访问所述服务器中任意两个服务器的用户终端的相似度,得到访问相似度矩阵;
聚类模块,用于采用预设谱聚类算法对所述访问相似度矩阵进行谱聚类,获得聚类结果;
第二确定模块,用于根据所述聚类结果确定是否存在僵尸网络。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第一确定模块,包括:
第一确定单元,用于根据下列公式计算所述服务器被所述SDN中的任一用户终端访问的平均访问次数:
其中,为对服务器s的平均访问次数,用户终端h为所述SDN中的任一用户终端,nhs为用于将用户终端h的数据包转发至服务器s的子流转发规则fhs的第一匹配次数,ms为目的IP地址对所述应服务器s的子流转发规则的个数;
第二确定单元,用于根据下列公式依次计算所述流转发规则中目的IP地址对应的服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器的访问概率集合:
其中,phs为SDN中的任一用户终端h访问任一流转发规则中目的IP地址对应服务器s的访问概率,为采用第k个子流转发规则和对应的母流转发规则得到的h访问s的访问概率,根据下列公式确定:
其中,hk为采用第k个子流转发规则的用户终端,Hk为与第k个母流转发规则对应的SDN中的子网,为子网Hk中包含的用户终端数量,为第k个母流转发规则的第二匹配次数。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述计算模块,具体用于:
依次针对所述服务器中的任意两个服务器sp和sq,根据下列公式计算所述SDN中访问服务器sp的用户终端与服务器sq的用户终端的相似度,得到访问相似度矩阵:
Apq=|Up∩Uq|/|Up∪Uq|
其中,Apq为所述相似度,Up为访问服务器sp的用户终端组成的群体,Uq为访问服务器sq的用户终端组成的群体,|UP∩Uq|为既访问服务器sp又访问服务器sq的用户终端的个数,根据下列公式确定:
|UP∪Uq|为访问服务器sp或者访问服务器sq的用户终端的个数,根据下列公式确定:
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述聚类模块,包括:
分解单元,用于对所述访问相似度矩阵进行谱分解,得到特征值;
获取单元,用于获取大于第一预设阈值的特征值;
第三确定单元,用于确定与所述大于第一预设阈值的特征值对应的特征向量;
处理单元,用于采用预设聚类算法对所述特征向量进行聚类,获得至少两个第一类簇;
所述第二确定模块,具体用于根据所述至少两个第一类簇确定僵尸网络。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第二确定模块,包括:
第四确定单元,用于分别以所述至少两个第一类簇中的每个第一类簇作为待处理类簇,根据所述访问相似度矩阵,确定所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度;
第五确定单元,根据所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度,确定所述待处理类簇的平均访问相似度;
判断单元,用于判断所述平均访问相似度是否大于预设访问相似度阈值,并且所述待处理类簇中包含的各服务器的数量是否大于预设数量;
第六确定单元,用于当平均访问相似度大于预设访问相似度阈值并且所述待处理类簇中包含的各服务器的数量大于预设数量,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述控制器还包括:
判断模块,用于判断待处理类簇的服务器平均访问次数是否小于第二预设阈值;
处理模块,用于若所述判断模块判断小于所述第二预设阈值,则更新所述待处理类簇中包含的各服务器对应的母流转发规则中的子网地址,并根据更新后的各服务器对应的母流转发规则中的子网地址获得至少两个第二类簇;
第二确定模块,具体用于:
确定所述至少两个第二类簇中是否存在与所述待处理类簇中包含的各服务器的服务器相似度大于第三预设阈值的类簇;
若存在,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述处理模块,用于:
将所述更新后的流转发规则下发给所述openflow交换机,并根据所述openflow交换机在第二预设时间段内上报的所述更新后的流转发规则的统计信息获得至少两个第二类簇;
相应的,所述第六确定单元,用于:
确定所述至少两个第二类簇中是否存在与所述待处理类簇中包含的各服务器的服务器相似度大于第三预设阈值的类簇;
若存在,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
结合第二方面或第二方面的第一种可能的实现方式或第二种可能的实现方式或第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式或第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述控制器还包括:
第二接收模块,用于接收openflow交换机转发的待处理数据包,所述数据包中包括源IP地址和目的IP地址;
发送模块,用于根据所述源IP地址和所述目的IP地址构造所述流转发规则,并将构造的所述流转发规则下发给所述openflow交换机。
本发明实施例提供的僵尸网络检测方法和控制器,在SDN架构下,通过构造包含子流转发规则和母流转发规则的流转发规则,并基于该子流转发规则的第一匹配次数和母流转发规则的第二匹配次数获得访问任意两个SDN外部的服务器的SDN中用户终端的访问相似度矩阵,并通过对该访问相似度矩阵进行聚类分析,以根据聚类结果确定僵尸网络。由于SDN中由控制器对数据流进行集中管理,并且流转发规则中的母流转发规则中的源IP地址为对应子流转发规则中的确定用户终端的IP地址与第一预设子网掩码进行位与运算后确定的一个子网地址,使得控制器无需一一为该子网内的用户终端构造流转发规则,并且openflow交换机仅需完成对流转发规则的统计,大大降低了控制器和交换机的处理负载,进一步,根据匹配次数获得访问不同外部服务器的用户终端的相似度,基于该相似度来确定僵尸网络,无需对数据包特征进行深度解析,在降低处理负载的同时,提高了僵尸网络的检测效率。
附图说明
图1-1为本发明实施例提供的僵尸主机与服务器的交互模型示意图;
图1-2为本发明实施例一提供的僵尸网络检测方法的流程图;
图2为本发明实施例二提供的僵尸网络检测方法的流程图;
图3为本发明实施例三提供的控制器的结构示意图;
图4为本发明实施例四提供的控制器的结构示意图;
图5为本发明实施例五提供的控制器的结构示意图。
具体实施方式
图1-2为本发明实施例一提供的僵尸网络检测方法的流程图,如图1-2所示,本实施例提供的所述方法适用于在采用软件定义网络(Software Defined Network,以下简称SDN)网络架构的网络中进行僵尸网络的检测。所谓SDN,就是将传统网络架构下的网络交换机或路由器中的控制功能从设备中分离出来,交由SDN中的控制器(Controller)来完成,原有的网络交换机或路由器只负责数据转发功能,从而实现了控制层面与数据层面的分离。在SDN中,控制器和交换机间使用openflow协议进行通信,因此,称SDN网络中的交换机为openflow交换机。在SDN网络中,由控制器对SDN网络中的所有数据流的传输进行集中的控制管理,openflow交换机仅通过执行控制器下发的流处理规则以完成数据流的转发等处理。本实施例提供的所述方法可以由SDN网络中的控制器来执行。
本实施例提供的所述方法具体包括如下步骤:
步骤101、接收软件定义网络SDN中的openflow交换机在第一预设时间段内上报的流转发规则的统计信息,所述流转发规则包括子流转发规则和与所述子流转发规则对应的母流转发规则,所述统计信息包括所述子流转发规则的第一匹配次数和所述母流转发规则的第二匹配次数;
其中,所述子流转发规则用于将SDN中与所述子流转发规则中的源IP地址对应的数据包转发至与所述子流转发规则中的目的IP地址对应的SDN外部的服务器,所述母流转发规则用于将SDN中与所述源IP地址对应的子网地址内的数据包转发至所述服务器,所述子网地址为对所述源IP地址和预设子网掩码进行位与运算确定的。
一般而言,攻击者通过某些服务器向被控制的各僵尸主机下发各种指令,以使得各僵尸主机根据该指令向其他网络设备或用户终端发送比如垃圾邮件等病毒信息,而这些服务器即构成了控制各僵尸主机的僵尸网络。经过对大量的僵尸网络的行为分析,发现僵尸主机与僵尸网络服务器之间的交互呈现出协同性的特点,如图1-1所示,图1-1为本发明实施例提供的僵尸主机与服务器的交互模型示意图。为了避免僵尸网络服务器的单点失效问题以及为了使僵尸主机与僵尸网络服务器之间的交互行为更加隐蔽,僵尸主机通常会在不同的时间内是与不同的控制服务器交互,比如在一个时间段,僵尸主机HostB、HostC、HostD会与服务器ServerA通信,在另外一个时间段,则会与服务器ServerB通信。举例来说,假如僵尸网络服务器要求HostB、HostC、HostD发起垃圾邮件攻击,那么HostB、HostC、HostD有可能会在ServerA先获取攻击指令,然后根据攻击指令与ServerB通信获取垃圾邮件的目的地址,然后与ServerC通信获取垃圾邮件的主题或内容等信息,最后再发送垃圾邮件。现有技术中多是从僵尸主机的视角来考虑,通过对僵尸主机产生的数据流进行聚类分析,以检测出对应的僵尸网络,但是由于僵尸主机作为用户侧设备,相对于服务器来说还会参与许多其他的网络活动,会给聚类效果带来很大的影响。因此,本实施例将从僵尸网络服务器的视角来考虑,只要找出被SDN中同一批僵尸主机访问的SDN外部的服务器团体就可以了,其中,SDN中的僵尸主机即为感染了僵尸程序的用户终端。
在SDN中,当网络内的某用户终端需要访问SDN网络外的某服务器时,该用户终端的数据包将发送给SDN中的openflow交换机,由该openflow交换机查询本地存储的流表,以查询本地是否存在与该数据包对应的流转发规则。一般地,openflow交换机可以预先建立一个白名单流表,该白名单流表中存储的流转发规则中源IP地址或目的IP地址为事先获取的已知正常网络服务器IP地址。如果openflow交换机在该白名单流表中查询到与该数据包匹配的流转发规则,则根据对应的流转发规则完成该数据包的线速转发,如果没有查询到,则可选地将该数据包转发给SDN的控制器,由该控制器为该数据包计算路由,制定流转发规则,并将制定的流转发规则下发给openflow交换机,以使该openflow交换机根据下发的流转发规则完成该数据包的转发。
本实施例中,以SDN中的某用户终端需访问SDN外部的某服务器来举例说明流转发规则的构造过程。当openflow交换机在本地未查询到与某用户终端的数据包对应的流转发规则时,将该数据包转发给控制器,控制器根据该数据包中包含的源IP地址和目的IP地址构造流转发规则,并将构造的所述流转发规则下发给所述openflow交换机,其中,本实施例中的所述流转发规则包括子流转发规则和与所述子流转发规则对应的母流转发规则。具体地,该子流转发规则中的源IP地址为该用户终端的IP地址,目的IP地址为该服务器的IP地址,用于将该用户终端的数据包转发给该服务器,而与该子流转发规则对应的母流转发规则的源IP地址为该用户终端的IP地址与第一预设子网掩码进行位与运算后的子网地址,目的IP地址仍为该服务器的IP地址,用于将该子网地址对应的子网内的各用户终端的数据包转发至该服务器。
本实施例中的流转发规则中包含的母流转发规则,通过以对应子流转发规则中的源IP地址为依据,对SDN进行子网划分,使得控制器无需对同一子网内的各用户终端的数据包一一进行流转发规则的构造,降低了控制器的处理负载。
控制器在分别接收到openflow交换机转发的不同数据包时,将构造的与各数据包对应的包含子流转发规则和对应的母流转发规则的各个流转发规则下发给openflow交换机,以使该openflow交换机根据该各流转发规则对接收到的各数据包进行到相应目的服务器的转发处理的同时,对每个流转发规则的使用情况进行统计,以获得每个流转发规则的统计信息。
Openflow交换机将第一预设时间段内获得的统计信息上报给控制器,其中,该统计信息中包括每个子流转发规则的第一匹配次数和与每个子流转发规则分别对应的每个母流转发规则的第二匹配次数,该第一匹配次数可以理解成对应的子流转发规则被使用以成功匹配数据包的使用次数,相应的,该第二匹配次数可以理解成对应的母流转发规则被使用以成功匹配数据包的使用次数。
可选的,控制器下发给openflow交换机的每个流转发规则中还可以包括该流转发规则的生命周期,相应的,openflow交换机上报的统计信息可以是在对应流转发规则的生命周期结束时才统一上报的。
步骤102、根据所述第一匹配次数和所述第二匹配次数,计算所述服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器访问的概率集合;
步骤103、根据所述访问概率集合,计算访问所述服务器中任意两个服务器的用户终端的相似度,得到访问相似度矩阵;
步骤104、采用预设谱聚类算法对所述访问相似度矩阵进行谱聚类,获得聚类结果;
步骤105、根据所述聚类结果确定是否存在僵尸网络。
控制器在接收到openflow交换机在第一预设时间段内上报的每个流转发规则的统计信息后,根据每个统计信息中的第一匹配次数和第二匹配次数,确定每个流转发规则中目的IP地址对应的服务器被SDN中任一用户终端访问的访问概率,从而得到分别与每个服务器对应的访问概率集合。根据上述流转发规则中子流转发规则和对应的母流转发规则的特点可知,子流转发规则和对应的母流转发规则对应着同一个目的IP地址,即每个流转发规则对应着一个SDN外部的服务器。以SDN内的某一用户终端h以及与h在同一子网内的多个其他用户终端都访问服务器s为例说明如何根据第一匹配次数和第二匹配次数来确定任一服务器s被SDN中任一用户终端访问的访问概率,此时,第一匹配次数即意味着h使用对应的子流转发规则成功访问s的次数,第二匹配次数即意味着与h在同一子网内的其他多个用户终端使用对应的母流转发规则成功访问s的次数,由于子流转发规则即对应着唯一确定的用户终端h,而母流转发规则却对应着一个子网地址,没有确定的用户终端,因此,控制器可以根据子流转发规则中的源IP地址为h,目的IP地址为s确定出如果访问s的用户终端为h,则访问概率为1,对于其他非h的用户终端,由于这些非h的用户终端中有一部分与h在同一子网内,根据第一匹配次数和第二匹配次数可以计算出同一子网内的用户终端访问s的访问概率,不在同一子网又非h的用户终端的访问概率为0。依次类推,针对每个流转发规则对应的服务器都进行类似访问概率的确定,从而能够获得分别与每个服务器对应的访问概率集合。
进而,基于该访问概率集合依次计算访问任意两个所述服务器的用户终端的相似度,得到访问相似度矩阵,即从该访问概率集合中,每次针对两个不同的服务器,根据这两个服务器分别对应的访问概率来计算分别访问这两个服务器的用户终端的相似度,依次类推,两两计算各服务器,直到上报的所有流转发规则对应的服务器都被计算完为止。可以理解的是,每个服务器对应着一个访问群体,即访问该服务器的用户终端群体,而每个服务器的访问概率集合包含访问该服务器的用户终端群体中每个用户终端对其的访问概率,因此,可以根据服务器p和服务器q的访问概率集合来计算获得访问p的用户终端群体与访问q的用户终端群体的相似度,其中,p和q为两个不同的服务器。之后,控制器可以根据预设谱聚类算法,比如K均值谱聚类算法、OPTICS算法,对获得的访问相似度矩阵进行谱聚类求解,比如求解特征值、特征向量,对特征向量进行聚类分析,获得聚类结果,进而根据聚类结果来确定僵尸网络,即根据聚类结果中包含的多个类簇,确定哪些类簇包含的服务器构成一个僵尸网络。由于谱聚类分析的过程与现有技术中的聚类方法类似,不详细说明。
本实施例中,在SDN架构下,控制器通过构造包含子流转发规则和母流转发规则的流转发规则,并基于该子流转发规则的第一匹配次数和母流转发规则的第二匹配次数获得访问任意两个SDN外部的服务器的SDN中用户终端的访问相似度矩阵,并通过对该访问相似度矩阵进行聚类分析,以根据聚类结果确定僵尸网络。由于SDN中由控制器对数据流进行集中管理,并且流转发规则中的母流转发规则中的源IP地址为对应子流转发规则中的确定用户终端的IP地址与第一预设子网掩码进行位与运算后确定的一个子网地址,使得控制器无需一一为该子网内的用户终端构造流转发规则,并且,openflow交换机仅需完成对流转发规则的统计,大大降低了控制器和交换机的处理负载,另外,根据匹配次数获得访问不同外部服务器的用户终端的相似度,基于该相似度来确定僵尸网络,无需对数据包特征进行深度解析,在降低处理负载的同时,提高了僵尸网络的检测效率。
图2为本发明实施例二提供的僵尸网络检测方法的流程图,如图2所示,在图1-2所示实施例的基础上,本实施例的方法包括:
步骤201、接收openflow交换机转发的待处理数据包,所述数据包中包括源IP地址和目的IP地址;
步骤202、根据所述源IP地址和所述目的IP地址构造流转发规则,所述流转发规则包括子流转发规则和与所述子流转发规则对应的母流转发规则,并将构造的所述流转发规则下发给所述openflow交换机;
步骤203、接收软件定义网络SDN中的openflow交换机在第一预设时间段内上报的流转发规则的统计信息,所述统计信息中包括所述子流转发规则的第一匹配次数和所述母流转发规则的第二匹配次数;
本实施例中,当SDN中的某用户终端需访问SDN外部的某服务器时,该用户终端将待发送的数据包发送给该SDN中的openflow交换机,当openflow交换机在本地未查询到与某用户终端的数据包对应的流转发规则时,将该数据包转发给控制器,控制器根据该数据包中包含的源IP地址和目的IP地址构造流转发规则,并将构造的所述流转发规则下发给所述openflow交换机,其中,本实施例中的所述流转发规则包括子流转发规则和与所述子流转发规则对应的母流转发规则。具体地,该子流转发规则中的源IP地址为该用户终端的IP地址,目的IP地址为该服务器的IP地址,用于将该用户终端的数据包转发给该服务器,而与该子流转发规则对应的母流转发规则的源IP地址为该用户终端的IP地址与第一预设子网掩码进行位与运算后的子网地址,目的IP地址仍为该服务器的IP地址,用于将该子网地址对应的子网内的各用户终端的数据包转发至该服务器。
可选的,控制器可以规定每个流转发规则的生命周期,以使openflow交换机从接收到每个流转发规则时刻开始计时,在每个流转发生命周期结束时,向控制器上报在每个流转发规则的生命周期内对应流转发规则的统计信息。
由于僵尸网络具有如图1-1所示的协同交互特性,本实施例中可以利用僵尸主机与僵尸网络服务器间的这种协同交互特性来检测僵尸网络,即获得被同一批僵尸主机访问的僵尸网络服务器团体,该僵尸网络服务器团体即构成一个僵尸网络。为此,首先需针对统计信息中包含的每个流转发规则对应的服务器,依次分别获得访问每个服务器的用户终端群体,进而根据各个用户终端群体间的相似度来确定被同一批用户终端,即僵尸主机访问的服务器。
本实施例中,为了进一步提高僵尸网络检测的准确性,控制器可以通过对多个预设时间段内获得的僵尸网络服务器进一步地进行相似度分析,如果某一预设时间段内获得的僵尸网络服务器团体在至少一个另一预设时间段中具有较高相似度的另一僵尸网络服务器团体与之匹配,则确定该僵尸网络服务器团体为一个僵尸网络,具体过程以下说明。
值得说明的是,本实施例中的第一预设时间段可以是一个滑动窗口,窗口大小例如为12小时,每次的滑动步长例如为1小时,而控制器规定的每个流转发规则的生命周期例如为1小时,当某个流转发规则的生命周期结束时,openflow交换机即删除该流转发规则,后续与该流转发规则中源IP地址对应的用户终端访问目的IP地址对应的服务器时,仍需将数据包转发给控制器,由控制器重新制定流转发规则,新制定的流转发规则可能与之前流转发规则相同,也可能不同。另外,在当前第一预设时间段对应的观测窗口结束时,控制器首先清除该观测窗口中获得的流转发规则的统计信息,再在下一第二预设时间段对应的观测窗口中接收openflow交换机上报的后续统计信息。
步骤204、根据下列公式计算所述流转发规则中目的IP地址对应的服务器被所述SDN中的任一用户终端访问的平均访问次数;
其中,为对服务器s的平均访问次数,用户终端h为所述SDN中的任一用户终端,nhs为用于将用户终端h的数据包转发至服务器s的子流转发规则fhs的第一匹配次数,ms为目的IP地址对应所述服务器s的子流转发规则的个数。
本实施例中,在第一预设时间段中,控制器会接收到若干个流转发规则的统计信息,由于每个流转发规则分别对应着一个服务器,控制器首先根据上述公式获得各个服务器被SDN中任一用户终端访问的平均访问次数。值得说明的是,由于母流转发规则中的源IP地址字段为一个子网地址,无法获知唯一确定的用户终端信息,因此,本实施例是通过子流转发规则来确定该平均访问次数的。举例来说,比如统计信息中共有3个子流转发规则对应服务器s,分别为fh1s、fh2s、fh2s,对应的第一匹配次数分别为nh1s、nh2s、nh3s,即意味着用户终端h1使用子流转发规则fh1s访问了s的次数为nh1s,以此类推,可知服务器s被访问的平均访问次数为(nh1s+nh2s+nh3s)/3。相类似的,求得每个服务器的平均访问次数。
步骤205、根据下列公式依次计算所述流转发规则中目的IP地址对应的服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器的访问概率集合:
其中,phs为SDN中的任一用户终端h访问任一流转发规则中目的IP地址对应服务器s的访问概率,为采用第k个子流转发规则和对应的母流转发规则得到的h访问s的访问概率,根据下列公式确定:
其中,hk为采用第k个子流转发规则的用户终端,Hk为与第k个母流转发规则对应的SDN中的子网,为子网Hk中包含的用户终端数量,为第k个母流转发规则的第二匹配次数。
进而,根据上述公式获得每个服务器被SDN中任一用户终端访问的访问概率,从而得到与每个服务器对应的一个访问概率集合,比如访问服务器s的访问概率集合:{ph1s、ph2s、ph3s}。
步骤206、依次针对所述服务器中的任意两个服务器sp和sq,根据下列公式计算所述SDN中访问服务器sp的用户终端与服务器sq的用户终端的相似度,得到访问相似度矩阵:
Apq=|Up∩Uq|/|Up∪Uq|
其中,Apq为所述相似度,Up为访问服务器sp的用户终端组成的群体,Uq为访问服务器sq的用户终端组成的群体,|UP∩Uq|为既访问服务器sp又访问服务器sq的用户终端的个数,根据下列公式确定:
|UP∪Uq|为访问服务器sp或者访问服务器sq的用户终端的个数,根据下列公式确定:
本实施例中,进一步地,控制器根据与每个服务器对应的访问概率集合,两两计算访问任意两个不同的服务器的用户终端的相似度,从而得到访问相似度矩阵。具体来说,针对任意两个服务器sp和sq,访问服务器sp的用户终端组成的群体Up与访问服务器sq的用户终端组成的群体Uq的相似度Apq根据上述公式确定,依次针对其他的任意两个不同服务器,按照上述方式两两计算相似度,得到一个针对每两个服务器的访问相似度矩阵。
步骤207、对所述访问相似度矩阵进行谱分解,得到特征值;
步骤208、获取大于第一预设阈值的特征值;
步骤209、确定与所述大于第一预设阈值的特征值对应的特征向量;
步骤210、采用预设聚类算法对所述特征向量进行聚类,获得至少两个第一类簇;
进而,控制器对该访问相似度矩阵进行谱聚类求解,首先对该访问相似度矩阵进行谱分解,得到每个特征值,之后对得到的所述每个特征值按照数值递减的顺序进行排序,选取排在前面的预设数量的第一特征值,并确定与第一特征值分别对应的特征向量,之后采用预设聚类算法,比如OPTICS算法,对确定的各特征向量进行聚类,得到至少两个第一类簇。
谱聚类的结果一般可以得到至少两个第一类簇,每个第一类簇中包含一个或多个服务器,每个类簇中包含的服务器有可能构成一个僵尸网络,具体确定每个类簇中包含的服务器是否能够构成一个僵尸网络的过程如下:
步骤211、分别以所述至少两个第一类簇中的每个第一类簇作为待处理类簇,根据所述访问相似度矩阵,确定所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度;
步骤212、根据所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度,确定所述待处理类簇的平均访问相似度;
步骤213、判断所述平均访问相似度是否大于预设访问相似度阈值,并且所述待处理类簇中包含的各服务器的数量是否大于预设数量,当平均访问相似度大于预设访问相似度阈值并且所述待处理类簇中包含的各服务器的数量大于预设数量,则执行步骤214;
分别以每个第一类簇作为待处理类簇,对于待处理类簇中包含的各服务器,通过查询之前获得的访问相似度矩阵可以得到该各服务器中任意两个服务器对应的访问相似度。举例来说,比如待处理类簇中包含s1、s2和s3这三个服务器,通过查询之前获得的访问相似度矩阵可以得到访问相似度:A s1s2、A s1s3和A s2s3,进而取平均(A s1s2+A s1s3+A s2s3)/3,得到待处理类簇的平均访问相似度。之后判断该平均访问相似度是否大于预设访问相似度阈值,并且该待处理类簇中包含的各服务器的数量是否大于预设数量,当平均访问相似度大于预设访问相似度阈值并且该待处理类簇中包含的各服务器的数量大于预设数量,则可选的,确定该待处理类簇中包含的各服务器构成一个僵尸网络。比如,若该待处理类簇中包含的服务器数量3大于预设数量2,且平均访问相似度0.5大于预设访问相似度阈值0.3,则确定该待处理类簇中包含的各服务器构成一个僵尸网络。
可选地,为了进一步提高僵尸网络检测的准确性,控制器可以通过对多个预设时间段内获得的各类簇中包含的服务器进一步地进行相似度分析,以根据相似度分析结果来确定某一第一类簇是否对应一个僵尸网络。具体地,在步骤213中,若平均访问相似度大于预设访问相似度阈值并且所述待处理类簇中包含的各服务器的数量大于预设数量,则执行步骤214。
步骤214、判断待处理类簇的服务器平均访问次数是否小于第二预设阈值,若小于所述第二预设阈值,则执行步骤215;
步骤215、更新所述待处理类簇中包含的各服务器对应的母流转发规则中的子网地址,并根据更新后的各服务器对应的母流转发规则中的子网地址获得至少两个第二类簇;
具体地,首先判断待处理类簇的服务器平均访问次数是否小于第二预设阈值。其中,待处理类簇的服务器平均访问次数为该待处理类簇中包含的各服务器的平均访问次数的平均值,其中,各服务器的平均访问次数根据步骤204中的方式确定。待处理类簇的服务器平均访问次数小于第二预设阈值,说明当前第一预设时间段内对该待处理类簇中的各服务器对应的流转发规则的统计不充分,使得检测僵尸网络的结果可能不够准确,需进行更细粒度的统计。从而,更新该待处理类簇中包含的各服务器对应的母流转发规则中的子网地址,并根据更新后的各服务器对应的母流转发规则中的子网地址获得至少两个第二类簇。其中,更新后的子网地址覆盖更广的范围,比如可以通过更新预设子网掩码来实现。
具体地,控制器将所述更新后的流转发规则下发给所述openflow交换机,并根据所述openflow交换机在第二预设时间段内上报的所述更新后的流转发规则的统计信息获得至少两个第二类簇。具体过程与步骤203~210类似。
步骤216、确定所述至少两个第二类簇中是否存在与所述待处理类簇中包含的各服务器的服务器相似度大于第三预设阈值的类簇,若存在,则执行步骤217;
步骤217、确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
进而,确定所述至少两个第二类簇中是否存在与所述待处理类簇中包含的各服务器的服务器相似度大于第三预设阈值的类簇,若存在,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络,若不存在,则结束。其中,该相似度可以简单地根据待处理类簇中包含的服务器与各第二类簇中包含的服务器相同的数量来确定,比如待处理类簇和某个第二类簇中分别包含8个服务器,其中有7个服务器相同,那么服务器相似度即为7/8。
上述实施例仅以两个预设时间段为例进行了说明,进一步地,控制器可以通过对在从多个预设时间段中分别获得的各类簇进行与某一第一类簇的相似度判断,比如,总共7个预设时间段中有4个预设时间段都获得了与某第一类簇的服务器相似度大于第三预设阈值的类簇,那么认为该第一类簇中包含的服务器为一个僵尸网络,从而进一步提高了僵尸网络检测的准确性。
本实施例中,通过将获得的每个第一类簇与从多个不同预设时间段中获得的各类簇进行服务器相似度比较,在相似度大于一定阈值的情况下,认为对应的第一类簇中包含的服务器为一个僵尸网络,进一步提高了僵尸网络检测的准确性。
图3为本发明实施例三提供的控制器的结构示意图,如图3所示,该控制器包括:
第一接收模块11,用于接收软件定义网络SDN中的openflow交换机在第一预设时间段内上报的流转发规则的统计信息,所述流转发规则包括子流转发规则和与所述子流转发规则对应的母流转发规则,所述统计信息包括所述子流转发规则的第一匹配次数和所述母流转发规则的第二匹配次数;
其中,所述子流转发规则用于指示将SDN中与所述子流转发规则中的源IP地址对应的数据包转发至与所述子流转发规则中的目的IP地址对应的SDN外部的服务器,所述母流转发规则用于将SDN中与所述源IP地址对应的子网地址内的数据包转发至所述服务器,所述子网地址为对所述源IP地址和预设子网掩码进行位与运算确定的;
第一确定模块12,用于根据所述第一匹配次数和所述第二匹配次数,计算所述服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器访问概率集合;
计算模块13,用于根据所述访问概率集合,计算访问所述服务器中任意两个服务器的用户终端的相似度,得到访问相似度矩阵;
聚类模块14,用于采用预设谱聚类算法对所述访问相似度矩阵进行谱聚类,获得聚类结果;
第二确定模块15,用于根据所述聚类结果确定是否存在僵尸网络。
本实施例的控制器可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图4为本发明实施例四提供的控制器的结构示意图,如图4所示,该控制器在图3所示实施例的基础上,所述第一确定模块12,包括:
第一确定单元121,用于根据下列公式计算所述流转发规则中目的IP地址对应的服务器被所述SDN中的任一用户终端访问的平均访问次数:
其中,为对服务器s的平均访问次数,用户终端h为所述SDN中的任一用户终端,nhs为用于将用户终端h的数据包转发至s的子流转发规则fhs的第一匹配次数,ms为目的IP地址对应所述服务器s的子流转发规则的个数;
第二确定单元122,用于根据下列公式依次计算所述流转发规则中目的IP地址对应的服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器的访问概率集合:
其中,phs为SDN中的任一用户终端h访问任一流转发规则中目的IP地址对应服务器s的访问概率,为采用第k个子流转发规则和对应的母流转发规则得到的h访问s的访问概率,根据下列公式确定:
其中,hk为采用第k个子流转发规则的用户终端,Hk为与第k个母流转发规则对应的SDN中的子网,为子网Hk中包含的用户终端数量,为第k个母流转发规则的第二匹配次数。
进一步地,所述计算模块13,具体用于:
依次针对所述服务器中的任意两个服务器sp和sq,根据下列公式计算所述SDN中访问服务器sp的用户终端与服务器sq的用户终端的相似度,得到访问相似度矩阵:
Apq=|Up∩Uq|/|Up∪Uq|
其中,Apq为所述相似度,Up为访问服务器sp的用户终端组成的群体,Uq为访问服务器sq的用户终端组成的群体,|UP∩Uq|为既访问服务器sp又访问服务器sq的用户终端的个数,根据下列公式确定:
|UP∪Uq|为访问服务器sp或者访问服务器sq的用户终端的个数,根据下列公式确定:
进一步地,所述聚类模块14,包括:
分解单元141,用于对所述访问相似度矩阵进行谱分解,得到特征值;
获取单元142,用于获取大于第一预设阈值的特征值;
第三确定单元143,用于确定与所述大于第一预设阈值的特征值对应的特征向量;
处理单元144,用于采用预设聚类算法对所述特征向量进行聚类,获得至少两个第一类簇;
第二确定模块15,具体用于根据所述至少两个第一类簇确定是否存在僵尸网络。
进一步地,所述第二确定模块15,包括:
第四确定单元151,用于分别以所述至少两个第一类簇中的每个第一类簇作为待处理类簇,根据所述访问相似度矩阵,确定所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度;
第五确定单元152,根据所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度,确定所述待处理类簇的平均访问相似度;
判断单元153,用于判断所述平均访问相似度是否大于预设访问相似度阈值,并且所述待处理类簇中包含的各服务器的数量是否大于预设数量;
第六确定单元154,用于当平均访问相似度大于预设访问相似度阈值并且所述待处理类簇中包含的各服务器的数量大于预设数量,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
进一步地,该控制器还包括:
判断模块21,用于判断待处理类簇的服务器平均访问次数是否小于第二预设阈值;
处理模块22,用于若所述判断模块判断小于所述第二预设阈值,则更新所述待处理类簇中包含的各服务器对应的母流转发规则中的子网地址,并根据更新后的各服务器对应的母流转发规则中的子网地址获得至少两个第二类簇;
第二确定模块15,具体用于:
确定所述至少两个第二类簇中是否存在与所述待处理类簇中包含的各服务器的服务器相似度大于第三预设阈值的类簇;
若存在,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
进一步地,所述处理模块22,用于:
将所述更新后的流转发规则下发给所述openflow交换机,并根据所述openflow交换机在第二预设时间段内上报的所述更新后的流转发规则的统计信息获得至少两个第二类簇。
进一步地,该控制器还包括:
第二接收模块23,用于接收openflow交换机转发的待处理数据包,所述数据包中包括源IP地址和目的IP地址;
发送模块24,用于根据所述源IP地址和所述目的IP地址构造所述流转发规则,并将构造的所述流转发规则下发给所述openflow交换机。
本实施例的控制器可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明实施例五提供的处理设备的结构示意图,该处理设备包括:
接收器31、存储器32以及与所述存储器32连接的处理器33,其中,所述接收器31用于接收软件定义网络SDN中的openflow交换机在第一预设时间段内上报的流转发规则的统计信息,所述流转发规则包括子流转发规则和与所述子流转发规则对应的母流转发规则,所述统计信息包括所述子流转发规则的第一匹配次数和所述母流转发规则的第二匹配次数;其中,所述子流转发规则用于将SDN中与所述子流转发规则中的源IP地址对应的数据包转发至与所述子流转发规则中的目的IP地址对应的SDN外部的服务器,所述母流转发规则用于将SDN中与所述源IP地址对应的子网地址内的数据包转发至所述服务器,所述子网地址为对所述源IP地址和预设子网掩码进行位与运算确定的;
所述存储器31用于存储一组程序代码,所述处理器32用于调用所述存储器31中存储的程序代码,以执行如图1所示僵尸网络检测方法中的:根据所述第一匹配次数和所述第二匹配次数,计算所述服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器访问概率集合;根据所述访问概率集合,计算访问所述服务器中任意两个服务器的用户终端的相似度,得到访问相似度矩阵;采用预设谱聚类算法对所述访问相似度矩阵进行谱聚类,获得聚类结果;根据所述聚类结果确定是否存在僵尸网络。
进一步地,所述处理器33还用于:
根据下列公式计算所述流转发规则中目的IP地址对应的服务器被所述SDN中的任一用户终端访问的平均访问次数:
其中,为对服务器s的平均访问次数,用户终端h为所述SDN中的任一用户终端,nhs为用于将用户终端h的数据包转发至服务器s的子流转发规则fhs的第一匹配次数,ms为目的IP地址对应服务器s的子流转发规则的个数;
根据下列公式依次计算所述流转发规则中目的IP地址对应的服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器的访问概率集合:
其中,phs为SDN中的任一用户终端h访问任一流转发规则中目的IP地址对应服务器s的访问概率,为采用第k个子流转发规则和对应的母流转发规则得到的h访问s的访问概率,根据下列公式确定:
其中,hk为采用第k个子流转发规则的用户终端,Hk为与第k个母流转发规则对应的SDN中的子网,为子网Hk中包含的用户终端数量,为第k个母流转发规则的第二匹配次数。
进一步地,所述处理器33还用于:
依次针对所述服务器中的任意两个服务器sp和sq,根据下列公式计算所述SDN中访问服务器sp的用户终端与服务器sq的用户终端的相似度,得到访问相似度矩阵:
Apq=|Up∩Uq|/|Up∪Uq|
其中,Apq为所述相似度,Up为访问服务器sp的用户终端组成的群体,Uq为访问服务器sq的用户终端组成的群体,|UP∩Uq|为既访问服务器sp又访问服务器sq的用户终端的个数,根据下列公式确定:
|UP∪Uq|为访问服务器sp或者访问服务器sq的用户终端的个数,根据下列公式确定:
进一步地,所述处理器33还用于:对所述访问相似度矩阵进行谱分解,得到特征值;获取大于第一预设阈值的特征值;确定与所述大于第一预设阈值的特征值对应的特征向量;采用预设聚类算法对所述特征向量进行聚类,获得至少两个第一类簇;根据所述至少两个第一类簇确定僵尸网络。
进一步地,所述处理器33还用于:分别以所述至少两个第一类簇中的每个第一类簇作为待处理类簇,根据所述访问相似度矩阵,确定所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度;根据所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度,确定所述待处理类簇的平均访问相似度;判断所述平均访问相似度是否大于预设访问相似度阈值,并且所述待处理类簇中包含的各服务器的数量是否大于预设数量;当平均访问相似度大于预设访问相似度阈值并且所述待处理类簇中包含的各服务器的数量大于预设数量,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
进一步地,所述处理器33还用于:判断待处理类簇的服务器平均访问次数是否小于第二预设阈值;若小于所述第二预设阈值,则更新所述待处理类簇中包含的各服务器对应的母流转发规则中的子网地址,并根据更新后的各服务器对应的母流转发规则中的子网地址获得至少两个第二类簇;确定所述至少两个第二类簇中是否存在与所述待处理类簇中包含的各服务器的服务器相似度大于第三预设阈值的类簇;若存在,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
进一步地,所述处理器33还用于:将所述更新后的流转发规则下发给所述openflow交换机,并根据所述openflow交换机在第二预设时间段内上报的所述更新后的流转发规则的统计信息获得至少两个第二类簇;确定所述至少两个第二类簇中是否存在与所述待处理类簇中包含的各服务器的服务器相似度大于第三预设阈值的类簇;若存在,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
进一步地,所述接收器31还用于:接收openflow交换机转发的待处理数据包,所述数据包中包括源IP地址和目的IP地址;相应的,所述控制器还包括发射器34,所述发射器34用于:根据所述源IP地址和所述目的IP地址构造所述流转发规则,并将构造的所述流转发规则下发给所述openflow交换机。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM(Random OnlyMemory,只读存储器)、RAM(Random Access Memory,随机存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (16)

1.一种僵尸网络检测方法,其特征在于,包括:
接收软件定义网络SDN中的openflow交换机在第一预设时间段内上报的流转发规则的统计信息,所述流转发规则包括子流转发规则和与所述子流转发规则对应的母流转发规则,所述统计信息包括所述子流转发规则的第一匹配次数和所述母流转发规则的第二匹配次数;
其中,所述子流转发规则用于指示将SDN中与所述子流转发规则中的源IP地址对应的数据包转发至与所述子流转发规则中的目的IP地址对应的SDN外部的服务器,所述母流转发规则用于将SDN中与所述源IP地址对应的子网地址内的数据包转发至所述服务器;
根据所述第一匹配次数和所述第二匹配次数,计算所述服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器的访问概率集合;
根据所述访问概率集合,计算访问所述服务器中任意两个服务器的用户终端的相似度,得到访问相似度矩阵;
采用预设谱聚类算法对所述访问相似度矩阵进行谱聚类,获得聚类结果;
根据所述聚类结果确定是否存在僵尸网络。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一匹配次数和所述第二匹配次数,确定所述服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器的访问概率集合,包括:
根据下列公式计算所述服务器被所述SDN中的任一用户终端访问的平均访问次数:
其中,为对服务器s的平均访问次数,用户终端h为所述SDN中的任一用户终端,nhs为用于将用户终端h的数据包转发至服务器s的子流转发规则fhs的第一匹配次数,ms为目的IP地址对应所述服务器s的子流转发规则的个数;
根据下列公式依次计算所述流转发规则中目的IP地址对应的服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器的访问概率集合:
其中,phs为SDN中的任一用户终端h访问任一流转发规则中目的IP地址对应服务器s的访问概率,为采用第k个子流转发规则和对应的母流转发规则得到的h访问s的访问概率,根据下列公式确定:
其中,hk为采用第k个子流转发规则的用户终端,Hk为与第k个母流转发规则对应的SDN中的子网,为子网Hk中包含的用户终端数量,为第k个母流转发规则的第二匹配次数。
3.根据权利要求2所述的方法,其特征在于,所述根据所述访问概率集合,计算访问所述服务器中任意两个服务器的用户终端的相似度,得到访问相似度矩阵,包括:
依次针对所述服务器中的任意两个服务器sp和sq,根据下列公式计算所述SDN中访问服务器sp的用户终端与服务器sq的用户终端的相似度,得到访问相似度矩阵:
Apq=|Up∩Uq|/|Up∪Uq|
其中,Apq为所述相似度,Up为访问服务器sp的用户终端组成的群体,Uq为访问服务器sq的用户终端组成的群体,|UP∩Uq|为既访问服务器sp又访问服务器sq的用户终端的个数,根据下列公式确定:
|UP∪Uq|为访问服务器sp或者访问服务器sq的用户终端的个数,根据下列公式确定:
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述采用预设谱聚类算法对所述访问相似度矩阵进行谱聚类,获得聚类结果,包括:
对所述访问相似度矩阵进行谱分解,得到特征值;
获取大于第一预设阈值的特征值;
确定与所述大于第一预设阈值的特征值对应的特征向量;
采用预设谱聚类算法对所述特征向量进行聚类,获得至少两个第一类簇;
所述根据所述聚类结果确定是否存在僵尸网络包括:
根据所述至少两个第一类簇确定是否存在僵尸网络。
5.根据权利要求4所述的方法,其特征在于,所述根据所述至少两个第一类簇确定僵尸网络,包括:
分别以所述至少两个第一类簇中的每个第一类簇作为待处理类簇,根据所述访问相似度矩阵,确定所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度;
根据所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度,确定所述待处理类簇的平均访问相似度;
判断所述平均访问相似度是否大于预设访问相似度阈值,并且所述待处理类簇中包含的各服务器的数量是否大于预设数量;
当平均访问相似度大于预设访问相似度阈值并且所述待处理类簇中包含的各服务器的数量大于预设数量,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
6.根据权利要求5所述的方法,其特征在于,所述确定所述待处理类簇中包含的各服务器构成一个僵尸网络之前,还包括:
判断待处理类簇的服务器平均访问次数是否小于第二预设阈值;
若小于所述第二预设阈值,则更新所述待处理类簇中包含的各服务器对应的母流转发规则中的子网地址,并根据更新后的各服务器对应的母流转发规则中的子网地址获得至少两个第二类簇;
所述确定所述待处理类簇中包含的各服务器构成一个僵尸网络,包括:
确定所述至少两个第二类簇中是否存在与所述待处理类簇中包含的各服务器的服务器相似度大于第三预设阈值的类簇;
若存在,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
7.根据权利要求6所述的方法,其特征在于,所述根据更新后的各服务器对应的母流转发规则中的子网地址获得至少两个第二类簇,包括:
将所述更新后的流转发规则下发给所述openflow交换机,并根据所述openflow交换机在第二预设时间段内上报的所述更新后的流转发规则的统计信息获得至少两个第二类簇。
8.根据权利要求1至3、5至7中任一项所述的方法,其特征在于,所述接收软件定义网络SDN中的openflow交换机在第一预设时间段内上报的流转发规则的统计信息之前,还包括:
接收openflow交换机转发的待处理数据包,所述数据包中包括源IP地址和目的IP地址;
根据所述源IP地址和所述目的IP地址构造所述流转发规则,并将构造的所述流转发规则下发给所述openflow交换机。
9.一种控制器,其特征在于,包括:
第一接收模块,用于接收软件定义网络SDN中的openflow交换机在第一预设时间段内上报的流转发规则的统计信息,所述流转发规则包括子流转发规则和与所述子流转发规则对应的母流转发规则,所述统计信息包括所述子流转发规则的第一匹配次数和所述母流转发规则的第二匹配次数;
其中,所述子流转发规则用于指示将SDN中与所述子流转发规则中的源IP地址对应的数据包转发至与所述子流转发规则中的目的IP地址对应的SDN外部的服务器,所述母流转发规则用于将SDN中与所述源IP地址对应的子网地址内的数据包转发至所述服务器;
第一确定模块,用于根据所述第一匹配次数和所述第二匹配次数,计算所述服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器访问的概率集合;
计算模块,用于根据所述访问概率集合,计算访问所述服务器中任意两个服务器的用户终端的相似度,得到访问相似度矩阵;
聚类模块,用于采用预设谱聚类算法对所述访问相似度矩阵进行谱聚类,获得聚类结果;
第二确定模块,用于根据所述聚类结果确定是否存在僵尸网络。
10.根据权利要求9所述的控制器,其特征在于,所述第一确定模块,包括:
第一确定单元,用于根据下列公式计算所述服务器被所述SDN中的任一用户终端访问的平均访问次数:
其中,为对服务器s的平均访问次数,用户终端h为所述SDN中的任一用户终端,nhs为用于将用户终端h的数据包转发至服务器s的子流转发规则fhs的第一匹配次数,ms为目的IP地址对应所述服务器s的子流转发规则的个数;
第二确定单元,用于根据下列公式依次计算所述流转发规则中目的IP地址对应的服务器被所述SDN中任一用户终端访问的访问概率,获得所述服务器的访问概率集合:
其中,phs为SDN中的任一用户终端h访问任一流转发规则中目的IP地址对应服务器s的访问概率,为采用第k个子流转发规则和对应的母流转发规则得到的h访问s的访问概率,根据下列公式确定:
其中,hk为采用第k个子流转发规则的用户终端,Hk为与第k个母流转发规则对应的SDN中的子网,为子网Hk中包含的用户终端数量,为第k个母流转发规则的第二匹配次数。
11.根据权利要求10所述的控制器,其特征在于,所述计算模块,具体用于:
依次针对所述服务器中的任意两个服务器sp和sq,根据下列公式计算所述SDN中访问服务器sp的用户终端与服务器sq的用户终端的相似度,得到访问相似度矩阵:
Apq=|Up∩Uq|/|Up∪Uq|
其中,Apq为所述相似度,Up为访问服务器sp的用户终端组成的群体,Uq为访问服务器sq的用户终端组成的群体,|UP∩Uq|为既访问服务器sp又访问服务器sq的用户终端的个数,根据下列公式确定:
|UP∪Uq|为访问服务器sp或者访问服务器sq的用户终端的个数,根据下列公式确定:
12.根据权利要求9至11中任一项所述的控制器,其特征在于,所述聚类模块,包括:
分解单元,用于对所述访问相似度矩阵进行谱分解,得到特征值;
获取单元,用于获取大于第一预设阈值的特征值;
第三确定单元,用于确定与所述大于第一预设阈值的特征值对应的特征向量;
处理单元,用于采用预设谱聚类算法对所述特征向量进行聚类,获得至少两个第一类簇;
所述第二确定模块,具体用于根据所述至少两个第一类簇确定僵尸网络。
13.根据权利要求12所述的控制器,其特征在于,所述第二确定模块,包括:
第四确定单元,用于分别以所述至少两个第一类簇中的每个第一类簇作为待处理类簇,根据所述访问相似度矩阵,确定所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度;
第五确定单元,根据所述待处理类簇中包含的各服务器中的任意两个服务器对应的访问相似度,确定所述待处理类簇的平均访问相似度;
判断单元,用于判断所述平均访问相似度是否大于预设访问相似度阈值,并且所述待处理类簇中包含的各服务器的数量是否大于预设数量;
第六确定单元,用于当平均访问相似度大于预设访问相似度阈值并且所述待处理类簇中包含的各服务器的数量大于预设数量,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
14.根据权利要求13所述的控制器,其特征在于,还包括:
判断模块,用于判断待处理类簇的服务器平均访问次数是否小于第二预设阈值;
处理模块,用于若所述判断模块判断小于所述第二预设阈值,则更新所述待处理类簇中包含的各服务器对应的母流转发规则中的子网地址,并根据更新后的各服务器对应的母流转发规则中的子网地址获得至少两个第二类簇;
第二确定模块,具体用于:
确定所述至少两个第二类簇中是否存在与所述待处理类簇中包含的各服务器的服务器相似度大于第三预设阈值的类簇;
若存在,则确定所述待处理类簇中包含的各服务器构成一个僵尸网络。
15.根据权利要求14所述的控制器,其特征在于,所述处理模块,用于:
将所述更新后的流转发规则下发给所述openflow交换机,并根据所述openflow交换机在第二预设时间段内上报的所述更新后的流转发规则的统计信息获得至少两个第二类簇。
16.根据权利要求9至11、13至15中任一项所述的控制器,其特征在于,还包括:
第二接收模块,用于接收openflow交换机转发的待处理数据包,所述数据包中包括源IP地址和目的IP地址;
发送模块,用于根据所述源IP地址和所述目的IP地址构造所述流转发规则,并将构造的所述流转发规则下发给所述openflow交换机。
CN201410186366.2A 2014-05-05 2014-05-05 僵尸网络检测方法和控制器 Active CN105099799B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410186366.2A CN105099799B (zh) 2014-05-05 2014-05-05 僵尸网络检测方法和控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410186366.2A CN105099799B (zh) 2014-05-05 2014-05-05 僵尸网络检测方法和控制器

Publications (2)

Publication Number Publication Date
CN105099799A CN105099799A (zh) 2015-11-25
CN105099799B true CN105099799B (zh) 2018-11-20

Family

ID=54579413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410186366.2A Active CN105099799B (zh) 2014-05-05 2014-05-05 僵尸网络检测方法和控制器

Country Status (1)

Country Link
CN (1) CN105099799B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107342967B (zh) * 2016-05-03 2020-07-31 安碁资讯股份有限公司 僵尸网络检测系统及其方法
CN105812280B (zh) * 2016-05-05 2019-06-04 四川九洲电器集团有限责任公司 一种分类方法及电子设备
CN109155923B (zh) 2016-05-20 2020-09-04 华为技术有限公司 用于传输报文的方法、装置和系统
CN108011894A (zh) * 2017-12-26 2018-05-08 陈晶 一种软件定义网络下僵尸网络检测系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101184097A (zh) * 2007-12-14 2008-05-21 北京大学 一种基于流量信息检测蠕虫活动的方法
CN103457909A (zh) * 2012-05-29 2013-12-18 中国移动通信集团湖南有限公司 一种僵尸网络检测方法及装置
CN103685320A (zh) * 2013-12-31 2014-03-26 北京网康科技有限公司 网络数据包的特征匹配方法及装置
CN103701814A (zh) * 2013-12-27 2014-04-02 北京启明星辰信息技术股份有限公司 一种基于行为检测实现网络流量识别的方法及装置
CN103747003A (zh) * 2014-01-16 2014-04-23 南京邮电大学 对等僵尸网络核心节点检测方法及检测装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533819B2 (en) * 2006-09-29 2013-09-10 At&T Intellectual Property Ii, L.P. Method and apparatus for detecting compromised host computers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101184097A (zh) * 2007-12-14 2008-05-21 北京大学 一种基于流量信息检测蠕虫活动的方法
CN103457909A (zh) * 2012-05-29 2013-12-18 中国移动通信集团湖南有限公司 一种僵尸网络检测方法及装置
CN103701814A (zh) * 2013-12-27 2014-04-02 北京启明星辰信息技术股份有限公司 一种基于行为检测实现网络流量识别的方法及装置
CN103685320A (zh) * 2013-12-31 2014-03-26 北京网康科技有限公司 网络数据包的特征匹配方法及装置
CN103747003A (zh) * 2014-01-16 2014-04-23 南京邮电大学 对等僵尸网络核心节点检测方法及检测装置

Also Published As

Publication number Publication date
CN105099799A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
EP3223486B1 (en) Distributed anomaly detection management
CN110115015B (zh) 通过监测其行为检测未知IoT设备的系统和方法
US10075338B2 (en) Relay control unit, relay control system, relay control method, and relay control program
US9876704B2 (en) Packet tracing in a software-defined networking environment
EP2544417B1 (en) Communication system, path control apparatus, packet forwarding apparatus and path control method
Ciklabakkal et al. ARTEMIS: An intrusion detection system for MQTT attacks in Internet of Things
CN108632269B (zh) 基于c4.5决策树算法的分布式拒绝服务攻击检测方法
US20130282867A1 (en) Information system, control apparatus, method of providing virtual network, and program
CN105099799B (zh) 僵尸网络检测方法和控制器
US20150326450A1 (en) Voting strategy optimization using distributed classifiers
US20180367431A1 (en) Heavy network flow detection method and software-defined networking switch
CN109150859B (zh) 一种基于网络流量流向相似性的僵尸网络检测方法
JP5858141B2 (ja) 制御装置、通信装置、通信システム、通信方法及びプログラム
US20170041242A1 (en) Network system, communication analysis method and analysis apparatus
US9319334B2 (en) Apparatus and method for controlling congestion in a communication network
CN111953552B (zh) 数据流的分类方法和报文转发设备
EP2879335A1 (en) Control device, communication system, communication method and program
JP5725236B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
US11863584B2 (en) Infection spread attack detection device, attack origin specification method, and program
KR20220029142A (ko) Sdn 컨트롤러 서버 및 이의 sdn 기반 네트워크 트래픽 사용량 분석 방법
Wijesinghe et al. Botnet detection using software defined networking
CN108667804B (zh) 一种基于SDN架构的DDoS攻击检测及防护方法和系统
US10187414B2 (en) Differential malware detection using network and endpoint sensors
CN116232777B (zh) SDN-IIOT中基于统计度量的DDoS攻击检测与防御方法及相关设备
JP5971405B2 (ja) ネットワーク統計情報の提供システム、ネットワーク統計情報の提供方法及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant