一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

木马入侵的检测方法及装置、电子设备、存储介质与流程

2022-02-22 19:00:44 来源:中国专利 TAG:


1.本技术涉及网络通信技术领域,特别涉及一种木马入侵的检测方法及装置、电子设备、计算机可读存储介质。


背景技术:

2.网络通信技术的应用及普及,给人们的生活带来了极大的便利,但是于此同时,各种病毒以及恶意代码在网络上的传播也愈加严重,对网络安全产生了极大的威胁。其中木马在各种形式的恶意软件中较为流行,攻击者通常使用木马窃取敏感信息。
3.现有技术提出了一种窃密木马的tcp心跳行为的检测方法,该方法通过抓取网络数据包,还原成tcp数据流,并记录tcp数据流信息。判断来自服务器端和客户端的心跳数据包数量是否超过最小心跳数量包数量,若是则保存tcp心跳行为。分析具有相同三元组的若干连续tcp连接时间与通信字节数,判断是否具有周期性,对可疑tcp连接的心跳行为进行判断。
4.基于心跳间隔的方差是否稳定在某一阈值内可对周期性木马心跳进行检测,但是当木马心跳是变周期时会导致方差波动较大,造成误判。


技术实现要素:

5.本技术实施例提供了木马入侵的检测方法,用以提高木马入侵检测的准确性。
6.本技术实施例提供了一种木马入侵的检测方法,包括:
7.获取发送方和接收方之间的心跳行为数据;
8.通过已训练的自编码器提取所述心跳行为数据的时域特征;
9.通过对所述心跳行为数据进行傅里叶变换,提取所述心跳行为数据的频域特征;
10.将所述心跳行为数据的时域特征和频域特征作为已训练的神经网络模型的输入,获得所述神经网络模型输出的是否存在木马入侵的检测结果。
11.在一实施例中,所述获取发送方和接收方之间的心跳行为数据,包括:
12.获取所述发送方和接收方之间四元组相同的数据流;所述四元组包括源地址、源端口、目的地址和目的端口;
13.对所述数据流进行预处理,提取心跳间隔序列和收发字节比序列。
14.在一实施例中,对所述数据流进行预处理,提取心跳间隔序列和收发字节比序列,包括:
15.根据所述发送方和接收方相邻两次心跳过程之间的时间间隔,得到所述心跳间隔序列;
16.计算所述接收方的接收字节数和所述发送方的发送字节数之间的比值,并将比值按照时间先后排列,得到所述收发字节比序列。
17.在一实施例中,所述通过已训练的自编码器提取所述心跳行为数据的时域特征,包括:
18.通过已训练的自编码器提取所述心跳间隔序列对应的心跳时域特征和所述收发字节比序列对应的字节时域特征。
19.在一实施例中,通过已训练的自编码器提取所述心跳间隔序列对应的心跳时域特征和所述收发字节比序列对应的字节时域特征,包括:
20.将所述心跳间隔序列作为所述自编码器的输入,根据所述自编码器的第一输出,计算所述心跳间隔序列的平均绝对误差重构损失序列,得到所述心跳时域特征;
21.将所述收发字节比序列作为所述自编码器的输入,根据所述自编码器的第二输出,计算所述收发字节比序列的重构损失序列,得到所述字节时域特征。
22.在一实施例中,所述通过对所述心跳行为数据进行傅里叶变换,提取所述心跳行为数据的频域特征,包括:
23.分别对所述心跳间隔序列和收发字节比序列进行傅里叶变换,提取所述心跳间隔序列对应的心跳频域特征和所述收发字节比序列对应的字节频域特征。
24.在一实施例中,所述将所述心跳行为数据的时域特征和频域特征作为已训练的神经网络模型的输入,获得所述神经网络模型输出的是否存在木马入侵的检测结果,包括:
25.将所述心跳时域特征、字节时域特征、心跳频域特征和字节频域特征一起作为所述已训练的神经网络模型的输入,获得所述神经网络模型输出的是否存在木马入侵的检测结果。
26.本技术实施例提供了一种木马入侵的检测装置,包括:
27.数据获取模块,用于获取发送方和接收方之间的心跳行为数据;
28.时域特征提取模块,用于通过已训练的自编码器提取所述心跳行为数据的时域特征;
29.频域特征提取模块,用于通过对所述心跳行为数据进行傅里叶变换,提取所述心跳行为数据的频域特征;
30.结果输出模块,用于将所述心跳行为数据的时域特征和频域特征作为已训练的神经网络模型的输入,获得所述神经网络模型输出的是否存在木马入侵的检测结果。
31.本技术实施例提供了一种电子设备,所述电子设备包括:
32.处理器;
33.用于存储处理器可执行指令的存储器;
34.其中,所述处理器被配置为执行上述木马入侵的检测方法。
35.本技术实施例提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述马入侵的检测方法。
36.本技术上述实施例提供的技术方案,通过自编码器对心跳行为数据的心跳间隔序列以及收发字节比序列进行重构学习,从损失重构的角度提取了心跳行为隐含信息,实现模型的自监督信息抽取,增强了检测准确性,节省了人工特征抽取的时间。进一步,通过自编码器提取心跳行为数据的时域特征,从而掌握了趋势信息,通过傅里叶变换提取心跳行为数据的频域特征,通过时域特征与频域特征融合的角度对木马心跳进行检测,提高了检测的准确性。
附图说明
37.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍。
38.图1是本技术实施例提供的木马入侵的检测方法的应用场景示意图;
39.图2是本技术实施例提供的电子设备的结构示意图;
40.图3是本技术实施例提供的一种木马入侵的检测方法的流程示意图;
41.图4是本技术实施例提供的自编码器的结构示意图;
42.图5是本技术实施例提供的一种木马入侵的检测方法的原理架构图;
43.图6是本技术实施例提供的全连接神经网络模型的架构图;
44.图7是本技术实施例提供的木马入侵的检测方法的详细流程示意图;
45.图8是本技术一实施例示出的木马入侵的检测装置的框图。
具体实施方式
46.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
47.相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
48.图1为本技术实施例提供的木马入侵的检测方法的应用场景示意图。如图1所示,该应用场景包括客户端110、网关设备130和服务端120,本技术实施例提供的方法可以由网关设备130执行,确定客户端110和服务端120之间的通信通道是否存在木马入侵。
49.客户端110和服务端120之间保持一个会话,是通过向对方发送数据包来实现的,也就是心跳数据包。例如客户端110向服务端120发送一个心跳数据包,服务端120如果在线,则会向客户端110返回一个确认数据包,从而表示彼此都在线。网关设备130可以执行本技术实施例提供的方法,获取心跳行为数据,提取时域特征和频域特征,进而根据时域特征和频域特征,通过神经网络模型确定客户端110与服务端120之间的通信通道是否存在木马入侵,使得对变周期木马心跳也可以进行检测,提高了木马入侵的检测准确性。
50.图2是本技术实施例提供的电子设备的结构示意图。该电子设备可以作为上述网关设备130,该电子设备200可以用于执行本技术实施例提供的木马入侵的检测方法。如图2所示,该电子设备200包括:一个或多个处理器202、一个或多个存储处理器可执行指令的存储器204。其中,所述处理器202被配置为执行本技术下述实施例提供的木马入侵的检测方法。
51.所述处理器202可以是包含中央处理单元(cpu)、图像处理单元(gpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备200中的其它组件的数据进行处理,还可以控制所述电子设备200中的其它组件以执行期望的功能。
52.所述存储器204可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上
可以存储一个或多个计算机程序指令,处理器202可以运行所述程序指令,以实现下文所述的木马入侵的检测方法。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
53.在一实施例中,图2所示电子设备200还可以包括输入装置206、输出装置208以及数据采集装置210,这些组件通过总线系统212和/或其它形式的连接机构(未示出)互连。应当注意,图2所示的电子设备200的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备200也可以具有其他组件和结构。
54.所述输入装置206可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。所述输出装置208可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。所述数据采集装置210可以采集对象的图像,并且将所采集的图像存储在所述存储器204中以供其它组件使用。示例性地,该数据采集装置210可以为摄像头。
55.在一实施例中,用于实现本技术实施例的木马入侵的检测方法的示例电子设备100中的各器件可以集成设置,也可以分散设置,诸如将处理器202、存储器204、输入装置206和输出装置208集成设置于一体,而将数据采集装置210分离设置。
56.在一实施例中,用于实现本技术实施例的木马入侵的检测方法的示例电子设备200可以被实现为诸如计算机、服务器等智能设备。
57.图3是本技术实施例提供的一种木马入侵的检测方法的流程示意图。如图3所示,该方法包括以下步骤s310-步骤s340。
58.步骤s310:获取发送方和接收方之间的心跳行为数据。
59.在一实施例中,发送方可以是客户端,接收方可以是服务端。在另一实施例中,发送方可以是服务端,接收方是客户端。下文将客户端作为发送方,服务端作为接收方为例,进行举例说明。
60.服务端与客户端之间为了保持会话,客户端会定时向服务端发送心跳数据包,表示客户端在线,服务端接收到心跳数据包会返回确认数据包,从而服务端在线。心跳行为数据用于表征每次发送心跳数据包的时间间隔以及每次发送的数据包的收发字节比。故心跳行为数据可以包括心跳间隔序列t={t1,t2,...,tn}和收发字节比序列b={b1,b2,...,bn}。
61.步骤s320:通过已训练的自编码器提取所述心跳行为数据的时域特征。
62.自编码器作为典型的无监督深度学习模型,旨在通过将网络的期望输出等同于输入样本,实现对输入样本的抽象特征学习。自编码器首先接收输入样本,将其转换成高效的抽象表示,而后再输出原始样本的重构。
63.自编码器的训练过程包括编码和解码两个阶段。编码过程,对输入样本进行编码得到编码层;解码过程,对编码层进行解码,得到输入样本的重构,并通过调整网络参数使重构误差达到最小值,以获得输入特征的最优抽象表示。
64.在一实施例中,自编码器结构如图4所示,假定模型输入为y
true
,模型输出为y
pred
,并使用平均绝对误差损失函数,模型整体损失函数如下:
[0065][0066]
在训练时,自编码器输入数据为木马心跳的心跳间隔序列t以及收发字节比b,目
标函数是平均绝对误差损失函数,使用随机梯度法进行训练,最终使损失函数最小化后确定自编码器的参数,由此完成自编码器的训练。
[0067]
心跳行为数据的时域特征包括心跳时域特征和字节时域特征。在训练完成后,可以通过已训练的自编码器提取心跳间隔序列对应的心跳时域特征和收发字节比序列对应的字节时域特征。
[0068]
具体的,可以将心跳间隔序列作为自编码器的输入,根据所述自编码器的第一输出,计算所述心跳间隔序列的平均绝对误差重构损失序列,得到所述心跳时域特征;将所述收发字节比序列作为所述自编码器的输入,根据所述自编码器的第二输出,计算所述收发字节比序列的重构损失序列,得到所述字节时域特征。
[0069]
其中,第一输出是指心跳间隔序列的重构样本,平均绝对误差重构损失序列是指心跳间隔序列与其重构样本之间的误差。第二输出是指收发字节比序列的重构样本,重构损失序列是指收发字节比序列与其重构样本之间的误差。
[0070]
由图4可知,自编码器是一种对称结构,以心跳间隔序列为例,当输入序列长度为n的心跳间隔序列t={t1,t2,...,tn}时,模型的输出为t’={t
’1,t
’2,...t’n
}(即第一输出),计算每个时刻的平均绝对误差重构损失,构成序列,即δt=|t-t’|={|t
1-t
’1|,|t
2-t
’2|,...|t
n-t’n
|}。
[0071]
同理,当输入序列长度为n的收发字节比序列b={b1,b2,...,bn}时,模型的输出为b’={b
’1,b
’2,...b’n
}(即第二输出),计算出收发字节比的重构损失序列δb=|b-b’|={|b
1-b
’1|,|b
2-b
’2|,...|b
n-b’n
|}
[0072]
心跳时域特征和字节时域特征可以用于提取出整体的趋势性信息。
[0073]
步骤s330:通过对所述心跳行为数据进行傅里叶变换,提取所述心跳行为数据的频域特征。
[0074]
心跳行为数据的频域特征可以包括心跳频域特征和字节频域特征。具体的,可以分别对心跳间隔序列和收发字节比序列进行傅里叶变换,提取心跳间隔序列对应的心跳频域特征和收发字节比序列对应的字节频域特征。
[0075]
傅里叶变换能够将信号从时间空间转换到频域,从频域角度去分析信号。快速傅里叶变换是计算机计算离散傅里叶变换的高效、快速计算方法的统称,简称fft。本技术实施例通过fft对心跳间隔序列t以及收发字节比序列b进行处理,并对相应处理结果取模处理,得到相应傅里叶变换结果即心跳频域特征为ft={ft1,ft2,...,ftn}及字节频域特征为fb={fb1,fb2,...,fbn}。
[0076]
采用了傅里叶变换对心跳行为数据进行了频域特征提取,傅里叶变换是数字信号处理中的基本操作,广泛应用于离散时域信号处理。通过研究表明,正常网络通信数据包的时间间隔转换到频域后,对应的中频和高频系数都比较大,而木马心跳信号中的高低频系数几乎为0。故基于心跳频域特征的高低频系数是否接近0,也可以用于确定是否存在木马入侵。
[0077]
步骤s340:将所述心跳行为数据的时域特征和频域特征作为已训练的神经网络模型的输入,获得所述神经网络模型输出的是否存在木马入侵的检测结果。
[0078]
如图5所示,心跳行为数据分别通过傅里叶变换进行频域特征提取,通过自编码器进行时域特征提取,之后将时域特征和频域特征作为全连接神经网络模型的输入,通过全
连接神经网络模型确定是否属于木马心跳。即是否存在木马入侵。检测结果可以是“存在木马入侵”或“不存在木马入侵”。
[0079]
具体的,可以将心跳时域特征、字节时域特征、心跳频域特征和字节频域特征一起作为已训练的神经网络模型的输入,获得神经网络模型输出的是否存在木马入侵的检测结果。
[0080]
全连接神经网络模型如图6所示,模型的输入分别是自编码器提取的时域特征δt,δb和傅里叶变换提取的频域特征ft,fb。由于输入数据与隐藏层节点是全连接的,所以通过神经网络实现了频域与时域数据的多模态融合计算,解决了单一模态模型计算准确率低,模型鲁棒性低的问题。
[0081]
模型的输出层可以使用sigmoid激活函数,即进行2分类预测,最终判断输入心跳行为数据是否为木马心跳,即可判断是否存在木马通信,最终输出木马入侵主机信息,如主机源ip等。
[0082]
图7是本技术实施例提供的木马入侵的检测方法的详细流程示意图,如图7所示,包括以下过程:
[0083]
步骤s701:采集网络原始数据包;
[0084]
步骤s702:tcp审计日志数据提取:对原始数据包进行解析,提取4元组相同的数据作为同一条数据流;
[0085]
步骤s703:tcp审计日志数据预处理:对数据流进行预处理,提取心跳间隔序列为t={t1,t2,...,tn},收发字节比序列b={b1,b2,...,bn};
[0086]
步骤s704:建立与训练自编码器:
[0087]
步骤s705:自编码器特征提取:通过已训练的自编码器提取心跳间隔序列的心跳时域特征和收发字节比序列的字节时域特征;
[0088]
步骤s706:傅里叶变换特征提取:对心跳间隔序列进行傅里叶变换,提取心跳频域特征,对收发字节比序列进行傅里叶变换,提取字节频域特征;
[0089]
步骤s707:全连接神经网络预测:将心跳时域特征、字节时域特征、心跳频域特征和字节频域特征一起作为全连接神经网络模型的输入,模型输出是否为木马心跳;
[0090]
步骤s708:如果是木马心跳,输出木马入侵主机信息。
[0091]
现有技术中木马判断仅考虑了时域信息,未考虑频域信息。网络通信数据包的时间间隔转换到频域后,正常网络通信与木马通信的高频、中低频系数具有较大的区分性,因此考虑频域信息后可增加准确性。现有技术基于方差的周期性检测方法无法对变周期木马心跳进行检测,基于心跳间隔的方差是否稳定在某一阈值内可对周期性木马心跳进行检测,但是当木马心跳是变周期时会导致方差波动较大,造成误判。现有技术仅使用发送接收字节数之比与固定阈值进行比较,未考虑数据包的整体趋势信息。仅考虑了传输字节数的单点数值大小信息,未对整个心跳过程的传输字节的序列整体趋势信息进行考虑,例如整体趋势是递增、递减、平稳等。
[0092]
本技术上述实施例通过自编码器对心跳行为数据的心跳间隔序列以及收发字节比序列进行重构学习,从损失重构的角度提取了心跳行为隐含信息,实现模型的自监督信息抽取,增强了检测准确性,节省了人工特征抽取的时间。进一步,通过自编码器提取心跳行为数据的时域特征,从而掌握了趋势信息,通过傅里叶变换提取心跳行为数据的频域特
征,通过时域特征与频域特征融合的角度对木马心跳进行检测,提高了检测的准确性。
[0093]
下述为本技术装置实施例,可以用于执行本技术上述木马入侵的检测方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术木马入侵的检测方法实施例。
[0094]
图8为本技术一实施例示出的木马入侵的检测装置的框图。如图8所示,该装置包括:数据获取模块810、时域特征提取模块820、频域特征提取模块830以及结果输出模块840。
[0095]
数据获取模块810,用于获取发送方和接收方之间的心跳行为数据;
[0096]
时域特征提取模块820,用于通过已训练的自编码器提取所述心跳行为数据的时域特征;
[0097]
频域特征提取模块830,用于通过对所述心跳行为数据进行傅里叶变换,提取所述心跳行为数据的频域特征;
[0098]
结果输出模块840,用于将所述心跳行为数据的时域特征和频域特征作为已训练的神经网络模型的输入,获得所述神经网络模型输出的是否存在木马入侵的检测结果。
[0099]
上述装置中各个模块的功能和作用的实现过程具体详见上述木马入侵的检测方法中对应步骤的实现过程,在此不再赘述。
[0100]
在本技术所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0101]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0102]
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献