CN117034299B - 一种基于区块链的智能合约安全检测系统 - Google Patents
一种基于区块链的智能合约安全检测系统 Download PDFInfo
- Publication number
- CN117034299B CN117034299B CN202311298111.0A CN202311298111A CN117034299B CN 117034299 B CN117034299 B CN 117034299B CN 202311298111 A CN202311298111 A CN 202311298111A CN 117034299 B CN117034299 B CN 117034299B
- Authority
- CN
- China
- Prior art keywords
- contract
- security
- module
- vulnerability
- data
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 29
- 238000004458 analytical method Methods 0.000 claims abstract description 104
- 230000008439 repair process Effects 0.000 claims abstract description 101
- 230000010354 integration Effects 0.000 claims abstract description 32
- 230000000007 visual effect Effects 0.000 claims abstract description 26
- 238000007405 data analysis Methods 0.000 claims abstract description 5
- 230000002159 abnormal effect Effects 0.000 claims description 23
- 238000000034 method Methods 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 20
- 230000003068 static effect Effects 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 claims description 14
- 206010000117 Abnormal behaviour Diseases 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 10
- 238000011217 control strategy Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000011156 evaluation Methods 0.000 claims description 8
- 238000005206 flow analysis Methods 0.000 claims description 8
- 230000006399 behavior Effects 0.000 claims description 7
- 238000013145 classification model Methods 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 7
- 238000010801 machine learning Methods 0.000 claims description 7
- 238000012360 testing method Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 6
- 230000000670 limiting effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 claims description 5
- 238000012038 vulnerability analysis Methods 0.000 claims description 4
- 238000012098 association analyses Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 238000004088 simulation Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 230000001010 compromised effect Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims 2
- 238000012549 training Methods 0.000 description 3
- 238000003339 best practice Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000007488 abnormal function Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 231100000279 safety data Toxicity 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于区块链的智能合约安全检测系统,具体涉及数据分析技术领域,包括代码分析模块、交易记录分析模块、权限控制模块、安全漏洞识别模块、数据整合模块、修复建议生成模块以及可视化界面模块,本发明可以提高合约的安全性,通过对合约代码和交易记录的分析,可以及时发现合约中的潜在漏洞和安全风险,可以检测常见的安全漏洞,系统通过数据整合模块将来自不同模块的数据整合在一起,提供综合的安全分析和报告,开发者和审计人员可以通过可视化界面模块直观地查看和理解安全分析结果,提高工作效率,可以提供修复建议系统可以根据检测到的安全漏洞,生成相应的修复建议,提高合约的安全性。
Description
技术领域
本发明涉及数据分析技术领域,更具体地说,本发明涉及一种基于区块链的智能合约安全检测系统。
背景技术
现有的智能合约安全检测系统,包括智能合约预处理程序模块、核心检测引擎模块和检测结果展示模块,通过智能合约预处理程序模块,对合约进行抽象语法树分析和内部调用关系分析,实现对合约函数关联关系的分析;核心检测引擎模块根据非确定性、数据隐私安全和逻辑安全每种风险项的特征,采用包括包检测、指令检测和逻辑检测等,分析得出合约的风险项;最后检测结果通过可视化展示模块呈现给用户;
然而上述技术仍存在不足,上述系统在使用过程中仅使用了静态分析技术,数据分析具有一定的局限性,并且分析的方面不够完整,缺少对权限控制、交易记录的分析,并且在检测之后得出合约的风险项,并没有说明风险程度,在最后将检测结果反馈给用户,缺少修复建议,用户仍需对风险项进行进一步分析和计算,寻找最合适的解决方案,上述系统不够智能化,只能发现风险不能提供解决风险的参考性建议,无法降低人工成本。
发明内容
为了克服现有技术的上述缺陷,本发明的提供一种基于区块链的智能合约安全检测系统,通过对合约代码、交易记录以及其他数据进行分析,得到合约安全性指数,并生成修复建议,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:包括:代码分析模块、交易记录分析模块、权限控制模块、安全漏洞识别模块、数据整合模块、修复建议生成模块以及可视化界面模块。
代码分析模块:用于解析智能合约的代码,提取合约代码内的关键信息,并将信息传输至安全漏洞识别模块;
交易记录分析模块:用于获取合约的交易记录,从中获取合约的使用情况、交易历史以及异常行为数据,并将数据传输至安全漏洞识别模块;
权限控制模块:用于限制用户对合约的操作权限,阻止未授权的用户进行恶意操作,并对权限控制过程进行分析,计算出智能合约的权限控制质量指数,将计算出的数据传输至数据整合模块;
安全漏洞识别模块:用于根据接收到的智能合约各类数据,利用静态和动态分析技术,对合约数据进行全面检测,识别存在的安全漏洞,并根据识别出的问题漏洞,计算出智能合约的漏洞危险性指数,并将合约的漏洞危险性指数传输至数据整合模块;
数据整合模块:用于根据智能合约的权限控制质量指数以及漏洞危险性指数计算出合约的安全性指数,并将计算出的数据传输至修复建议生成模块;
修复建议生成模块:用于对合约的安全性指数进行分级判断,并建立修复模型,根据安全性指数所处的不同等级,调取不同的修复模型,并根据修复模型生成修复建议,传输至可视化界面模块;
可视化界面模块:用于提供良好的用户界面,显示合约的安全状态、历史记录以及修复建议。
优选的,代码分析模块用于解析智能合约的代码,提取合约代码内的关键信息,所述代码分析模块具体包括:
词法语法分析单元:代码分析模块利用词法分析器将合约代码拆分成独立的词法单元,并将代码转化为词法单元的序列,再利用语法分析器,识别代码中的语法规则,并根据词法单元的序列构建抽象语法树;
语义分析单元:在语法分析的基础上,语法分析单元利用语义分析器对合约代码进行语义分析,检查代码中的语义错误和不一致;
控制流数据流分析单元:通过分析合约代码的控制流程,确定合约代码的执行路径和异常情况,通过数据流分析,生成合约代码的数据流图,展示变量的定义和使用、变量的赋值和传递;
数据传输单元:将各类分析结果传输至安全漏洞识别模块。
优选的,交易记录分析模块用于获取合约的交易记录,从中获取合约的使用情况、交易历史以及异常行为数据,所述交易记录分析模块具体包括:
合约使用情况分析单元:通过根据交易记录中的信息,分析合约的使用情况,具体包括:合约的调用次数、交易的数量和金额;
交易历史分析单元:交易记录分析模块可以分析合约的交易历史,得到合约的交易模式和交易行为数据;
异常行为分析:利用阈值分析、异常模式检测、数据关联分析技术,对交易模式、金额、频率进行分析,检测合约的异常行为。
优选的,权限控制模块用于限制用户对合约的操作权限,阻止未授权的用户进行恶意操作,并对权限控制过程进行分析,计算出智能合约的权限控制质量指数,所述权限控制模块具体包括:
权限控制定义单元:由合约开发者根据合约的具体需求确定合约的权限控制策略,具体包括需要进行权限控制的操作类型、每种操作权限对应的每种用户类型;
权限控制实现单元:根据权限控制策略,使用访问控制合约实现相应的权限控制机制;
权限控制分析单元:通过分析权限控制事件,获取权限控制数据,具体包括:正常操作次数、用户个数、未经授权的操作次数、存在权限被恶意绕过的情况次数、未经授权的用户冒充他人执行受限操作次数、权限控制失败次数、异常操作次数、操作者异常访问次数;
权限控制质量指数计算单元:根据分析的结果,计算智能合约的权限控制质量指数:,其中m代表用户个数、qn代表正常操作次数、an代表未经授权的操作次数、sn代表存在权限被恶意绕过的情况次数、dn代表未经授权的用户冒充他人执行受限操作次数、fn代表权限控制失败次数、gn代表异常操作次数、hn代表操作者异常访问次数。
优选的,安全漏洞识别模块用于根据接收到的智能合约各类数据,利用静态和动态分析技术,对合约数据进行全面检测,识别存在的安全漏洞,并根据识别出的问题漏洞,计算出智能合约的漏洞危险性指数,所述安全漏洞识别模块具体包括:
静动态分析单元:利用符号执行以及模糊测试技术,对智能合约数据进行分析;
漏洞识别单元:根据静态和动态分析的结果,识别智能合约中存在的安全漏洞,具体包括:合约使用时长、漏洞个数、各漏洞类型发生的次数、易利用性指数、各漏洞造成的资金损失数量、数据泄露数量、合约功能受限程度、合约完整性受损程度、用户信任受损程度;
漏洞危险性指数计算单元:根据漏洞数据,计算智能合约的漏洞危险性指数:,其中tn代表合约使用时长、wn代表漏洞个数、en代表各类型漏洞的发生次数、rn代表易利用性指数、yn代表各漏洞造成的资金损失数量、un代表数据泄露数量、zn代表合约功能受限程度、xn代表合约完整性受损程度。
优选的,数据整合模块用于根据智能合约的权限控制质量指数以及漏洞危险性指数计算出合约的安全性指数,所述数据整合模块具体包括:
数据接收单元:接收安全漏洞识别模块、权限控制模块传输的数据;
数据整合单元:根据接收到的数据,计算出合约的安全性指数:,k1+k2=1,k2>k1;
数据传输单元:将计算出的合约安全性指数传输至修复建议生成模块。
优选的,修复建议生成模块用于对合约的安全性指数进行分级判断,并建立修复模型,根据安全性指数所处的不同等级,调取不同的修复模型,并根据修复模型生成修复建议,所述修复建议生成模块具体包括:
安全性等级划分单元:确定安全性指数的不同等级划分,当,合约安全等级为一等级,此时合约安全等级最低,合约中存在严重的风险,可能导致重大的损失或安全威胁,当/>,合约安全等级为第二等级,此时合约中存在较高的风险,可能导致较大的损失或安全威胁,当/>,合约安全等级为第三等级,此时合约安全等级最高,合约中可能存在一些次要的风险,但不会导致重大损失或安全威胁;
修复模型设计单元:根据不同的安全性等级,设计相应的修复模型,首先收集现有合约中已知的漏洞样本、已修复样本和安全性评估报告,其次使用机器学习算法构建一个漏洞分类模型,之后确定修复策略和措施,使用规则引擎、知识库或专家系统,根据漏洞分类模型的识别结果和安全性等级,确定与每个漏洞类型和安全性等级相对应的修复策略和措施,最后采用规则引擎、机器学习算法以及混合方法,根据漏洞的安全性等级和具体特征,匹配相应的修复模型;
修复评估与反馈单元:通过漏洞修复案例的实际测试或模拟验证来评估修复效果,之后将修复模型部署到实际的交互式界面,为开发者或审计人员提供修复建议。
优选的,可视化界面模块用于提供良好的用户界面,显示合约的安全状态、历史记录以及修复建议,所述可视化界面模块具体包括:
安全状态浏览单元:在可视化界面上显示合约的安全状态概览,包括:漏洞数量、安全性等级;
历史记录查看单元:提供历史记录查看功能,显示合约的漏洞修复历史和相关信息;
修复建议展示单元:根据生成的相应修复建议在可视化界面上进行展示,具体包括漏洞描述、建议措施、代码示例和注意事项;
用户交互单元:提供用户交互功能,包括:搜索、筛选、排序,用户根据自己的需求查看和分析合约的安全状态和历史记录。
本发明的技术效果和优点:
本发明可以提高合约的安全性,通过对合约代码和交易记录的分析,可以及时发现合约中的潜在漏洞和安全风险,可以检测常见的安全漏洞,可以提供全面的安全分析和报告,系统通过数据整合模块将来自不同模块的数据整合在一起,提供综合的安全分析和报告,开发者和审计人员可以通过可视化界面模块直观地查看和理解安全分析结果,提高工作效率,可以提供修复建议系统可以根据检测到的安全漏洞,生成相应的修复建议,这些修复建议可以帮助开发者快速定位和修复合约的安全问题,提高合约的安全性。
附图说明
图1为本发明的系统结构框图。
图2为本发明的系统流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供了如图1所示一种基于区块链的智能合约安全检测系统,包括:代码分析模块、交易记录分析模块、权限控制模块、安全漏洞识别模块、数据整合模块、修复建议生成模块以及可视化界面模块。
所述代码分析模块用于解析智能合约的代码,提取合约代码内的关键信息,并将信息传输至安全漏洞识别模块,所述交易记录分析模块用于获取合约的交易记录,从中获取合约的使用情况、交易历史以及异常行为数据,并将数据传输至安全漏洞识别模块,所述权限控制模块用于限制用户对合约的操作权限,阻止未授权的用户进行恶意操作,并对权限控制过程进行分析,计算出智能合约的权限控制质量指数,将计算出的数据传输至数据整合模块,所述安全漏洞识别模块用于根据接收到的智能合约各类数据,利用静态和动态分析技术,对合约数据进行全面检测,识别存在的安全漏洞,并根据识别出的问题漏洞,计算出智能合约的漏洞危险性指数,并将合约的漏洞危险性指数传输至数据整合模块,所述数据整合模块用于根据智能合约的权限控制质量指数以及漏洞危险性指数计算出合约的安全性指数,并将计算出的数据传输至修复建议生成模块,所述修复建议生成模块用于对合约的安全性指数进行分级判断,并建立修复模型,根据安全性指数所处的不同等级,调取不同的修复模型,并根据修复模型生成修复建议,传输至可视化界面模块,所述可视化界面模块用于提供良好的用户界面,显示合约的安全状态、历史记录以及修复建议。
本实施与现有技术的区别在于权限控制模块、安全漏洞识别模块、数据整合模块、修复建议生成模块,权限控制模块通过对访问权限设置门槛,以及对访问行为进行分析计算,得出合约的权限控制质量,安全漏洞识别模块增加识别功能,抓取各类漏洞,数据整合模块增加计算功能,计算出合约的安全性指数,修复建议生成模块增加模型建立功能,通过安全性指数的高低匹配合适的修复方案,开发者和审计人员可以通过可视化界面模块直观地查看和理解安全分析结果,提高工作效率。
如图2本实施例提供一种基于区块链的智能合约安全检测系统的方法流程图,具体包括下列步骤:
101、通过代码分析模块解析智能合约的代码,提取合约代码内的关键信息,所述代码分析模块进行合约代码分析的具体步骤为:
A1、词法语法分析:代码分析模块利用词法分析器将合约代码拆分成独立的词法单元,并将代码转化为词法单元的序列,再利用语法分析器,识别代码中的语法规则,并根据词法单元的序列构建抽象语法树;
A2、语义分析:在语法分析的基础上,语法分析单元利用语义分析器对合约代码进行语义分析,检查代码中的语义错误和不一致;
A3、控制流数据流分析:通过分析合约代码的控制流程,确定合约代码的执行路径和异常情况,通过数据流分析,生成合约代码的数据流图,展示变量的定义和使用、变量的赋值和传递;
进一步地,合约代码中,变量是用来存储和操作数据的标识符,通过数据流分析,可以准确地掌握合约代码中每一种变量的含义以及使用规则,数据流图清晰地展示了变量在合约代码中的流动和作用,帮助开发者理解代码的逻辑和数据依赖关系,识别潜在的数据漏洞和安全风险;
A4、数据传输:将各类分析结果传输至安全漏洞识别模块;
在这里需要说明的是:
代码分析模块可以全面地分析合约代码,帮助开发者和审计人员发现潜在的安全问题,通过合约代码的词法语法分析、语义分析、控制流数据流分析为后续合约安全性评估提供数据基础。
104、通过交易记录分析模块获取合约的交易记录,从中获取合约的使用情况、交易历史以及异常行为数据,所述交易记录分析模块进行合约交易记录分析的具体步骤为:
B1、合约使用情况分析:通过根据交易记录中的信息,分析合约的使用情况,具体包括:合约的调用次数、交易的数量和金额;
B2、交易历史分析:交易记录分析模块可以分析合约的交易历史,得到合约的交易模式和交易行为数据;
B3、异常行为分析:利用阈值分析、异常模式检测、数据关联分析技术,对交易模式、金额、频率进行分析,检测合约的异常行为;
进一步地,异常行为分析是通过分析交易记录中的模式和规律,检测出不正常的交易模式,检查是否有大量的交易发送到同一个地址或者从同一个地址发送出去,此举例仅为异常交易模式的一种,这种异常的交易模式可能暗示着合约的滥用或者攻击行为,在获取交易数据时,系统采用区块链技术对数据进行加密传输和储存有助于保证信息的安全性,防止信息泄露;
在这里需要说明的是:
交易记录分析模块可以识别异常的交易行为、非法的操作和未经授权的访问等,可以帮助监测合约的实际使用情况,并及时发现潜在的安全风险,可以分析出合约的使用情况和安全性。
103、通过权限控制模块限制用户对合约的操作权限,阻止未授权的用户进行恶意操作,并对权限控制过程进行分析,计算出智能合约的权限控制质量指数,所述权限控制模块进行权限控制和分析的具体步骤为:
C1、权限控制定义:由合约开发者根据合约的具体需求确定合约的权限控制策略,具体包括需要进行权限控制的操作类型、每种操作权限对应的每种用户类型;
C2、权限控制实现:根据权限控制策略,使用访问控制合约实现相应的权限控制机制;
C3、权限控制分析:通过分析权限控制事件,获取权限控制数据,具体包括:正常操作次数、用户个数、未经授权的操作次数、存在权限被恶意绕过的情况次数、未经授权的用户冒充他人执行受限操作次数、权限控制失败次数、异常操作次数、操作者异常访问次数;
进一步地,权限控制模块的具体实现和评估指标可以根据合约的需求和具体情况进行调整和定制;
C4、权限控制质量指数计算:根据分析的结果,计算智能合约的权限控制质量指数:,其中m代表用户个数、qn代表正常操作次数、an代表未经授权的操作次数、sn代表存在权限被恶意绕过的情况次数、dn代表未经授权的用户冒充他人执行受限操作次数、fn代表权限控制失败次数、gn代表异常操作次数、hn代表操作者异常访问次数;
在这里需要说明的是:
权限控制模块可以对合约的访问和操作进行限制和验证,权限控制模块可以确保只有具有合适权限的用户才能执行敏感操作,从而降低合约的安全风险,并且可以提供额外的安全层级,增强合约的安全性。
104、通过安全漏洞识别模块根据接收到的智能合约各类数据,利用静态和动态分析技术,对合约数据进行全面检测,识别存在的安全漏洞,并根据识别出的问题漏洞,计算出智能合约的漏洞危险性指数,所述安全漏洞识别模块进行安全漏洞识别的具体步骤为:
D1、静动态分析:利用符号执行以及模糊测试技术,对智能合约数据进行分析;
进一步地,智能合约进行静态分析,主要利用Mythril、Slither工具,对合约代码进行静态分析,识别潜在的漏洞和安全风险,检查合约中的代码逻辑、函数调用关系、变量使用,分析结果包括潜在的重入漏洞、溢出漏洞、未经授权的函数调用,动态分析技术主要利用ruffle、Ganache工具,对合约代码进行动态分析,模拟合约的执行过程,并检测异常情况和安全风险观察合约在不同输入和状态下的行为,分析结果可能包括异常的函数调用、无效的状态转换、未处理的异常情况;
D2、漏洞识别:根据静态和动态分析的结果,识别智能合约中存在的安全漏洞,具体包括:合约使用时长、漏洞个数、各漏洞类型发生的次数、易利用性指数、各漏洞造成的资金损失数量、数据泄露数量、合约功能受限程度、合约完整性受损程度;
进一步地,系统可以模拟攻击场景,如权限控制不当、逻辑漏洞等,触发合约中的漏洞,并检测合约功能是否受到限制,系统可以检测是否存在未经授权的操作、是否存在无法执行的功能、是否存在权限提升的情况,并根据情况得出合约的受限程度,出现上述受限情况的次数在整个模拟攻击场景次数中的占比即为合约的功能受限程度;
进一步地,系统得出合约完整性受损程度时,可以模拟攻击场景,触发合约中的漏洞,并检测合约数据是否受到破坏或篡改,被篡改或破坏的数据占比即为合约的完整性受损程度;
进一步地,通过模拟攻击场景,系统可以得出各漏洞造成的资金损失数量、数据泄露数量;
进一步地,查阅漏洞数据库,检查是否有已经公开的漏洞利用工具、恶意代码或漏洞利用代码,存在的工具、代码数量越多,漏洞的易用性越高,漏洞的易用性即为该类漏洞存在的工具、代码版本数量占总漏洞利用工具和代码版本总数量的比重;
D3、漏洞危险性指数计算:根据漏洞数据,计算智能合约的漏洞危险性指数:,其中tn代表合约使用时长、wn代表漏洞个数、en代表各类型漏洞的发生次数、rn代表易利用性指数、yn代表各漏洞造成的资金损失数量、un代表数据泄露数量、zn代表合约功能受限程度、xn代表合约完整性受损程度;
在这里需要说明的是:
安全漏洞识别模块可以检测重入漏洞、溢出漏洞、未经授权的函数调用等,可以帮助开发者和审计人员全面了解合约的安全性问题,可以通过数据分析计算,得出合约的漏洞危险性指数,为接下来的合约安全性评估提供数据支持。
105、通过数据整合模块根据智能合约的权限控制质量指数以及漏洞危险性指数计算出合约的安全性指数,所述数据整合模块进行数据整合计算的具体步骤为:
E1、数据接收:接收安全漏洞识别模块、权限控制模块传输的数据;
E2、数据整合:根据接收到的数据,计算出合约的安全性指数:,k1+k2=1,k2>k1;
E3、数据传输:将计算出的合约安全性指数传输至修复建议生成模块;
在这里需要说明的是:
数据整合模块可以将来自不同模块的数据整合在一起,提供综合的安全分析和计算,数据整合模块的优点是可以提供全面的安全数据,帮助开发者和审计人员全面了解合约的安全情况。
106、通过修复建议生成模块对合约的安全性指数进行分级判断,并建立修复模型,根据安全性指数所处的不同等级,调取不同的修复模型,并根据修复模型生成修复建议,所述修复建议生成模块进行修复模型建立和修复建议生成的具体步骤为:
F1、安全性等级划分:确定安全性指数的不同等级划分,当,合约安全等级为一等级,此时合约安全等级最低,合约中存在严重的风险,可能导致重大的损失或安全威胁,当/>,合约安全等级为第二等级,此时合约中存在较高的风险,可能导致较大的损失或安全威胁,当/>,合约安全等级为第三等级,此时合约安全等级最高,合约中可能存在一些次要的风险,但不会导致重大损失或安全威胁;
进一步地,在实际应用中,通过分析安全性直属的高低,并根据具体情况进行权衡和调整,以确定合适的安全性等级划分标准,在这里不做具体叙述;
F2、修复模型设计:根据不同的安全性等级,设计相应的修复模型,首先收集现有合约中已知的漏洞样本、已修复样本和安全性评估报告,其次使用机器学习算法构建一个漏洞分类模型,之后确定修复策略和措施,使用规则引擎、知识库或专家系统,根据漏洞分类模型的识别结果和安全性等级,确定与每个漏洞类型和安全性等级相对应的修复策略和措施,最后采用规则引擎、机器学习算法以及混合方法,根据漏洞的安全性等级和具体特征,匹配相应的修复模型;
进一步地,系统进行修复模型设计时,需要收集和整理各个安全性等级下的常见漏洞修复知识、修复方案、代码模板和最佳实践建议,并根据以往的修复数据以及测试结果定制和评估修复模型,修复模型可以是基于规则的修复逻辑,也可以是基于机器学习的模型,例如分类模型、生成模型,使用已有的合约和安全性指数标记的训练数据,训练每个等级的修复模型;
F3、修复评估与反馈:通过漏洞修复案例的实际测试或模拟验证来评估修复效果,之后将修复模型部署到实际的交互式界面,为开发者或审计人员提供修复建议;
在这里需要说明的是:
修复建议生成模块可以根据检测到的安全漏洞,生成相应的修复建议,修复建议生成模块的优点是可以帮助开发者快速定位和修复合约的安全问题,提高合约的安全性。
107、通过可视化界面模块提供良好的用户界面,显示合约的安全状态、历史记录以及修复建议,所述可视化界面模块进行数据展示地具体步骤为:
G1、安全状态浏览:在可视化界面上显示合约的安全状态概览,包括:漏洞数量、安全性等级;
进一步地,可以使用图表、指示器或颜色编码等方式,以直观的方式展示合约的安全性情况;
G2、历史记录查看:提供历史记录查看功能,显示合约的漏洞修复历史和相关信息;
进一步地,用户可以查看每个漏洞的修复状态、修复时间、修复方法等详细信息,以了解合约的安全性完善过程,历史纪录的查看可以进行修复数据的获取以及修复过程的溯源;
G3、修复建议展示:根据生成的相应修复建议在可视化界面上进行展示,具体包括漏洞描述、建议措施、代码示例和注意事项;
进一步地,修复建议需要详细描述合约中存在的漏洞,包括漏洞的类型、具体位置以及可能的攻击方式,基于漏洞的性质和修复模型的训练结果,修复建议应包括一系列具体的措施,以修复合约中的漏洞,包括建议用户进行代码重构、加入安全检查或限制、使用更安全的库或函数等,并提供针对具体漏洞的代码示例,展示如何对合约代码进行修改或增加特定的代码段,以修复漏洞,还应当提供相关的注意事项和警示,包括潜在的副作用、降低性能的可能性、遵循的最佳实践或约定等;
G4、用户交互:提供用户交互功能,包括:搜索、筛选、排序,用户根据自己的需求查看和分析合约的安全状态和历史记录;
在这里需要说明的是:
可视化界面模块可以以图形化的方式展示安全分析和检测结果,提供直观的界面和交互方式,可视化界面模块的优点是可以方便开发者和审计人员查看和理解安全分析结果,提高工作效率,帮助用户更好的提高合约的安全性。
最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于区块链的智能合约安全检测系统,其特征在于:包括:
代码分析模块:用于解析智能合约的代码,提取合约代码内变量的定义和使用、变量的赋值和传递规律、代码语法规则,并将解析到的信息传输至安全漏洞识别模块;
交易记录分析模块:用于获取合约的交易记录,从中获取合约的使用情况、交易历史以及异常行为数据,并将数据传输至安全漏洞识别模块;
权限控制模块:用于限制用户对合约的操作权限,阻止未授权的用户进行恶意操作,并对权限控制过程进行分析,计算出智能合约的权限控制质量指数,将计算出的数据传输至数据整合模块;
安全漏洞识别模块:用于根据接收代码分析模块以及交易记录分析模块传输的数据,并利用静态和动态分析技术,对合约数据进行全面检测,识别存在的安全漏洞,并根据识别出的问题漏洞,计算出智能合约的漏洞危险性指数,并将合约的漏洞危险性指数传输至数据整合模块;
数据整合模块:用于系统根据智能合约的权限控制质量指数以及漏洞危险性指数计算出合约的安全性指数,并将计算出的数据传输至修复建议生成模块;
修复建议生成模块:用于对合约的安全性指数进行分级判断,并建立修复模型,修复建议生成模块根据安全性指数所处的不同等级,调取不同的修复模型,并根据修复模型生成修复建议,具体包括漏洞描述、建议措施、代码示例和注意事项,并传输至可视化界面模块;
可视化界面模块:用于提供良好的用户界面,显示合约的安全状态、历史记录以及修复建议。
2.根据权利要求1所述的一种基于区块链的智能合约安全检测系统,其特征在于:所述代码分析模块用于解析智能合约的代码,提取合约代码内的关键信息,所述代码分析模块具体包括:
词法语法分析单元:代码分析模块利用词法分析器将合约代码拆分成独立的词法单元,并将代码转化为词法单元的序列,再利用语法分析器,识别代码中的语法规则,并根据词法单元的序列构建抽象语法树;
语义分析单元:在语法分析的基础上,语法分析单元利用语义分析器对合约代码进行语义分析,检查代码中的语义错误和不一致;
控制流数据流分析单元:通过分析合约代码的控制流程,确定合约代码的执行路径和异常情况,通过数据流分析,生成合约代码的数据流图,展示变量的定义和使用、变量的赋值和传递规律;
数据传输单元:将各类分析结果传输至安全漏洞识别模块。
3.根据权利要求1所述的一种基于区块链的智能合约安全检测系统,其特征在于:所述交易记录分析模块用于获取合约的交易记录,从中获取合约的使用情况、交易历史以及异常行为数据,所述交易记录分析模块具体包括:
合约使用情况分析单元:通过根据交易记录中的信息,分析合约的使用情况,具体包括:合约的调用次数、交易的数量和金额;
交易历史分析单元:交易记录分析模块可以分析合约的交易历史,得到合约的交易模式和交易行为数据;
异常行为分析:利用阈值分析、异常模式检测、数据关联分析技术,对交易模式、金额、频率进行分析,检测合约的异常行为。
4.根据权利要求1所述的一种基于区块链的智能合约安全检测系统,其特征在于:所述权限控制模块用于限制用户对合约的操作权限,阻止未授权的用户进行恶意操作,并对权限控制过程进行分析,计算出智能合约的权限控制质量指数,所述权限控制模块具体包括:
权限控制定义单元:由合约开发者根据合约的具体需求确定合约的权限控制策略,具体包括需要进行权限控制的操作类型、每种操作权限对应的每种用户类型;
权限控制实现单元:根据权限控制策略,使用访问控制合约实现相应的权限控制机制;
权限控制分析单元:通过分析权限控制事件,获取权限控制数据,具体包括:正常操作次数、用户个数、未经授权的操作次数、存在权限被恶意绕过的情况次数、未经授权的用户冒充他人执行受限操作次数、权限控制失败次数、异常操作次数、操作者异常访问次数;
权限控制质量指数计算单元:根据分析的结果,计算智能合约的权限控制质量指数:,其中m代表用户个数、qn代表正常操作次数、an代表未经授权的操作次数、sn代表存在权限被恶意绕过的情况次数、dn代表未经授权的用户冒充他人执行受限操作次数、fn代表权限控制失败次数、gn代表异常操作次数、hn代表操作者异常访问次数。
5.根据权利要求1所述的一种基于区块链的智能合约安全检测系统,其特征在于:所述安全漏洞识别模块用于根据接收到的智能合约各类数据,利用静态和动态分析技术,对合约数据进行全面检测,识别存在的安全漏洞,并根据识别出的问题漏洞,计算出智能合约的漏洞危险性指数,所述安全漏洞识别模块具体包括:
静动态分析单元:利用符号执行以及模糊测试技术,对智能合约数据进行分析;
漏洞识别单元:根据静态和动态分析的结果,识别智能合约中存在的安全漏洞,具体包括:合约使用时长、漏洞个数、各漏洞的可能性、易利用性指数、各漏洞造成的资金损失数量、数据泄露数量、合约功能受限程度、合约完整性受损程度、用户信任受损程度;
漏洞危险性指数计算单元:根据漏洞数据,计算智能合约的漏洞危险性指数:,其中tn代表合约使用时长、wn代表漏洞个数、en代表各漏洞的可能性、rn代表易利用性指数、yn代表各漏洞造成的资金损失数量、un代表数据泄露数量、zn代表合约功能受限程度、xn代表合约完整性受损程度。
6.根据权利要求1所述的一种基于区块链的智能合约安全检测系统,其特征在于:所述数据整合模块用于根据智能合约的权限控制质量指数以及漏洞危险性指数计算出合约的安全性指数,所述数据整合模块具体包括:
数据接收单元:接收安全漏洞识别模块、权限控制模块传输的数据;
数据整合单元:根据接收到的数据,计算出合约的安全性指数:,k1+k2=1,k2>k1;
数据传输单元:将计算出的合约安全性指数传输至修复建议生成模块。
7.根据权利要求1所述的一种基于区块链的智能合约安全检测系统,其特征在于:所述修复建议生成模块用于对合约的安全性指数进行分级判断,并建立修复模型,根据安全性指数所处的不同等级,调取不同的修复模型,并根据修复模型生成修复建议,所述修复建议生成模块具体包括:
安全性等级划分单元:确定安全性指数的不同等级划分,当合约安全等级为一等级,此时合约安全等级最低,合约中存在严重的风险,可能导致重大的损失或安全威胁,当/>,合约安全等级为第二等级,此时合约中存在较高的风险,可能导致较大的损失或安全威胁,当/>,合约安全等级为第三等级,此时合约安全等级最高,合约中可能存在一些次要的风险,但不会导致重大损失或安全威胁;
修复模型设计单元:根据不同的安全性等级,设计相应的修复模型,首先收集现有合约中已知的漏洞样本、已修复样本和安全性评估报告,其次使用机器学习算法构建一个漏洞分类模型,之后确定修复策略和措施,使用规则引擎、知识库或专家系统,根据漏洞分类模型的识别结果和安全性等级,确定与每个漏洞类型和安全性等级相对应的修复策略和措施,最后采用规则引擎、机器学习算法以及混合方法,根据漏洞的安全性等级和具体特征,匹配相应的修复模型;
修复评估与反馈单元:通过漏洞修复案例的实际测试或模拟验证来评估修复效果,之后将修复模型部署到实际的交互式界面,为开发者或审计人员提供修复建议。
8.据权利要求1所述的一种基于区块链的智能合约安全检测系统,其特征在于:所述可视化界面模块用于提供良好的用户界面,显示合约的安全状态、历史记录以及修复建议,所述可视化界面模块具体包括:
安全状态浏览单元:在可视化界面上显示合约的安全状态概览,包括:漏洞数量、安全性等级;
历史记录查看单元:提供历史记录查看功能,显示合约的漏洞修复历史和相关信息;
修复建议展示单元:根据生成的相应修复建议在可视化界面上进行展示,具体包括漏洞描述、建议措施、代码示例和注意事项;
用户交互单元:提供用户交互功能,包括:搜索、筛选、排序,用户根据自己的需求查看和分析合约的安全状态和历史记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311298111.0A CN117034299B (zh) | 2023-10-09 | 2023-10-09 | 一种基于区块链的智能合约安全检测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311298111.0A CN117034299B (zh) | 2023-10-09 | 2023-10-09 | 一种基于区块链的智能合约安全检测系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117034299A CN117034299A (zh) | 2023-11-10 |
CN117034299B true CN117034299B (zh) | 2024-01-26 |
Family
ID=88645378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311298111.0A Active CN117034299B (zh) | 2023-10-09 | 2023-10-09 | 一种基于区块链的智能合约安全检测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117034299B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235746B (zh) * | 2023-11-15 | 2024-03-01 | 深圳海云安网络安全技术有限公司 | 一种基于多维ast融合检测的源代码安全管控平台 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112437100A (zh) * | 2021-01-28 | 2021-03-02 | 腾讯科技(深圳)有限公司 | 漏洞扫描方法及相关设备 |
CN112699375A (zh) * | 2020-12-30 | 2021-04-23 | 杭州趣链科技有限公司 | 基于网络嵌入相似性的区块链智能合约安全漏洞检测方法 |
CN116305161A (zh) * | 2023-03-21 | 2023-06-23 | 深圳前海微众银行股份有限公司 | 一种智能合约的漏洞检测方法及装置 |
CN116610326A (zh) * | 2023-05-04 | 2023-08-18 | 北京中科链源科技有限公司 | 区块链智能合约的安全性检测方法、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3669522B1 (en) * | 2019-06-27 | 2021-11-24 | Advanced New Technologies Co., Ltd. | Managing cybersecurity vulnerabilities using blockchain networks |
US20230065259A1 (en) * | 2020-01-22 | 2023-03-02 | Shanghai Wormholes Tech Ltd. | Method and apparatus for protecting smart contracts against attacks |
-
2023
- 2023-10-09 CN CN202311298111.0A patent/CN117034299B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112699375A (zh) * | 2020-12-30 | 2021-04-23 | 杭州趣链科技有限公司 | 基于网络嵌入相似性的区块链智能合约安全漏洞检测方法 |
CN112437100A (zh) * | 2021-01-28 | 2021-03-02 | 腾讯科技(深圳)有限公司 | 漏洞扫描方法及相关设备 |
CN116305161A (zh) * | 2023-03-21 | 2023-06-23 | 深圳前海微众银行股份有限公司 | 一种智能合约的漏洞检测方法及装置 |
CN116610326A (zh) * | 2023-05-04 | 2023-08-18 | 北京中科链源科技有限公司 | 区块链智能合约的安全性检测方法、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
智能合约安全漏洞研究综述;倪远东 等;《信息安全学报》;第83-104页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117034299A (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230177170A1 (en) | System and method for automatically detecting a security vulnerability in a source code using a machine learning model | |
CN109426722B (zh) | Sql注入缺陷检测方法、系统、设备及存储介质 | |
Aloraini et al. | An empirical study of security warnings from static application security testing tools | |
CN117034299B (zh) | 一种基于区块链的智能合约安全检测系统 | |
KR101640479B1 (ko) | 소스코드기반 소프트웨어 취약점 공격행위 분석시스템 | |
Shukla et al. | System security assurance: A systematic literature review | |
CN115952503B (zh) | 融合黑白灰安全检测技术的应用安全测试方法及系统 | |
WO2021247913A1 (en) | Dynamic, runtime application programming interface parameter labeling, flow parameter tracking and security policy enforcement | |
CN116383833A (zh) | 软件程序代码的测试方法及其装置、电子设备、存储介质 | |
KR102304231B1 (ko) | 계층 구조를 이용한 컴플라이언스 관리 체계 지원 시스템 및 그 방법 | |
Zhou et al. | Colefunda: Explainable silent vulnerability fix identification | |
CN116720197B (zh) | 一种对漏洞优先级排列的方法及装置 | |
Awalurahman et al. | Security Aspect in Software Testing Perspective: A Systematic Literature Review. | |
KR20040104853A (ko) | 정보 자산의 위험 분석 시스템 | |
KR102590081B1 (ko) | 보안 규제 준수 자동화 장치 | |
Beksultanova et al. | Analysis tools for smart contract security | |
Pashchenko et al. | Secure software development in the era of fluid multi-party open software and services | |
Ghorbanzadeh et al. | Detecting application logic vulnerabilities via finding incompatibility between application design and implementation | |
US20240202351A1 (en) | Systems and methods for responsible ai | |
US20230145464A1 (en) | System and method for organization and classification of application security vulnerabilities | |
Zhao et al. | Cyber security risk analysis and evaluation for intelligent vehicle gateway | |
Ding et al. | Towards a hybrid framework for detecting input manipulation vulnerabilities | |
Mori et al. | A Domain-Sensitive Threshold Derivation Method | |
Francik et al. | Connecting the Dots: An Assessment of Cyber-risks in Networked Building and Municipal Infrastructure Systems | |
Polemi et al. | Challenges and efforts in managing AI trustworthiness risks: a state of knowledge |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |