一种检测暴力破解行为的方法、装置、介质及设备与流程

文档序号:17443446发布日期:2019-04-17 05:08阅读:177来源:国知局
一种检测暴力破解行为的方法、装置、介质及设备与流程

本发明涉及网络安全技术领域,具体涉及一种检测暴力破解行为的方法、装置、介质及设备。



背景技术:

在现有的技术中,因为网络中暴力破解行为的隐蔽性以及周期性,识别网络暴力破解行为的方法较少,在现有的少量方法中,用基于tcp流量会话次数,单位时间内tcp包的大小以及包的数量等特征来衡量暴力破解行为。如果会话次数大于δ阈值(事先人工设定)则判断为暴力破解行为,否则,计算一个滑动窗口时间周期内(一般取五个单位时间内的数据样本)tcp包大小以及包数量的标准差,标准差反应了在滑动窗口周期内,包大小以及包数量的波动情况,如果tcp包的大小标准差σp和tcp包数量标准差σn都小于事先设定的标准差阈值,则可以认定为暴力破解行为,否则,认为是正常行为。其中,需要人工设定会话次数阈值,tcp包大小、包数量标准差阈值,由于阈值的准确与否直接影响到判断暴力破解行为的准确性,因此,现有技术方案中,识别网络暴力破解行为的误报率和漏报率较高。



技术实现要素:

针对现有技术中的缺陷,本发明提供一种检测暴力破解行为的方法、装置、介质及设备,能够降低识别网络暴力破解行为的误报率和漏报率。

第一方面,本发明提供了一种检测暴力破解行为的方法,包括:

采集网络访问过程中的流量数据;

根据所述流量数据,采用机器学习算法,建立检测暴力破解行为的检测模型;

利用所述检测模型检测在指定时间段内产生的流量数据中是否存在暴力破解行为。

可选的,所述根据所述流量数据,采用机器学习算法,建立检测暴力破解行为的检测模型,包括:

对所述流量数据进行数据预处理,获得所述流量数据的属性信息;

对所述属性信息进行分组;

提取每组数据在时间维度和包内容大小维度上的特征值;

根据所述特征值,采用机器学习算法,建立检测暴力破解行为的检测模型。

可选的,所述属性信息,包括:数据生成时间、源ip、目的ip、源端口号、目的端口号和包的长度;

所述对所述属性信息进行分组,包括:

将具有相同的源ip和目的ip的属性信息分为一组。

可选的,所述提取每组数据在时间维度和包内容大小维度上的特征值,包括:

提取每组数据中的会话次数、会话平均持续时间、会话平均间隔时间、会话内容平均长度和会话平均端口号间隔的特征值。

可选的,所述根据所述特征值,采用机器学习算法,建立检测暴力破解行为的检测模型,包括:

采用局部异常因子算法,分离所述特征值中的异常数据和正常数据;

对所述异常数据和正常数据进行修正,将修正后的异常数据和正常数据作为样本数据;

根据所述样本数据,采用机器学习算法,建立检测暴力破解行为的检测模型。

可选的,在所述采用局部异常因子算法,分离所述特征值中的异常数据和正常数据的步骤之前,还包括:

采用指数函数和/或高斯函数,缩小所述特征值中的正常数据,放大所述特征值中的异常数据。

可选的,所述根据所述样本数据,采用机器学习算法,建立检测暴力破解行为的检测模型,包括:

将所述样本数据分为训练样本数据和验证样本数据;

利用所述训练样本数据,训练决策树算法模型,建立检测暴力破解行为的检测模型;

利用所述验证样本数据,对所述检测模型的参数进行调整。

第二方面,本发明提供一种检测暴力破解行为的装置,包括:

数据采集模块,用于采集网络访问过程中的流量数据;

模型建立模块,用于根据所述流量数据,采用机器学习算法,建立检测暴力破解行为的检测模型;

暴力破解检测模块,用于利用所述检测模型检测在指定时间段内产生的流量数据中是否存在暴力破解行为。

第三方面,本发明提供了一种检测暴力破解行为的设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如第一方面提供的一种检测暴力破解行为的方法。

第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如第一方面提供的一种检测暴力破解行为的方法。

本发明提供一种检测暴力破解行为的方法,通过利用历史的流量数据,采用机器学习算法,训练检测模型,不需要人工手动设置阈值,能够降低识别网络暴力破解行为的误报率和漏报率。

本发明提供的一种检测暴力破解行为的装置、一种计算机可读存储介质和一种检测暴力破解行为的设备,与上述一种检测暴力破解行为的方法出于相同的发明构思,具有相同的有益效果。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1为本发明实施例提供的一种检测暴力破解行为的方法的流程图。

图2为本发明实施例提供的一种检测暴力破解行为的示意图;

图3为本发明实施例提供的一种检测暴力破解行为的装置的示意图;

图4为本发明实施例提供的一种检测暴力破解行为的设备的示意图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

本发明提供了一种检测暴力破解行为的方法、装置、介质及设备。下面结合附图对本发明的实施例进行说明。

请参考图1,图1为本发明具体实施例提供的一种检测暴力破解行为的方法的流程图,图2为本发明具体实施例提供的一种检测暴力破解行为的示意图,本实施例提供的一种检测暴力破解行为的方法,包括:

步骤s11:采集网络访问过程中的流量数据。

用户在访问服务器或主机时,会产生pcap包,也就是流量数据,在采集流量数据时,可在服务器或者主机上安装抓取网络流量包的工具,例如,wireshark工具,设置指定时间内抓取到的流量数据作为一个流量文件包,并输出到指定文件夹下保存,然后读取指定文件夹下保存好的流量文件包,获取流量数据。

步骤s12:根据所述流量数据,采用机器学习算法,建立检测暴力破解行为的检测模型。

在根据流量数据,建立检测模型的过程为:

第一步:获取到每一个流量包的流量数据后,对流量数据进行数据预处理,获得流量数据的属性信息,其中,属性信息可以包括:数据生成时间、源ip、目的ip、源端口号、目的端口号、包的长度等。

第二步:对属性信息进行分组。可以将相同的源ip和目的ip分为一组,因此,可以得到多组数据。例如,a客户端访问a服务器,源ip为a客户端的ip地址,目的ip为a服务器的ip地址,因此,将a客户端访问a服务器产生的数据分为一组。

第三步:提取每组数据在时间维度和包内容大小维度上的特征值。在提取特征值时,需要提取每组数据中的会话次数、会话平均持续时间、会话平均间隔时间、会话内容平均长度和会话平均端口号间隔的特征值。其中,一次会话是指一次访问过程,例如,a客户端访问一次a服务器。在统计会话次数时,可以根据每组数据中的源端口号数量来计算会话次数。例如,a客户端多次访问a服务器,每次访问都携带有源端口号,统计每组数据中一共记录了多少次源端口号,该统计结果为会话次数。如果一个分组中只有一次会话,则对会话时间间隔和会话端口号间隔均赋予一个较高的数值,因为正常行为往往表现出会话平均时间间隔长,会话平均端口号间隔大。

第四步:根据所述特征值,采用机器学习算法,建立检测暴力破解行为的检测模型。

由于用户访问网络的正常行为和暴力破解的异常行为在特征值上的差异较小,一般正常行为的特征值和异常行为的特征值的数值比值相差小于两个数量级,无法最大限度地提高局部异常因子算法(localoutlierfactor,lof)自动分类的准确性,其中,指暴力破解异常行为对应的特征值为异常数据;正常行为对应的特征值为正常数据。因此,可以采用指数函数和/或高斯函数,缩小所述特征值中的正常数据,放大所述特征值中的异常数据,进而放大正常行为与异常行为在特征值上的差异。在基于时间维度的特征上,正常行为的会话往往表现出持续时间长,时间间隔大,异常行为则相反;在基于会话包内容平均长度特征上,正常行为的包内容长度波动大,异常行为的包内容长度趋于一个稳定的值;因此,可以在会话持续时间和会话之间时间间隔特征上,利用指数函数的特性放大正常样本和暴力破解行为样本之间的差异,在会话包内容长度特征上利用高斯函数放大正常样本与暴力破解异常行为样本之间的差异。

放大正常数据和异常数据的差异后,需要分离出特征值中的异常数据和正常数据。在分离特征值时,可以采用监督学习方法进行分离,需要对数据准确地进行标签,数据标签不当训练出来的模型误差比较大,这将会严重影响模型预测结果的准确度,在标签数据过程中,往往会请技术专家或者有经验的工作人员标签数据,但是这种方法成本较高,效率较低,因此,优选的,可以采用局部异常因子算法,自动分离所述特征值中的异常数据和正常数据。该算法可以将一些与正常数据有明显差异的异常数据标记出来,这样,能够减少人工标签的成本。然后,可以通过人工对分离后的异常数据和正常数据进行修正,得到修正后的样本数据。

得到样本数据后,可以将样本数据分为训练样本数据和验证样本数据。利用训练样本数据,训练分类决策树算法模型,训练完成后,利用验证样本数据对训练后的检测模型进行验证,根据验证结果调整模型参数,直到验证结果的准确度符合预设阈值。

步骤s13:利用所述检测模型检测在指定时间段内产生的流量数据中是否存在暴力破解行为。

在利用检测模型检测暴力破解行为前,需要将验证合格后的检测模型部署到服务器或主机上,利用检测模型检测在指定时间段内产生的流量数据中是否存在暴力破解行为。指定时间段可以是当前时间段,也可以是历史中的某一时间段,这都在本发明的保护范围内。

本发明通过利用机器学习方法,建立检测暴力破解行为的检测模型,相较于现有技术,考虑了较多的特征值,例如,分组内会话持续时间、会话之间时间间隔、会话端口号间隔、会话包内容长度等特征值,这些特征能在时间维度和包内容大小维度上区分暴力破解异常行为,使检测模型的检测结果更加准确、更加可靠。另外,将机器学习领域与网络安全领域结合,利用指数函数和高斯函数放大正常样本和异常样本之间的差异,然后利用局部异常因子算法分离数据样本中的异常样本和正常样本,利用决策树算法训练修正后的样本数据,得到检测模型,训练好的检测模型可以部署到不同的服务器或者主机中,无需根据不同的环境多次训练模型,本发明的方法比现有技术的误报率降低了2个数量级,在漏报率上比现有技术降低了1个数量级,取得了很好地检测效果。

以上,为本发明提供的一种检测暴力破解行为的方法。

基于与上述一种检测暴力破解行为的方法相同的发明构思,与之相对应的,本发明实施例还提供了一种检测暴力破解行为的装置,如图3所示。由于装置实施例基本相似与方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

本发明提供的一种检测暴力破解行为的装置,包括:

数据采集模块11,用于采集网络访问过程中的流量数据;

模型建立模块12,用于根据所述流量数据,采用机器学习算法,建立检测暴力破解行为的检测模型;

暴力破解检测模块13,用于利用所述检测模型检测在指定时间段内产生的流量数据中是否存在暴力破解行为。

在本发明提供的一个具体实施例中,所述模型建立模块12,包括:

预处理单元,用于对所述流量数据进行数据预处理,获得所述流量数据的属性信息;

分组单元,用于对所述属性信息进行分组;

特征提取单元,用于提取每组数据在时间维度和包内容大小维度上的特征值;

模型建立单元,用于根据所述特征值,采用机器学习算法,建立检测暴力破解行为的检测模型。

在本发明提供的一个具体实施例中,所述属性信息,包括:数据生成时间、源ip、目的ip、源端口号、目的端口号和包的长度;

所述分组单元,具体用于:将具有相同的源ip和目的ip的属性信息分为一组。

在本发明提供的一个具体实施例中,所述特征提取单元,包括:

特征提取子单元,用于提取每组数据中的会话次数、会话平均持续时间、会话平均间隔时间、会话内容平均长度和会话平均端口号间隔的特征值。

在本发明提供的一个具体实施例中,所述模型建立单元,包括:

数据分离子单元,用于采用局部异常因子算法,分离所述特征值中的异常数据和正常数据;

数据修正子单元,用于对所述异常数据和正常数据进行修正,将修正后的异常数据和正常数据作为样本数据;

模型建立子单元,用于根据所述样本数据,采用机器学习算法,建立检测暴力破解行为的检测模型。

在本发明提供的一个具体实施例中,所述模型建立单元,还包括:

特征放大子单元,用于采用指数函数和/或高斯函数,缩小所述特征值中的正常数据,放大所述特征值中的异常数据。

在本发明提供的一个具体实施例中,所述模型建立子单元,包括:

将所述样本数据分为训练样本数据和验证样本数据;

利用所述训练样本数据,训练决策树算法模型,建立检测暴力破解行为的检测模型;

利用所述验证样本数据,对所述检测模型的参数进行调整。

以上,为本发明提供的一种检测暴力破解行为的装置。

进一步地,在上述实施例所提供的一种检测暴力破解行为的方法及装置的基础上,本发明实施例还提供了一种检测暴力破解行为的设备。如图4所示,该设备可以包括:一个或多个处理器101、一个或多个输入设备102、一个或多个输出设备103和存储器104,上述处理器101、输入设备102、输出设备103和存储器104通过总线105相互连接。存储器104用于存储计算机程序,所述计算机程序包括程序指令,所述处理器101被配置用于调用所述程序指令执行上述方法实施例部分的方法。

应当理解,在本发明实施例中,所称处理器101可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

输入设备102可以包括键盘等,输出设备103可以包括显示器(lcd等)、扬声器等。

该存储器104可以包括只读存储器和随机存取存储器,并向处理器101提供指令和数据。存储器104的一部分还可以包括非易失性随机存取存储器。例如,存储器104还可以存储设备类型的信息。

具体实现中,本发明实施例中所描述的处理器101、输入设备102、输出设备103可执行本发明实施例提供的一种检测暴力破解行为的方法的实施例中所描述的实现方式,在此不再赘述。

相应地,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现:上述检测暴力破解行为的方法。

所述计算机可读存储介质可以是前述任一实施例所述的系统的内部存储单元,例如系统的硬盘或内存。所述计算机可读存储介质也可以是所述系统的外部存储设备,例如所述系统上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述系统的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述系统所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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