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

一种基于运行时验证的边缘服务器DoS攻击检测方法与流程

2021-11-10 02:02:00 来源:中国专利 TAG:

一种基于运行时验证的边缘服务器dos攻击检测方法
技术领域
1.本发明属于程序运行验证技术领域,尤其涉及一种基于运行时验证的边缘服务器dos攻击检测方法。


背景技术:

2.目前,边缘计算系统利用终端设备及终端附近的边缘服务器的计算和储存资源,提前对数据进行部分处理,减少要发送到云数据中心的数据量,从而减少网络带宽使用量,并使系统能够在较低数据延迟的情况下立即响应数据。然而,边缘服务器特点使其面临新的挑战。首先,由于边缘服务器位于网络的边缘,更靠近用户,异构的接入环境和多样的业务需求,使得边缘服务器面临更复杂的网络环境。此外,边缘服务器往往是地理分布式的,难以做到集中的设备安全保护,且每个边缘服务器是不同的,此差异性给攻击者带来了更多的可选择性。更为严重的是,由于计算能力和存储空间的限制,大多数边缘服务器只关注业务逻辑的实现,而对可能受到的攻击没有防范和检测。由以上分析可知,虽然边缘服务器在边缘计算网络中发挥重要作用,但其易攻击的特征使其面临严峻的攻击威胁。
3.由于边缘服务器的计算和存储资源受限,极易被耗尽,因此,在边缘计算系统面临的多种攻击中,针对边缘服务器的拒绝服务(dos)攻击很为广泛。在dos攻击中,恶意节点通过向被攻击的边缘服务器发送大量数据包,或无限制地访问被攻击的边缘服务器,耗尽正在运行的边缘服务器资源,阻碍边缘服务器的正常运行。由于在边缘计算架构中,边缘服务器用于实现数据的部分处理以及数据与云服务器的传输,一旦边缘服务器的通信链路造成堵塞或资源被耗尽,将直接造成预期的正常业务无法完成。
4.作为保障网络安全的一种重要手段,入侵检测能够实时监测网络活动,判断设备状态,及时发现设备上所运行程序所遭受到的dos攻击。目前,业内常用的现有方法包括模式识别和机器学习等人工智能方法,以及模型检测和运行时验证等形式化验证方法,能够监视和分析真实程序的执行情况,检查程序的运行轨迹是否符合预期,已逐渐被用于网络入侵检测中。但是,在现有针对边缘计算系统的dos攻击检测方法中,大部分方法利用模式识别或机器学习手段,虽然能够取得较好的检测结果,但需提前训练模型,在基于训练好的模型进行实时检测时需占用较大内存。以模型检测和运行时验证为代表的形式化验证方法利用时序逻辑性质,对网络入侵的行为特征进行识别,无需提前训练模型,但由于需要构造自动机等理论模型,检测效率往往不高。因此,亟需一种新的边缘服务器dos攻击检测方法,以弥补现有技术的缺陷。
5.通过上述分析,现有技术存在的问题及缺陷为:
6.(1)现有针对边缘计算系统的dos攻击检测方法利用模式识别或机器学习手段,需提前训练模型,再基于训练好的模型进行实时检测时需占用较大内存;
7.(2)现有以模型检测和运行时验证为代表的形式化验证方法中,需要构造自动机等理论模型,检测效率不高。
8.解决以上问题及缺陷的难度为:边缘服务器上运行的大体量程序代码包含了复杂
逻辑,生成了大规模的程序数据。但边缘服务器的计算资源受限,增加了准确高效检测dos攻击的难度。如何充分利用边缘服务器的空闲计算与存储资源,提高验证效率,及时发现dos攻击,面临不小挑战。
9.解决以上问题及缺陷的意义为:鉴于边缘计算系统中边缘服务器的重要性和易攻击性,以及面向边缘服务器dos攻击的广泛性和威胁的严重性,构建一个轻量级和高效准确的入侵检测方法,能够有效保障边缘服务器的正常运行状态,使其不断响应终端设备的服务请求并完成期望的逻辑功能。


技术实现要素:

10.针对现有技术存在的问题,本发明提供了一种基于程序运行时验证的边缘服务器dos攻击检测方法。
11.本发明是这样实现的,一种基于运行时验证的边缘服务器dos攻击检测方法,所述一种基于运行时验证的边缘服务器dos攻击检测方法包括以下步骤:
12.步骤一,采用命题投影时序逻辑(pptl)公式形式化描述边缘服务器预期行为,为(后续步骤)运行时验证框架提供边缘服务器预期行为对应的pptl公式;
13.步骤二,采用pptl公式形式化描述边缘服务器dos攻击特征,为(后续步骤)运行时验证框架提供边缘服务器dos攻击特征对应的pptl公式;
14.步骤三,针对pptl公式中涉及的程序变量与程序函数,对边缘服务器运行程序进行插桩,为(后续步骤)运行时验证框架提供必要的程序运行信息;
15.步骤四,针对边缘服务器程序的动态执行轨迹,采用并行运行时验证框架检测程序运行状态,根据检测结果判断边缘服务器是否正在被dos攻击,为边缘服务器提供高效可靠的dos攻击检测方法。
16.进一步,步骤一中,采用pptl公式形式化描述uml顺序图给出的边缘服务器预期行为。
17.进一步,步骤二中,采用pptl公式形式化描述smurf、syn flood和land三种针对tcp/ip协议族的dos攻击行为。
18.进一步,步骤三中,针对pptl公式中涉及的程序变量,当该程序变量作为程序中赋值语句的左值时,在该赋值语句后,对程序进行插桩以获得该程序变量的取值;针对pptl公式涉及的程序函数,当该程序函数被调用时,在该调用语句后,对程序进行插桩以将与该程序函数同名的程序变量赋值为1。
19.进一步,步骤四中,针对边缘服务器程序的动态执行轨迹,将执行轨迹划分为多个切面;使用多个线程同时验证执行轨迹的不同切面,共同完成dos攻击检测。
20.本发明的另一目的在于提供一种应用所述基于运行时验证的边缘服务器dos攻击检测方法的基于运行时验证的边缘服务器dos攻击检测系统,所述基于运行时验证的边缘服务器dos攻击检测系统包括:
21.预期行为描述模块,用于采用pptl公式形式化描述边缘服务器预期行为;
22.攻击特征描述模块,用于采用pptl公式形式化描述边缘服务器dos攻击特征;
23.程序插桩模块,用于针对pptl公式中涉及的程序变量与程序函数,对边缘服务器运行程序进行插桩;
24.攻击检测模块,用于针对边缘服务器程序的动态执行轨迹,采用并行运行时验证框架检测程序运行状态,根据检测结果判断边缘服务器是否正在被dos攻击。
25.本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
26.采用pptl公式形式化描述边缘服务器预期行为;采用pptl公式形式化描述边缘服务器dos攻击特征;针对pptl公式中涉及的程序变量与程序函数,对边缘服务器运行程序进行插桩;针对边缘服务器程序的动态执行轨迹,采用并行运行时验证框架检测程序运行状态,根据检测结果判断边缘服务器是否正在被dos攻击。
27.本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
28.采用pptl公式形式化描述边缘服务器预期行为;采用pptl公式形式化描述边缘服务器dos攻击特征;针对pptl公式中涉及的程序变量与程序函数,对边缘服务器运行程序进行插桩;针对边缘服务器程序的动态执行轨迹,采用并行运行时验证框架检测程序运行状态,根据检测结果判断边缘服务器是否正在被dos攻击。
29.本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述一种基于运行时验证的边缘服务器dos攻击检测系统。
30.本发明的另一目的在于提供一种所述基于运行时验证的边缘服务器dos攻击检测方法在边缘服务器的运行时验证领域的应用。
31.结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的一种基于运行时验证的边缘服务器dos攻击检测方法,采用pptl公式形式化描述边缘服务器预期行为;采用pptl公式形式化描述边缘服务器dos攻击特征;针对pptl公式中涉及的程序变量与程序函数,对边缘服务器运行程序进行插桩;针对边缘服务器程序的动态执行轨迹,采用并行运行时验证框架检测程序运行状态,根据检测结果判断边缘服务器是否正在被dos攻击。本发明将运行时验证方法应用于边缘计算系统中边缘服务器的dos攻击检测,使得边缘服务器的动态执行状态能够得到及时验证,有效地保障了边缘服务器的可靠性和安全性。
32.本发明使用pptl公式形式化描述边缘服务器预期行为和dos攻击特征,并针对pptl公式中涉及的程序变量与程序函数,对边缘服务器运行程序进行插桩,进而对边缘服务器程序的动态执行轨迹,采用并行运行时验证框架检测程序运行状态,根据检测结果判断边缘服务器是否正在被dos攻击。其中,pptl具有完全正则的表达能力,可直接用于描述边缘服务器上不同模块调用的区间相关与周期重复的性质;此外,基于并行运行时验证框架能够充分利用边缘服务器的空闲计算与存储资源,提高验证效率,及时发现攻击。本发明的应用于为边缘服务器的dos攻击检测。
33.由于本发明属于程序运行时验证领域,而运行时验证方法本身又是基于严密的数学推理的,所以,将运行时验证的程序验证方法应用于边缘服务器dos攻击检测,使得程序执行的每一个状态均能够得到可靠的验证,有效保障了边缘服务器安全性。
附图说明
34.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
35.图1是本发明实施例提供的一种基于运行时验证的边缘服务器dos攻击检测方法流程图。
36.图2是本发明实施例提供的一种基于运行时验证的边缘服务器dos攻击检测系统结构框图;
37.图中:1、预期行为描述模块;2、攻击特征描述模块;3、程序插桩模块;4、攻击检测模块。
38.图3是本发明实施例提供的pptl公式对应的lnfg示意图。
39.图4是本发明实施例提供的智能停车系统示意图。
40.图5是本发明实施例提供的使用uml顺序图对智能停车系统预期行为描述的示意图。
41.图6是本发明实施例提供的边缘服务器dos攻击特征描述结构框图。
42.图7是本发明实施例提供的一种基于运行时验证的边缘服务器dos攻击检测方法中线程创建框图。
具体实施方式
43.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
44.针对现有技术存在的问题,本发明提供了一种基于运行时验证的边缘服务器dos攻击检测方法,下面结合附图对本发明作详细的描述。
45.如图1所示,本发明实施例提供的一种基于运行时验证的边缘服务器dos攻击检测方法包括以下步骤:
46.s101,采用pptl公式形式化描述边缘服务器预期行为;
47.s102,采用pptl公式形式化描述边缘服务器dos攻击特征;
48.s103,针对pptl公式中涉及的程序变量与程序函数,对边缘服务器运行程序进行插桩;
49.s104,针对边缘服务器程序的动态执行轨迹,采用并行运行时验证框架检测程序运行状态,根据检测结果判断边缘服务器是否正在被dos攻击。
50.如图2所示,本发明实施例提供的一种基于运行时验证的边缘服务器dos攻击检测系统包括:
51.预期行为描述模块1,用于采用pptl公式形式化描述边缘服务器预期行为;
52.攻击特征描述模块2,用于采用pptl公式形式化描述边缘服务器dos攻击特征;
53.程序插桩模块3,用于针对pptl公式中涉及的程序变量与程序函数,对边缘服务器运行程序进行插桩;
54.攻击检测模块4,用于针对边缘服务器程序的动态执行轨迹,采用并行运行时验证框架检测程序运行状态,根据检测结果判断边缘服务器是否正在被dos攻击。
55.需要说明的是,pptl具有完全正则的表达能力,可直接用于描述边缘服务器上不同模块调用的区间相关与周期重复的性质。pptl公式p归纳定义如下:
[0056][0057]
其中p为原子命题,p1、

、p
m
和p是pptl公式。除了连接符∧以及逻辑公式true和false的定义与经典逻辑相同外,如下是一些pptl派生的时态公式:
[0058][0059][0060]
需要说明的是,任何pptl公式都能够构造出其对应的带标签的范式图(lnfg)。图3给出了pptl公式对应的lnfg,其中p和q为原子命题,图中每个节点代表一个pptl公式;每个边为一个状态公式;额外引入的命题l
k
用于识别一条路径是否为可接收的。例如,有穷路径为可接收路径;对于无穷路径π2=<1,true,(2,true)
ω
>,由于意味着无穷循环的节点拥有相同的标记l1,所以这条路径是不可接收的。
[0061]
下面结合具体实施例对本发明的技术方案作进一步描述。
[0062]
如图4所示的智能停车系统为例,本发明实施例提供的一种基于运行时验证的边缘服务器dos攻击检测方法,包括如下步骤:
[0063]
第一步,采用pptl公式形式化描述边缘服务器预期行为。
[0064]
需要说明的是,作为详细设计阶段的一种重要描述方法,uml顺序图用于描述不同模块间或者同一模块内函数之间的动态交互关系,着重体现函数消息传递及调用的时间顺序。利用pptl公式,能够描述uml顺序图中表达的函数间调用关系。
[0065]
在图5中给出了使用uml顺序图对车辆从进入停车场开始的停车过程中各模块的行为,使用pptl公式q1对其进行形式化描述:
[0066]
q1≡

(identifyenter;vehiclereserved;sendspace;sendstatus;returnstatus;identifyleave;calculatefee;sendfee)

[0067]
需要说明的是,pptl公式q1使用

操作符表示对于不同的车辆进入请求,边缘服务器将不断地重复执行各个函数。总体来看,pptl公式q1的含义为从某一时刻起,边缘服务器将循环执行函数identifyenter、vehiclereserved、sendspace、sendstatus、returnstatus、identifyleave、calculatefee和sendfee。
[0068]
第二步,利用pptl公式描述dos攻击特征。
[0069]
需要说明的是,由于每种dos攻击均具备不同特征,因此可以对不同的dos攻击进行原理分析,得出当攻击发生时,被攻击节点发生的动作序列,并在此基础上建立不同攻击对应的pptl公式。如图6所示,本发明实施例的边缘服务器dos攻击特征描述包括:
[0070]
smurf攻击描述模块1:
[0071]
需要说明的是,pptl公式q2的原子命题send表示被攻击的边缘服务器向目的地址
为该子网的广播地址发送数据包,receive表示被攻击设备接收到从子网中主机发来的回应数据包。pptl公式q2的子公式(

receive)

表示receive行为不断发生,即不断地接收到其他节点返回的数据包。pptl公式q2的含义为存在某个状态,从该状态开始,虽然该设备没有发送数据包,但是却不断能够接收到数据包。
[0072]
syn flood攻击描述模块2:flood攻击描述模块2:
[0073]
需要说明的是,pptl公式q3的原子命题receive.syn、send.synack和receive.ack分别表示被攻击的边缘服务器接收到syn数据包、发送syn

ack回应数据包和接收到ack数据包。pptl公式q3的子公式使用(receive.syn;send.synack)表示接收syn数据包和发送syn

ack数据包的行为先后发生。pptl公式q3的含义为存在某个状态,从该状态开始,边缘服务器接收syn数据包并进而发送syn

ack数据包,但是在之后的所有状态上,都没有接收到ack数据包。
[0074]
land攻击描述模块3:q4≡

(receive.syn
→◇
(send.synack;send.ack)

)。
[0075]
需要说明的是,pptl公式q4的原子命题receive.syn、send.synack和send.ack分别表示被攻击的边缘服务器接收到syn数据包、发送syn

ack回应数据包和发送ack数据包。pptl公式q4的子公式(send.synack;send.ack)

表示发送syn

ack数据包和发送ack的行为不断发生。pptl公式q4的含义为存在某个状态,从该状态开始,边缘服务器接收到syn数据包,在此之后,不断地发送syn

ack数据包和ack数据包。
[0076]
第三步,针对pptl公式中涉及的程序变量与程序函数,对边缘服务器运行程序进行插桩。
[0077]
需要说明的是,针对pptl公式中涉及的程序变量,当该程序变量作为程序中赋值语句的左值时,在该赋值语句后,对程序进行插桩以获得该程序变量的取值。例如,pptl公式中的原子命题p为x=2,其中x为程序变量,则每当程序变量x作为程序中赋值语句的左值时,对程序插桩获得程序变量x的取值。
[0078]
需要说明的是,针对pptl公式涉及的程序函数,当该程序函数被调用时,在该调用语句后,对程序进行插桩以将与该程序函数同名的程序变量赋值为1。例如,pptl公式中的原子命题q为f=1,其中f为程序函数,则每当程序函数f被调用时,在该调用语句后,对程序插桩将与程序函数f同名的程序变量赋值为1。
[0079]
第四步,针对边缘服务器程序的动态执行轨迹,采用并行运行时验证框架检测程序运行状态,根据检测结果判断边缘服务器是否正在被dos攻击。
[0080]
如图7所示,在被监测的边缘服务器中,假设有n 2个线程可用,其中执行线程e用于程序的运行,调度线程s用于调度验证任务和合并验证结果,验证线程v
i
(1≤i≤n)用于验证不同的执行轨迹切面。
[0081]
需要说明的是,在执行线程e运行程序过程中,生成的状态序列首先被调度线程s分为若干切面,其中每个切面包含m个状态,进而调度线程s将这些切面的信息发送给验证线程v
i
(1≤i≤n)完成相应验证任务,最后,不同切面的验证结果被返回给调度线程s,并由其完成验证结果的汇总并得到最终验证结果。本发明实施例提供的并行运行时验证方法包括如下步骤:
[0082]
(1)执行线程e用于运行程序,在此过程中,调度线程s和验证线程v
i
(1≤i≤n)并行运行;
[0083]
(2)每当新生成的m个状态能够组成新的待验证的执行序列切面sg
k
,调度线程s将序偶(k;i)加入到集合l中,以保存sg
k
和验证线程v
i
的关系,其中i=min(i),i是存储目前没有执行验证任务的线程的集合(初始值i={1,2,

,n});
[0084]
(3)调度线程s将切面sg
k
的信息发送给验证线程v
i
,i从集合i中删除,k=k 1;
[0085]
(4)在验证线程v
i
(1≤i≤n)中,一旦其被调用来验证执行序列切面sg
k
,将基于切面sg
k
中每个状态上程序变量的取值,在对应的lnfg g上探索可扩展的路径,并得到切面sg
k
对应于lnfg中可扩展路径的集合a
k
,将(i,a
k
)返回给调度线程s;
[0086]
(5)每当调度线程s从验证线程v
i
得到切面sg
k
的验证结果(k,a
k
)后,(k,a
k
)被加入到map容器中,此map容器的key值为切面的下标,value值为此切面的验证结果;
[0087]
(6)调度线程s通过l=l

{(k;i)}解除切面sg
k
和线程v
i
的关系,将i加入到集合i中;
[0088]
(7)存储在map容器中的结果被合并,如果能找到一条lnfg中从初始节点出发到达ε节点的路径,则一条反例路径被发现,即程序的当前执行路径不满足性质;若基于已有结果,能够断定lnfg中不存在从初始节点出发到达ε节点的路径,则表明程序当前执行路径满足性质;否则,调度线程s将继续等待更多切面的验证结果。
[0089]
为了说明本发明开发出的一种基于运行时验证的边缘服务器dos攻击检测方法的可行性,进一步对实施例的dos攻击检测效果进行了验证。
[0090]
需要说明的是,pptl公式q1被违反表示边缘服务器不能正常提供服务,pptl公式q2公式成立表示检测出dos攻击中的smurf攻击,pptl公式q3公式成立表示检测出dos攻击中的syn flood攻击,pptl公式q4公式成立表示检测出dos攻击中的land攻击。在实验中,使用一台安卓手机作为终端,5台pc机作为边缘服务器,腾讯云提供云端服务。
[0091]
需要说明的是,实验共分为三组,分别使用边缘服务器中的单个、三个和五个验证线程实现运行时验证方法,其中每次验证的执行轨迹切面长度包含1千个程序状态。在每组实验中,将一个恶意节点加入边缘计算网络后,对边缘服务器实施dos攻击中的smurf攻击,为了证明所提方法的有效性并保障验证效率的准确性,均重复攻击10次。表1展示了针对smurf攻击的检测结果。
[0092]
表1针对smurf攻击的检测结果
[0093][0094][0095]
需要说明的是,在表1中,第一列为待验证的pptl公式;第二列表示验证工具给出
的验证结果,即程序是否满足相应pptl公式,q1为
“×”
表明检测出边缘服务器没有正常提供服务,q2为“√”表明检测出攻击类型为smurf攻击,q3为
“×”
表明检测出攻击类型不为syn flood攻击,q4为
“×”
表明检测出攻击类型不为land攻击;第三列至第五列给出了在边缘服务器中,使用不同数量的验证线程时,每验证1千个状态所需要的时间。比较第三列至第五列给出的验证时间,可以发现当使用三个验证线程时,验证效率最高,而当使用五个验证线程时,验证效率反而会降低。总体来看,在使用三个验证线程情况下,当smurf攻击实施7秒内,本发明所提出的基于运行时验证的边缘服务器dos攻击检测方法能够检测出smurf攻击。
[0096]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0097]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
再多了解一些

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

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

相关文献