Page 395 - 《软件学报》2025年第12期
P. 395

5776                                                      软件学报  2025  年第  36  卷第  12  期


                 Mythril 或  Smart-Target 检测, 但是实验结果记录为漏报的情况. 需要说明的是, 在实验过程中我们检查了                   Slither
                 等工具的漏洞报告, 均没有在冗余标记的语句位置产生相应的漏洞报告, 因此冗余标记不会对实验结果中的                                    TP
                 或  FP  产生影响. SCVHunter 数据集同样为人工标注数据集, 但仅提供文件级的漏洞标注信息, 为了进一步确定漏
                 洞语句的具体行号, 我们利用         GPT-4o  自动确认漏洞目标并得到行级别标注的数据集. 上述                2  种数据集包含了重
                 入、权限控制以及整型溢出等智能合约中常见的安全漏洞, 可以在一定程度上确保数据集的代表性以及本文所提
                 方法的泛化性, 未来工作考虑使用更多数据集进行实验验证, 以更全面的评估本文所提方法的有效性. 此外, 本文
                 仅在  Mythril 的基础上实现了目标制导符号执行, 对于           Oyente (https://github.com/enzymefinance/oyente)、Manticore
                 (https://github.com/trailofbits/manticore) 等其他符号执行工具, 可能由于符号执行的实现不同导致方法的性能有所
                 差异. 本文所提出的目标依赖语句分析和可达性分析等步骤独立于符号执行的具体实现形式, 未来工作可尝试将
                 本方法应用到其他基于符号执行的智能合约安全漏洞检测方法中, 比较不同符号执行技术对安全漏洞检测性能的
                 影响.
                    构造有效性分析主要关注实验使用的评估指标. 本文使用安全漏洞检测领域常用的查全率、查准率以及                                    F1
                 值作为评估指标, 并且增加了符号执行时间开销的统计与对比. 在安全漏洞复现场景的相关实验中, 使用漏洞复现
                 领域常用的复现数量、复现成功率以及复现时间作为方法的评价指标                       [47,48] , 尽可能从多个角度评价本方法的有效性.
                  7   总结与展望

                    本文提出了一种基于目标制导符号执行的智能合约安全漏洞检测方法. 首先根据静态分析报告或人工标注提
                 供的目标语句位置, 分析与目标语句存在依赖关系的目标依赖语句; 然后进行可达性分析, 通过字节码构建控制流
                 图, 定位目标语句以及目标依赖语句所在的基本块, 遍历并剪枝控制流图生成制导信息; 最后基于制导信息优化符
                 号执行的路径探索策略, 跳过与目标无关的基本块, 减少需要被分析的基本块数量以及求解路径条件的时间, 高效
                 地对目标语句进行安全漏洞检测. 实验结果表明, Smart-Target 在漏洞检测以及漏洞复现场景中均优于非目标制导
                 的  Mythril 工具, 减少了  60.76%  的安全漏洞检测时间以及      92.16%  的复现时间, 提高了符号执行效率. 此外, 目标
                 依赖语句分析能够使       Smart-Target 多检测到  22.02%  的安全漏洞, 有效提高了漏洞检测能力.
                    未来工作计划进一步针对复杂合约或存在嵌套调用的合约进行安全漏洞检测, 这类合约中可能存在多个漏洞
                 目标, 可考虑使用多目标制导优化本文所提方法. 一方面, 可以根据各目标点的相关性、路径距离或探索难度等信
                 息计算智能合约中各基本块的适应度, 在符号执行中基于适应度优化探索策略; 另一方面可以逐一进行目标制导
                 符号执行, 借鉴现有工作中对约束求解的优化方法                [49] , 在符号执行过程中记录各个语句对应状态的路径条件, 在
                 对其余目标点进行分析时, 根据状态信息匹配已知的路径条件以及约束求解结果, 提高符号执行效率. 此外, 还可
                 将本文所提方法与并行符号执行、重用约束求解                 [50] 等策略相结合, 进一步提高安全漏洞检测和复现的效率.

                 References:
                  [1]   Yuan Y, Wang FY. Blockchain: The state of the art and future trends. Acta Automatica Sinica, 2016, 42(4): 481–494 (in Chinese with
                     English abstract). [doi: 10.16383/j.aas.2016.c160158]
                  [2]   Zheng ZB, Xie SA, Dai HN, Chen XP, Wang HM. An overview of blockchain technology: Architecture, consensus, and future trends. In:
                     Proc. of the 2017 IEEE Int’l Congress on Big Data. Honolulu: IEEE, 2017. 557–564. [doi: 10.1109/BigDataCongress.2017.85]
                  [3]   Ouyang LW, Wang S, Yuan Y, Ni XC, Wang FY. Smart contracts: Architecture and research progresses. Acta Automatica Sinica, 2019,
                     45(3): 445–457 (in Chinese with English abstract). [doi: 10.16383/j.aas.c180586]
                  [4]   Christidis K, Devetsikiotis M. Blockchains and smart contracts for the Internet of Things. IEEE Access, 2016, 4: 2292–2303. [doi: 10.
                     1109/ACCESS.2016.2566339]
                  [5]   Azaria A, Ekblaw A, Vieira A, Lippman A. MedRec: Using blockchain for medical data access and permission management. In: Proc. of
                     the 2nd Int’l Conf. on Open and Big Data. Vienna: IEEE, 2016. 25–30. [doi: 10.1109/OBD.2016.11]
                  [6]   Alharby M, Aldweesh A, van Moorsel A. Blockchain-based smart contracts: A systematic mapping study of academic research (2018).
                     In: Proc. of the 2018 Int’l Conf. on Cloud Computing, Big Data and Blockchain. Fuzhou: IEEE, 2018. 1–6. [doi: 10.1109/ICCBB.2018.
                     8756390]
   390   391   392   393   394   395   396   397   398   399   400