发明内容
本发明的主要目的在于提供一种僵尸主机的检测方法、检测装置及防火墙,以解决僵尸主机检测方法的准确性低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种僵尸主机的检测方法方法。
根据本发明的…方法包括:检测网关的内部主机的网络行为,以得到主机行为;识别主机行为,以得到主机行为的行为特征;根据行为特征判断主机行为是否属于预设行为库中的行为,其中,预设行为库中包括僵尸主机的多个行为;以及当确定多个主机行为属于预设行为库中的行为时,根据多个主机行为判断网关内部主机是否为僵尸主机。
进一步地,根据多个主机行为判断网关内部主机是否为僵尸主机包括:采用以下公式计算内部主机的告警参数,
其中,Valert为告警参数,多个主机行为的个数为n,Wi为第i个主机行为对应的预设的权重系数,Vi为第i个主机行为对应的预设的告警分值,n为自然数,i为小于n的自然数;当告警参数满足预设的告警条件时,确定网关内部主机为僵尸主机。
进一步地,在计算内部主机的告警参数之前,根据多个主机行为判断网关内部主机是否为僵尸主机还包括:判断多个主机行为中是否包括预设关联行为组中的全部行为,其中,预设关联行为组至少包括僵尸主机的两个行为;以及当多个主机行为中包括预设关联行为组中的全部行为时,计算内部主机的告警参数。
进一步地,该方法还包括:当主机行为属于预设行为库中的行为时,通过存储装置主机行为;扫描存储装置中存储的主机行为的时间是否超时;当超时的主机行为不与任何一个非超时的主机行为在同一预设关联行为组时,将超时的主机行为从存储模块中删除。
进一步地,根据行为特征判断主机行为是否属于预设行为库中的行为包括:根据行为特征判断主机行为是否属于下列行为:访问恶意URL/IP的第一行为;执行来自网关的外部的扫描的第二行为;执行来自网关的外部的入侵探测的第三行为;获取网关外部的恶意文件的第四行为;建立向网关外部的C&C通道,并通过C&C通道传递数据和信息的第五行为;通过P2P模式向网关外部传递数据和信息的第六行为;扫描网关外部的主机,以感染网关外部的主机的第七行为;对网关外部发动DDOS攻击的第八行为;以及对网关外部发动Spam攻击的第九行为,当主机行为属于第一行为至第九行为中的任意一个行为时,确定主机行为属于预设行为库中的行为。
进一步地,判断多个主机行为中是否包括预设关联行为组中的全部行为包括:判断多个主机行为是否包括第一预设关联行为组中的全部行为,其中,第一预设关联行为组由第一行为和第四行为至第九行为中任一行为构成;判断多个主机行为是否包括第二预设关联行为组中的全部行为,其中,第二预设关联行为组由第二行为和第四行为至第九行为中任一行为构成;判断多个主机行为是否包括第三预设关联行为组中的全部行为,其中,第三预设关联行为组由第三行为和第四行为至第九行为中任一行为构成;以及判断多个主机行为是否包括第四预设关联行为组中的全部行为,其中,第四预设关联行为组由第四行为至第九行为中任两个行为构成。为了实现上述目的,根据本发明的另一方面,提供了一种僵尸主机的检测装置,该装置用于执行上述本发明所提供的任一种僵尸主机的检测方法。
为了实现上述目的,根据本发明的另一方面,提供了一种僵尸主机的检测装置。
根据本发明的僵尸主机的检测装置包括检测单元和分析单元,其中,检测单元用于检测网关的内部主机的行为,以得到主机行为,分析单元包括:识别模块,用于识别检测模块得到的主机行为,以得到主机行为的行为特征;第一判断模块,用于根据行为特征判断主机行为是否属于预设行为库中的行为,其中,预设行为库中包括僵尸主机的多个行为;以及第二判断模块,用于当确定多个主机行为属于预设行为库中的行为时,根据多个主机行为确定网关内部主机是否为僵尸主机。
进一步地,第二判断模块包括:计算子模块,用于采用以下公式计算内部主机的告警参数,
其中,Valert为告警参数,多个主机行为的个数为n,Wi为第i个主机行为对应的预设的权重系数,Vi为第i个主机行为对应的预设的告警分值,n为自然数,i为小于n的自然数;确定子模块,用于当告警参数满足预设的告警条件时,确定网关内部主机为僵尸主机。
进一步地,第二判断模块还包括:判断子模块,用于在计算内部主机的告警参数之前,判断多个主机行为中是否包括预设关联行为组中的全部行为,其中,预设关联行为组至少包括僵尸主机的两个行为,其中,计算子模块用于当多个主机行为中包括预设关联行为组中的全部行为时,计算内部主机的告警参数。
进一步地,该检测装置还包括:存储模块,用于当主机行为属于预设行为库中的行为时,存储主机行为;以及超时控制模块,用于扫描存储模块中存储的主机行为的时间是否超时,当超时的主机行为不与任何一个非超时的主机行为在同一预设关联行为组时,将超时的主机行为从存储模块中删除。
进一步地,检测单元包括恶意URL/IP检测单元、特征码匹配检测单元、异常行为检测单元和/或主动检测单元。
为了实现上述目的,根据本发明的另一方面,提供了一种防火墙。
根据本发明的防火墙包括本发明提供的僵尸主机的检测装置。
采用本发明,通过包括以下步骤的僵尸主机的检测方法:首先检测网关的内部主机的行为得到主机行为,然后识别主机行为以得到主机行为的行为特征,根据行为特征判断主机行为是否属于预设行为库中的行为,最终当确定多个主机行为属于预设行为库中的行为时,根据多个主机行为判断网关内部主机是否为僵尸主机,实现基于主机行为分析主机是否为僵尸主机,将检测到的主机行为与预定义的僵尸主机行为库匹配,并根据匹配后的主机行为确定分析的主机是否为僵尸主机,该方法中匹配的样本是主机行为,而不是僵尸网络代码片段,因而,无论僵尸网络相关代码如何复杂、演变,都可通过主机行为来确定是否为僵尸主机,解决了僵尸主机检测方法的准确性低的问题,进而达到了提高僵尸主机检测率、减小僵尸检测误判率的效果。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
首先介绍本发明提供的僵尸主机的检测方法的实施例。
图1根据本发明实施例的僵尸主机的检测方法的流程图,如图1所示,该检测方法包括如下的步骤S102至步骤S108。
步骤S102:检测网关的内部主机的网络行为,以得到主机行为。
该步骤可通过检测引擎实现,该检测引擎可以由一系列引擎构成,分别从不同方面对被检测主机的网络行为进行检测,例如包括恶意URL/IP检测引擎、特征码匹配检测引擎、异常行为检测引擎、主动检测引擎等,典型的检测引擎主要从以下若干方面分析,其中被动检测(DP,Detect Passive)表示使用被动检测的方式对流量进行监视,不会干扰正常通信;主动检测(DA,Detect Active)表示使用主动方式进行探测和监视,例如:
DP0:通过URL/IP过滤(BlackList/WhiteList)的方法,发现潜在的恶意流量;
DP1:通过单IP行为检测的方式,发现潜在的攻击;
DP2:通过特征值检测的方式,发现潜在的恶意流量;
DP3:通过统计分析的方式,发现潜在的恶意流量;
DP4:通过典型Flow行为特征,发现潜在的恶意交互;
DA1:在确认的C&C通道或P2P通道中,使用中间人攻击的方式,检测交互双方对误码的容忍程度,从而哪个根据该容忍程度判断交互双方是否为僵尸主机和控制端。
步骤S104:识别主机行为,以得到主机行为的行为特征。
步骤S106:根据行为特征判断主机行为是否属于预设行为库中的行为,其中,预设行为库中包括僵尸主机的多个行为。
优选地,将预设行为库中的僵尸主机行为设置为典型的僵尸主机行为(Motion),将典型的僵尸主机行为分为若干个阶段,例如如下的8个阶段(如下:M01~M08),其中,M01~M03为主机被感染为僵尸主机之前的行为,M04~M07为主机被感染为僵尸主机之后的行为,在实际操作过程中,访问恶意URL/IP(M00)也可以作为僵尸主机行为判断的重要参考依据:
M00:访问恶意URL/IP;
M01:执行来自网关的外部的扫描,也即外对内的扫描;
M02:执行来自网关的外部的入侵探测,也即外对内发现漏洞,开始入侵探测;
M03:获取网关外部的恶意文件,也即内从外获取恶意文件(Binary Egg);
M04:建立向网关外部的C&C通道,并通过C&C通道传递数据和信息,也即内对外建立C&C通道,使用C&C通道传递数据和信息;
M05:通过P2P模式向网关外部传递数据和信息,也即内对外使用P2P的模式进行传递数据和信息;
M06:扫描网关外部的主机,以感染网关外部的主机,也即内对外进行扫描,试图感染其他主机;
M07:对网关外部发动DDOS攻击,也即内对外进行DDOS攻击;
M08:对网关外部发动Spam攻击,也即内对外Spam攻击。
步骤S108:当确定多个主机行为属于预设行为库中的行为时,根据多个主机行为判断网关内部主机是否为僵尸主机。
其中,在确定主机是否为僵尸主机时,可根据不同的预设行为库设置不同的预设规则,例如,当预设行为库中任一个行为均可充分必要的确定该行为是僵尸主机行为,则预设规则可设定为只要确定检测到的行为属于预设行为库中的行为,即可确定该主机为僵尸主机;又如,当预设库中的任意n个行为同时发生才可充分必要的确定该行为是僵尸主机行为,则预设规则可设定为当确定有n个检测到的行为属于预设行为库中的行为时,才可确定该主机为僵尸主机。
需要说明的是,在该发明的检测方法中并不限定具体设置预设行为库以及僵尸主机判定的实现方式,只要在本发明的精神和原则之内,均应包含在本发明的保护范围之内。
在该实例中,基于主机行为分析主机是否为僵尸主机,将检测到的主机行为与预定义的僵尸主机行为库匹配,并根据匹配后的主机行为确定分析的主机是否为僵尸主机,该方法中匹配的样本是主机行为,而不是僵尸网络代码片段,因而,无论僵尸网络相关代码如何复杂、演变,都可通过主机行为来确定是否为僵尸主机,提高僵尸主机检测率、减小僵尸检测误判率。
优选地,步骤S108包括:计算内部主机的告警参数,当告警参数满足预设的告警条件时,确定网关内部主机为僵尸主机。在计算告警参数时采用如下的公式:
其中,Valert为告警参数,n为步骤S106中确定的预设行为库中行为的个数,Wi为第i个主机行为对应的预设的权重系数,Vi为第i个主机行为对应的预设的告警分值,n为自然数,i为小于n的自然数,该告警参数为各主机行为对应的权重系数与告警分数乘积的和,Wi由第i个主机行为在确定僵尸主机时的重要性所决定,Vi表示该第i个主机行为的实际分值,该分值可以通过配置严重程度severity、攻击的流行程度、攻击可能被误识别的可能性等计算而得,或者由相关攻击强度(如PortScan)计算而得。
以包括上述M00~M08的预设行为库为例,Wi和Vi的设置可如下表I所示,具体参数值可以根据实际情况进行调整,权重值的设定根据需要设定为固定值,也可以设置为动态值,根据实际检测的状况进行动态调整。
表I参数设置表
在上表中,Wi和Vi均为小于100的值,这样既可约定即使某一个行为强度较大,但如果没有其他行为的触发也不能判断为僵尸主机,从而有效减小误判率。
进一步地,采用上表中的参数进行告警参数的计算时,告警参数越大,僵尸主机的可能性越大,因而预设的告警条件可设置为大于某预定阈值,当计算得到的告警参数大于该阈值时,确定检测的主机为僵尸主机。
进一步优选地,在步骤S108中,计算内部主机的告警参数之前先判断多个主机行为中是否包括预设关联行为组中的全部行为,其中,预设关联行为组至少包括僵尸主机的两个行为,当多个主机行为中包括预设关联行为组中的全部行为时,计算内部主机的告警参数。在该进一步优选的实施例中,将至少两个行为设定为关联行为组,当步骤S106中确定的多个主机行为包括一个预设关联组中的全部行为时,主机是僵尸主机的可能性更大,此时计算告警参数,能够节省在僵尸检测过程中计算步骤所消耗的资源。
以包括上述M00~M08的预设行为库为例,预设关联行为组可设置为:由M00和M03~M08中任意一个构成的第一预设关联行为组;由M01和M03~M08中任意一个构成的第二预设关联行为组;由M02和M03~M08中任意一个构成的第三预设关联行为组;由M03~M08中任意两个构成的第四预设关联行为组。
其中,M00、M01、M02出现在M03~M07之前,M00、M01、M02并不是僵尸主机必须出现的行为,因为被感染主机可能有多种途径,譬如移动介质、网页、Email、IM等。
采用该进一步优选的实施例,将僵尸主机的恶意行为进行特定分类,构建预设行为库,再将预设行为库中的僵尸主机行为进行相互关联得到预设关联行为组,将多个主机行为至少包括一个预设关联组中的全部行为设定为多行为关联入口条件,当确定的多个主机行为满足多行为关联入口条件时,确定各个恶意行为对应的权重系数和告警分值,然后计算告警参数,并以此为判断依据判定待测主机为僵尸主机的可能性,其中,告警参数值越大,待测主机为僵尸主机的可能性越大。
在上述的任意实施例或优选实施例中,可采用预定时间范围为检测窗口,从而在约定的时间范围内(譬如30分钟内、或者长达一个月),检测主机的主机行为,优选地,该方法还包括当主机行为属于预设行为库中的行为时,通过存储装置存储该主机行为,从而在行为识别时,获取存储装置中的主机行为进行识别。其中,在存储装置存储主机行为时,该方法还实时扫描存储模块中存储的主机行为的时间是否超时,超时的阈值可设定为检测窗口的时间长度,当扫描到超时的主机行为时,判断该存储装置中是否包括与该超时的主机行为在同一预设关联行为组中的非超时行为,如果不存在与其在同一预设关联组中的非超时行为时,将超时的主机行为从存储装置中删除,或者设置历史数据存储装置,将超时的主机行为移至历史数据存储装置,既能够实时判断当前主机是否为僵尸主机,又无需存储全部主机行为数据,节省内存资源,并且不影响判断的准确性。
本发明实施例还提供了僵尸主机的检测装置,以下对本发明实施例所提供的僵尸主机的检测装置进行介绍。需要说明的是,在本发明实施例的僵尸主机的检测方法可以通过本发明实施例所提供的僵尸主机的检测装置来执行,本发明实施例的僵尸主机的检测装置也可以用于执行本发明实施例所提供的僵尸主机的检测方法。
其次介绍本发明提供的僵尸主机的检测装置的实施例。
图2是根据本发明第一实施例的僵尸主机的检测装置的原理框图,如图2所示,该检测装置包括检测单元20和分析单元40,其中,分析单元40包括识别模块42、第一判断模块44和第二判断模块46。
检测单元20用于检测网关的内部主机的网络行为,以得到主机行为。该检测单元20可以为检测引擎,该检测引擎可以由一系列引擎构成,分别从不同方面对被检测主机的行为进行检测,例如包括恶意URL/IP检测引擎、特征码匹配检测引擎、异常行为检测引擎、主动检测引擎等,上文中已做描述,此处不再赘述。
识别模块42用于识别检测引擎得到的主机行为,以得到主机行为的行为特征。第一判断模块44用于根据行为特征判断主机行为是否属于预设行为库中的行为,其中,预设行为库中包括僵尸主机的多个行为。优选地,将预设行为库中的僵尸主机行为设置为典型的僵尸主机行为,将典型的僵尸主机行为分为若干个阶段,例如上文所述M00~M08的九种行为,上文已做描述,此处不再赘述。
第二判断模块46用于当确定多个主机行为属于预设行为库中的行为时,根据多个主机行为判断网关内部主机是否为僵尸主机。
其中,在判断主机是否为僵尸主机时,可根据不同的预设行为库设置不同的预设规则,例如,当预设行为库中任一个行为均可充分必要的确定该行为是僵尸主机行为,则预设规则可设定为只要确定检测到的行为属于预设行为库中的行为,即可确定该主机为僵尸主机;又如,当预设库中的任意n个行为同时发生才可充分必要的确定该行为是僵尸主机行为,则预设规则可设定为当确定有n个检测到的行为属于预设行为库中的行为时,才可确定该主机为僵尸主机。
需要说明的是,在该发明的检测装置中并不限定具体设置预设行为库以及僵尸主机判定的实现方式,只要在本发明的精神和原则之内,均应包含在本发明的保护范围之内。
在该实例中,基于主机行为分析主机是否为僵尸主机,将检测到的主机行为与预定义的僵尸主机行为库匹配,并根据匹配后的主机行为确定分析的主机是否为僵尸主机,该方法中匹配的样本是主机行为,而不是僵尸网络代码片段,因而,无论僵尸网络相关代码如何复杂、演变,都可通过主机行为来确定是否为僵尸主机,提高僵尸主机检测率、减小僵尸检测误判率。
优选地,第二判断模块46包括计算子模块和确定子模块。其中,计算子模块用于计算内部主机的告警参数,确定子模块用于当告警参数满足预设的告警条件时,确定网关内部主机为僵尸主机。在计算告警参数时采用如下的公式:
其中,Valert为告警参数,n为步骤S106中确定的预设行为库中行为的个数,Wi为第i个主机行为对应的预设的权重系数,Vi为第i个主机行为对应的预设的告警分值,n为自然数,i为小于n的自然数,该告警参数为各主机行为对应的权重系数与告警分数乘积的和,Wi由第i个主机行为在确定僵尸主机时的重要性所决定,Vi表示该第i个主机行为的实际分值,该分值可以通过配置严重程度severity、攻击的流行程度、攻击可能被误识别的可能性等计算而得,或者由相关攻击的强度(如PortScan)计算而得。
进一步优选地,第二判断模块46还包括判断子模块,该判断子模块用于在计算内部主机的告警参数之前,判断多个主机行为中是否包括预设关联行为组中的全部行为,其中,预设关联行为组至少包括僵尸主机的两个行为,其中,计算子模块用于当多个主机行为中包括预设关联行为组中的全部行为时,计算内部主机的告警参数。在该进一步优选的实施例中,将至少两个行为设定为关联行为组,当步骤S106中确定的多个主机行为包括一个预设关联组中的全部行为时,主机是僵尸主机的可能性更大,此时计算告警参数,能够节省在僵尸检测过程中计算步骤所消耗的资源。
采用该进一步优选的实施例,将僵尸主机的恶意行为进行特定分类,构建预设行为库,再将预设行为库中的僵尸主机行为进行相互关联得到预设关联行为组,将多个主机行为至少包括一个预设关联组中的全部行为设定为多行为关联入口条件,当确定的多个主机行为满足多行为关联入口条件时,确定各个恶意行为对应的权重系数和告警分值,然后计算告警参数,并以此为判断依据判定待测主机为僵尸主机的可能性,其中,告警参数值越大,待测主机为僵尸主机的可能性越大。
在上述的任意实施例或优选实施例中,可采用预定时间范围为检测窗口,从而在约定的时间范围内(譬如30分钟内、或者长达一个月),检测主机的主机行为,优选地,该检测装置还包括存储模块和超时控制模块,其中,存储模块用于当主机行为属于预设行为库中的行为时,存储主机行为,超时控制模块用于扫描存储模块中存储的主机行为的时间是否超时,当超时的主机行为不与任何一个非超时的主机行为在同一预设关联行为组时,将超时的主机行为从存储模块中删除,既能够实时判断当前主机是否为僵尸主机,又无需存储全部主机行为数据,节省内存资源,并且不影响判断的准确性。
图3是根据本发明第二实施例的僵尸主机的检测装置的原理框图,在该实施例中,僵尸主机的检测和判断是通过检测引擎和分析引擎来共同完成的,其中检测引擎可包含任意多个,主要功能包含恶意URL/IP检测、特征码匹配检测、异常行为检测、主动检测等,分别从不同方面对被检测主机的行为进行判断分析。典型的检测方法主要从以下若干方面分析,其中DP(Detect Passive)表示使用被动检测的方式对流量进行监视,不会干扰正常通信;DA(Detect Active)表示使用主动方式进行探测和监视。检测引擎将检测结果使用统一的格式传入分析引擎,分析引擎采用多行为关联和多行为评分的方式判断被检测主机为僵尸主机的可能性。
分析引擎通过预定义僵尸主机行为特征,通过多行为关联和多行为评分机制,确定是否被检测主机是否为僵尸主机。如图3所示,分析引擎包括告警数据接收模块、多行为关联和评分模块、僵尸主机告警输出模块和超时控制模块等。
其中,告警数据接收模块接收来自不同检测引擎的告警信息,按照配置的要求进行存储、分发和查询,其中,不同引擎的告警信息指的是检测引擎检测到的主机行为属于僵尸主机的行为。
多行为关联和评分模块将告警原始记录读入原始告警信息存储Bucket,分别为B1、B2…Bn,按照指定的关联规则,将被监测的某一内网主机的告警信息按照时间先后顺序、告警严重程度、告警强度等相关信息进行关联,例如预设几个告警信息为相互关联的告警组,如果检测到的告警信息包含至少一个告警组的全部告警信息时,通过多行为评分给定公式进行量化计算,例如采用上述的公式
进行计算,最后得出是否已经感染为僵尸主机的结论,相关结论被传输至僵尸主机告警输出模块,例如计算出的评分大于某预定值时,确定为僵尸主机。
为保证陈旧的告警信息被清除,超时控制模块定时扫描已暂存的告警信息,及时将超时但未与其他告警信息相关联的信息存储至历史数据存储模块。
进一步地,提供离线数据查询模块接口,供多行为关联和评分模块可以通过离线方式进行长时间的告警数据关联。
在该实施例中,预定义僵尸主机的行为特征,通过多行为关联和多行为评分的机制,判断被检测主机是否为僵尸主机,相对于现有检测技术,可以有效增加检测的检出率,减小检测的误判率。
图4是根据本发明实施例的僵尸主机的检测系统的示意图,如图4所示,在企业与外网连接的边界处部署僵尸主机检测设备,用户可以根据需要,配置对特定内网中的若干主机或者所有主机进行检测。当内外网交互流量进入设备时,相关检测引擎对流量进行检测输出检测结果到分析引擎,分析引擎实时分析相关结果,并将结果输出用户指定的位置,以方便用户根据结果制定相关策略。
从以上的描述中,可以看出,本发明实现了如下技术效果:基于主机行为分析主机是否为僵尸主机,将检测到的主机行为与预定义的僵尸主机行为库匹配,并根据匹配后的主机行为确定分析的主机是否为僵尸主机,由于匹配的样本是主机行为,而不是僵尸网络代码片段,因而,无论僵尸网络相关代码如何复杂、演变,都可通过主机行为来确定是否为僵尸主机,提高僵尸主机检测率、减小僵尸检测误判率。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。