[发明专利]并行程序共享数据类漏洞的检测方法及系统有效
申请号: | 201310659010.1 | 申请日: | 2013-12-06 |
公开(公告)号: | CN103679038A | 公开(公告)日: | 2014-03-26 |
发明(设计)人: | 武永卫;陈康;郑纬民;章明星 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F11/36 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 张大威 |
地址: | 100084 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并行 程序 共享 数据 漏洞 检测 方法 系统 | ||
技术领域
本发明涉及软件工程技术领域,尤其涉及一种并行程序共享数据类漏洞的检测方法及系统。
背景技术
一般来说,关于数据竞争类型的漏洞的研究可以分为两大部分,基于锁的方法(lock-set approach)(如Eraser)和基于时间序列的方法(happened-before)(如SigRace)。虽然有关数据竞争类型的漏洞已经得到较为充分的研究,但即使完美解决了所有数据竞争类漏洞也是不够的。原因在于:1)很大一部分的数据竞争漏洞并不会造成什么实质性的后果。即,它们是良性的;2)不存在数据竞争的原子性违反类漏洞并不少见;3)绝大多数的顺序性违例类漏洞并不能通过简单地将它们包入关键区之中得到解决。
由于单一地检测数据竞争类漏洞的工具的局限性,关于如何解决原子性违例类漏洞的研究成了一个热门的话题并成为许多研究工作的重心。因而,只有少数关于顺序性违例类漏洞的研究。而且在这些少量的研究中基本上都只能处理自己定义的一个顺序性违例类漏洞的子集。举例来说,虽然ConMem中的Con-NULL和DefUse的Local/Remote(LR)Invariants各自处理了一部分,但是“写-写”顺序性违例类漏洞都不能得到很好的处理。
此外,漏洞的防治与漏洞的检测是一类相互补充的方法。这一方法仍存在以下问题:1)即使经过了相当充分的测试,仍然不能保证所有的漏洞都已经被找到;2)对一个已报告的漏洞的误解可能导致由修复用的补丁引入新的漏洞;3)从漏洞被发现到被修复之间的时间间隔太长。虽然已有大量的改进的方法,如PSet,LifeTxes、Pacman、Rcdc和Bulksc。但是它们都需要复杂的硬件支持,而且大部分无法处理顺序性违例类漏洞。
关于大量的以块为单位的执行代码,如内存事务(Transaction Memory)这一相对成熟的技术,已经有很多相关的方法被提出。这些方法或硬件被用于降低多线程程序的不确定性,从而减少漏洞的发现几率和调试的难度。但是,尽管使用了新型的编程模型,也并没有杜绝漏洞的发生。更重要的是,由于组成一个顺序性违例的两条指令中的一条比另一条要更加靠近分叉点在基于块的执行方式中是不存在的,因此基于块的执行方式反而提高了顺序性违例类漏洞的发生几率。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的第一个目的在于提出一种并行程序共享数据类漏洞的检测方法。该方法可以自动地检测以及防止程序中潜在的共享数据类漏洞。
本发明的第二个目的在于提出一种并行程序共享数据类漏洞的检测系统。
为了实现上述目的,本发明第一方面实施例的并行程序共享数据类漏洞的检测方法包括以下步骤:为软件不变量中的各条指令的动态实例定义瞬时Fetter集,其中,软件不变量是指程序中执行顺序预先固定的指令集合;获取所述瞬时Fetter集的包含集和义务集;将所述包含集和义务集进行剪枝以获取剪枝后的结果,并将所述剪枝后的结果存储在不变量数据库中;利用检测组件检测各个所述瞬时Fetter集是否出现不满足对应的所述包含集和义务集的第一瞬时Fetter集,如果是,则判断所述第一瞬时Fetter集包含漏洞,检测组件生成违例报告;暂停当前运行的线程以阻止检测到的所述漏洞的运行。
根据本发明实施例的并行程序共享数据类漏洞的检测方法,可以自动地检测以及防止程序中潜在的共享数据类漏洞,无需开发者手工注释,且应用范围广。
在一些示例中,所述瞬时Fetter集具体是指:在所有先于所述指令执行的指令中,与所述指令相邻且与所述指令访问了同一内存的指令集合。
在一些示例中,所述包含集是指所述指令的所有动态实例的所述瞬时Fetter集的并集;所述义务集是指所述指令的所有动态实例的所述瞬时Fetter集的交集。
在一些示例中,所述暂停当前运行的线程以阻止检测到的所述漏洞的运行,当暂停时间达到预设时间阈值或暂停次数达到预设次数阈值时,暂停状态解除。
在一些示例中,还包括:判断触发集是否包含于所述义务集,如果否,则暂停当前运行的线程,并生成违例报告,其中,所述触发集是所述义务集的镜像集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310659010.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:信息处理方法、装置及电子设备
- 下一篇:软件行为监控方法和终端
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置