Page 365 - 《软件学报》2026年第1期
P. 365

362                                                        软件学报  2026  年第  37  卷第  1  期


                 报告的异常结果或异常情况来识别漏洞, 包括基于生成和基于突变的方法. 基于深度学习的方法通常是将智能合
                 约进行特征提取, 然后构建深度神经网络作为检测模型, 包括单模态和多模态检测两类.


                                              表 3 传统智能合约层漏洞检测方法

                  方法类别     方法名称     相关文献                     方法概述                     会议/期刊      发表年份
                                             基于静态程序切片框架, 通过逻辑编码和约束霍恩子句定
                                      [41]                                              CSF       2023
                                             义安全性模式, 以验证合约的安全属性
                                             将智能合约转换为LLVM bitcode的中间表示, 结合抽象解
                                      [103]  释和符号模型检测技术进行验证                             NDSS      2018
                          形式化验证
                                             通过所有官方测试套件的EVM可执行规范, 构建了完整
                                      [104]                                             CSF       2018
                                             的EVM形式化语义
                                             开发了Solidity到F*的翻译工具和 EVM 字节码的反编译
                                      [102]                                             PLAS      2016
                                             器, 以确保合约在不同级别的形式化验证
                                             利用混合分析方法, 在探索阶段识别漏洞, 并在精炼阶段
                                      [55]                                               SP       2022
                                             通过符号求解和值摘要分析验证漏洞真实性
                                      [68]   基于符号抽象的轻量级、可扩展智能合约分析工具                     CCS       2018
                           符号执行              通过逆向工程智能合约的字节码, 构建其控制流图, 使用               USENIX
                                      [77]                                                        2018
                                             符号执行技术分析合约的执行路径                           Security
                                             构造控制流图, 执行符号状态, 通过约束进行可达性检验
                                       [5]   以降低误报率                                     CCS       2016
                  静态分析
                                             利用识别出的访问控制状态变量, 执行跨过程的上下文敏
                                      [78]                                              ICSE      2023
                                             感污点分析
                                             利用局部抽象技术, 有效地捕捉潜在的漏洞路径, 提高合
                                      [109]                                            VMCAI      2022
                           污点分析              约验证的效率和精度
                                             建模合约中的数据清理机制, 追踪未清理的数据在合约中
                                      [108]                                             PLDI      2020
                                             的传播路径, 识别绕过守卫机制的漏洞
                                      [107]  使用污点分析追踪未经验证输入如何在合约中传播                    ACSAC      2018
                                             从字节码和历史交易中提取状态依赖关系, 基于状态依赖
                                      [48]                                              ISSTA     2023
                                             图进行分析
                                             将合约转换为中间表示SlithIR, 以便于分析合约的语义信
                                      [82]                                             WETSEB     2019
                           基于中间              息, 识别合约漏洞
                            表示               通过对Solidity源代码进行词法和语法分析, 生成XML解
                                      [47]                                             WETSEB     2018
                                             析树作为中间表示
                                             通过将低级字节码表示转换为高层次规则化表示, 极大地
                                      [110]                                             ATVA      2018
                                             扩展了字节码分析的能力
                                             在生成函数调用序列时, 明确考虑函数之间的数据依赖关
                                      [38]                                              TIFS      2023
                                             系以促进探索更丰富的状态
                                             通过改变事务序列, 并使用数据流和控制流引导输入生
                                      [52]                                              TDSE      2022
                           基于生成              成, 以发现安全漏洞
                                      [112]  基于元启发式搜索算法, 自动生成测试用例                       ICSE      2022
                                             从现实世界智能合约的交易记录中学习, 为测试智能合约
                                      [37]                                             ICSME      2021
                                             生成实际输入
                                             设计了序列感知突变和种子掩码引导策略, 动态自适应能
                  模糊测试                [40]   量调整范式, 以平衡模糊活动的资源分配                        ICDE      2024
                                             一种结合两种新技术的引导突变策略, 结合动态依赖学习
                                      [39]                                             ICSME      2023
                                             和动态变量分析
                                             通过将智能合约字节码编译为原生C++代码, 使用结构感
                           基于突变       [53]                                             EuroS&P    2023
                                             知突变引擎, 生成有效的事务输入
                                             具有自适应调整突变算子的概率分布以选择突变算子的
                                      [45]                                              ESWA      2022
                                             能力, 动态地对种子进行不同的切片
                                             将突变应用于ESCs中整数溢出漏洞测试, 提出了5个专门 Tsinghua Sci
                                      [79]                                                        2022
                                             用于整数溢出漏洞的突变操作符                            Technol
   360   361   362   363   364   365   366   367   368   369   370