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

程序冗余执行的表决装置、方法、电子设备及存储介质与流程

2022-02-22 04:58:14 来源:中国专利 TAG:


1.本发明涉及网络安全技术领域,更具体的说,涉及一种程序冗余执行的表决装置、方法、电子设备及存储介质。


背景技术:

2.拟态防御是我国科研团队提出的针对未知漏洞后门的主动防御思想,核心是动态异构冗余(dynamic heterogeneous redundancy,dhr)构造。各个执行体之间功能等价,但受到攻击后的行为表现各异,表决器通过对比在线执行体集中各执行体之间的行为是否一致来判断是否遭到攻击。一旦表决器判定为遭到攻击,则调用动态选择算法从离线的异构构件集合中挑选合适的构件对在线执行体进行替换,该过程称为拟态变换。目前,输入代理与表决器中间的部分称为拟态界,拟态界的dhr构造和表决机制是拟态防御系统内生地具备安全能力的根源。程序冗余执行是结合了拟态思想来保护软件的一种手段。程序异构冗余执行框架采用动态异构冗余的方式执行程序。在动态异构冗余的基础上,结合表决机制,能够有效发现攻击行为,然后阻断攻击。
3.但是,程序异构冗余执行有较大的性能损害,尤其在表决方面,对每次的程序输出都会进行表决,因此表决的次数过于频繁,容易带来不必要的系统性能损失。


技术实现要素:

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.图1为本发明实施例公开的一种程序冗余执行的表决装置的结构示意图;
38.图2为本发明实施例公开的另一种程序冗余执行的表决装置的结构示意图;
39.图3为本发明实施例公开的一种程序冗余执行的表决方法流程图;
40.图4为本发明实施例公开的另一种程序冗余执行的表决方法流程图;
41.图5为本发明实施例公开的一种电子设备的结构示意图。
具体实施方式
42.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.本发明实施例公开了一种程序冗余执行的表决装置、方法、电子设备及存储介质,动态反馈模块获取程序冗余执行时,该程序在本次表决未执行前的上下文信息,统计模块基于上下文信息,以统计的本次表决以前的所有表决涉及到的表决相关信息作为本次表决参考,得到本次表决是否执行的判定结果。对于每次表决而言,本发明都会将本次表决以前的所有表决涉及到的表决相关信息作为本次表决参考,以确定本次表决是否执行,而本次表决时所涉及到的表决相关信息,也会作为下次表决的参考,这种通用的表决机制可以使得程序运行时间越长,表决机制越智能,表决点越精准,从而有效减少了每次程度输出都会进行表决情况的出现,进而减少了表决次数和系统性能损失。
44.参见图1,本发明实施例公开的一种程序冗余执行的表决装置的结构示意图,该表决装置包括:动态反馈模块101以及与动态反馈模块101连接的统计模块102。
45.其中:
46.动态反馈模块101,用于获取程序冗余执行时,所述程序在本次表决未执行前的上下文信息。
47.其中,程序在本次表决未执行前的上下文信息可以包括:程序表决地址、程序表决长度、程序执行时所在的函数以及程序表决执行结果。
48.统计模块102,用于基于所述上下文信息,以统计的本次表决以前的所有表决涉及到的表决相关信息作为本次表决参考,确定本次表决是否执行的判定结果。
49.需要说明的是,在实际应用中,每执行完一次表决,统计模块102都会对该表决涉及到的表决相关信息进行统计,表决相关信息比如,上下文信息、是否执行表决、表决执行结果等。因此,根据本次表决未执行前的上下文信息,根据统计的所有表决涉及到的表决相
关信息,即可确定本次表决是否执行。
50.综上可知,本发明公开了一种程序冗余执行的表决装置,动态反馈模块101获取程序冗余执行时,该程序在本次表决未执行前的上下文信息,统计模块102基于上下文信息,以统计的本次表决以前的所有表决涉及到的表决相关信息作为本次表决参考,得到本次表决是否执行的判定结果。对于每次表决而言,本发明都会将本次表决以前的所有表决涉及到的表决相关信息作为本次表决参考,以确定本次表决是否执行,而本次表决时所涉及到的表决相关信息,也会作为下次表决的参考,这种通用的表决机制可以使得程序运行时间越长,表决机制越智能,表决点越精准,从而有效减少了每次程度输出都会进行表决情况的出现,进而减少了表决次数和系统性能损失。
51.为进一步优化上述实施例,参见图2,本发明实施例公开的另一种程序冗余执行的表决装置的结构示意图,在图1所示实施例的基础上,表决装置还可以包括:裁决模块103,裁决模块103的输入端与统计模块102的输出端连接,裁决模块103的输出端与动态反馈模块101的输入端连接。
52.裁决模块103,用于在程序检测到表决点时,裁决所述表决点对应的程序表决地址在无需表决地址队列或需要表决地址队列,以确定所述表决点是否进行表决。
53.本发明中,统计模块102还用于:
54.根据表决地址标识判断所述上下文信息中的目标程序表决地址属于无需表决地址队列或需要表决地址队列;
55.当确定所述目标程序表决地址属于无需表决地址队列时,将所述程序表决地址放入所述无需表决地址队列;
56.当确定所述目标程序表决地址属于需要表决地址队列时,将所述程序表决地址放入所述需要表决地址队列。
57.基于此,裁决模块103可以根据表决点对应的程序表决地址在无需表决地址队列还是需要表决地址队列,即可确定该表决点是否进行表决,从而实现为不同的表决点提供不同的表决策略。
58.进一步地,当有至少两个程序时,可以选则对两个程序的输出是否直接合路,以减少表决次数。
59.因此,裁决模块103还可以用于:
60.根据至少两个程序对应的程序表决地址在统计模块102中所在的表决地址队列,确定对所述至少两个程序的输出是直接合路或先表决再合路。
61.具体的,以两个程序为例进行说明,当两个程序对应的程序表决地址在同一个表决队列时,比如,均在无需表决地址队列或均在需要表决地址队列,则两个程序的输出可以直接合路。反之,当两个程序对应的程序表决地址不在同一个表决队列时,比如,一个程序表决地址在无需表决地址队列,另一个程序表决地址在需要表决地址队列,此时,两个程序的输出不能直接合路,只能是两个程序的输出先各自表决,然后在表决完成之后再合路。
62.为进一步优化上述实施例,表决装置还可以包括:编译模块104;
63.编译模块104的输出端与动态反馈模块101的输入端连接,编译模块104用于将回调函数写入原始程序,对所述原始程序进行插桩得到程序。
64.也就是说,动态反馈模块101中涉及到的程序为将回调函数写入原始程序得到的
程序,该程序运行后,动态反馈模块101获取程序冗余执行时,程序在本次表决未执行前的上下文信息。
65.其中,将回调函数写入原始程序的过程可参见现有成熟方案,此处不再赘述。
66.与上述表决装置实施例相对应,本发明还公开了一种程序冗余执行的表决方法。
67.参见图3,本发明实施例公开的一种程序冗余执行的表决方法流程图,该方法包括:
68.步骤s101、获取程序冗余执行时,所述程序在本次表决未执行前的上下文信息;
69.其中,程序在本次表决未执行前的上下文信息可以包括:程序表决地址、程序表决长度、程序执行时所在的函数以及程序表决执行结果。
70.本实施例中的程序为:将回调函数写入原始程序,对所述原始程序进行插桩后得到。
71.步骤s102、基于所述上下文信息,以统计的本次表决以前的所有表决涉及到的表决相关信息作为本次表决参考,确定本次表决是否执行的判定结果。
72.需要说明的是,在实际应用中,每执行完一次表决,统计模块102都会对该表决涉及到的表决相关信息进行统计,表决相关信息比如,上下文信息、是否执行表决、表决执行结果等。因此,根据本次表决未执行前的上下文信息,根据统计的所有表决涉及到的表决相关信息,即可确定本次表决是否执行。
73.综上可知,本发明公开了一种程序冗余执行的表决方法,获取程序冗余执行时,该程序在本次表决未执行前的上下文信息,基于上下文信息,以统计的本次表决以前的所有表决涉及到的表决相关信息作为本次表决参考,得到本次表决是否执行的判定结果。对于每次表决而言,本发明都会将本次表决以前的所有表决涉及到的表决相关信息作为本次表决参考,以确定本次表决是否执行,而本次表决时所涉及到的表决相关信息,也会作为下次表决的参考,这种通用的表决机制可以使得程序运行时间越长,表决机制越智能,表决点越精准,从而有效减少了每次程度输出都会进行表决情况的出现,进而减少了表决次数和系统性能损失。
74.为进一步优化上述实施例,参见图4,本发明实施例公开的另一种程序冗余执行的表决方法流程图,在图3所示实施例的基础上,在步骤s102之后,表决方法还可以包括:
75.步骤s103、根据表决地址标识判断所述上下文信息中的目标程序表决地址属于无需表决地址队列或需要表决地址队列;
76.步骤s104、当确定目标程序表决地址属于无需表决地址队列时,将程序表决地址放入所述无需表决地址队列;
77.步骤s105、当确定目标程序表决地址属于需要表决地址队列时,将程序表决地址放入需要表决地址队列。
78.基于此,表决方法还可以包括:
79.在程序检测到表决点时,裁决表决点对应的程序表决地址在无需表决地址队列或需要表决地址队列,以确定所述表决点是否进行表决。
80.也就是说,可以根据表决点对应的程序表决地址在无需表决地址队列还是需要表决地址队列,即可确定该表决点是否进行表决,从而实现为不同的表决点提供不同的表决策略。
81.进一步地,当有至少两个程序时,可以选则对两个程序的输出是否直接合路,以减少表决次数。
82.因此,表决方法还可以包括:
83.根据至少两个程序对应的程序表决地址所在的表决地址队列,确定对所述至少两个程序的输出是直接合路或先表决再合路。
84.具体的,以两个程序为例进行说明,当两个程序对应的程序表决地址在同一个表决队列时,比如,均在无需表决地址队列或均在需要表决地址队列,则两个程序的输出可以直接合路。反之,当两个程序对应的程序表决地址不在同一个表决队列时,比如,一个程序表决地址在无需表决地址队列,另一个程序表决地址在需要表决地址队列,此时,两个程序的输出不能直接合路,只能是两个程序的输出先各自表决,然后在表决完成之后再合路。
85.与上述实施例相对应,如图5所示,本发明还提供了一种电子设备,电子设备可以包括:处理器1和存储器2;
86.其中,处理器1和存储器2通过通信总线3完成相互间的通信;
87.处理器1,用于执行至少一个指令;
88.存储器2,用于存储至少一个指令;
89.处理器1可能是一个中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
90.存储器2可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
91.其中,处理器执行至少一个指令实现如下功能:
92.获取程序冗余执行时,所述程序在本次表决未执行前的上下文信息;
93.基于所述上下文信息,以统计的本次表决以前的所有表决涉及到的表决相关信息作为本次表决参考,得到本次表决是否执行的判定结果。
94.综上可知,本发明公开了一种电子设备,获取程序冗余执行时,该程序在本次表决未执行前的上下文信息,基于上下文信息,以统计的本次表决以前的所有表决涉及到的表决相关信息作为本次表决参考,得到本次表决是否执行的判定结果。对于每次表决而言,本发明都会将本次表决以前的所有表决涉及到的表决相关信息作为本次表决参考,以确定本次表决是否执行,而本次表决时所涉及到的表决相关信息,也会作为下次表决的参考,这种通用的表决机制可以使得程序运行时间越长,表决机制越智能,表决点越精准,从而有效减少了每次程度输出都会进行表决情况的出现,进而减少了表决次数和系统性能损失。
95.本发明还公开了一种计算机可读存储介质,计算机可读存储介质存储至少一个指令,所述至少一个指令被处理器执行时实现如下功能:
96.获取程序冗余执行时,所述程序在本次表决未执行前的上下文信息;
97.基于所述上下文信息,以统计的本次表决以前的所有表决涉及到的表决相关信息作为本次表决参考,得到本次表决是否执行的判定结果。
98.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意
在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
99.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
100.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

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

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

相关文献