收藏 分销(赏)

基于深度学习和信息反馈的智能合约模糊测试方法.pdf

上传人:自信****多点 文档编号:642641 上传时间:2024-01-22 格式:PDF 页数:6 大小:2.26MB
下载 相关 举报
基于深度学习和信息反馈的智能合约模糊测试方法.pdf_第1页
第1页 / 共6页
基于深度学习和信息反馈的智能合约模糊测试方法.pdf_第2页
第2页 / 共6页
基于深度学习和信息反馈的智能合约模糊测试方法.pdf_第3页
第3页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、h t t p:/ww wj s j k x c o mD O I:/j s j k x 到稿日期:返修日期:基金项目:四川省自然科学基金(N S F S C );四川大学专职博士后研发基金(S C U )T h i sw o r kw a ss u p p o r t e db yt h eN a t u r a lS c i e n c eF o u n d a t i o no fS i c h u a nP r o v i n c e,C h i n a(N S F S C )a n dS i c h u a nU n i v e r s i t yP o s t d o c t o

2、r a lS c i e n c eR e s e a r c hF o u n d a t i o n(S C U )通信作者:杨秋辉(y a n g q i u h u i s c u e d u c n)基于深度学习和信息反馈的智能合约模糊测试方法赵明敏杨秋辉洪玫蔡创四川大学计算机学院成都 (q q c o m)摘要主流区块链平台以太坊上频繁发现由不安全编程引起的智能合约安全漏洞.为了提高模糊测试对合约代码的覆盖率,以更全面地检测安全漏洞,提出了一种智能合约模糊测试方法.首先构造智能合约交易序列数据集,再基于深度学习构建智能合约交易生成模型以生成模糊测试初始种子;然后根据覆盖率和分支距离

3、信息,对智能合约进行信息反馈引导的模糊测试,提出了特定的测试用例染色体编码方式,并设计实现了相应的交叉和变异算子.所提方法能有效覆盖智能合约的深层次状态以及严格条件守卫的分支代码.在 个智能合约上进行实验,结果表明,所提方法的代码覆盖率为 ,漏洞检测率为 ,与I L F,s F u z z,E c h i d n a方法相比,所提方法的代码覆盖率提高了 ,漏洞检测率提高了 .所提方法有助于提升以太坊智能合约安全测试的有效性,具有参考价值.关键词:以太坊智能合约;安全测试;深度学习;模糊测试;信息反馈引导中图法分类号T P S m a r tC o n t r a c tF u z z i n

4、gB a s e do nD e e pL e a r n i n ga n dI n f o r m a t i o nF e e d b a c kZ HAO M i n g m i n,YAN GQ i u h u i,HON G M e i a n dC A IC h u a n gS c h o o l o fC o m p u t e rS c i e n c e,S i c h u a nU n i v e r s i t y,C h e n g d u ,C h i n aA b s t r a c t V u l n e r a b i l i t i e so f s m

5、a r t c o n t r a c t sc a u s e db y i n s e c u r ep r o g r a mm i n gh a v eb e e n f r e q u e n t l yd i s c o v e r e do nt h em a i n s t r e a mb l o c k c h a i np l a t f o r mE t h e r e u m I no r d e r t o i m p r o v et h ec o v e r a g eo fc o n t r a c t sb yf u z z i n ga n dd e t

6、e c ts e c u r i t yv u l n e r a b i l i t i e sm o r ec o m p r e h e n s i v e l y,t h i sp a p e rp r o p o s e sas m a r tc o n t r a c t f u z z i n g F i r s t,c o n s t r u c t i n gE t h e r e u ms m a r tc o n t r a c t t r a n s a c t i o ns e q u e n c ed a t as e t,t h e nb u i l d i n

7、gs m a r t c o n t r a c tg e n e r a t i o nm o d e lb a s e do nd e e pl e a r n i n gt og e n e r a t e i n i t i a l s e e d sf o r f u z z i n g T h e n,a c c o r d i n gt ot h e i n f o r m a t i o no f c o v e r a g ea n db r a n c hd i s t a n c e,c o n d u c t i n f o r m a t i o nf e e d b

8、 a c k g u i d e df u z z i n go ns m a r t c o n t r a c t s,as p e c i f i cc h r o m o s o m ee n c o d i n gm e t h o d f o r t e s t c a s e s i sp r o p o s e d,a n dc o r r e s p o n d i n gc r o s s o v e r o p e r a t o r s a n dm u t a t i o no p e r a t o r s a r ed e s i g n e da n d i m

9、 p l e m e n t e d T h em e t h o dc a ne f f e c t i v e l yc o v e rt h ed e e ps t a t eo fs m a r tc o n t r a c t sa n db r a n c hc o d eg u a r d e db ys t r i c tc o n d i t i o n s E x p e r i m e n t so n s m a r t c o n t r a c t ss h o wt h a t t h e c o d e c o v e r a g e r a t eo f t

10、h i sm e t h o d i s ,a n d t h ev u l n e r a b i l i t yd e t e c t i o nr a t e i s C o m p a r ew i t ht h e I L F,s F u z z,a n dE c h i d n am e t h o d s,t h e c o d e c o v e r a g e r a t eo f t h i sm e t h o d i n c r e a s e sb y ,t h ev u l n e r a b i l i t yd e t e c t i o nr a t e i

11、n c r e a s e sb y T h i sm e t h o dh e l p s t o i m p r o v e t h e e f f e c t i v e n e s so fE t h e r e u ms m a r t c o n t r a c t s e c u r i t yt e s t i n ga n d i sw o r t h yo f r e f e r e n c e f o r t h e i n d u s t r y K e y w o r d s E t h e r e u ms m a r t c o n t r a c t s,S e

12、 c u r i t yt e s t i n g,D e e pl e a r n i n g,F u z z i n g,I n f o r m a t i o nf e e d b a c kg u i d a n c e引言随着区块链 时代的到来,主流区块链平台以太坊上频繁发现由不安全编程引起的智能合约安全漏洞,这给平台用户造成了重大的财产损失.保障以太坊智能合约安全性的最有效的手段是在智能合约被部署到以太坊区块链之前,对其进行充分的安全测试,找出安全漏洞并修复.模糊测试是目前以太坊智能合约最为主流的动态安全测试技术,其通过模糊器生成大量测试用例执行合约,以检测出安全漏洞.目前的智能合

13、约模糊测试工具主要以基于变异的灰盒模糊测试为主,通常使用轻量级的程序插桩技术,利用执行测试用例得到的合约覆盖信息,来引导测试用例的变异过程.但这些方法要么难以探索智能合约深层次的状态,要么难以覆盖具有严格条件守卫的合约分支代码,因此无法全面检测漏洞.针对以上问题,本文提出了一种基于深度学习和信息反馈引导的智能合约模糊测试方法.首先使用符号执行方法,构造以太坊智能合约交易序列数据集,再使用神经网络模型,在数据集上进行训练,构建智能合约交易生成模型,然后利用模型生成模糊测试初始种子,以提升合约覆盖率为目标对智能合约进行信息反馈引导的模糊测试,根据测试用例的执行结果,检测智能合约的安全漏洞.该方法能

14、高度覆盖智能合约代码,并能有效检测智能合约中存在的安全漏洞,具有良好的应用效果.相关工作文献 提出了一系列智能合约静态分析测试方法,根据预定义的漏洞类型分析和检测合约中的漏洞或问题,然后通过逐一匹配现有漏洞来给出检测结果.但这类方法没有分析运行后的动态信息,致使遗漏潜在漏洞.文献 使用符号执行方法对智能合约进行逐路径推理,通过求解路径约束来获得可行输入,但是目前的技术依旧存在路径爆炸和复杂约束求解的问题.因此,本文主要利用轻量级的静态分析技术来构造被测合约的控制流程图,从而获取覆盖率和分支距离信息.使用符号执行方法构造交易序列数据集,基于深度学习构建智能合约交易生成模型,在数据集上训练后的模型

15、保留了符号执行方法探索合约状态空间的能力,同时其消耗的计算资源比符号执行方法更少.在以太坊智能合约动态安全测试技术中,模糊测试是最为主流的方法.J i a n g等 提出的C o n t r a c t F u z z e r是第一个检测合约安全漏洞的黑盒模糊测试工具,但其随机生成测试用例,无法有效覆盖合约代码的深层次路径,因此可能会错过一些安全漏洞.H e等 提出的I L F是一种基于神经网络的灰盒模糊测试框架,根据被测合约的历史输入序列生成新的输入,执行并分析漏洞.G r i e c o等 提出的E c h i d n a是一个自动生成测试以检测断言和用户自定义属性中的违规行为的灰盒模糊工

16、具.N g u y e n等 提出的s F u z z借鉴传统的模糊测试工具A F L 并采用反馈自适应模糊策略来提高测试用例的覆盖率.但目前的灰盒模糊方法要么难以有效地变异交易序列来探索智能合约可能的状态,要么难以覆盖具有严格条件守卫的智能合约分支代码.因此,本文提出了一种基于深度学习和信息反馈引导的模糊测试方法,使用能有效探索智能合约可能状态空间的测试用例作为初始种子,基于覆盖率和分支距离信息反馈引导模糊测试过程,以提升模糊测试对智能合约的代码覆盖率,并有效检测智能合约中的安全漏洞.问题描述与基本思路在智能合约测试中,一些安全漏洞需要在深层次状态下才能够被触发.图给出了一个智能合约D e

17、e p S t a t e.若要触发第行的漏洞,则需要连续调用s e t Y(),c o p y Y X()和B a r()这种方法,或者需要在调用B a r()之前调用 次i n c r e a s e X(),使合约状态x 满足条件以执行a s s e r t语句.探索合约深层次状态往往需要执行特定的交易序列.符号化执行方法能生成交易探索合约状态,但随着交易序列长度的增加,合约可能的状态数量呈指数增长,符号化执行方法的效率将大幅降低.智能合约中具有严格条件守卫的分支代码在测试时很难被覆盖,图给出了一个智能合约H a r d T o C o v e r.第行和第行的分支代码均通过严格条件守卫

18、,若要覆盖分支代码,则测试用例必须使用特定的参数调用f o o方法.由于变量x的类型为i n t ,如果按均匀分布随机生成测试输入,那么只有/的概率生成特定参数.对于简单条件守卫的分支代码,使用符号化执行方法分析合约能有效得到能通过条件的测试输入,但在上述例子中,由于第行代码中的非线性计算,符号化执行方法受到底层约束求解器的限制可能无法求解到合适的输入.c o n t r a c tD e e p S t a t e i n t p r i v a t ex;i n t p r i v a t ey;c o n s t r u c t o r()p u b l i cx;y;f u n c t

19、 i o nB a r()p u b l i cv i e wr e t u r n s(i n t )i f(x)a s s e r t(f a l s e);r e t u r n;r e t u r n;f u n c t i o ns e t Y(i n t n e w Y)p u b l i c y n e wY;f u n c t i o ni n c r e a s e X()p u b l i c x;f u n c t i o nc o p y Y X()p u b l i c xy;图具有深层次状态的S o l i d i t y智能合约示例F i g E x a m p

20、l eo fS o l i d i t ys m a r t c o n t r a c t sw i t hd e e ps t a t e c o n t r a c tH a r d T o C o v e r f u n c t i o nf o o(i n tx)i n ty xx ;i f(y )i f(y )图具有严格条件守卫分支代码的S o l i d i t y智能合约示例F i g E x a m p l eo fS o l i d i t ys m a r t c o n t r a c t s f o rb r a n c hc o d ew i t hs t r i

21、c t c o n d i t i o ng u a r d s为解决上述问题,本文提出了一种智能合约模糊测试方法,整体思路如图所示,针对智能合约深层次状态的有效覆盖问题,本文方法首先使用符号执行方法来构造能探索合约深层次状态的交易序列数据集,然后使用神经网络构建智能合约交易生成模型,训练后的模型保留了符号执行方法探索合约状态空间的能力,并以更低的时间复杂度生成交易.使用模型构造模糊测试初始种子,提高对合约深层次状态的覆盖.针对严格条件守卫的分支代码的有效覆盖问题,本文方法在信息反馈引导的模糊测试中引入分支距离,以提升覆盖率和减小测试用例与严格条件守卫的基本块的分支距离为引导方向,更新模糊测试

22、种子,从而提高对智能合约严格条件C o m p u t e rS c i e n c e计算机科学V o l ,N o ,S e p 守卫的分支代码的覆盖.图本文方法的整体思路F i g O v e r a l l i d e ao f t h ep r o p o s e dm e t h o d基于深度学习构建智能合约交易生成模型本文方法根据C a d a r等 的研究,使用覆盖率优化搜索的启发式搜索策略的符号执行方法分析合约,构造出探索合约深层次状态的交易序列数据集.参考H e等 的研究,用神经网络构建智能合约交易生成模型.构造智能合约交易序列数据集首先收集 以 太 坊S o l i d

23、 i t y智 能 合 约 源 代 码,然 后 编 译部署合约,本文在本地私有以太坊网络上成功部署了 条智能合约.然后通过轻量级的静态分析技术生成合约的控制流程图(C o n t r o lF l o wG r a p h,C F G),并构造合约方法依赖图.在部署的每条智能合约上,应用C a d a r等 提出的算法,使用覆盖率优化搜索的启发式搜索策略的符号执行方法分析合约,为每个合约生成一条能最大程度覆盖合约代码的最长的交易序列,代表对合约深层次状态的探索.符号执行方法生成 的 交 易 序 列 无 法 直 接 用 于 模 型 训练,需要对其进 行 特征 提取,构造 历史 交 易特 征矩 阵

24、.特征矩阵由合约各个公有方法的语义特征向量构成,语义特征可分为两类,一是方法本身的语义特征(包括方法参数、操作码、方法名称),二是与 历史 交易 相关 的 语义 特征(包括方法的返回操 作 码、交 易 数 占 比、覆 盖 率).最 终 加入到训练数据集 中的 是特 征矩 阵 与下 一个 交 易的 二元 组序列,其中的下一个交易即是模型中有监督学习任务的标签.最后将数据集按照 的比例划分为训练集、验证集、测试集.构建智能合约交易生成模型本文方法中的智能合约交易生成模型的神经网络结构如图所示.图智能合约交易生成模型的神经网络结构F i g N e u r a l n e t w o r ka r

25、c h i t e c t u r e f o r s m a r t c o n t r a c t t r a n s a c t i o ng e n e r a t i o nm o d e l首先模型输入能表示交易序列信息的特征矩阵,然后图卷积神经网络(G r a p hC o n v o l u t i o nN e t w o r k,G C N)以特征矩阵与合约方法依赖图为输入,捕获合约公有方法间的依赖关系,输出合约的图嵌入矩阵,并将其作为s t a t e_n n和f u n c_n n的 输 入.长 短 期 记 忆 网 络(L o n g S h o r t T e r m

26、 M e m o r y,L S TM)是循环神经网络(R e c u r r e n tN e u r a lN e t w o r k,R NN)的变 体,相 比R NN,L S TM在 处 理 长 序 列 时 有 更 好 的 表现,本文方法在I L F 模型结构的基础上,使用L S TM学习得到能表示合约历史交易序列信息的状态矩阵hi,并将其作为后续f u n c_n n,a r g s_n n,s e n d e r_n n和a m o u n t_n n等分类赵明敏,等:基于深度学习和信息反馈的智能合约模糊测试方法子模型的输入.这些分类子模型使用全连接层(F u l l yC o n

27、 n e c t e dl a y e r s,F C)分别输出合约方法f u n c、参数a r g s、发送者s e n d e r和以太币(E TH)数量a m o u n t的概率分布,根据概率分布选择元素,构造出能最大覆盖合约的交易.由于合约方法可能有多个参数,因此在a r g s_n n分类子模型中也使用了L S TM,为生成第j个参数的概率分布,L S TM以第j个参数的输出和上一个隐藏层状态为输入,输出新的隐藏层状态,然后通过F C生成在参数集合中的概率分布.信息反馈引导的模糊测试本文方法使用模型构造高质量的初始种子,在迭代中不断更新种子,且通过交叉、变异得到大量新的测试用例,

28、根据执行结果检测漏洞.构造模糊测试初始种子首先对被测合约进行预处理,部署合约并生成合约C F G和合约方法依赖图,后续根据合约C F G获取合约代码覆盖信息和计算测试用例到未覆盖分支之间的距离.在使用智能合约交易生成模型生成第一个交易时,合约处于初始状态,交易序列为空,此时特征矩阵中只包含合约方法本身的语义特征,与历史交易相关的语义特征均为初始值.执行交易后,根据执行信息更新特征矩阵,然后模型根据更新后的特征矩阵生成下一个交易.使用模型迭代生成交易,直至生成的交易序列达到预定义长度.最后为被测合约构造若干交易序列(即测试用例),形成模糊测试的初始种子,这些种子相比随机构造的初始种子能探索合约深

29、层次状态,并能有效覆盖合约代码.基于覆盖率和分支距离选择测试用例为了覆盖智能合约中严格条件守卫的分支代码,本文方法结合覆盖率适应度函数与分支距离法 适应度函数对测试用例进行选择.根据智能合约的特点,覆盖率适应度函数应用了A F L 中的适应度函数,即能覆盖一个新的合约基本块的测试用例具有高适应度.这种策略能快速覆盖大多数基本块,但是该策略没有充分利用在测试过程中获得的合约分支信息,在测试后期难以发现新的基本块,尤其是具有严格条件守卫的合约分支中的基本块,分支距离法适应度函数可以解决该问题.分支距离法在计算适应度时,判断测试用例产生的合约执行路径与目标分支的偏移大小.本文方 法结 合N g u

30、y e n等 的工作,为了加快适应度计算,只判断测试用例与其执行后刚好未被覆盖的基本块之间的分支距离.所谓刚好未被覆盖的基本块,指测试用例在执行后会覆盖C F G中的节点,被覆盖节点的出边连接的节点如果没有被覆盖,则被称为刚好未被覆盖的基本块.在高质量的初始种子的基础上,基于执行后的测试用例的反馈信息选择合适的测试用例更新种子,进一步地提高了种子质量.交叉和变异模糊测试种子本文方法针对智能合约交易和方法参数的特点,提出了特定的测试用例染色体编码方式,将测试用例即交易序列视为染色体,染色体中的每个基因是若干交易,基因的顺序与交易的顺序相同.每个基因中包括合约方法的应用二进制接口(A p p l

31、i c a t i o nB i n a r yI n t e r f a c e,A B I)规格说明以及实际的参数值列表.本文方法针对测试用例染色体的交叉操作发生在序列级别,即对 交 易 序 列 按 预 定 概 率 进 行 交 叉,使 用c r o s s o v e r_ p o i n t和c r o s s o v e r_ p o i n t两种交叉算子,c r o s s o v e r_ p o i n t随机选择一个位置,将两个交易序列分别分成两段,然后交换第二个片段生成两个新序列.c r o s s o v e r_ p o i n t则随机选择两个位置,将两个交易序列分别

32、分成段,然后交换中间的片段生成两个新序列.本文方法针对测试用例染色体的变异操作既发生在序列级别,又发生在基因级别.序列级别的变异算子包括增加交易、删除交易和交换交易种.基因级别的变异是对测试用例中每个交易的方法参数和E TH金额进行变异,在对方法的参数进行变异时,先根据A B I规格说明中的参数类型将参数转为内存中实际的二进制表示,完成变异后,再将二进制表示根据参数类型解码为实际的参数.在对E TH金额进行变异前,首先根据方法的A B I规格说明判断该方法是否可以接收E TH,如果可以,则将其转为二进制表示使用变异算子生成新值.实现的基因级别的变异算子包括m u t a t i o n_r e

33、 v e r s e_b y t e s和m u t a t i o n_s w a p_b y t e s两种,m u t a t i o n_r e v e r s e_b y t e s以指定的变异率翻转二进制表示中的每一个比特位,m u t a t i o n_s w a p_b y t e s以指定的变异率交换二进制表示中的两个比特位.实验验证本文根据所提方法使用p y t h o n语言实现了原型工具D L F F u z z(U s i n g D e e p L e a r n i n ga n dI n f o r m a t i o n F e e d b a c kG u

34、 i d a n c e t oF u z z),并选取来自以太坊上的真实的S o l i d i t y智能合约作为实验对象,通过实验探究本文方法对实际的智能合约的覆盖效果和对安全漏洞的检测效果.实验时,首先训练智能合约交易生成模型,使用交叉熵损失函数计算损失,使用A d a m梯度下降优化算法优化损失,采用等间距调整学习率的策略训练,然后在测试集上评估模型.模型在f u n c分类、a r g s分类、s e n d e r分类和a m o u n t分类上的准确率分别为 ,和 ,与随机方法相比,分别提升了 ,和 个百分点,因此可使用模型构造模糊测试初始种子.实验设计实验对象为从以太坊收集

35、的 条S o l i d i t y智能合约,合约的编译器版本为 x.按照合约编译后的E VM指令数将智能合约分为 个大规模合约(指令数超过 )和 个小规模合约(指令数小于 ).在 个实验对象中共有类、个安全漏洞,其中包括 个锁定漏洞、个泄露漏洞、个自杀漏洞、个区块参数依赖漏洞、个未处理的异常漏洞和个受到控制的代理调用漏洞.实验使用的C P U为I n t e l(R)C o r e(TM)i ,内存为 G B,G P U为G e F o r c eG T X T i,显存为 G B,操作系统为U b u n t u L T S.采用指令覆盖率和漏洞检测率进行结果评价,指 标 越 高,代 表

36、其 越 能 全 面 地 找 到 安 全 漏 洞.C o m p u t e rS c i e n c e计算机科学V o l ,N o ,S e p 指令覆盖率的计算式如式()所示,漏洞检测率的计算式如式()所示.指令覆盖率被覆盖的指令数量指令总数量 ()漏洞检测率检测出的漏洞数量漏洞总数量 ()实验:本文方法的覆盖率和漏洞检测能力评估使用D L F F u z z对各个实验对象进行模糊测试,设定测试时间为m i n.图给出了D L F F u z z的代码覆盖结果,D L F F u z z在 个合约上得到了 以上的指令覆盖率,在所有实验对象上平均得到了 的指令覆盖率.图下方的直方图显示了执

37、行初始种子中的测试用例得到的指令覆盖率,在所有实验对象上平均得到了 的初始指令覆盖率,D L F F u z z在初始种子的基础上,迭代生成大量新的测试用例,得到图中折线表示的最终覆盖率.图D L F F u z z的代码覆盖结果F i g C o d ec o v e r a g er e s u l to fD L F F u z z分析在不同规模合约上的覆盖率可以发现,在大规模和小规模合约上的平均指令覆盖率分别为 和 ,这表明本文方法在不同规模的智能合约上均能得到高的指令覆盖率.表列出了D L F F u z z的漏洞检测结果,D L F F u z z检测到了 个实验对象中的 的安全漏

38、洞.本文方法在各类漏洞上均实现了 以上的漏洞检测率,并在自杀、泄露、锁定和受到控制的代理调用这类漏洞上检测到了实验对象中的所有漏洞.表D L F F u z z的漏洞检测结果T a b l eV u l n e r a b i l i t yd e t e c t i o nr e s u l t so fD L F F u z z漏洞类型发现的漏洞数量漏洞检测率/自杀 泄露 锁定 区块参数依赖 未处理的异常 受到控制的代理调用 综合以上分析,本文方法在对智能合约进行模糊测试时,能高度覆盖智能合约代码,并能有效检测合约中存在的安全漏洞,证明了本文方法的可行性.实验:本文方法与I L F,s F

39、 u z z,E c h i d n a的比较实验通过在相同实验环境下分别比较不同工具的智能合约覆盖率和漏洞检测率,证明了本文方法的有效性.E c h i d n a需要手动为每个合约编写测试预言以检测安全漏洞,因此仅使用E c h i d n a比较 代 码 覆 盖 能 力.s F u z z使 用 的 覆 盖 率 标 准 是合约的分支覆盖率,无法与其他工具直接进行比较,因此在实验中仅使用s F u z z比较漏洞检测能力.图给出了D L F F u z z,I L F和E c h i d n a的合约覆盖率结果.D L F F u z z与I L F,E c h i d n a相比,整体覆

40、盖率分别提升了 ,.图中的结果表明,D L F F u z z无论是在整体上,还是在不同规模的合约上,均比I L F和E c h i d n a实现了更高的平均指令覆盖率.图D L F F u z z,I L F和E c h i d n a的合约指令覆盖率F i g I n s t r u c t i o nc o v e r a g eo f c o n t r a c t so fD L F F u z z,I L Fa n dE c h i d n a图给出了D L F F u z z,I L F和s F u z z的漏洞检测结果.D L F F u z z与I L F,s F u z

41、z相比,漏洞平均检测 率 分别 提升 了 ,.图中的结果表明,D L F F u z z发现了I L F所发现的所有漏洞,且检测到了更多的泄露和区块参数依赖两类漏洞.s F u z z支持检测的漏洞类型与D L F F u z z重合的只有类,但D L F F u z z比s F u z z检测到了更多的区块参数依赖和未处理的异常类漏洞.图D L F F u z z,I L F和s F u z z的漏洞检测结果F i g V u l n e r a b i l i t yd e t e c t i o nr e s u l t so fD L F F u z z,I L Fa n ds F u

42、 z z综合以上分析,无论是对智能合约的代码覆盖能力,还是漏洞检测能力,D L F F u z z相比其他个工具均有更好的表现.结束语为了提高模糊测试对以太坊智能合约安全测试的有效性,本文提出了一种基于深度学习和信息反馈引导的模糊测试方法.通过实验验证,并与现有的较为先进和流行的模糊测试方法进行比较,发现本文方法有效提高了代码覆盖率,并能检测到更多的安全漏洞.本文方法还存在一些不足,未来值得进一步研究,包括但不局限于:未来可以探索不同的变异算子对模糊测试检测效果的影响,并可以考虑在设计变异算子时利用测试用例执行结果的反馈信息,来进一步提高模糊测试的效率;未来还可进一步扩充本文方法的测试预言,以

43、支持检测更多类型的智能合约安全漏洞.参 考 文 献T I ANG H,HU Y H,CHE N XF R e s e a r c hp r o g r e s so fB l o c k赵明敏,等:基于深度学习和信息反馈的智能合约模糊测试方法C h a i nS y s t e m A t t a c ka n dd e f e n s et e c h n o l o g yJ J o u r n a lo fS o f t w a r e,():HU TY,L IZC,L IBX,e t a l C o n t r a c t s e c u r i t ya n dp r i v a c

44、 ys e c u r i t yo fs m a r tc o n t r a c t sJ C h i n e s eJ o u r n a lo fC o m p u t e r s,():M I L L E RBP,F R E D R I K S E N L,S OB A nE m p i r i c a lS t u d yo ft h eR e l i a b i l i t yo fUN I X U t i l i t i e sJ C o mm u n i c a t i o n so ft h eA CM,():T I KHOM I R OV S,V O S K R E S

45、E N S KAYA E,I VAN I T S K I YI,e t a l S m a r t C h e c k:S t a t i cA n a l y s i so fE t h e r e u mS m a r tC o n t r a c t sCP r o c e e d i n g so f t h e s t I n t e r n a t i o n a lW o r k s h o po nE m e r g i n gT r e n d s i nS o f t w a r eE n g i n e e r i n g f o rB l o c k c h a i n

46、 N e wY o r k:A s s o c i a t i o nf o rC o m p u t i n gM a c h i n e r y,:L I U H,L I U C,Z HA O W,e ta l S G r a m:T o w a r d s S e m a n t i c Aw a r eS e c u r i t yA u d i t i n gf o rE t h e r e u mS m a r tC o n t r a c t sCP r o c e e d i n g s o f t h e r dA CM/I E E EI n t e r n a t i o

47、n a lC o n f e r e n c e o nA u t o m a t e dS o f t w a r eE n g i n e e r i n g M o n t p e l l i e r:A CM,:G R E C H N,K ON G M,J UR I S E V I CA,e t a l M a d M a x:S u r v i v i n go u t o f G a sC o n d i t i o n si nE t h e r e u m S m a r tC o n t r a c t sJ P r o c e e d i n g so f t h eA C

48、Mo nP r o g r a mm i n gL a n g u a g e s,(O O P S L A):Y EJ,MA M,L I N Y,e ta l C l a i r v o y a n c e:C r o s s C o n t r a c tS t a t i cA n a l y s i sf o rD e t e c t i n gP r a c t i c a lR e e n t r a n c y V u l n e r a b i l i t i e si nS m a r tC o n t r a c t sCP r o c e e d i n g so f t

49、 h eA CM/I E E E n dI n t e r n a t i o n a lC o n f e r e n c eo nS o f t w a r eE n g i n e e r i n g:C o m p a n i o nP r o c e e d i n g s N e wY o r k:A s s o c i a t i o nf o rC o m p u t i n gM a c h i n e r y,:L UUL,C HUDH,O L I C K E LH,e t a l M a k i n gS m a r tC o n t r a c t sS m a r t

50、 e rCP r o c e e d i n g so ft h e A CM S I G S A C C o n f e r e n c eo n C o m p u t e r a n d C o mm u n i c a t i o n s S e c u r i t y V i e n n a:A CM,:N I K O L I CI,K O L L UR IA,S E R G E YI,e t a l F i n d i n gT h eG r e e d y,P r o d i g a l,a n dS u i c i d a lC o n t r a c t s a tS c a

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服