本发明属于物联网领域,具体涉及一种网络入侵检测的方法和系统。
背景技术:
1、物联网技术的广泛应用,在发展迅速的同时也造成诸多安全问题,需建立完整且稳定的系统来确保物联网的安全。而入侵检测系统,成为保护物联网安全的关键技术。
2、传统的安全解决方案已经覆盖了个人电脑、服务器、网络和云存储,这些解决方案大多可部署于云平台,但是物联网和网关部分依然是较为薄弱和空白。由于物联网结构和行为的差异,传统网络安全解决方案可能无法直接适用。
3、随着机器学习和深度学习技术的发展,从检测技术、数据集、架构设计和工作模式等方面,从数据集入手,对现阶段基于机器学习的物联网入侵检测系统,进行了物联网安全检测的探索,并设计一套边缘网关和云平台结合的系统。
4、而结合机器学习算法,正是能最大体现边缘计算优点的方向。选中机器学习算法而不是深度学习的原因,是因为深度学习的神经网络,需要借助gpu或npu等硬件支持。而机器学习算法的效果不会比深度学习差很多,重要的是只需要使用cpu资源就可以完成,更适合目前绝大部分的边缘网关硬件环境。
5、因此现有技术不足有:
6、目前主要是依赖x86架构下的主动检测和防御解决方案,只适合部署在pc或者云服务器上。对于其他芯片架构的嵌入式方案非常稀缺,更缺乏有效部署更新方式。
7、针对深度或机器学习算法,大多利用gpu、npu硬件加速,边缘网关的嵌入式方案下cpu方案难以应用。
8、更多是针对服务器端的服务软件进行检测和防护,工业或物联网数据部分很少,比如coap、mqtt等协议的。
9、没有针对边缘设备进行优化,消耗资源较大。
10、cn115396212a公开了一种检测模型的训练方法、装置、计算机设备、存储介质和计算机程序产品;其说明书记载:所述方法包括:
11、获取第一网络数据集以及第二网络数据集,并将所述第一网络数据集和所述第二网络数据集进行融合处理,得到样本数据集;所述样本数据集包括样本网络数据和所述样本网络数据的数据类型标识,所述数据类型标识包括正常数据类型标识和攻击数据类型标识;
12、对各所述样本网络数据进行特征提取,得到网络特征数据集;所述网络特征数据集包含提取出的各样本网络特征数据、以及各所述样本网络特征数据对应的初始权重;
13、基于权重调整算法对所述各所述样本网络特征数据对应的初始权重进行更新,并基于更新后的权重构建目标网络特征数据集;所述目标网络特征数据集包括目标样本网络特征数据、所述目标样本网络特征数据的数据类型标识以及各所述样本网络特征数据对应的权重;
14、基于所述目标网络特征数据集和各所述目标样本网络特征数据对应的数据类型标识,对机器学习模型进行训练,得到检测模型,所述检测模型用于检测网络数据的数据类型标识。
15、所述对各所述样本网络数据进行特征提取,得到网络特征数据集,包括:
16、对所述样本数据集中的所述各所述样本网络数据进行数据预处理,得到数据预处理后的各所述样本网络数据;
17、使用随机森林算法对所述数据预处理后的各所述样本网络数据进行特征提取,得到所述网络特征数据集。
18、所以结合以上分析可见,如果要在边缘设备进行网络入侵识别,其面临的现实问题在于:
19、1.特征如何优化,要进行全部特征的分析是不现实的,算力、计算速度无法满足;
20、2.如何进行推理采用适用于边缘网关无gpu或npu的现实情况。
21、所以,本项目的核心在于,如何实现低算力的边缘网关针对网络入侵的高效、及时、准确的发现。
技术实现思路
1、针对现有技术的不足,本发明的目的在于提供一种边缘网关通过机器学习算法进行网络入侵检测的方法,该方法对数据包的特征提取进行优化,得到了能够利于边缘网关进行推理的特征,其推理精度和unsw-nb15完整数据集的特征进行推理的结果类似,具有计算量小、计算速度快的优势,同时通过优化模型推理算法,利于边缘网关的推理部署。
2、同时,本发明还提供了基于该方法的系统。
3、为达到此发明目的,本发明采用以下技术方案:一种边缘网关通过机器学习算法进行网络入侵检测的方法,包括如下步骤:
4、步骤1:在边缘网关上部署模型,所述模型采用随机森林算法对多个数据包的特征进行训练得到;所述特征通过抓取边缘网收到的数据包并采用argus client程序对数据包的特征进行提取得到;
5、步骤2:边缘网关对收到的数据包采用argus client程序进行特征提取并采用模型对提取得到的特征进行推理,得到针对该数据包的推理结果。
6、在上述的边缘网关通过机器学习算法进行网络入侵检测的方法中,所述步骤3中,采用二分类推理的方式进行推理;
7、所述推理结果为:正常数据包或异常数据包;
8、如果推理结果是异常数据包,则边缘网关禁止该异常数据包所对应的ip地址的其他任何数据包的传输。
9、在上述的边缘网关通过机器学习算法进行网络入侵检测的方法中,还包括步骤3:将异常数据包发送到云平台,通过云平台对异常数据包采用多分类算法进行分析,得到异常数据包所代表的攻击类型,并根据攻击类型生成防护策略反馈给边缘网关,所述边缘网关根据防护策略进行对应的操作。
10、在上述的边缘网关通过机器学习算法进行网络入侵检测的方法中,所述步骤1中的特征为:tcprtt、dur、smeansz、dmeansz、synack、dttl、sttl、dbytes、sbytes、dwin、swin、dload、sload、dloss、sloss、dpkts、spkts中的一种或多种。
11、tcprtt:
12、英文含义:tcp connection setup round-trip time, the sum of synack andackdat;
13、中文含义:"tcp连接建立往返时间,synack和ackdat的总和"。在tcp连接建立过程中,客户端发送一个syn报文段到服务器端,服务器端回复一个syn+ack报文段,最后客户端回复一个ack报文段。这三个报文段的往返时间被称为tcp连接建立往返时间。其中,syn+ack报文段和ack报文段的长度可能不同,因此它们的往返时间也可能不同。"synack和ackdat的总和" 可以理解为这两个报文段的往返时间之和。
14、dur:
15、英文含义:record total duration;
16、中文含义:抓取数据包总时长。
17、smeansz:
18、英文含义:mean of the flow packet size transmitted by the src;
19、中文含义:“计算源地址发送的流量数据包大小的平均值”。其中,“源地址”指的是数据包的发送方。如果你有一个数据包流量的记录,你可以将所有源地址相同的数据包大小加起来,再除以这些数据包的总个数,得到源地址发送的流量数据包大小的平均值。
20、dmean:
21、英文含义:mean of the packet size transmitted by the dst;
22、中文含义:如上,这里是目标地址接受数据包平均值。
23、synack:
24、英文含义:tcp connection setup time, the time between the syn and thesyn_ack packets;
25、中文含义:如tcprtt中描述,这里是在发送syn和回复syn_ack之间的时间。
26、dttl
27、英文含义:destination to source time to live value;
28、中文含义:"目的地到源地址的生存时间值"。在互联网协议(ip)中,每个ip数据包都包含一个生存时间(ttl)字段,它表示数据包在网络中可以传输的最大跳数。当数据包被路由器转发时,ttl值会减少1。如果ttl值减少到0,数据包将被丢弃并返回一个错误消息。因此,ttl值可以用来防止数据包在网络中无限制地循环转发。 "destination to sourcetime to live value" 指的是从目的地到源地址的ttl值,因为在返回数据包时,ttl值将从目的地开始递减,直到源地址。
29、sttl:
30、英文含义:source to destination time to live value;
31、中文含义:如上,这里只是改成了源地址到目标地址的生存时间。
32、dbytes:
33、英文含义:destination to source transaction bytes;
34、中文含义:目标地址发送到源地址总数据个数。
35、sbytes:
36、英文含义:source to destination transaction bytes;
37、中文含义:源地址发送到目标地址总数据个数。
38、dwin:
39、英文含义:destination tcp window advertisement value;
40、中文含义:"目标tcp窗口值"。tcp窗口是在tcp连接中用于控制数据流量的机制。发送方会根据接收方的窗口大小来控制发送的数据量。tcp窗口广告值是接收方发送给发送方的一个值,表示接收方的缓冲区还可以接收多少字节的数据。发送方可以根据这个值来调整发送的数据量,以避免发送过多的数据导致接收方缓冲区溢出。
41、swin:
42、英文含义:source tcp window advertisement value;
43、中文含义:如上,这里是源tcp窗口值。
44、dload:
45、英文含义:destination bits per second;
46、中文含义:目标地址每秒发送bit数。
47、sload:
48、英文含义:source bits per second;
49、中文含义:源地址每秒发送bit数。
50、dloss:
51、英文含义:destination packets retransmitted or dropped;
52、中文含义:目标数据包被重传或丢弃个数。
53、sloss:
54、英文含义:source packets retransmitted or dropped;
55、中文含义:源数据包被重传或丢弃个数。
56、dpkts:
57、英文含义:destination to source packet count;
58、中文含义:目标地址到源地址传输包个数。
59、spkts:
60、英文含义:source to destination packet count;
61、中文含义:源地址到目标地址传输包个数。
62、在上述的边缘网关通过机器学习算法进行网络入侵检测的方法中,所述数据包的抓取方式为通过tcpdump程序或argus server程序抓取原始报文。
63、在上述的边缘网关通过机器学习算法进行网络入侵检测的方法中,所述边缘网关使用docker环境进行部署,所述模型由云平台进行训练并将训练后的模型更新到docker容器中,docker容器中的模型定期发送给各边缘网关。
64、此外,本发明还公开了一种网络入侵检索系统,包括云平台、若干边缘网关;
65、所述边缘网关包括如下模块:
66、数据包抓取模块:用于抓取边缘网关收到的数据包;
67、特征提取模块:用于采用argus client程序对数据包抓取模块提供的数据包进行特征提取,得到特征;
68、推理模块:用于采用模型对特征提取模块提供的特征进行推理,得到推理结果,所述推理结果包括正常数据包和异常数据包;
69、通信模块:用于将异常数据包对应的推理结果、与推理结果对应的异常数据包发送给云平台,并接收来自于云平台的数据;
70、执行模块:用于根据推理结果执行针对该数据包对应的ip地址的数据包的操作。
71、在上述的网络入侵检索系统中,所述推理模块用于采用二分类推理的方式进行推理;
72、所述云平台用于根据接收到的异常数据包采用多分类算法进行分析,得到异常数据包所代表的攻击类型,并根据攻击类型生成防护策略反馈给通信模块,所述边缘网关根据防护策略进行对应的操作。
73、在上述的网络入侵检索系统中,所述边缘网关使用docker环境进行部署,所述模型由云平台进行训练并将训练后的模型更新到docker容器中,包含模型的docker容器定期发送给各边缘网关。
74、在上述的网络入侵检索系统中,所述数据包的抓取方式为通过tcpdump程序或argus server程序抓取原始报文;
75、所述特征为:tcprtt、dur、smeansz、dmeansz、synack、dttl、sttl、dbytes、sbytes、dwin、swin、dload、sload、dloss、sloss、dpkts、spkts中的一种或多种。
76、相对于现有技术,本发明具有以下有益效果:
77、本发明采用随机森林机器学习算法,只需要cpu参与计算,减少对gpu、npu硬件依赖,只使用cpu资源完成算法推理过程;
78、通过tcpdump或argus server进行原始报文获取,通过argus client分析原始报文,得到特征值,采用模型进行报文预测,可有效的降低计算量,且推理精度不会明显降低。