利索能及
我要发布
收藏
专利号: 2019106948439
申请人: 平安科技(深圳)有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种任务执行程序的检测方法,应用于计算机设备,其特征在于,所述检测方法包括:获取待发布在区块链网络中或已发布在区块链网络中任务执行程序的源代码,将获取的所述源代码进行格式化处理,得到中间语言的抽象语法树;

提取所述抽象语法树中的各节点的节点信息;

对提取的所述节点信息根据不同的类型进行优化处理,并将优化处理后的节点信息转化为所述任务执行程序对应的目标文件;所述优化处理包括:同类信息合并、冗余信息删除、形成调用轨迹、源码补充、污点跟踪;

对所述目标文件进行漏洞检测;

当检测出所述目标文件存在漏洞时,若所述任务执行程序为待发布的任务执行程序,则暂不将所述任务执行程序发布到区块链网络中,输出检测失败的通知信息;若所述任务执行程序为区块链中已发布的任务执行程序,则生成检测报告,并向预警服务器发送预警信息及所述检测报告;

当未检测出所述目标文件存在漏洞时,若所述任务执行程序为待发布的任务执行程序,则将所述任务执行程序发布到区块链网络中,若所述任务执行程序为区块链中已发布的任务执行程序,则执行与所述任务执行程序对应的处理逻辑。

2.根据权利要求1所述的检测方法,其特征在于,所述提取所述抽象语法树中的各节点的节点信息,包括:从所述抽象语法树提取各节点的属性、特定类型、对应的码源信息;

从所述抽象语法树中获取各节点之间的连接关系。

3.根据权利要求2所述的检测方法,其特征在于,所述对提取的所述节点信息根据不同的类型进行优化处理,并将优化处理后的节点信息转化为所述任务执行程序对应的目标文件,包括:对所述抽象语法树中的各节点,基于节点的属性、特定类型及所述连接关系进行合并或关联;

对合并或关联后的各节点,基于码源信息中继承自父类或实现接口的方法进行冗余删除;

对冗余删除后的各节点,利用各节点之间的引用及被引用的关系生成各节点的调用轨迹;

对各节点进行码源的补充处理,得到具有完整码源的各节点;

利用污点跟踪技术,对各节点进行标记跟踪,并将标记跟踪信息保存至节点信息中;

对所述各节点的节点信息及所述各节点的调用轨迹进行文件格式转换,得到目标文件。

4.根据权利要求1至3任意一项所述的检测方法,其特征在于,所述方法还包括:当检测出所述目标文件存在漏洞时,生成检测报告,并将所述检测报告及所述任务执行程序发送给复检服务器;

当接收到所述复检服务器返回的复检结果为复检合格时,若所述任务执行程序为待发布的任务执行程序,则将所述任务执行程序发布到区块链网络中,并输出任务执行程序已发布的通知信息;若所述任务执行程序为已发布的任务执行程序,则执行与所述任务执行程序对应的处理逻辑;

当接收到所述复检服务器返回的复检结果为复检不合格时,若所述任务执行程序为待发布的任务执行程序,则暂不将所述任务执行程序发布到区块链网络中,输出检测失败的通知信息;若所述任务执行程序为区块链中已发布的任务执行程序,则生成复检检测报告,并向预警服务器发送预警信息及所述复检检测报告。

5.根据权利要求1至3任意一项所述的检测方法,其特征在于,所述检测方法还包括:当检测出所述目标文件存在漏洞时,生成检测报告,及为所述任务执行程序生成复检任务执行程序,并将所述目标文件、所述检测报告及所述复检任务执行程序发布到区块链网络中的各终端进行复检,将所述检测报告及所述任务执行程序发送给复检服务器,在预设时间内,接收所述区块链网络中的各终端及复检服务器返回的复检结果;

根据所述区块链网络中的各终端及复检服务器返回的复检结果,确定复检是否合格;

若复检合格,当任务执行程序为待发布的任务执行程序时,则将所述任务执行程序发布到区块链网络中,并输出发布结果;当任务执行程序为已发布的任务执行程序时,则执行与所述任务执行程序对应的处理逻辑;

若复检不合格,当任务执行程序为待发布的任务执行程序时,则暂不将所述任务执行程序发布到区块链网络中,同时输出检测失败的通知信息;当任务执行程序为已发布的任务执行程序时,则生成组合复检检测报告,并向预警服务器发送预警信息及所述组合复检检测报告。

6.根据权利要求5所述的检测方法,其特征在于,所述根据所述区块链网络中的各终端及复检服务器返回的复检结果,确定复检是否合格,包括:若所述复检服务器和所述区块链网络中的终端均返回复检结果,则根据接收到的多份复检结果确定复检合格率;若复检合格率大于或等于预设的合格率,则判定复检合格;若复检合格率小于预设的合格率,则判定复检不合格;

若区块链网络中的终端或复检服务器中的任一方返回复检结果,则根据接收到的复检结果,确定复检是否合格,并向另一方发送终止复检的通知信息;

若未收到任一方返回复检结果,则判定复检不合格。

7.根据权利要求6所述的检测方法,其特征在于,所述根据接收到的多份复检结果确定复检合格率,包括:确定所述复检服务器及所述区块链网络中各终端返回的复检结果中复检合格的第一数目,及复检结果的第一总数;

计算所述复检合格的第一数目与所述第一总数的第一商值,将所述第一商值作为复检合格率。

8.根据权利要求6所述的检测方法,其特征在于,所述若区块链网络中的终端或复检服务器中的任一方返回复检结果,则根据接收到的复检结果,确定复检是否合格,包括:当接收到复检服务器返回的复检结果时,若所述服务器返回的复检结果为合格,则确定复检结果合格;若所述服务器返回的复检结果为不合格,则确定复检不合格;

当接收到区块链中各终端返回的复检结果时,确定所述区块链中各终端返回的复检合格的第二数目及返回的复检结果的第二总数,计算所述复检合格的第二数目与所述复检结果的第二总数的第二商值,将所述第二商值作为复检合格率,当复检合格率大于或等于所述预设合格率,则判定复检合格;若复检合格率小于所述预设合格率,则判定复检不合格。

9.一种任务执行程序检测装置,其特征在于,所述检测装置包括:

获取模块,用于获取待发布在区块链网络中或已发布在区块链网络中任务执行程序的源代码,并将获取的所述源代码进行格式化处理,得到中间语言的抽象语法树;

提取模块,用于提取所述抽象语法树中的各节点的节点信息;

优化模块,用于对提取的所述节点信息根据不同的类型进行优化处理,并将优化处理后的节点信息转化为所述任务执行程序对应的目标文件;所述优化处理包括:同类信息合并、冗余信息删除、形成调用轨迹、源码补充、污点跟踪;

漏洞检测模块,用于对所述目标文件进行漏洞检测;

执行模块,用于当检测出所述目标文件存在漏洞时,若所述任务执行程序为待发布的任务执行程序,则暂不将所述任务执行程序发布到区块链网络中,输出检测失败的通知信息;若所述任务执行程序为区块链中已发布的任务执行程序,则生成检测报告,并向预警服务器发送预警信息及所述检测报告;当未检测出所述目标文件存在漏洞时,若所述任务执行程序为待发布的任务执行程序,则将所述任务执行程序发布到区块链网络中,若所述任务执行程序为区块链中已发布的任务执行程序,则执行与所述任务执行程序对应的处理逻辑。

10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至8任意一项所述的任务执行检测方法中的各个步骤。