[发明专利]一种控制多线程程序冗余执行的方法和装置在审
申请号: | 202111564357.9 | 申请日: | 2021-12-20 |
公开(公告)号: | CN114238023A | 公开(公告)日: | 2022-03-25 |
发明(设计)人: | 韩首魁;潘传幸;张高举;李昂 | 申请(专利权)人: | 郑州昂视信息科技有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F9/50;G06F9/54 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 鲁丽美 |
地址: | 450001 河南省郑州市高新技术产*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 控制 多线程 程序 冗余 执行 方法 装置 | ||
本申请公开一种控制多线程程序冗余执行的方法和装置,该方法及装置通过监控主变体的线程级系统调用,并有针对性的对监控到的需在从变体进行同步的主变体系统调用进行记录处理,并将主变体的系统调用记录重放至从变体端,使从变体的各线程执行与主变体一致的系统调用序列,以此避免拟态化软件进程中不同变体的多线程乱序执行问题,相应可避免表决时产生假阳错误,另外,本申请由于有针对性的仅记录并重放了部分系统调用(即需在从变体同步的系统调用),如文件读写,文件替换等调用,从而最终只需对部分系统调用进行表决,监视器无需介入由变体执行的每个系统调用,从而进一步提升了拟态化软件内核的安全性。
技术领域
本申请属于计算机技术领域,尤其涉及一种控制多线程程序冗余执行的方法和装置。
背景技术
拟态化软件是指功能等价、结构不同的软件个体,拟态化软件可以表现为多个进程或者多个线程,拟态化软件执行架构使用软件多样化技术构建功能等价的变体集合,运行时对从集合中选择的每个变体都赋予相同的输入,再通过监视器监视每个变体的输出行为并检测它们之间的分歧。拟态化软件执行架构是多样化技术解决安全问题的延续和补充,只要多样化的个体在一定程度上满足攻击面不大范围“相交”就可以作为变体的“源”加入执行框架。拟态化软件执行并不追求用“加密”的方法来保护程序中某些可以被攻击者利用的信息,只要经过多样化处理过的程序变体在漏洞利用方面相互之间出现了空间或时间上的差异就可。
申请人发现,目前的拟态化软件内核设计存在安全问题,且拟态化软件进程中不同变体的多线程乱序执行,会导致表决时产生假阳错误。
发明内容
有鉴于此,本申请提供一种控制多线程程序冗余执行的方法和装置,用于至少部分的解决现有拟态化软件执行方式存在技术问题。
具体技术方案如下:
一种控制多线程程序冗余执行的方法,包括:
监控主变体的线程级系统调用;
确定监控到的线程级系统调用是否为需在从变体进行同步的系统调用;其中,所述主变体和所述从变体分别包括相同数量的多个线程;
若是,对所述线程级系统调用进行记录处理,以更新对所述主变体的系统调用记录;所述系统调用记录包括:所述主变体的每个线程对应的按时间线发生的需同步至从变体的各系统调用构成的系统调用序列;
将所述系统调用记录重放至从变体端,以使从变体的各线程执行与主变体的对应线程一致的系统调用序列。
可选的,所述监控主变体的线程级系统调用,包括:
通过拦截所述主变体的线程级系统调用指令,对所述主变体的线程级系统调用进行监控。
可选的,在确定监控到的线程级系统调用是否为需在从变体进行同步的系统调用之后,还包括:
若否,停止对所述线程级系统调用的拦截,以使所述主变体的程序继续运行。
可选的,所述确定监控到的线程级系统调用是否为需在从变体进行同步的系统调用,包括:
确定所述线程级系统调用是否为会影响多线程冗余执行结果导致执行结果发生变化的系统调用;
若是,确定所述线程级系统调用为需在从变体进行同步的系统调用;
若否,确定所述线程级系统调用为无需在从变体进行同步的系统调用。
可选的,在主变体或从变体执行过程中,主变体或从变体的前后系统调用采用互斥锁使用共享资源;且对于需要同步的系统调用,一个变体同时只能有一个线程执行系统调用。
可选的,所述方法采用判决模块拦截所述主变体的线程级系统调用,并判定拦截的线程级系统调用是否为需在从变体进行同步的系统调用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州昂视信息科技有限公司,未经郑州昂视信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111564357.9/2.html,转载请声明来源钻瓜专利网。