[发明专利]基于符号执行的智能合约漏洞检测方法、装置及相关设备在审
申请号: | 202211247665.3 | 申请日: | 2022-10-12 |
公开(公告)号: | CN115455436A | 公开(公告)日: | 2022-12-09 |
发明(设计)人: | 郑子彬;陈焕泽;郑沛霖 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F16/27 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 李伟贤 |
地址: | 510275 *** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 符号 执行 智能 合约 漏洞 检测 方法 装置 相关 设备 | ||
1.一种基于符号执行的智能合约漏洞检测方法,其特征在于,包括:
每当执行完一个操作码,将此时的状态数据保存到预设的共享内存中;
基于所述状态数据,判断是否需要执行路径分叉;
若是,获取第一探索分支和第二探索分支,并利用原先的进程执行第一探索分支,利用一个新的进程执行第二探索分支;
当所有进程执行完后,基于保存于所述共享内存的所有状态数据,构建全局变量;
基于所述全局变量,生成漏洞检测结果。
2.根据权利要求1所述的方法,其特征在于,所述状态数据包括下一个操作码、约束集和当前的合约状态;基于所述状态数据,判断是否需要执行路径分叉的过程,包括:
判断所述下一个操作码是否包含在预设的分叉操作码集合内;
若是,基于所述下一个操作码和所述合约状态,确定第一分支路径和第二分支路径;
基于所述约束集判断所述第一分支路径和所述第二分支路径是否均可达;
若是,判断当前的进程数是否小于进程阈值,所述进程阈值用于表示在预设的计算设备中能够运行的约束求解进程的最大值;
若是,确定需要执行路径分叉。
3.根据权利要求2所述的方法,其特征在于,所述进程阈值的获取过程,包括:
基于SMT求解器在所述计算设备的求解性能以及性能丢失值,确定所述进程阈值;其中,所述求解性能表示为:
所述性能丢失值表示为:
其中,NUMSMT为每一进程的约束数量,Δt为各进程执行完预设的约束求解任务所花费的时间,SPSPP1为仅执行一个进程时的求解性能。
4.根据权利要求3所述的方法,其特征在于,基于SMT求解器在所述计算设备的求解性能以及性能丢失值,确定所述进程阈值的过程,包括:
创建N个进程,每一进程用于执行一个预设的约束求解任务,N为自然数;
获取所述N个进程执行完各约束求解任务所花费的时间Δt1;
基于所述约束求解任务的约束数量NUMSMT和所述时间Δt1,计算得到同时运行所述N个进程时的第一性能丢失值;
创建N+1个进程,每一进程用于执行一个约束求解任务;
获取所述N+1个进程执行完各约束求解任务所花费的时间Δt2;
基于所述约束求解任务的约束数量NUMSMT和所述时间Δt2,计算得到同时运行所述N+1个进程时的第二性能丢失值;
将N确定为所述进程阈值,其中,所述第一性能丢失值大于或等于预设的丢失阈值,所述第二性能丢失值小于所述丢失阈值。
5.根据权利要求1所述的方法,其特征在于,基于保存于所述共享内存的所有状态数据,构建全局变量的过程,包括:
基于状态数据的数据类型,将每一条状态数据合并到具有相同数据类型的全局变量中。
6.根据权利要求5所述的方法,其特征在于,所述数据类型包括可累计整数、不可合并列表、可合并列表和/或可合并字典;
基于状态数据的数据类型,将每一条状态数据合并到具有相同数据类型的全局变量中的过程,包括:
若所述状态数据的数据类型为可累计整数,将所述状态数据累加到全局变量的目标变量中,所述目标变量的数据类型与所述状态数据的数据类型相同,且所述目标变量的变量名与所述状态数据的变量名相同;
若所述状态数据的数据类型为不可合并列表,将所述状态数据插入至全局变量的目标变量中,所述目标变量的数据类型与所述状态数据的数据类型相同,且所述目标变量的变量名与所述状态数据的变量名相同;
若所述状态数据的数据类型为可合并列表,且全局变量中不存在与所述状态数据的数据类型相同、且变量名与状态数据的变量名相同的变量,则将所述状态数据插入至全局变量中;
若所述状态数据的数据类型为可合并字典,将所述状态数据更新至全局变量的目标变量中,所述目标变量的数据类型与所述状态数据的数据类型相同,且所述目标变量的变量名与所述状态数据的变量名相同。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211247665.3/1.html,转载请声明来源钻瓜专利网。