加快打造原始创新策源地,加快突破关键核心技术,努力抢占科技制高点,为把我国建设成为世界科技强国作出新的更大的贡献。

——习近平总书记在致中国科学院建院70周年贺信中作出的“两加快一努力”重要指示要求

面向世界科技前沿、面向经济主战场、面向国家重大需求、面向人民生命健康,率先实现科学技术跨越发展,率先建成国家创新人才高地,率先建成国家高水平科技智库,率先建设国际一流科研机构。

——中国科学院办院方针

首页 > 科研进展

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

2019-12-09 软件研究所
【字体:

语音播报

  近期,中国科学院软件研究所蔡彦团队提出了并发程序中并发漏洞检测的新方法,该团队首次基于松弛可交换事件来检测并发漏洞。该团队提出的松弛可交换事件克服了传统检测算法的不足,即使目标事件之前存在复杂的同步约束,也可以通过松弛可交换事件来判断是否可以交换。相关成果以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. 松弛可交换事件的解释

打印 责任编辑:叶瑞优

扫一扫在手机打开当前页

© 1996 - 中国科学院 版权所有 京ICP备05002857号-1 京公网安备110402500047号 网站标识码bm48000002

地址:北京市西城区三里河路52号 邮编:100864

电话: 86 10 68597114(总机) 86 10 68597289(总值班室)

编辑部邮箱:casweb@cashq.ac.cn

  • © 1996 - 中国科学院 版权所有 京ICP备05002857号-1 京公网安备110402500047号 网站标识码bm48000002

    地址:北京市西城区三里河路52号 邮编:100864

    电话: 86 10 68597114(总机) 86 10 68597289(总值班室)

    编辑部邮箱:casweb@cashq.ac.cn

  • © 1996 - 中国科学院 版权所有
    京ICP备05002857号-1
    京公网安备110402500047号
    网站标识码bm48000002

    地址:北京市西城区三里河路52号 邮编:100864
    电话:86 10 68597114(总机)
       86 10 68597289(总值班室)
    编辑部邮箱:casweb@cashq.ac.cn