软件地点并发马脚检测方面取得停顿

文章来源:  |  发布时间:2019-12-05  |  【打印】 【封闭

  

  近期,中国迷信院软件研究所蔡彦团队提出了并发法式榜样中并发马脚检测的新办法,该团队初次基于松弛可交换事宜来检测并发马脚。该团队提出的松弛可交换事宜克服了传统检测算法的缺乏,即使目标事宜之前存在复杂的同步束缚,也能够经过过程松弛可交换事宜来断定能否可以交换。相干成果以“Detecting Concurrency Memory Corruption Vulnerabilities”为题,发表于软件工程范畴会议27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE’19)。

  并发马脚常常被进击者应用和进击,给软件的安然带来严重威逼,然则并发马脚的检测非常艰苦。一种直不雅的检测办法是遍历一切的线程交错来检测并发马脚,然则会带来交错状况空间爆炸的成绩。今朝一些研究者用数据竞争的检测办法来检测并发马脚,然则由于数据竞争和并发马脚其实不等价,这类办法实际应用中其实不是很有效。一些最新的基于束缚求解的任务也存在较多误报成绩。
  该团队提出的办法今朝重要针对与事宜产生序相干的三类并发马脚(释放后重用UAF、空指针解援用NPD和两重释放DF)停止检测。例如,在图1中有两个线程,线程t1对指针p解援用,线程t2释放指针p。假设对指针p的释放产生在对其解援用之前,就会产生并发马脚UAF。在对这三类马脚的研究中,该团队发明:检测并发马脚的关键就是断定目标事宜之间的次序能否可以交换。该团队经过过程引入第三个事宜(图2中的eany)来重新定义了给定的两个事宜(e1和e2)的可交换性。该定义直不雅懂得以下:给定两个间隔较近的事宜,假设它们和第三个事宜满足必定的关系,那么这两个事宜将有较高的概率可被交换。基于此,该团队提出了松弛可交换事宜的概念。基于松弛可交换事宜,团队进一步提出了针对上述三类并发马脚的检测算法并完成了照应的原型对象。在一些CVE数据集和一个真实大年夜范围的法式榜样上的实验成果注解,提出的办法可以检测到更多的并发马脚。

1. 由事宜产生序激起的并发马脚

2. 松弛可交换事宜的解释