CN115375468A - 智能合约的安全监控方法、装置、计算机设备和存储介质 - Google Patents
智能合约的安全监控方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115375468A CN115375468A CN202110550512.5A CN202110550512A CN115375468A CN 115375468 A CN115375468 A CN 115375468A CN 202110550512 A CN202110550512 A CN 202110550512A CN 115375468 A CN115375468 A CN 115375468A
- Authority
- CN
- China
- Prior art keywords
- contract
- intelligent contract
- node
- intelligent
- security
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Abstract
本申请涉及一种智能合约的安全监控方法、装置、计算机设备和存储介质。所述方法包括:获取待检测的智能合约并将智能合约上传至合约监管节点;通过合约监管节点调用检测函数集对智能合约进行检测,得到检测结果;当检测结果满足预设条件时,将智能合约部署到联盟链通道上并进行上线;采集智能合约被联盟链中节点调用的合约运行日志;通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据。采用本方法能够对智能合约进行安全分析,提高系统安全性。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种智能合约的安全监控方法、装置、计算机设备和存储介质。
背景技术
在区块链系统中,合约层的智能合约作为直接与分布式账本交互的模块,直接影响账本数据的可信与安全。一旦合约代码出现漏洞或缺陷问题,攻击者对账本数据进行篡改操作,导致数据异常。因此,目前合约的安全性非常重要。
然而,目前智能合约一旦出现问题就会导致区块链系统的安全性低,区块链底层网络通信采用P2P网络(对等网络),智能合约存在难以监管的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够对智能合约进行安全分析,提高系统安全性的智能合约的安全监控方法、装置、计算机设备和存储介质。
一种智能合约的安全监控方法,所述方法包括:
获取待检测的智能合约并将所述智能合约上传至合约监管节点;
通过合约监管节点调用检测函数集对所述智能合约进行检测,得到检测结果;
当所述检测结果满足预设条件时,将所述智能合约部署到联盟链通道上并进行上线;
采集所述智能合约被所述联盟链中节点调用的合约运行日志;
通过所述合约监管节点对所述运行日志文件进行安全分析,得到所述智能合约的安全数据。
在其中一个实施例中,所述方法还包括:
采集所述联盟链中节点的节点运行日志;
通过所述合约监管节点对所述合约运行日志和所述节点运行日志进行分析,得到所述智能合约的安全数据。
在其中一个实施例中,所述通过所述合约监管节点对所述合约运行日志和所述节点运行日志进行分析,得到所述智能合约的安全数据,包括:
通过所述合约监管节点对所述合约运行日志中的调用频次,以及所述节点运行日志中正常工作时间段的工作状态进行分析,得到所述智能合约的错误调用频次和背书节点的工作状态;
当所述错误调用频次不在预设调用频次范围内或所述工作状态为故障状态时,确定所述智能合约存在异常调用。
在其中一个实施例中,所述通过合约监管节点调用检测函数集对所述智能合约进行检测,得到检测结果,包括:
通过合约监管节点调用检测函数集对所述智能合约进行是否存在变量覆盖、整数溢出、未校验返回值、任意地址写入、拒绝服务、数据冻结、未初始化变量、影子变量中至少一种检测,得到检测结果。
在其中一个实施例中,所述方法还包括:
将所述合约运行日志和所述节点运行日志存储在分布式存储数据库中,并对所述合约运行日志和所述节点日志进行可视化显示。
在其中一个实施例中,所述方法还包括:
将所述联盟链中节点调用的所述智能合约发送至所述合约监管节点;
通过合约监管节点调用检测函数集对所述智能合约进行检测,得到检测结果;
当所述检测结果满足预设条件时,通过所述合约监管节点对所述运行日志文件进行安全分析,得到所述智能合约的安全数据。
一种智能合约的安全监控装置,所述装置包括:
获取模块,用于获取待检测的智能合约并将所述智能合约上传至合约监管节点;
检测模块,用于通过合约监管节点调用检测函数集对所述智能合约进行检测,得到检测结果;
部署模块,用于当所述检测结果满足预设条件时,将所述智能合约部署到联盟链通道上并进行上线;
采集模块,用于采集所述智能合约被所述联盟链中节点调用的合约运行日志;
分析模块,用于通过所述合约监管节点对所述运行日志文件进行安全分析,得到所述智能合约的安全数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待检测的智能合约并将所述智能合约上传至合约监管节点;
通过合约监管节点调用检测函数集对所述智能合约进行检测,得到检测结果;所述检测函数集是通过联盟链中合约监控接口获取的;
当所述检测结果满足预设条件时,将所述智能合约部署到联盟链通道上并进行上线;
采集所述智能合约被所述联盟链中节点调用的合约运行日志;
通过所述合约监管节点对所述运行日志文件进行安全分析,得到所述智能合约的安全数据。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待检测的智能合约并将所述智能合约上传至合约监管节点;
通过合约监管节点调用检测函数集对所述智能合约进行检测,得到检测结果;
当所述检测结果满足预设条件时,将所述智能合约部署到联盟链通道上并进行上线;
采集所述智能合约被所述联盟链中节点调用的合约运行日志;
通过所述合约监管节点对所述运行日志文件进行安全分析,得到所述智能合约的安全数据。
上述智能合约的安全监控方法、装置、计算机设备和存储介质,通过从联盟链中合约监控接口获取检测函数集,通过合约监管节点调用检测函数集对待检测的智能合约进行语言检测,得到检测结果;当检测结果满足预设条件时,将智能合约部署到联盟链通道上并进行上线;采集智能合约被联盟链中节点调用的合约运行日志;通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据;即在部署上线前对智能合约进行语言检测,当检测通过后进行部署上线,对智能合约上线的操作进行检测,确定智能合约调用的安全性,进而提高了系统的安全性。
附图说明
图1为一个实施例中智能合约的安全监控方法的应用环境图;
图2为一个实施例中智能合约的安全监控方法的流程示意图;
图3为一个实施例中基于EFK采集合约运行日志的框架示意图;
图4为另一个实施例中智能合约的安全监控方法的流程示意图;
图5为一个实施例中合约插件服务框架图;
图6为一个实施例中智能合约的安全监控装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的智能合约的安全监控方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与区块链104进行通信。获取终端送的待检测的智能合约,并将智能合约上传至区块链的合约监管节点;通过合约监管节点调用检测函数集对智能合约进行检测,得到检测结果;当检测结果满足预设条件时,将智能合约部署到联盟链通道上并进行上线;采集智能合约被联盟链中节点调用的合约运行日志;通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,区块链104可以用独立的服务器或者是多个服务器组成的服务器集群来实现,即多个服务器可组成为一区块链,而服务器为区块链上的节点。
在一个实施例中,如图2所示,提供了一种智能合约的安全监控方法,本实施例以该方法应用于区块链进行举例说明,本实施例中,该方法包括以下步骤:
步骤202,获取待检测的智能合约并将智能合约上传至合约监管节点。
其中,合约监管节点用于检测智能合约开发阶段的开发语言层面的检测以及智能合约在区块链中的调用情况(例如,是否存在恶意调用)。
步骤204,通过合约监管节点调用检测函数集对智能合约进行检测,得到检测结果。
其中,检测函数集是通过合约监控接口获取的;检测函数集中包括智能合约开发语言的语义检测函数和漏洞检测函数等,语义检测函数用于检测智能合约的语法分析,是否满足开发语言的语法规则;漏洞检测函数用于检测智能函数是否存在变量覆盖、整数溢出、未校验返回值、任意地址写入、拒绝服务、资产冻结、未初始化变量、影子变量等漏洞。
具体地,用户终端开发阶段的智能合约上传至区块链的合约监管节点,通过合约监管节点通过联盟链的插件服务层中的集成测试接口调用检测函数集,对智能合约进行语义分析和漏洞分析,获取智能合约开发阶段的检测结果。
步骤206,当检测结果满足预设条件时,将智能合约部署到联盟链通道上并进行上线。
其中,预设条件是指开发阶段的智能合约不存在语义问题以及安全漏洞。
具体地,通过合约监管节点调用检测函数集对待检测的智能合约进行语义分析和安全漏洞检测,当检测到智能合约不存在语义问题以及安全漏洞时,通过背书节点对智能合约进行背书操作,获取背书结果并对背书结果进行验证,当验证通过时,将智能合约部署到联盟链指定的通道上。
步骤208,采集智能合约被联盟链中节点调用的合约运行日志。
其中,合约运行日志包括智能合约上线后所有操作的运行日志,包括智能合约的被调用节点的节点标识、调用时间戳以及智能合约的调用次数等数据。合约运行日志是通过部署在插件服务层的日志处理组件(例如,EFK,ELasticsearch负责日志分析和存储,FileBeat负责日志收集,Kibana负责界面展示),如图3所示,为一个实施例中,基于EFK采集合约运行日志的框架示意图,通过预先配置好日志采集路径采集运行日志,运行日志包括合约运行日志(例如,Fabric.log)和事务交易日志(例如,Quorum.log)等;由Filebeat将采集的日志托运到kafka中,通过kafka将采集的日志文件分别发生至分布式应用程序协调服务Zookpeeper进行存储,以及发送至ES集群进行持久化存储中,用于作为Kibana可视化搜索的数据源。
具体地,通过预先配置好日志的日志采集路径和采集设备的设备标识,启动采集设备,通过日志采集路径以文件或容器的方式采集智能合约的合约运行日志,得到智能合约的合约运行日志。
步骤210,通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据。
具体地,通过合约监管节点对运行日志文件进行安全分析,得到用户对智能合约操作的安全数据,根据安全数据可以确定智能合约是否存在异常调用,当存在异常调用时生成提示信息,并终止联盟链应用层的应用;例如,通过合约监管节点对合约运行日志中的调用频次进行分析,得到错误调用频次;当错误调用频次不在预设调用频次时,确定智能合约存在异常调用。
上述智能合约的安全监控方法中,通过从联盟链中合约监控接口获取检测函数集,通过合约监管节点调用检测函数集对待检测的智能合约进行语言检测,得到检测结果;当检测结果满足预设条件时,将智能合约部署到联盟链通道上并进行上线;采集智能合约被联盟链中节点调用的合约运行日志;通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据;即在部署上线前对智能合约进行语言检测,当检测通过后进行部署上线,对智能合约上线的操作进行检测,确定智能合约调用的安全性,进而提高了系统的安全性。
在另一个实施例中,如图4所示,提供了一种智能合约的安全监控方法,本实施例以该方法应用于区块链进行举例说明,本实施例中,该方法包括以下步骤:
步骤402,获取待检测的智能合约并将智能合约上传至合约监管节点。
步骤404,通过合约监管节点调用检测函数集对智能合约进行检测,得到检测结果。
其中,检测函数集是通过联盟链中合约监控接口获取的,监控接口为接口层的集成测试接口。
步骤406,当检测结果满足预设条件时,将智能合约部署到联盟链通道上并进行上线。
步骤408,采集智能合约被联盟链中节点调用的合约运行日志和联盟链中节点的节点运行日志。
步骤410,通过合约监管节点对运行日志文件和节点运行日志进行安全分析,得到智能合约的安全数据。
具体地,当用户终端将智能合约上传至合约监管节点,通过合约监管节点调用插件服务层中的检测函数集对智能合约进行语义检测和漏洞分析,当检测结果满足预设条件时,通过预先配置的日志采集路径采集合约运行日志和背书节点的节点运行日志,对采集合约运行日志和背书节点的节点运行日志进行安全分析,确定智能合约的安全数据。
如图5所示,为一个实施例中,区块链的智能合约的安全监控相关的合约插件服务框架图,包括合约层、插件服务层和账本层,其中,合约层支持开发智能合约,以及从外部服务器获取智能合约;插件服务层包括集成测试单元、安全分析单元、监管审计单元和运行记录单元,集成测试单元提供集成接口,调用安全分析单元中的检测函数集、运行记录单元用于采集智能合约的合约运行日志以及节点运行日志;监管审计单元用于通过集成接口调用安全分析单元中的检测函数集,对智能合约的语义以及漏洞进行检测以及对采集的智能合约的合约运行日志以及节点运行日志进行安全分析;账本层中包括Frabric和Quorum等。
可选地,在一个实施例中,通过合约监管节点对合约运行日志中的调用频次,以及节点运行日志中正常工作时间段的工作状态进行分析,得到智能合约的错误调用频次和背书节点的工作状态;当错误调用频次不在预设调用频次范围内或背书节点的工作状态为故障状态无法进行调用时,确定智能合约存在异常调用。
其中,调用频次不在预设调用频次范围内是指智能合约在正常时间段内,智能合约被频繁调用,例如,在5s时间内,智能合约A被频繁调用的错误次数为10次,不在预设调用频次范围2-3次内,则认为智能合约A可能存在恶意调用。节点可以是背书节点,即在正常工作时间段,检测到智能合约A的背书节点主动宕机不能进行调用时,则确定智能合约存在异常调用,可以确定智能合约A存在恶意调用。
具体地,通过合约监管节点对合约运行日志中的调用频次,以及节点运行日志中正常工作时间段的工作状态进行分析,可以准确确定智能合约是否存在异常调用,提高安全检测的准确性和可靠性。
可选地,在一个实施例中,将合约运行日志和节点运行日志存储在分布式存储数据库中,并对合约运行日志和节点日志进行可视化显示,可直观显示合约运行日志和节点运行日志的情况,便于信息的获取。
可选地,在一个实施例中,将联盟链中节点调用的智能合约发送至合约监管节点;通过合约监管节点调用检测函数集对智能合约进行检测,得到检测结果;当检测结果满足预设条件时,通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据。
具体地,当智能合约在联盟链通道上部署上线后,联盟链通道上的其他联盟成员通过P2P网络获取智能合约,通过合约监管节点调用检测函数集对待检测的智能合约进行语义分析和安全漏洞检测,当检测到智能合约不存在语义问题以及安全漏洞时,通过背书节点对智能合约进行背书操作,获取背书结果并对背书结果进行验证,确定智能合约的安全情况,降低智能合约的风险,提高了区块链的安全性。
上述智能合约的安全监控方法中,通过合约监管节点从联盟链中合约监控接口获取检测函数集,通过调用检测函数集对待检测的智能合约进行语言检测,得到检测结果;当检测结果满足预设条件时,将智能合约部署到联盟链通道上并进行上线;采集智能合约被联盟链中节点调用的合约运行日志和节点运行日志;通过合约监管节点对运行日志文件和节点运行日志进行安全分析,得到智能合约的安全数据;即在部署上线前对智能合约进行语言检测,当检测通过后进行部署上线,对智能合约上线的操作进行检测,确定智能合约调用的安全性,进而提高了系统的安全性。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种智能合约的安全监控装置,包括:获取模块602、检测模块604、部署模块606、采集模块608和分析模块610,其中:
获取模块602,用于获取待检测的智能合约并将智能合约上传至合约监管节点。
检测模块604,用于通过合约监管节点调用检测函数集对智能合约进行检测,得到检测结果。
部署模块606,用于当检测结果满足预设条件时,将智能合约部署到联盟链通道上并进行上线。
采集模块608,用于采集智能合约被联盟链中节点调用的合约运行日志。
分析模块610,用于通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据。
上述智能合约的安全监控装置中,通过合约监管节点从联盟链中合约监控接口获取检测函数集,通过调用检测函数集对待检测的智能合约进行语言检测,得到检测结果;当检测结果满足预设条件时,将智能合约部署到联盟链通道上并进行上线;采集智能合约被联盟链中节点调用的合约运行日志;通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据;即在部署上线前对智能合约进行语言检测,当检测通过后进行部署上线,对智能合约上线的操作进行检测,确定智能合约调用的安全性,进而提高了系统的安全性。
在另一个实施例中,提供了一种智能合约的安全监控装置,除包括获取模块602、检测模块604、部署模块606、采集模块608和分析模块610之外,还包括:采集模块、确定模块、存储模块和发送模块,其中:
采集模块,用于采集联盟链中节点的节点运行日志。
在一个实施例中,分析模块610还用于通过合约监管节点对合约运行日志和节点运行日志进行分析,得到智能合约的安全数据。
在一个实施例中,分析模块610还用于通过合约监管节点对合约运行日志中的调用频次,以及节点运行日志中正常工作时间段的工作状态进行分析,得到智能合约的错误调用频次和背书节点的工作状态。
确定模块,用于当错误调用频次不在预设调用频次范围内或工作状态为故障状态时,确定智能合约存在异常调用。
在一个实施例中,检测模块604还用于通过合约监管节点调用检测函数集对智能合约进行是否存在变量覆盖、整数溢出、未校验返回值、任意地址写入、拒绝服务、数据冻结、未初始化变量、影子变量中至少一种检测,得到检测结果。
存储模块,用于将合约运行日志和节点运行日志存储在分布式存储数据库中,并对合约运行日志和节点日志进行可视化显示。
发送模块,用于将联盟链中节点调用的智能合约发送至合约监管节点。
在一个实施例中,检测模块604还用于通过合约监管节点调用检测函数集对智能合约进行检测,得到检测结果。
在一个实施例中,分析模块610还用于当检测结果满足预设条件时,通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据。
在一个实施例中,通过合约监管节点从联盟链中合约监控接口获取检测函数集,通过调用检测函数集对待检测的智能合约进行语言检测,得到检测结果;当检测结果满足预设条件时,将智能合约部署到联盟链通道上并进行上线;采集智能合约被联盟链中节点调用的合约运行日志和节点运行日志;通过合约监管节点对运行日志文件和节点运行日志进行安全分析,得到智能合约的安全数据;即在部署上线前对智能合约进行语言检测,当检测通过后进行部署上线,对智能合约上线的操作进行检测,确定智能合约调用的安全性,进而提高了系统的安全性。
将联盟链中其他参与成员对应节点调用的智能合约发送至合约监管节点;通过合约监管节点调用检测函数集对智能合约进行检测,得到检测结果;当检测结果满足预设条件时,通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据,参与联盟的成员均可以通过合约审查接口对合约进行安全分析,降低系统安全风险。
关于智能合约的安全监控装置的具体限定可以参见上文中对于智能合约的安全监控方法的限定,在此不再赘述。上述智能合约的安全监控装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种智能合约的安全监控方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取待检测的智能合约并将智能合约上传至合约监管节点;
通过合约监管节点调用检测函数集对智能合约进行检测,得到检测结果;
当检测结果满足预设条件时,将智能合约部署到联盟链通道上并进行上线;
采集智能合约被联盟链中节点调用的合约运行日志;
通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
采集联盟链中节点的节点运行日志;
通过合约监管节点对合约运行日志和节点运行日志进行分析,得到智能合约的安全数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
通过合约监管节点对合约运行日志中的调用频次,以及节点运行日志中正常工作时间段的工作状态进行分析,得到智能合约的错误调用频次和背书节点的工作状态;
当错误调用频次不在预设调用频次范围内或工作状态为故障状态时,确定智能合约存在异常调用。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
通过合约监管节点调用检测函数集对智能合约进行是否存在变量覆盖、整数溢出、未校验返回值、任意地址写入、拒绝服务、数据冻结、未初始化变量、影子变量中至少一种检测,得到检测结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将合约运行日志和节点运行日志存储在分布式存储数据库中,并对合约运行日志和节点日志进行可视化显示。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将联盟链中节点调用的智能合约发送至合约监管节点;
通过合约监管节点调用检测函数集对智能合约进行检测,得到检测结果;
当检测结果满足预设条件时,通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待检测的智能合约并将智能合约上传至合约监管节点;
通过合约监管节点调用检测函数集对智能合约进行检测,得到检测结果;
当检测结果满足预设条件时,将智能合约部署到联盟链通道上并进行上线;
采集智能合约被联盟链中节点调用的合约运行日志;
通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
采集联盟链中节点的节点运行日志;
通过合约监管节点对合约运行日志和节点运行日志进行分析,得到智能合约的安全数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
通过合约监管节点对合约运行日志中的调用频次,以及节点运行日志中正常工作时间段的工作状态进行分析,得到智能合约的错误调用频次和背书节点的工作状态;
当错误调用频次不在预设调用频次范围内或工作状态为故障状态时,确定智能合约存在异常调用。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
通过合约监管节点调用检测函数集对智能合约进行是否存在变量覆盖、整数溢出、未校验返回值、任意地址写入、拒绝服务、数据冻结、未初始化变量、影子变量中至少一种检测,得到检测结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将合约运行日志和节点运行日志存储在分布式存储数据库中,并对合约运行日志和节点日志进行可视化显示。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将联盟链中节点调用的智能合约发送至合约监管节点;
通过合约监管节点调用检测函数集对智能合约进行检测,得到检测结果;
当检测结果满足预设条件时,通过合约监管节点对运行日志文件进行安全分析,得到智能合约的安全数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种智能合约的安全监控方法,其特征在于,所述方法包括:
获取待检测的智能合约并将所述智能合约上传至合约监管节点;
通过合约监管节点调用检测函数集对所述智能合约进行检测,得到检测结果;
当所述检测结果满足预设条件时,将所述智能合约部署到联盟链通道上并进行上线;
采集所述智能合约被所述联盟链中节点调用的合约运行日志;
通过所述合约监管节点对所述运行日志文件进行安全分析,得到所述智能合约的安全数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
采集所述联盟链中节点的节点运行日志;
通过所述合约监管节点对所述合约运行日志和所述节点运行日志进行分析,得到所述智能合约的安全数据。
3.根据权利要求2所述的方法,其特征在于,所述通过所述合约监管节点对所述合约运行日志和所述节点运行日志进行分析,得到所述智能合约的安全数据,包括:
通过所述合约监管节点对所述合约运行日志中的调用频次,以及所述节点运行日志中正常工作时间段的工作状态进行分析,得到所述智能合约的错误调用频次和背书节点的工作状态;
当所述错误调用频次不在预设调用频次范围内或所述工作状态为故障状态时,确定所述智能合约存在异常调用。
4.根据权利要求1所述的方法,其特征在于,所述通过合约监管节点调用检测函数集对所述智能合约进行检测,得到检测结果,包括:
通过合约监管节点调用检测函数集对所述智能合约进行是否存在变量覆盖、整数溢出、未校验返回值、任意地址写入、拒绝服务、数据冻结、未初始化变量、影子变量中至少一种检测,得到检测结果。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述合约运行日志和所述节点运行日志存储在分布式存储数据库中,并对所述合约运行日志和所述节点日志进行可视化显示。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述联盟链中节点调用的所述智能合约发送至所述合约监管节点;
通过合约监管节点调用检测函数集对所述智能合约进行检测,得到检测结果;
当所述检测结果满足预设条件时,通过所述合约监管节点对所述运行日志文件进行安全分析,得到所述智能合约的安全数据。
7.一种智能合约的安全监控装置,其特征在于,所述装置包括:
获取模块,用于获取待检测的智能合约并将所述智能合约上传至合约监管节点;
检测模块,用于通过合约监管节点调用检测函数集对所述智能合约进行检测,得到检测结果;
部署模块,用于当所述检测结果满足预设条件时,将所述智能合约部署到联盟链通道上并进行上线;
采集模块,用于采集所述智能合约被所述联盟链中节点调用的合约运行日志;
分析模块,用于通过所述合约监管节点对所述运行日志文件进行安全分析,得到所述智能合约的安全数据。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
采用模块还用于采集所述联盟链中节点的节点运行日志;
分析模块还用于通过所述合约监管节点对所述合约运行日志和所述节点运行日志进行分析,得到所述智能合约的安全数据。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110550512.5A CN115375468A (zh) | 2021-05-20 | 2021-05-20 | 智能合约的安全监控方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110550512.5A CN115375468A (zh) | 2021-05-20 | 2021-05-20 | 智能合约的安全监控方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115375468A true CN115375468A (zh) | 2022-11-22 |
Family
ID=84058784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110550512.5A Pending CN115375468A (zh) | 2021-05-20 | 2021-05-20 | 智能合约的安全监控方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115375468A (zh) |
-
2021
- 2021-05-20 CN CN202110550512.5A patent/CN115375468A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9720816B2 (en) | Software development assistant method and system | |
US9043761B2 (en) | Fault localization using condition modeling and return value modeling | |
CN106326067B (zh) | 一种在压力测试下对cpu性能进行监控的方法及装置 | |
CN107329894B (zh) | 应用程序系统测试方法、装置及电子设备 | |
CN108256322B (zh) | 安全测试方法、装置、计算机设备和存储介质 | |
CN104579830B (zh) | 服务监控方法及装置 | |
WO2019169760A1 (zh) | 测试用例范围确定方法、装置及存储介质 | |
CN109583194A (zh) | 用于基于事件的卷积的普及度检测异常事件的系统和方法 | |
US20190236282A1 (en) | Application component auditor | |
US10467590B2 (en) | Business process optimization and problem resolution | |
US20230259436A1 (en) | Systems and methods for monitoring application health in a distributed architecture | |
CN114077525A (zh) | 异常日志处理方法、装置、终端设备、云服务器及系统 | |
CN114036059A (zh) | 面向电网系统的自动化渗透测试系统、方法和计算机设备 | |
Alves et al. | Prioritizing test cases for early detection of refactoring faults | |
Syer et al. | Identifying performance deviations in thread pools | |
US20160085664A1 (en) | Generating a fingerprint representing a response of an application to a simulation of a fault of an external service | |
CN112817831A (zh) | 应用性能监测方法、装置、计算机系统和可读存储介质 | |
US10999180B2 (en) | System for defining and implementing performance monitoring requirements for applications and hosted computing environment infrastructure | |
Zoppi et al. | Context-awareness to improve anomaly detection in dynamic service oriented architectures | |
Autili et al. | Software engineering techniques for statically analyzing mobile apps: research trends, characteristics, and potential for industrial adoption | |
CN107402883B (zh) | 一种数据测试处理方法和装置 | |
CN115375468A (zh) | 智能合约的安全监控方法、装置、计算机设备和存储介质 | |
EP2159697B1 (en) | Method for evaluating a production rule for a memory management analysis | |
CN113986768A (zh) | 应用程序稳定性测试方法、装置、设备及介质 | |
CN113722225A (zh) | 页面测试方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |