一种基于C&C通信状态转换检测僵尸网络的方法与流程

文档序号:16062681发布日期:2018-11-24 12:21阅读:755来源:国知局

本发明涉及网络安全技术领域,尤其涉及一种基于c&c通信状态转换检测僵尸网络的方法。

背景技术

c&c服务器的全称是commandandcontrolserver,即“命令及控制服务器”。随着恶意木马产业的发展,很多木马早已摆脱了过去“单打独斗”的作战方式,而是通过网络相互关联起来,通过指挥大量受到感染的计算机共同行动,进而发挥出协同效果。这样既可以集中起来同时对某个目标进行打击,也可以互相分散各自所承受的风险。这其中,进行指挥的关键节点便是c&c服务器。这些服务器用于控制ddos僵尸网络,垃圾信息网络,银行木马,以及用于传播钓鱼和恶意软件感染所收集到的数据的服务器。c&c服务器一方面可以接收被控制计算机(也被称为肉鸡)上面活跃的木马传来的信息,了解肉鸡的系统环境、可用能力甚至是隐私信息等秘密;另一方面也可以向肉鸡发送控制指令,指示肉鸡中的木马执行预定义的恶意动作,满足控制者各种不同的需求,甚至可以对木马进行在线升级,使木马具备更多作恶能力,进而造成更大破坏。

每一个c&c服务器必须对应一个具体的ip之后,才能被木马访问。部分木马在代码中直接指定了服务器ip,而另一部分木马使用域名,这些域名经过解析之后,也能转换为服务器具体的ip信息。

为什么malware需要主动和c&c服务通讯?因为多数情况下malware是通过钓鱼邮件啊等方法下载到感染宿主机,攻击者并不能主动得知malware被谁下载,也不能主动得知宿主机的状态(是否开机是否联网等),除非malware主动告诉他,所以malware都会内置一套寻找c&c主控服务器的方法以保持和c&c的联络和断线重连。c&c控制服务的攻防要点在于,攻击者能不能欺骗防御者成功隐藏c&c服务:如果防御者侦测到了隐藏的c&c服务,通过一些技术(封禁域名和ip等)或者非技术手段(汇报给安全应急中心等)切断malware和c&c之间的联系,就可以有效的摧毁僵尸网络。

僵尸网络的检测技术一般有如下7种分类方法:

1)基于主机的或基于网络的;

2)基于特征码(signature)的或基于行为异常的;

3)检测行为是被动的或主动的;

4)检测时机是僵尸程序的传播阶段或执行阶段;

5)检测对象是个别的僵尸程序或一组僵尸程序;

6)检测过程是否需要附加信息(例如其他系统的报警信息);

7)检测技术是约束于或独立于命令与控制技术(例如协议和结构)。

上述分类从不同侧面初步概括了现有检测技术的差别,但是缺少针对性,没有考虑僵尸网络中,c&c通信的特点,特别是c&c通信之间具有状态性和周期性,从这出发,我们发明了一种基于c&c通信状态转换检测僵尸网络的方法。



技术实现要素:

本发明的目的是实时检测到僵尸网络,为了实现该目的,本发明提供了一种基于c&c通信状态转换检测僵尸网络的方法。

本发明提供了一种基于c&c通信状态转换检测僵尸网络的方法,包括训练阶段和预测阶段,训练阶段包括如下步骤,

a1、对收集的训练集数据流按照源ip、目的ip、目的端口和协议类型四元组进行提取分组,并根据训练集数据流中的已知标签人工进行识别;

a2、提取训练集数据流的特征,包括每条流的大小、持续时间和周期,按阈值对上述三种特征进行处理划分等级,对特征状态进行编码,并利用上述三种特征来参数化流的状态,生成状态链;

a3、根据状态链生成候选的马尔科夫模型,并保存生成该候选的马尔科夫模型的原始概率,训练阶段各个已知分组数据生成的所有候选的马尔科夫模型构成预测阶段使用的候选模型库,并根据训练集数据流训练得到判断概率的概率阈值,在预测阶段使用;

预测阶段包括如下步骤,

b1、将待测数据流按照步骤a1、a2中对数据流的处理方式进行四元组划分、提取特征并生成待测状态链;

b2、对待测状态链提取状态链的协议类型,若有协议类型,则与候选模型库中候选马尔科夫模型逐一匹配,若协议类型与候选马尔科夫模型的协议不匹配,丢弃此候选马尔科夫模型,选择下一个候选马尔科夫模型重新匹配,若无协议类型或者协议类型与候选马尔科夫模型一致,则进行下一步;

b3、计算该待测状态链是由该匹配成功的候选马尔科夫模型产生的测试概率,

若测试概率与该候选马尔科夫模型对应的原始概率之差的绝对值大于概率阈值,则视为不匹配,丢弃该候选马尔科夫模型,选择下一个候选马尔科夫模型重新匹配,否则保存该候选马尔科夫模型及测试概率,并选择下一个候选马尔科夫模型重新匹配;

b4、匹配完候选模型库中的所有模型后,最后从所有匹配成功的候选模型中选择匹配度最高的作为最后的模型,此候选马尔科夫模型的标签即为该待测数据流的预测类别,即可判断该待测数据流是否为对应的僵尸网络。

作为本发明的进一步改进,所述步骤a2具体包括:

a21、提取流的特征,包括每条流的大小、持续时间和周期;

a22、按阈值对特征进行处理,可以对流的大小阈值化为小、中、大,对流的持续时间阈值化为短、中、长,对周期阈值化为没有足够数据判断、强周期、弱周期、无周期,进而可以获得三十六个不同的状态,用一个ascii字符代表一种状态,创建状态字符表;

a23、参照状态字符表对分组后的流进行编码,该分组下一系列流组成一条状态链,根据相同的标签和四元组合并所有的状态链,最终每个四元组都只有一条状态链。

作为本发明的进一步改进,提取流的周期特征时,使用相邻周期的间隔差作为周期特征。

作为本发明的进一步改进,步骤b3中所述的测试概率获取方法为:逐个比较待测状态链的状态字符与候选马尔科夫模型,不匹配则移动到待测状态链的下一个状态字符继续匹配,匹配成功则继续匹配状态链和该候选马尔科夫模型的下一个字符,最终得到的候选马尔科夫模型中匹配成功的字符占该候选马尔科夫模型的总字符的比重即为测试概率。

本发明提供的一种基于c&c通信状态转换检测僵尸网络的方法,通过按四元组(源ip、目的ip、目的端口、协议类型)对网络流进行聚合分组而不是五元组,达到聚合信道中由不同的源端口产生的流的目的,更深层次实现聚合,使得对流的描述更加准确及合理,流的状态特征容易提取,无需进行复杂的统计工作和流量内容的提取,从而可以对每条流到来实行实时检测僵尸网络行为,提高了检测速度和性能,可以在实时检测系统中使用,采用基于时间序列的状态转换关系建立马尔科夫状态链进行检测,发现c&c服务器的ip和内网被控主机的ip。

附图说明

图1是本发明提供的基于c&c通信状态转换检测僵尸网络的方法的流程图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。

如图1所示,本发明公开了一种基于c&c通信状态转换检测僵尸网络的方法,包括训练阶段和预测阶段,训练阶段目标:构建候选的马尔科夫检测模型,模型包含原始概率。所谓原始概率是指通过训练集数据产生的状态链计算生成这个候选模型的概率,即这条由已知训练数据计算得到的状态链有“多大概率(原始概率)”可以得到这个候选mc模型。预测阶段目标:对未知的待测数据流与马尔科夫模型库中的模型进行匹配,达到检测目的。

训练阶段包括如下步骤,

a1、对收集的训练集数据流按照源ip、目的ip、目的端口和协议类型四元组进行提取分组,分别命名为例如10.1.1.101-202.114.111.66-80-tcp,并根据训练集数据流中的已知标签人工进行识别,例如from-botnet-v2-tcp-cc10-http-custom-encryption;

a2、提取训练集数据流的特征,包括每条流的大小、持续时间和周期,按阈值对上述三种特征进行处理划分等级,对特征状态进行编码,并利用上述三种特征来参数化流的状态,生成状态链;

a3、根据状态链生成候选的马尔科夫模型,并保存生成该候选的马尔科夫模型的原始概率,训练阶段各个已知分组数据生成的所有候选的马尔科夫模型构成预测阶段使用的候选模型库,并根据训练集数据流训练得到判断概率的概率阈值,在预测阶段使用;

预测阶段包括如下步骤,

b1、将待测数据流按照步骤a1、a2中对数据流的处理方式进行四元组划分、提取特征并生成待测状态链;

b2、对待测状态链提取状态链的协议类型(osi三层,osi七层模型,第三层为网络层),若有协议类型,则与候选模型库中候选马尔科夫模型逐一匹配,若协议类型与候选马尔科夫模型的协议不匹配,丢弃此候选马尔科夫模型,选择下一个候选马尔科夫模型重新匹配,若无协议类型或者协议类型与候选马尔科夫模型一致,则进行下一步;

b3、计算该待测状态链是由该匹配成功的候选马尔科夫模型产生的测试概率,若测试概率与该候选马尔科夫模型对应的原始概率之差的绝对值大于概率阈值,则视为不匹配,丢弃该候选马尔科夫模型,选择下一个候选马尔科夫模型重新匹配,否则保存该候选马尔科夫模型及测试概率,并选择下一个候选马尔科夫模型重新匹配;

b4、匹配完候选模型库中的所有模型后,最后从所有匹配成功的候选模型中选择匹配度最高的作为最后的模型,此候选马尔科夫模型的标签即为该待测数据流的预测类别,即可判断该待测数据流是否为对应的僵尸网络。

其中,所述步骤a2具体包括:

a21、提取流的特征,包括每条流的大小、持续时间和周期;

a22、按阈值对特征进行处理,可以对流的大小阈值化为小、中、大,对流的持续时间阈值化为短、中、长,对周期阈值化为没有足够数据判断、强周期、弱周期、无周期,进而可以获得三十六个不同的状态,用一个ascii字符代表一种状态,创建状态字符表;例如下表

a23、参照状态字符表对分组后的流进行编码,该分组下一系列流组成一条状态链,例如某条流的状态链为11aaaaaaaaaaabrrctrraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(...),根据相同的标签和四元组合并所有的状态链,最终每个四元组都只有一条状态链。

其中,提取流的周期特征时,考虑到c&c通信在idle、active、work等阶段周期有可能不同,使用相邻周期的间隔差作为周期特征。如:

t1=start_time(3)-start_time(2)

t2=start_time(2)-start_time(1)

td=t2-t1

其中,步骤b3中所述的测试概率获取方法为:逐个比较待测状态链的状态字符与候选马尔科夫模型,不匹配则移动到待测状态链的下一个状态字符继续匹配,匹配成功则继续匹配状态链和该候选马尔科夫模型的下一个字符,最终得到的候选马尔科夫模型中匹配成功的字符占该候选马尔科夫模型的总字符的比重即为测试概率。

本发明提供的一种基于c&c通信状态转换检测僵尸网络的方法,通过按四元组(源ip、目的ip、目的端口、协议类型)对网络流进行聚合分组而不是五元组,达到聚合信道中由不同的源端口产生的流的目的,更深层次实现聚合,使得对流的描述更加准确及合理,流的状态特征容易提取,无需进行复杂的统计工作和流量内容的提取,从而可以对每条流到来实行实时检测僵尸网络行为,提高了检测速度和性能,可以在实时检测系统中使用,采用基于时间序列的状态转换关系建立马尔科夫状态链进行检测,发现c&c服务器的ip和内网被控主机的ip。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

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