本申请涉及网络安全领域,特别涉及一种基于ntp报文数据的攻击行为检测方法及装置。
背景技术:
ntp是网络时间协议(networktimeprotocol),网络中大量存在的开放式分布的ntp服务器,高度开放的ntp协议123端口,以及ntp报文基于不可靠的udp进行传输的协议特性,使得ntp协议非常容易被黑客利用,实施隐蔽通道攻击。因此,研究基于ntp协议的隐秘通道攻击行为检测方法对网络安全防护具有重要的作用。
现有的对于ntp协议的攻击行为检测方式中,主要是通过贝叶斯分类模型检测ntp协议的最低有效位来判断ntp协议中的含密数据。然而基于时间戳最低有效位的隐蔽隧道行为主要将时间戳信息进行轻微的变换而使其仍符合时间信号特征的同时,可以传输含密数据。由于时间戳最低有效位仅为二进制数字中的第0位,因此无法携带较多的数据,所以使用基于时间戳最低有效位的检测方式只能检测一些小数据量的攻击行为,难以检测发现ntp报文数据中存在的文件传送、远程桌面控制等大数据量的攻击行为,接收tnp数据的设备的安全性存在较大隐患。
可见,现有技术中,无法检测ntp报文数据中大数据量的攻击行为,因此,如何提供一种基于ntp报文数据的攻击行为检测方法,用以检测ntp报文数据中是否存在大数据量的攻击行为,提升设备的安全性,是一亟待解决的技术问题。
技术实现要素:
本申请实施例的目的在于提供一种基于ntp报文数据的攻击行为检测方法及装置,用以检测ntp报文数据中是否存在大数据量的攻击行为,提升设备的安全性。
为了解决上述技术问题,本申请的实施例采用了如下技术方案:一种基于ntp报文数据的攻击行为检测方法,包括:
获取ntp报文数据;
判断所述ntp报文数据中是否存在扩展域填充字段;
当存在扩展域填充字段时,基于随机森林算法模型判断所述扩展域填充字段中是否存在攻击行为;
输出与所述随机森林算法模型的判断结果相应的信息。
本申请实施例的有益效果在于:获取ntp报文数据之后,判断ntp报文数据中是否存在能够承载大数据量攻击行为的扩展域填充字段,如果存在,则判断所述扩展域填充字段中是否存在攻击行为,从而通过对能够承载大数据量攻击行为的扩展域填充字段进行检测,实现了对ntp报文数据中大数据量的攻击行为的检测,提升了接收ntp报文数据的设备的安全性。
在一个实施例中,基于随机森林算法模型判断所述扩展域填充字段中是否存在攻击行为,包括:
对所述扩展域填充字段进行预处理;
将预处理后的扩展域填充字段输入至随机森林算法模型。
在一个实施例中,所述对所述扩展域填充字段进行预处理,包括:
对所述扩展域填充字段中的数据完整性进行判断;
当所述扩展域填充字段中的数据完整时,生成所述数据对应的特征向量。
在一个实施例中,所述方法还包括:
在生成所述数据对应的特征向量之后,判断所述特征向量的数量是否处于第一范围内;
当所述特征向量的数量处于第一范围内时,将所述特征向量输入至分类算法模型中;
当所述特征向量的数量处于第一范围之外时,重新提取ntp数据。
在一个实施例中,所述对所述扩展域填充字段中的数据完整性进行判断,包括:
判断扩展域填充字段的字节数是否处于第二范围内;
当所述扩展域填充字段的字节数处于第二范围内时,判断所述扩展域填充字段的预设特征是否缺失;
当所述扩展域填充字段的预设特征未缺失时,确定所述扩展域填充字段中的数据完整。
在一个实施例中,所述方法还包括:
获取所述ntp报文数据中最低有效位字段;
基于随机森林算法模型判断所述最低有效位字段中是否存在攻击行为。
在一个实施例中,所述输出与所述随机森林算法模型的判断结果相应的信息,包括:
当所述扩展域填充字段中不存在攻击行为时,显示所述ntp报文合法的提示信息;
当所述扩展域填充字段中存在攻击行为时,显示所述ntp报文数据中存在攻击行为的提示信息,并发出报警信息。
本申请还提供一种基于ntp报文数据的攻击行为检测装置,包括:
获取模块,用于获取ntp报文数据;
第一判断模块,用于判断所述ntp报文数据中是否存在扩展域填充字段;
第二判断模块,用于当存在扩展域填充字段时,基于随机森林算法模型判断所述扩展域填充字段中是否存在攻击行为;
输出模块,用于输出与所述随机森林算法模型的判断结果相应的信息。
在一个实施例中,所述第二判断模块,包括:
预处理子模块,用于对所述扩展域填充字段进行预处理;
输入子模块,用于将预处理后的扩展域填充字段输入至随机森林算法模型。
在一个实施例中,所述预处理子模块,具体用于:
对所述扩展域填充字段中的数据完整性进行判断;
当所述扩展域填充字段中的数据完整时,生成所述数据对应的特征向量。
附图说明
图1为本申请一实施例中一种基于ntp报文数据的攻击行为检测方法的流程图;
图2为本申请一实施例中一种基于ntp报文数据的攻击行为检测方法的流程图;
图3为本申请一实施例中对随机森林算法模型进行训练时的数据流向示意图;
图4为本申请一实施例中通过训练完成的分类算法模型模块检测攻击行为的数据流向示意图;
图5为本申请一实施例中一种基于ntp报文数据的攻击行为检测方法的流程图;
图6为本申请一实施例中一种基于ntp报文数据的攻击行为检测方法的流程图;
图7为本申请一总的实施例中一种基于ntp报文数据的攻击行为检测方法的流程图;
图8为本申请一实施例中一种基于ntp报文数据的攻击行为检测装置的框图;
图9为本申请一实施例中一种基于ntp报文数据的攻击行为检测装置的框图。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
图1为本申请实施例的一种基于ntp报文数据的攻击行为检测方法的流程图,该方法包括以下步骤s11-s14:
在步骤s11中,获取ntp报文数据;
在步骤s12中,判断ntp报文数据中是否存在扩展域填充字段;
在步骤s13中,当存在扩展域填充字段时,基于随机森林算法模型判断扩展域填充字段中是否存在攻击行为;
在步骤s14中,输出与随机森林算法模型的判断结果相应的信息。
ntp是网络时间协议(networktimeprotocol),是为实现高精确度的时间同步,而设计的网络时钟同步协议ntp使用层次式时间分布模型,具有相当高的灵活性,可以适应各种互联网环境,是互联网上公认的时间同步工具。
ntp报文中有四个时间戳字段:参考时间戳、原始时间戳、接受时间戳、传送时间戳。其中时间戳字段用的是二进制补码编码方式。现有技术主要检测利用数据包时间戳的最低有效位进行隐秘信息传送的含密数据。最低有效位指的是一个二进制数字中的第0位(即最低位)。通过提取时间戳最低有效位的以下三个特征:信息熵、平均值和转移概率,其中信息熵为某种特定信息的出现概率(离散随机事件的出现概率),一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高;平均值指的是一组数据之和除以该组数据的个数;转移概率指的是:由m个状态所组成的序列,从任意一个状态出发,经过任意一次转移,结果到达的点一定是状态1,2,…,m中的一个,这种状态之间的转移称为转移概率。并且使用贝叶斯分类器算法模型,贝叶斯分类器是根据统计学原理,首先计算某个事件发生的先验概率(指的是根据经验和对时间的分析得到该时间发生的概率),然后通过贝叶斯公式来得到后验概率(该事件的发生属于哪个类别),从而实现检测ntp协议中的含密数据。
扩展域填充字段是由ntp协议的最新版本ntpv4中,在协议头部之后和mac校验字段之前添加的一个或多个扩展域组成。扩展域的内容没有被明确定义,但被强制要求最少填充至16字节,最大填充长度未作要求。这样,根据udp协议包的最大长度512字节,除去udp报文首部8字节和ntp报文首部48字节,我们可以让填充字段扩充到一个十分可观的456字节的长度,基本可以满足文件传送、远程桌面控制等大数据攻击行为的需求。因此,ntpv4协议中的扩展域填充字段很有可能被非法用户所利用,用来承载大数据量攻击行为。
针对上述问题,本实施例中,获取ntp报文数据;由于ntp报文协议中,只有ntpv4协议中存在扩展域填充字段,因此,需要判断ntp报文数据中是否存在扩展域填充字段;当存在扩展域填充字段时,基于随机森林算法模型判断扩展域填充字段中是否存在攻击行为;输出与随机森林算法模型的判断结果相应的信息。
具体的,基于随机森林算法模型判断扩展域填充字段中是否存在攻击行为可以包括:对扩展域填充字段进行预处理;将预处理后的扩展域填充字段输入至随机森林算法模型。
对扩展域填充字段进行预处理可以包括:对扩展域填充字段中的数据完整性进行判断;当扩展域填充字段中的数据完整时,生成数据对应的特征向量。
在生成数据对应的特征向量之后,在对扩展域填充字段进行预处理之前,判断特征向量的数量是否处于第一范围内;具体的,判断特征向量的数量是否处于第一范围内,如果处于第一范围内,则将特征向量输入至分类算法模型中,如果数据数量不足或过多,视为数据不合法,则重新提取ntp数据。
上述对扩展域填充字段中的数据完整性进行判断,包括:
判断扩展域填充字段的字节数是否处于第二范围内;具体的,在前文中提到:扩展域的内容没有被明确定义,但被强制要求最少填充至16字节,最大填充长度未作要求。这样,根据udp协议包的最大长度512字节,除去udp报文首部8字节和ntp报文首部48字节,我们可以让填充字段扩充到一个十分可观的456字节的长度,因此,第二范围可以是[16,456],判断提取扩展域字段字节数是否在第一范围[16,456]内,如果不在该第二范围内,则认为数据不完整,重新提取ntp数据,如果在第二范围内,认为数据本身是完整的,判断扩展域填充字段的预设特征是否缺失;例如,预设特征可以是指字段长度、字段信息熵、字段马尔科夫跟随概率,那么,判断扩展域填充字段的预设特征是否缺失具体可通过以下公式执行:
字段长度计算公式为:
l(x)=count(x)
其中,x表示为x中的字符。
信息熵计算公式为:
其中,x表示为字段信息,x表示为x字段信息中的某一个字符,p(x)为这个字符出现的概率。
马尔科夫跟随概率公式为:
根据隐马尔可夫模型,可计算观测序列的联合概率分布:
其中,xi,yi为字符信息中的一个组合,yi为第一个字符,xi为第二个字符。
字母和数字所占比率公式为:
其中,z表示为x中的字母,s表示为x中的数字,l(x)表示为x字段长度。
当扩展域填充字段的预设特征缺失时,则重新计算特征。
当扩展域填充字段的预设特征未缺失时,确定扩展域填充字段中的数据完整。
另外,在实现了对ntp报文数据中大数据量的攻击行为的检测的基础上,不排除非法用户利用最低有效位携带隐蔽隧道攻击行为,另外,对于除ntpv4之外的其他ntp协议下的报文是不存在扩展域填充字段的,因此,唯一可能携带隐蔽隧道攻击行为字段就是最低有效位字段,因此,本申请中,还会获取ntp报文数据中最低有效位字段;基于随机森林算法模型判断最低有效位字段中是否存在攻击行为。
另外,上述步骤s14可被实施为如下步骤:
当扩展域填充字段中不存在攻击行为时,显示ntp报文合法的提示信息;当扩展域填充字段中存在攻击行为时,显示ntp报文数据中存在攻击行为的提示信息,并发出报警信息。
本申请实施例的有益效果在于:获取ntp报文数据之后,判断ntp报文数据中是否存在能够承载大数据量攻击行为的扩展域填充字段,如果存在,则判断扩展域填充字段中是否存在攻击行为,从而通过对能够承载大数据量攻击行为的扩展域填充字段进行检测,实现了对ntp报文数据中大数据量的攻击行为的检测,提升了接收ntp报文数据的设备的安全性。
在一个实施例中,如图2所示,上述步骤s13可被实施为如下步骤s21-s22:
在步骤s21中,对扩展域填充字段进行预处理;
在步骤s22中,将预处理后的扩展域填充字段输入至随机森林算法模型。
本申请中,首先需要对扩展域填充字段进行预处理,使得与处理后的扩展域填充字段能够适用于随机森林算法模型,在此之前,需要对随机森林算法模型进行训练,图3为对随机森林算法模型进行训练时的数据流向示意图,如图3所示,首先从ntp报文数据中提取所需字段(如扩展域填充字段),然后通过数据预处理模块进行预处理器,预处理之后,形成向量化数据集(即扩展域填充字段中的数据对应的特征向量),然后将向量化数据集作为训练样本通过算法模型训练模块中对分类算法模型模块进行训练(具体的,可以是算法模型训练模块将数据不断地诸如到分类算法模型模块中,使其不断地进行计算,最终输出误差小于一固定值的结果,则认为分类算法模型模块训练完成),最终得到训练完成的分类算法模型模块。
图4为本申请中通过训练完成的分类算法模型模块检测攻击行为的数据流向示意图,如图4所示,先从ntp报文数据中提取所需字段(如扩展域填充字段),然后通过数据预处理模块进行预处理器,预处理之后,形成向量化数据集(即扩展域填充字段中的数据对应的特征向量),然后将向量化数据集输入至训练完成的分类算法模型模块,模型检测之后,输出具体的检测结果,检测结果分为两种,如果不存在隐蔽隧道攻击行为,则认为ntp报文数据为合法请求(即图4中分类器输出的“合法请求”),如果存在隐蔽隧道攻击行为,则输出提示(即图4中分类器输出的“隐蔽隧道”)。
需要说明的是,本申请中能够检测ntp报文数据中所有类型的攻击行为,本申请所提及的隐蔽隧道攻击行为仅为一种示例。
在一个实施例中,上述步骤a1可被实施为如下步骤b1-b2:
在步骤b1中,对扩展域填充字段中的数据完整性进行判断;
在步骤b2中,当扩展域填充字段中的数据完整时,生成数据对应的特征向量。
本实施例中,在生成数据对应的特征向量之后,在对扩展域填充字段进行预处理之前,对扩展域填充字段中的数据完整性进行判断;当扩展域填充字段中的数据完整时,生成数据对应的特征向量。
在一个实施例中,如图5所示,方法还可被实施为如下步骤s51-s53:
在步骤s51中,在生成数据对应的特征向量之后,判断特征向量的数量是否处于第一范围内;
在步骤s52中,当特征向量的数量处于第一范围内时,将特征向量输入至分类算法模型中;
在步骤s53中,当特征向量的数量处于第一范围之外时,重新提取ntp数据。
判断特征向量的数量是否处于第一范围内;具体的,判断特征向量的数量是否处于第一范围内,如果处于第一范围内,则将特征向量输入至分类算法模型中,通过分类算法模型对特征向量进行计算,输出分类结果,分类结果用于表征ntp数据是否为正常数据,如果数据数量不足或过多,视为数据不合法,则重新提取ntp数据。
在一个实施例中,如图6所示,上述步骤b1可被实施为如下步骤s61-s63:
在步骤s61中,判断扩展域填充字段的字节数是否处于第二范围内;
在步骤s62中,当扩展域填充字段的字节数处于第二范围内时,判断扩展域填充字段的预设特征是否缺失;
在步骤s63中,当扩展域填充字段的预设特征未缺失时,确定扩展域填充字段中的数据完整。
上述对扩展域填充字段中的数据完整性进行判断,包括:判断扩展域填充字段的字节数是否处于第二范围内;具体的,在前文中提到:扩展域的内容没有被明确定义,但被强制要求最少填充至16字节,最大填充长度未作要求。这样,根据udp协议包的最大长度512字节,除去udp报文首部8字节和ntp报文首部48字节,我们可以让填充字段扩充到一个十分可观的456字节的长度,因此,第二范围可以是[16,456],判断提取扩展域字段字节数是否在第二范围[16,456]内,如果不在该第二范围内,则认为数据不完整,重新提取ntp数据,如果在第二范围内,认为数据本身是完整的,判断扩展域填充字段的预设特征是否缺失;例如,预设特征可以是指字段长度、字段信息熵、字段马尔科夫跟随概率,那么,判断扩展域填充字段的预设特征是否缺失具体可通过以下公式执行:
字段长度计算公式为:
l(x)=count(x)
其中,x表示为x中的字符。
信息熵计算公式为:
其中,x表示为字段信息,x表示为x字段信息中的某一个字符,p(x)为这个字符出现的概率。
马尔科夫跟随概率公式为:
根据隐马尔可夫模型,可计算观测序列的联合概率分布:
其中,xi,yi为字符信息中的一个组合,yi为第一个字符,xi为第二个字符。
字母和数字所占比率公式为:
其中,z表示为x中的字母,s表示为x中的数字,l(x)表示为x字段长度。
当扩展域填充字段的预设特征缺失时,则重新计算特征。
当扩展域填充字段的预设特征未缺失时,确定扩展域填充字段中的数据完整。
在一个实施例中,方法还可被实施为如下步骤c1-c2:
在步骤c1中,获取ntp报文数据中最低有效位字段;
在步骤c2中,基于随机森林算法模型判断最低有效位字段中是否存在攻击行为。
在实现了对ntp报文数据中大数据量的攻击行为的检测的基础上,不排除非法用户利用最低有效位携带隐蔽隧道攻击行为,另外,对于除ntpv4之外的其他ntp协议下的报文是不存在扩展域填充字段的,因此,唯一可能携带隐蔽隧道攻击行为字段就是最低有效位字段,因此,本实施例中,还会获取ntp报文数据中最低有效位字段;基于随机森林算法模型判断最低有效位字段中是否存在攻击行为。
在一个实施例中,上述步骤s14还可被实施为如下步骤d1-d2:
在步骤d1中,当扩展域填充字段中不存在攻击行为时,显示ntp报文合法的提示信息;
在步骤d2中,当扩展域填充字段中存在攻击行为时,显示ntp报文数据中存在攻击行为的提示信息,并发出报警信息。
图7为本申请一总的实施例中一种基于ntp报文数据的攻击行为检测方法的流程图,包括以下步骤:
从数据流量中提取ntp报文数据,判断数据是否完整(即判断npt报文数据中的扩展域填充字段的字节数是处于第二范围内),如果数据不完整,则继续提取数据,如果数据完整,则计算ntp报文数据特征(即上文中所提及的扩展域填充字段的预设特征),判断特征是否缺失(即上文中所提及的判断扩展域填充字段的预设特征是否缺失),如果特征缺失,则继续计算特征,如果特征未缺失,则合并特征集,进行特征数据向量化(即上文中所提及的当扩展域填充字段中的数据完整时,生成数据对应的特征向量),然后判断元数据是否合法(即判断特征向量的数量是否处于第一范围内),如果合法(即当特征向量的数量处于第一范围内时),执行分类算法(即将特征向量输入至分类算法模型中),输出分类结果,分类结果分为两类,即正常数据和隧道数据,基于分类结果进行数据可视化及警告(即输出与随机森林算法模型的判断结果相应的信息,具体的,当扩展域填充字段中不存在攻击行为时,显示ntp报文合法的提示信息;当扩展域填充字段中存在攻击行为时,显示ntp报文数据中存在攻击行为的提示信息,并发出报警信息)。
图8为本申请实施例的一种基于ntp报文数据的攻击行为检测装置的框图,如图8所示,该装置包括以下模块:
获取模块81,用于获取ntp报文数据;
第一判断模块82,用于判断ntp报文数据中是否存在扩展域填充字段;
第二判断模块83,用于当存在扩展域填充字段时,基于随机森林算法模型判断扩展域填充字段中是否存在攻击行为;
输出模块84,用于输出与随机森林算法模型的判断结果相应的信息。
在一个实施例中,如图9所示,第二判断模块83,包括:
预处理子模块91,用于对扩展域填充字段进行预处理;
输入子模块92,用于将预处理后的扩展域填充字段输入至随机森林算法模型。
在一个实施例中,预处理子模块,具体用于:
对扩展域填充字段中的数据完整性进行判断;
当扩展域填充字段中的数据完整时,生成数据对应的特征向量。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。
1.一种基于ntp报文数据的攻击行为检测方法,其特征在于,包括:
获取ntp报文数据;
判断所述ntp报文数据中是否存在扩展域填充字段;
当存在扩展域填充字段时,基于随机森林算法模型判断所述扩展域填充字段中是否存在攻击行为;
输出与所述随机森林算法模型的判断结果相应的信息。
2.如权利要求1所述的方法,其特征在于,基于随机森林算法模型判断所述扩展域填充字段中是否存在攻击行为,包括:
对所述扩展域填充字段进行预处理;
将预处理后的扩展域填充字段输入至随机森林算法模型。
3.如权利要求2所述的方法,其特征在于,所述对所述扩展域填充字段进行预处理,包括:
对所述扩展域填充字段中的数据完整性进行判断;
当所述扩展域填充字段中的数据完整时,生成所述数据对应的特征向量。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
在生成所述数据对应的特征向量之后,判断所述特征向量的数量是否处于第一范围内;
当所述特征向量的数量处于第一范围内时,将所述特征向量输入至分类算法模型中;
当所述特征向量的数量处于第一范围之外时,重新提取ntp数据。
5.如权利要求3所述的方法,其特征在于,所述对所述扩展域填充字段中的数据完整性进行判断,包括:
判断扩展域填充字段的字节数是否处于第二范围内;
当所述扩展域填充字段的字节数处于第二范围内时,判断所述扩展域填充字段的预设特征是否缺失;
当所述扩展域填充字段的预设特征未缺失时,确定所述扩展域填充字段中的数据完整。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述ntp报文数据中最低有效位字段;
基于随机森林算法模型判断所述最低有效位字段中是否存在攻击行为。
7.如权利要求1-6任意一项所述的方法,其特征在于,所述输出与所述随机森林算法模型的判断结果相应的信息,包括:
当所述扩展域填充字段中不存在攻击行为时,显示所述ntp报文合法的提示信息;
当所述扩展域填充字段中存在攻击行为时,显示所述ntp报文数据中存在攻击行为的提示信息,并发出报警信息。
8.一种基于ntp报文数据的攻击行为检测装置,其特征在于,包括:
获取模块,用于获取ntp报文数据;
第一判断模块,用于判断所述ntp报文数据中是否存在扩展域填充字段;
第二判断模块,用于当存在扩展域填充字段时,基于随机森林算法模型判断所述扩展域填充字段中是否存在攻击行为;
输出模块,用于输出与所述随机森林算法模型的判断结果相应的信息。
9.如权利要求8所述的装置,其特征在于,所述第二判断模块,包括:
预处理子模块,用于对所述扩展域填充字段进行预处理;
输入子模块,用于将预处理后的扩展域填充字段输入至随机森林算法模型。
10.如权利要求9所述的装置,其特征在于,所述预处理子模块,具体用于:
对所述扩展域填充字段中的数据完整性进行判断;
当所述扩展域填充字段中的数据完整时,生成所述数据对应的特征向量。
技术总结