The invention relates to a detection method, device and storage medium of task execution program, the method includes: obtaining the source code of task execution program in blockchain network, formatting the source code, obtaining the abstract syntax tree ast of intermediate language, extracting and optimizing the node information in AST, transforming it into a detection target file, and then detecting the vulnerability of the target file When a vulnerability is detected in the target file, if the task execution program is in the pending status, it will not be published to the blockchain network temporarily, and the notification information of the detection failure will be output; if it is in the published status, a detection report will be generated, and the alert information and detection report will be sent to the alert server; if the vulnerability is not detected, if the task execution program is in the pending status, it will It is published to the blockchain network. If it is in the published state, the processing logic corresponding to the task execution program is executed. This method improves the security of blockchain network.
【技术实现步骤摘要】
一种任务执行程序的检测方法、装置及存储介质
本专利技术属于计算机
,尤其涉及一种任务执行程序的检测方法、装置及存储介质。
技术介绍
智能合约(SmartContract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。基于安全的考虑,需要对智能合约这类的任务执行程序的源码进行检测。目前主要通过关键字匹配、正则匹配等方法对源码进行检测,上述两种方法主要是根据预设的关键字,对源代码的全文进行关键字匹配。在方法和变量的定位方面,当任务执行程序中存在继承父类或者接口的机制时,单纯依靠源码的关键字定位,无法准确的识别一个任务执行程序所拥有的所有方法和变量信息。因此,对于存在继承父类或接口机制的任务执行程序及逻辑漏洞,上述两种方法的检测效果不好。区块链网络的安全性无法得到保证。
技术实现思路
本专利技术提供一种任务执行程序的检测方法、装置及存储介质,用以解决现有技术中对智能合约类的任务执行程序采用关键字匹配、正则匹配等检测方 ...
【技术保护点】
1.一种任务执行程序的检测方法,应用于计算机设备,其特征在于,所述检测方法包括:/n获取待发布在区块链网络中或已发布在区块链网络中任务执行程序的源代码,将获取的所述源代码进行格式化处理,得到中间语言的抽象语法树;/n提取所述抽象语法树中的各节点的节点信息;/n对提取的所述节点信息根据不同的类型进行优化处理,并将优化处理后的节点信息转化为所述任务执行程序对应的目标文件;/n对所述目标文件进行漏洞检测;/n当检测出所述目标文件存在漏洞时,若所述任务执行程序为待发布的任务执行程序,则暂不将所述任务执行程序发布到区块链网络中,输出检测失败的通知信息;若所述任务执行程序为区块链中已发 ...
【技术特征摘要】
1.一种任务执行程序的检测方法,应用于计算机设备,其特征在于,所述检测方法包括:
获取待发布在区块链网络中或已发布在区块链网络中任务执行程序的源代码,将获取的所述源代码进行格式化处理,得到中间语言的抽象语法树;
提取所述抽象语法树中的各节点的节点信息;
对提取的所述节点信息根据不同的类型进行优化处理,并将优化处理后的节点信息转化为所述任务执行程序对应的目标文件;
对所述目标文件进行漏洞检测;
当检测出所述目标文件存在漏洞时,若所述任务执行程序为待发布的任务执行程序,则暂不将所述任务执行程序发布到区块链网络中,输出检测失败的通知信息;若所述任务执行程序为区块链中已发布的任务执行程序,则生成检测报告,并向预警服务器发送预警信息及所述检测报告;
当未检测出所述目标文件存在漏洞时,若所述任务执行程序为待发布的任务执行程序,则将所述任务执行程序发布到区块链网络中,若所述任务执行程序为区块链中已发布的任务执行程序,则执行与所述任务执行程序对应的处理逻辑。
2.根据权利要求1所述的检测方法,其特征在于,所述提取所述抽象语法树中的各节点的节点信息,包括:
从所述抽象语法树提取各节点的属性、特定类型、对应的码源信息;
从所述抽象语法树中获取各节点之间的连接关系。
3.根据权利要求2所述的检测方法,其特征在于,所述对提取的所述节点信息根据不同的类型进行优化处理,并将优化处理后的节点信息转化为所述任务执行程序对应的目标文件,包括:
对所述抽象语法树中的各节点,基于节点的属性、特定类型及所述连接关系进行合并或关联;
对合并或关联后的的各节点,基于码源信息中继承自父类或实现接口的方法进行冗余删除;
对冗余删除后的各节点,利用各节点之间的引用及被引用的关系生成各节点的调用轨迹;
对各节点进行码源的补充处理,得到具有完整码源的各节点;
利用污点跟踪技术,对各节点进行标记跟踪,并将标记跟踪信息保存至节点信息中;
对所述各节点的节点信息及所述各节点的调用轨迹进行文件格式转换,得到目标文件。
4.根据权利要求1至3任意一项所述的检测方法,其特征在于,所述方法还包括:
当检测出所述目标文件存在漏洞时,生成检测报告,并将所述检测报告及所述任务执行程序发送给复检服务器;
当接收到所述复检服务器返回的复检结果为复检合格时,若所述任务执行程序为待发布的任务执行程序,则将所述任务执行程序发布到区块链网络中,并输出任务执行程序已发布的通知信息;若所述任务执行程序为已发布的任务执行程序,则执行与所述任务执行程序对应的处理逻辑;
当接收到所述复检服务器返回的复检结果为复检不合格时,若所述任务执行程序为待发布的任务执行程序,则暂不将所述任务执行程序发布到区块链网络中,输出检测失败的通知信息;若所述任务执行程序为区块链中已发布的任务执行程序,则生成复检检测报告,并向预警服务器发送预警信息及所述复检检测报告。
5.根据权利要求1至3任意一项所述的检测方法,其特征在于,所述检测方法还包括:
当检测出所述目标文件存在漏洞时,生成检测报告,及为所述任务执行程序生成复检任务执行程序,并将所述目标文件、所述检测报告及所述复检任务执行程序发布到区块链网络中的各终端进行复检,将所述检测报告及所述任务执行程序发送给复检服务器,在预设时间内,接收所述区块链网络中的各终端及复检服务器返回的复检结果;
根据所述区块链网络中的各终端及复检服务器返回的复检结果,确定复检是否合格;
若复检合格,当任务...
【专利技术属性】
技术研发人员:张驰,周永超,厉鹏飞,
申请(专利权)人:平安科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。