软件所在并发漏洞检测方面取得进展

近期,中国科学院软件研究所蔡彦团队提出了并发程序中并发漏洞检测的新方法,该团队首次基于松弛可交换事件来检测并发漏洞。该团队提出的松弛可交换事件克服了传统检测算法的不足,即使目标事件之前存在复杂的同步约束,也可以通过松弛可交换事件来判断是否可以交换。相关成果以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数据集和一个真实大规模的程序上的实验结果表明,提出的方法可以检测到更多的并发漏洞。
  在这里插入图片描述

————————————————
版权声明:本文为CSDN博主「hdpai2018」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hdpai2018/article/details/103630011

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值