当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于约束求解的Rust程序并发漏洞检测方法技术

技术编号:42458082 阅读:19 留言:0更新日期:2024-08-21 12:47
本发明专利技术公开了一种基于约束求解的Rust程序并发漏洞检测方法,方法通过构建跨实例函数调用图,并对同步原语进行过滤筛选,以深度优先的方式进行路径计算,缓解了路径爆炸的产生,可更好地应用于大型Rust程序检测当中。同时依据Rust独特的通道机制进行建模,设立约束条件,借助SMT求解器进行约束求解,检测可能存在的并发漏洞,进一步提高Rust并发安全。区别于传统的Rust并发漏洞检测方法,现有的方法均只能检测由于读写锁或者互斥锁引发的漏洞,本发明专利技术提出的方法是首个针对Rust程序中由通道操作引起的并发漏洞检测方法,且该方法中核心的约束求解算法可以更好地解决Rust程序中非线性通道操作引发的问题,更适用于实际Rust应用程序。

【技术实现步骤摘要】

本专利技术涉及计算机程序分析领域,具体地说,一种基于约束求解的rust程序并发漏洞检测方法。


技术介绍

1、在已有的对rust并发漏洞的实际研究中发现,许多基于rust语言的大型软件中存在相当多的并发漏洞,其中消息传递同步原语在例如servo、tikv这些大型项目中使用占比非常高,也存在着许多消息传递类型的并发漏洞。然而当前的rust并发漏洞静态检测工具只能检测部分同步原语触发的漏洞,并不包含消息传递同步原语通道(channel)的检测。

2、rust在标准库里提供了消息通道std::sync::mpsc,其中mpsc是multipleproducer,single consumer的缩写,代表了该通道支持多个发送者,但是只支持唯一的接收者。同时标准库提供的mpsc通道分为同步和异步两种类型,默认的是异步通道,即无论接收者是否正在接收消息,消息发送者在发送消息时都不会阻塞。同时rust语言自带的drop特征还实现了通道的自动关闭:所有发送者被drop或者所有接收者被drop后,通道将自动关闭,并且该实现在编译期完成,无运行期性能损耗。

<本文档来自技高网...

【技术保护点】

1.一种基于约束求解的Rust程序并发漏洞检测方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于约束求解的Rust程序并发漏洞检测方法,其特征在于,所述的步骤1)包含以下子步骤:

3.根据权利要求2所述的基于约束求解的Rust程序并发漏洞检测方法,其特征在于,所需定位的涉及通道操作同步语句具体信息包括:所属实例、所属基本块、生成位置、转移位置。

4.根据权利要求1或2或3所述的基于约束求解的Rust程序并发漏洞检测方法,其特征在于,所述的步骤2)包含以下子步骤:

5.根据权利要求4所述的基于约束求解的Rust程序并发漏洞检测方法...

【技术特征摘要】

1.一种基于约束求解的rust程序并发漏洞检测方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于约束求解的rust程序并发漏洞检测方法,其特征在于,所述的步骤1)包含以下子步骤:

3.根据权利要求2所述的基于约束求解的rust程序并发漏洞检测方法,其特征在于,所需定位的涉及通道操作同步语句具体信息包括:所属实例、所属基本块、生成位置、转移位置。

4.根据权利要求1或2或3所述的基...

【专利技术属性】
技术研发人员:常瑞刘润芝王任翔
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1