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

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


                 作为初步筛选工具, 帮助验证并过滤掉明显无关的漏洞, 为模糊测试提供输入种子; 静态分析中所提取的规则可与
                 深度学习模型结合, 以增强模型的可解释性, 提升整体检测系统的性能.
                  3.1.6    基于  LLM  的智能合约层漏洞检测方法小结
                    表  4  对基于  LLM  的智能合约层漏洞检测方法进行了总结, 涵盖了              LLM  的用途、应用技术、相关文献、方
                 法概述、发表会议/期刊以及发表年份. LLM            的引入为智能合约漏洞检测开辟了新的方向, 当前主要在两个方面得
                 到了应用: 作为主要检测引擎以及与传统方法相结合.

                                         表 4 基于大语言模型的智能合约层漏洞检测方法

                    用途      应用技术      相关文献                     方法概述                     会议/期刊    发表年份
                                              评估ChatGPT在智能合约漏洞检测中的表现, 比较其与现有
                          基础模型应用        [17]                                             arXiv    2023
                                              漏洞检测工具的效果
                             对抗性        [118]  将漏洞检测任务分为生成和辨别两个阶段, 提高漏洞识别能              TPS-ISA   2023
                              生成              力并降低误报率
                                              结合代码切片和提示调优的混合方法, 以充分利用预训练模
                   主要检      提示调优        [119]  型在智能合约领域的潜力                               ISSRE    2023
                   测引擎
                            连贯推理        [18]  使用思维链提示模拟专业审计员的审计流程, 评估了GPT-4              arXiv    2024
                                              在智能合约漏洞检测方面的性能
                           微调与agent     [121]  结合微调和基于LLM的4个代理 (agent), 实现智能合约漏洞         ICSE     2024
                              结合              检测并提供解释
                            模型微调        [122]  对LLM进行微调, 检测智能合约中逻辑漏洞                     arXiv    2024
                                              通过LLM从现有的属性中提取信息, 并生成适用于新的智能
                          形式化属性生成       [125]                                            NDSS     2024
                                              合约代码的属性, 进而检测合约漏洞
                             不变量        [54]  通过微调和提示策略, 利用多模态信息进行推理并生成不变                 SP      2024
                              生成              量, 然后通过检查不变量来定位漏洞
                  与传统方    结合静态分析              结合了GPT和静态分析以检测智能合约中的逻辑漏洞
                   法结合                  [81]                                             ICSE     2024
                                              通过利用LLM智能指导和优先排序模糊活动, 优化智能合约
                          指导模糊测试        [126]                                            arXiv    2024
                                              自动化检测
                            模糊测试        [127]  提出基于Chain-based LLM的智能合约模糊测试种子对抗生          ASE     2024
                            种子生成              成方法, 利用LLM的深度语义理解能力辅助种子集生成

                    在  LLM  作为主要检测引擎的应用中, LLM         被作为基础模型用于漏洞检测, 并在此基础上进行思维链推理, 以
                 及通过微调    LLM  以适配下游漏洞检测任务. 此外, 还设计了多个基于               LLM  的  agent, 通过让  LLM  扮演不同角色
                 来执行漏洞检测任务. 此类方法充分利用了              LLM  在文本理解、推理和生成方面的强大能力, 展现了其在智能合约
                 漏洞检测中的潜力. 然而, 当前不同          LLM  以及提示设计对检测效果的影响较大, 且在不同漏洞类型上的检测表现
                 差异显著, 模型的稳定性和检测效果是目前存在的问题.
                    在  LLM  与传统方法结合的应用中, LLM        有效地融入了静态分析和模糊测试等传统漏洞检测方法中. 在静态
                 分析方面, LLM   被引入到形式化验证方法中自动生成形式化属性, 以及利用                    LLM  根据场景和属性匹漏洞函数, 并
                 结合静态分析检查漏洞是否存在. 在模糊测试方面, LLM                主要用于指导模糊测试活动以及生成测试种子, 从而提
                 高了漏洞检测的覆盖率, 并生成质量更高的测试样例. 尽管                  LLM  与传统方法的结合优化了检测流程, 但仍面临挑
                 战. 例如, LLM  生成的测试种子或形式化属性可能存在语义偏差, 需依赖静态分析工具二次验证, 增加了流程复杂
                 度. 同时, LLM  的解释性不足使得其推理过程难以追溯, 导致安全审计人员对检测结果的信任度降低. 尽管如此,
                 LLM  与传统方法结合的应用已初见成效, 未来研究可进一步探索                   LLM  在检测流程中的更广泛应用, 例如同时利
                 用  LLM  生成种子并指导模糊测试活动, 以及探索            LLM  与符号执行、污点分析和基于中间表示的方法相结合的
                 应用.
                    基于  LLM  的检测方法在检测特性和适用场景上存在差异. 从方法特性来看, LLM                     作为主要检测引擎在自然
                 语言推理、代码意图理解和复杂逻辑漏洞发现方面更具优势, 适用于需结合合约语义的漏洞类型; 而                                LLM  与传统
                 方法结合则更擅长利用结构化分析             (如控制流追踪、数据依赖检测) 提升检测覆盖率, 适用于需精准模式匹配的
   362   363   364   365   366   367   368   369   370   371   372