一种智能合约安全漏洞检测方法、装置、终端及存储介质制造方法及图纸

技术编号:19745920 阅读:22 留言:0更新日期:2018-12-12 04:51
本发明专利技术实施例公开了一种智能合约安全漏洞检测方法、装置、终端及存储介质,其中方法包括:根据字节码文件构建灰度图矩阵;将灰度图矩阵变换为灰度图;提取灰度图的特征,并将灰度图的特征输入预设的安全漏洞识别模型,以检测字节码文件中是否存在安全漏洞。实施本申请,可以检测智能合约中存在的安全漏洞,同时可以提高检测安全漏洞的检测精度。

【技术实现步骤摘要】
一种智能合约安全漏洞检测方法、装置、终端及存储介质
本专利技术涉及计算机安全
,尤其涉及一种智能合约安全漏洞检测方法、装置、终端及存储介质。
技术介绍
区块链技术,又称为分布式账本技术,是一种去中心信任化、集体维护分布式账本的技术方案,其实质是由多个节点集体参与通过多方存储、多方计算的方式来实现数据不可篡改、计算结果可信的分布式数据系统。区块链并不是一种单一的技术,而是多种技术融合的结果,利用区块链技术维护一个可靠的、难以篡改的账本记录,可以降低信任的风险,并能有效的降低众参与方协作的维护成本。区块链技术的不断发展与完善,使得智能合约成为可能。智能合约,其实质是一段由一台计算机或计算机网络按照签署合约的权利和义务自动执行的代码。由于智能合约与区块链相结合,使得合约的条款一旦设定,就没有第三方可以篡改。近年来,随着区块链技术和智能合约的迅速发展,使得其在多个领域均有其广泛的推广应用。然而,在实际推广应用中可以发现,智能合约的安全问题成为关注的焦点。当智能合约存在安全漏洞时,容易受到黑客的攻击,如最大的TheDAO事件。具体来说,该事件是指黑客利用智能合约存在的安全漏洞从以太池中拿走1.5亿美金,究其原因是由于智能合约代码的安全漏洞造成的损失。那么,在这种情况下,如何检测智能合约中存在的安全漏洞是亟需解决的技术问题。
技术实现思路
本专利技术实施例提供一种智能合约安全漏洞检测方法、装置、终端及存储介质,可以检测智能合约中存在的安全漏洞,同时可以提高检测安全漏洞的检测精度。第一方面,本专利技术实施例提供了一种智能合约安全漏洞方法,该方法包括:步骤S101、根据字节码文件构建灰度图矩阵;其中,所述字节码文件包括S行代码,所述S行代码中的第i行代码包括函数名称Di对应的字节码和函数变量Vi对应的字节码;所述灰度图矩阵的行数为S,所述灰度图矩阵S行中的第i行包括第一参数Ai和第二参数Bi;所述第一参数Ai的长度为M,所述M为8的整数倍,所述第二参数Bi的长度为所述N为所述字节码文件S行代码中每一行代码中的函数变量各自对应的字节码长度的最大值;所述第一参数Ai包括所述函数名称Di对应的字节码,所述第二参数Bi包括所述函数变量Vi对应的字节码;所述i为大于等于1且小于等于S的正整数;步骤S102、将所述灰度图矩阵变换为灰度图;步骤S103、提取所述灰度图的特征,并将所述灰度图的特征输入预设的安全漏洞识别模型,以检测所述字节码文件中是否存在安全漏洞。通过本专利技术实施例,可以检测智能合约中存在的安全漏洞。与此同时,终端按照字节码文件中的代码顺序来构建灰度图矩阵,使得灰度图矩阵的每一行依次与字节码文件中的每一行一一对应。然后,终端基于灰度图矩阵的各行依次确定灰度图中的像素点,保证了终端确定的灰度图的像素点是基于字节码文件中各行独立的代码,避免了终端基于相邻的不同行代码确定灰度图的像素点,从而实现了终端确定的灰度图中的像素点与字节码文件中的代码相一致,避免了顺序出错的问题,从而提高了终端确定灰度图中的像素点的准确度,进而可以提高终端检测安全漏洞的精度。可选的,所述根据字节码文件构建灰度图矩阵之前,还包括:将智能合约进行编码,生成所述字节码文件;其中,所述智能合约包括S行代码,所述S行代码中的第i行代码包括函数名称Di和函数变量Vi。可选的,所述将所述灰度图矩阵变换为灰度图包括:将所述灰度图矩阵S行中的第i行按照的方式进行划分,得到个像素点单元;将所述个像素点单元进行进制转换得到个像素点;根据所述个像素点生成所述灰度图中的第i行,所述i的取值从1到S,其中,所述Q用于表征所述灰度图矩阵中每一行的长度,所述可选的,所述提取所述灰度图的特征,并将所述灰度图的特征输入预设的安全漏洞识别模型,以检测所述智能合约中是否存在安全漏洞包括:利用灰度共生矩阵GLCM提取所述灰度图的6维特征,并将所述6维特征输入所述预设的安全漏洞识别模型,以检测所述字节码文件中是否存在所述安全漏洞;其中,所述灰度共生矩阵用于表征所述灰度图中灰度的空间特性。通过本专利技术实施例,可以利用灰度共生矩阵提取灰度图的特征,并将提取到的特征输入预设的安全漏洞识别模型,从而可以确定是否存在安全漏洞,同时可以提高检测安全漏洞的检测精度。可选的,所述M为16。第二方面,本专利技术实施例提供了一种终端,该终端具有实现上述第一方面中终端行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一种可能的实现方式中,该终端的结构中包括处理器和存储器,存储器用于存储支持该终端执行上述方法的程序,处理器被配置为用于执行存储器中存储的程序。该终端还可以包括通信接口,用于该终端与其他设备或通信网络通信。第三方面,本专利技术实施例提供了一种智能合约安全漏洞检测装置,包括:构建单元,用于根据字节码文件构建灰度图矩阵;其中,所述字节码文件包括S行代码,所述S行代码中的第i行代码包括函数名称Di对应的字节码和函数变量Vi对应的字节码;所述灰度图矩阵的行数为S,所述灰度图矩阵S行中的第i行包括第一参数Ai和第二参数Bi;所述第一参数Ai的长度为M,所述M为8的整数倍,所述第二参数Bi的长度为所述N为所述字节码文件S行代码中每一行代码中的函数变量各自对应的字节码长度的最大值;所述第一参数Ai包括所述函数名称Di对应的字节码,所述第二参数Bi包括所述函数变量Vi对应的字节码;所述i为大于等于1且小于等于S的正整数;变换单元,用于将所述灰度图矩阵变换为灰度图;处理单元,用于提取所述灰度图的特征,并将所述灰度图的特征输入预设的安全漏洞识别模型,以检测所述字节码文件中是否存在安全漏洞。可选的,所述智能合约安全漏洞检测装置还包括:编码单元,用于在所述构建单元根据字节码文件构建灰度图矩阵之前,将智能合约进行编码,生成所述字节码文件;其中,所述智能合约包括S行代码,所述S行代码中的第i行代码包括函数名称Di和函数变量Vi。可选的,所述变换单元包括:划分单元,用于将所述灰度图矩阵S行中的第i行按照的方式进行划分,得到个像素点单元;进制转换单元,用于将所述个像素点单元进行进制转换得到个像素;生成单元,用于根据所述个像素点生成所述灰度图中的第i行,所述i的取值从1到S,其中,所述Q用于表征所述灰度图矩阵中每一行的长度,所述可选的,所述处理单元具体用于利用灰度共生矩阵GLCM提取所述灰度图的6维特征,并将所述6维特征输入所述预设的安全漏洞识别模型,以检测所述字节码文件中是否存在所述安全漏洞;其中,所述灰度共生矩阵用于表征所述灰度图中灰度的空间特性。可选的,所述M为16。第四方面,本专利技术实施例提供了一种计算机可读存储介质,用于储存为上述终端所用的计算机软件指令,其包含用于执行上述第一方面为终端所设计的程序。第五方面,本专利技术实施例提供了一种计算机程序,所述计算机程序包括上述终端所用的程序指令,所述程序指令当被终端的处理器执行时使所述处理器执行上述第一方面为终端所设计的程序。通过实施本专利技术实施例,基于字节码的灰度图形的模型检测方法可以更加全面地发现各种变形的漏洞,检测结果更加全面。与此同时,终端按照字节码文件中的代码顺序构建灰度图矩阵,使得灰度图矩阵的每一行依次与字节码文件中的每本文档来自技高网...

【技术保护点】
1.一种智能合约安全漏洞检测方法,其特征在于,包括:步骤S101、根据字节码文件构建灰度图矩阵;其中,所述字节码文件包括S行代码,所述S行代码中的第i行代码包括函数名称Di对应的字节码和函数变量Vi对应的字节码;所述灰度图矩阵的行数为S,所述灰度图矩阵S行中的第i行包括第一参数Ai和第二参数Bi;所述第一参数Ai的长度为M,所述M为8的整数倍,所述第二参数Bi的长度为

【技术特征摘要】
1.一种智能合约安全漏洞检测方法,其特征在于,包括:步骤S101、根据字节码文件构建灰度图矩阵;其中,所述字节码文件包括S行代码,所述S行代码中的第i行代码包括函数名称Di对应的字节码和函数变量Vi对应的字节码;所述灰度图矩阵的行数为S,所述灰度图矩阵S行中的第i行包括第一参数Ai和第二参数Bi;所述第一参数Ai的长度为M,所述M为8的整数倍,所述第二参数Bi的长度为所述N为所述字节码文件S行代码中每一行代码中的函数变量各自对应的字节码长度的最大值;所述第一参数Ai包括所述函数名称Di对应的字节码,所述第二参数Bi包括所述函数变量Vi对应的字节码;所述i为大于等于1且小于等于S的正整数;步骤S102、将所述灰度图矩阵变换为灰度图;步骤S103、提取所述灰度图的特征,并将所述灰度图的特征输入预设的安全漏洞识别模型,以检测所述字节码文件中是否存在安全漏洞。2.根据权利要求1所述的方法,其特征在于,所述根据字节码文件构建灰度图矩阵之前,还包括:将智能合约进行编码,生成所述字节码文件;其中,所述智能合约包括S行代码,所述S行代码中的第i行代码包括函数名称Di和函数变量Vi。3.根据权利要求1所述的方法,其特征在于,所述将所述灰度图矩阵变换为灰度图包括:将所述灰度图矩阵S行中的第i行按照的方式进行划分,得到个像素点单元;将所述个像素点单元进行进制转换得到个像素点;根据所述个像素点生成所述灰度图中的第i行,所述i的取值从1到S,其中,所述Q用于表征所述灰度图矩阵中每一行的长度,所述4.根据权利要求1所述的方法,其特征在于,所述提取所述灰度图的特征,并将所述灰度图的特征输入预设的安全漏洞识别模型,以检测所述智能合约中是否存在安全漏洞包括:利用灰度共生矩阵GLCM提取所述灰度图的6维特征,并将所述6维特征输入所述预设的安全漏洞识别模型,以检测所述字节码文件中是否存在所述安全漏洞;其中,所述灰度共生矩阵用于表征所述灰度图中灰度的空间特性。5.根据权利要求1-4任一项所述的方法,其特征在于,所述M为16。6.一种智能合约...

【专利技术属性】
技术研发人员:杨文玉
申请(专利权)人:北京金山安全软件有限公司
类型:发明
国别省市:北京,11

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

1