Fixing Vulnerabilities Potentially Hinders Maintainability
安全性是生产高质量软件的最重要要求。然而,几乎每周仍有大量漏洞被发现和修复。我们假设开发人员在修补漏洞时会影响其代码库的可维护性。本文评估了补丁的影响,以提高开源软件的可维护性的安全性。可维护性是基于Better Code Hub的10个准则模型来衡量的,包括1300个与安全相关的提交。结果表明,在41.90%的情况下,安全性和可维护性之间存在权衡,即,开发人员可能会妨碍软件的可维护性。我们的分析表明,38.29%的补丁增加了软件复杂性,37.87%的补丁增加了每单位LOC的百分比。我们的研究的影响是,代码库的变化,而修补漏洞需要格外小心执行;补丁风险评估工具应集成到CI/CD管道;计算机科学课程需要更新;和,更安全的程序设计语言是必要的。
2021-09-12 cs.CR cs.SE
Automated Vulnerability Injection in Solidity Smart Contracts: A Mutation-Based Approach for Benchmark Development
本研究提出基于突变注入的MuSe工具,自动向Solidity智能合约注入六种漏洞以生成基准,并用Slither验证,发现注入率因漏洞而异且静态分析工具检测不全,凸显了改进检测评估的需求。
2025-04-22 cs.SE
Vulseye: Detect Smart Contract Vulnerabilities via Stateful Directed Graybox Fuzzing
针对现有智能合约模糊测试工具状态反馈不足、测试资源浪费的问题,提出以漏洞为导向的有向状态灰盒模糊测试工具Vulseye,通过代码与状态双目标引导及新型适应度度量提升测试的有效性与效率。
2024-08-19 cs.SE
Silent Vulnerability-fixing Commit Identification Based on Graph Neural Networks
提出VFFINDER,一种基于图神经网络的自动化静默漏洞修复识别方法,通过带注释的AST捕获代码结构变化,在精确率、召回率和F1上显著优于现有方法并加速识别过程。
2023-09-15 cs.SE
Smart Contract Vulnerabilities, Tools, and Benchmarks: an Updated Systematic Literature Review
University of Salerno(萨莱诺大学)
本文通过系统性文献综述探讨了以太坊智能合约的漏洞,分析了自动化检测工具和基准评估方法,总结了192种漏洞分类、219种检测工具及133个基准测试案例。
2026-01-14 cs.SE
WANA: Symbolic Execution of Wasm Bytecode for Cross-Platform Smart Contract Vulnerability Detection
许多流行的区块链平台都支持智能合约来构建分散的应用程序。然而,智能合约中的漏洞给最终用户带来了严重的经济损失。对于EOSIO区块链平台,有效的漏洞检测器仍然有限。此外,现有的漏洞检测工具只能支持一个区块链平台。在这项工作中,我们提出了WANA,一个基于WebAssembly字节码符号执行的跨平台智能合约漏洞检测工具。此外,WANA提出了一组测试预言机,以检测基于WebAssembly字节码分析的EOSIO和以太坊智能合约中的漏洞。我们的实验分析表明,WANA可以高效地检测EOSIO和以太坊智能合约中的漏洞。
2020-08-05 cs.SE
Automated Fixing of Programs with Contracts
本文介绍了AutoFix,一种自动调试技术,可以修复通用软件中的错误。为了提供高质量的修复建议并实现整个调试过程的自动化,AutoFix依赖于以契约形式存在的简单规范元素(例如前置条件和后置条件)。使用契约增强了用于故障检测和定位以及验证修复的动态分析技术的精度。AutoFix支持工具唯一需要的用户输入是一个带有合同注释的错误程序;该工具根据其适用性的估计为故障生成一个经过验证的修复集合。在一个广泛的实验评估中,我们将AutoFix应用于不同成熟度和质量(实现和合同)的四个代码库中的200多个错误。AutoFix成功地修复了42%的错误,在大多数情况下,产生的纠正质量与合格的程序员编写的质量相当;使用的计算资源是适度的,在商品硬件上每次修复的平均时间低于20分钟。这些数字与自动化程序修复的最新技术水平相比毫不逊色,并证明了AutoFix方法可以成功地应用于减少现实世界场景中的调试负担。
2014-04-25 cs.SE
VFFINDER: A Graph-based Approach for Automated Silent Vulnerability-Fix Identification
针对开源项目静默漏洞修复难以识别的问题,提出基于图神经网络VFFINDER方法,利用AST结构特征区分修复与非修复提交,在36K+提交数据集上显著提升精确率、召回率和F1,并加速识别过程。
2023-09-05 cs.SE
PrAIoritize: Automated Early Prediction and Prioritization of Vulnerabilities in Smart Contracts
本研究提出PrAIoritize方法,结合LLM与NLP技术,利用智能合约缺陷领域词典及DistilBERT模型,实现以太坊智能合约代码审查中缺陷的自动化预测与优先级排序,性能显著优于现有模型,可降低人工分诊成本。
2024-05-15 cs.SE
ContractFuzzer: Fuzzing Smart Contracts for Vulnerability Detection
去中心化的加密货币的特点是使用区块链在没有中央机构的网络上的同行之间转移价值。智能合约是在区块链共识协议之上运行的程序,使人们能够在最小化信任的同时达成协议。数以百万计的智能合约已经部署在各种分散的应用程序中。这些智能合约中的安全漏洞对其应用程序构成了重大威胁。事实上,以太坊平台上智能合约中的许多关键安全漏洞已经给用户造成了巨大的经济损失。在这项工作中,我们提出了ContractFuzzer,一种新颖的模糊器,用于测试以太坊智能合约的安全漏洞。ContractFuzzer基于智能合约的ABI规范生成模糊输入,定义测试预言机来检测安全漏洞,仪表EVM记录智能合约运行时行为,并分析这些日志以报告安全漏洞。我们对6991份智能合约进行了模糊处理,高精度地标记了超过459个漏洞。特别是,我们的fuzzing工具成功地检测到了导致6000万美元损失的DAO合约漏洞,以及导致3000万美元损失和价值1.5亿美元的以太币冻结的Parity Wallet漏洞。
2018-08-03 cs.CR cs.SE
AutoMESC: Automatic Framework for Mining and Classifying Ethereum Smart Contract Vulnerabilities and Their Fixes
由于智能合约中的漏洞所带来的风险,其安全性近年来受到了极大的关注。然而,缺乏关于智能合约漏洞及其修复的开放数据集,从而可以进行数据驱动的研究。为此,我们提出了一种自动化方法,用于从GitHub和国家漏洞数据库中的常见漏洞和暴露(CVE)记录中挖掘和分类以太坊的智能合约漏洞及其相应的修复。我们在一个完全自动化的框架中实现了所提出的方法,我们称之为AutoMESC。AutoMESC使用七种最知名的智能合约安全工具,根据漏洞类型对收集到的漏洞进行分类和标记。此外,它还收集可用于数据密集型智能合约安全研究的元数据(例如,漏洞检测、漏洞分类、严重性预测和自动修复)。我们使用AutoMESC构建了一个样本数据集,并将其公开。目前,该数据集包含6700个以Solidity编写的智能合约的可行性修复对。我们从准确性、来源和相关性方面评估了构建数据集的质量,并将其与现有数据集进行比较。AutoMESC旨在持续收集数据,并通过GitHub和CVE记录中新发现的智能合约漏洞及其修复程序来更新相应的数据集。
2022-12-20 cs.CR cs.SE
Characterizing and Understanding Software Security Vulnerabilities in Machine Learning Libraries
机器学习(ML)库的应用在许多领域都有了巨大的增长,包括自动驾驶系统、医疗和关键行业。这些库的脆弱性导致了无法弥补的后果。然而,软件安全漏洞的特征还没有得到很好的研究。在本文中,为了弥合这一差距,我们迈出了表征和理解五个知名ML库的安全漏洞的第一步,包括Tensorflow,PyTorch,Sickit-learn,Pandas和Numpy。为此,我们总共收集了596个与安全相关的承诺,以探索五个主要因素:1)漏洞类型,2)根本原因,3)症状,4)修复模式,以及5)修复ML库中安全漏洞的工作。这项研究的结果可以帮助开发人员更好地了解不同ML库中的软件安全漏洞,并更好地了解它们的弱点。为了使我们的发现具有可操作性,我们进一步开发了DeepMut,一种自动化突变测试工具,作为我们发现的概念验证应用程序。DeepMut旨在评估ML库的现有测试套件是否足以对抗从本工作中研究的漏洞中提取的安全感知突变算子。我们在Tensorflow内核模块上应用了DeepMut,发现了超过1 k个现有测试套装没有考虑的活突变体。结果表明,我们的研究结果的有用性。
2022-03-12 cs.SE
SmartAxe: Detecting Cross-Chain Vulnerabilities in Bridge Smart Contracts via Fine-Grained Static Analysis
针对跨链桥智能合约的跨链漏洞检测难题,提出SmartAxe框架,通过概率模式推理和跨链流图检测访问控制缺陷与语义不一致,在真实数据集上取得较高准确率与召回率,并发现大量未知漏洞。
2024-06-23 cs.SE
A Fly in the Ointment: An Empirical Study on the Characteristics of Ethereum Smart Contracts Code Weaknesses and Vulnerabilities
背景:智能合约是在区块链上自动执行的计算机程序。其实施中的漏洞导致了加密货币的严重损失。智能合约在部署到以太坊区块链时变得不可变。因此,必须了解以太坊智能合约中漏洞的性质,以便在未来防止它们。现有的分类是存在的,但在几个方面受到限制。目标:我们的目标是描述用Solidity编写的以太坊智能合约中的漏洞,并统一现有的分类方案。方法:我们从公共编码平台和流行的漏洞数据库中提取了2143个漏洞,并使用卡片排序方法对其进行分类。我们在本文中针对以太坊区块链,因为它是第一个也是最受欢迎的支持智能合约部署的区块链,而Solidity是实现智能合约最广泛使用的语言。我们根据错误来源和影响设计了智能合约漏洞的分类方案。然后,我们将现有的分类方案映射到我们的分类。结果如下:由此产生的分类包括描述脆弱性误差来源的11个类别和描述潜在影响的13个类别。我们的研究结果表明,语言特定的编码和结构的数据流类别是占主导地位的类别,但发生的频率之间的数据源有很大的不同。结论:我们的研究结果使研究人员能够通过定义问题的各个维度来更好地理解智能合约漏洞,并通过基于文献的分类和定义类别的频率分布来支持我们的分类。
2022-03-28 cs.CR cs.SE
xFuzz: Machine Learning Guided Cross-Contract Fuzzing
智能合约交易越来越多地被交叉合约调用所交织。虽然已经开发了许多工具来识别一组常见的漏洞,但现有工具忽略了跨合同漏洞。跨合约漏洞是指存在两个以上交互合约时出现的可利用漏洞。然而,现有的方法仅限于同时分析最多两个合同。检测跨合约漏洞是非常重要的。多个交互合约的搜索空间比单个合约的搜索空间大得多。为了解决这个问题,我们提出了xFuzz,一个机器学习引导的智能合约模糊框架。机器学习模型用新特征(例如,字向量和指令),并用于过滤可能的良性程序路径。与现有的静态工具相比,机器学习模型具有更强的鲁棒性,避免了在特定工具中直接采用人工定义的规则。我们将xFuzz与三种最先进的工具在7,391份合同上进行了比较。xFuzz检测到18个可利用的跨合约漏洞,其中15个漏洞为首次曝光。此外,我们的方法被证明在检测非交叉合同漏洞方面也很有效-使用不到20%的时间作为其他模糊工具,xFuzz检测到两倍的漏洞。
2022-06-30 cs.CR cs.SE
Fixing Security Vulnerabilities with AI in OSS-Fuzz
本文定制AutoCodeRover智能体,利用LLM自主性和漏洞利用输入测试执行来修复OSS-Fuzz中的安全漏洞,并证明补丁质量评估需考虑动态测试执行而非代码相似性指标。
2024-11-21 cs.CR cs.SE
Neural Transfer Learning for Repairing Security Vulnerabilities in C Code
KTH Royal Institute of Technology(瑞典皇家理工学院);Colorado State University(科罗拉多州立大学)
在本文中,我们解决了深度学习自动修复软件漏洞的问题。数据驱动漏洞修复的主要问题是,已知已确认漏洞的少数现有数据集仅包含几千个示例。然而,训练一个深度学习模型通常需要数十万个示例。在这项工作中,我们利用直觉,错误修复任务和漏洞修复任务是相关的,从错误修复学到的知识可以转移到修复漏洞。在机器学习社区中,这种技术被称为迁移学习。本文提出了一种基于迁移学习的安全漏洞修复方法VRepair。VRepair首先在一个大型的bug修复语料库上进行训练,然后在一个小一个数量级的漏洞修复数据集上进行调整。在我们的实验中,我们证明了只在bug修复语料库上训练的模型已经可以修复一些漏洞。然后,我们证明了迁移学习提高了修复脆弱C函数的能力。我们还表明,迁移学习模型的性能优于使用去噪任务训练并在漏洞修复任务上进行微调的模型。总之,本文表明,与在小数据集上学习相比,迁移学习在修复C中的安全漏洞方面效果良好。
2022-01-04 cs.CR cs.LG cs.SE
When ChatGPT Meets Smart Contract Vulnerability Detection: How Far Are We?
本文实证研究了ChatGPT在智能合约漏洞检测中的表现,发现其召回率高但精度有限,并与现有工具对比揭示了其在不同漏洞类型上的优劣势及鲁棒性局限。
2024-08-21 cs.SE
Bridging the Gap: A Comparative Study of Academic and Developer Approaches to Smart Contract Vulnerabilities
本文通过比较学术与开发者在修复智能合约漏洞策略上的差异,揭示了实际开发中存在与学术文献不一致的漏洞处理方法,并识别出27种新型修复策略。
2026-01-12 cs.SE
Using Sequence-to-Sequence Learning for Repairing C Vulnerabilities
KTH Royal Institue of Technology(KTH皇家理工学院);Colorado State University(科罗拉多州立大学)
软件漏洞影响所有企业,正在进行研究以避免、检测或修复这些漏洞。在这篇文章中,我们贡献了一种自动修复漏洞的新技术。我们提出了一个系统,使用丰富的软件开发历史,可以在GitHub上找到训练生成补丁的AI系统。我们在代码更改的大数据集上应用序列到序列学习,并从CVE数据库中评估训练系统的真实漏洞。实验结果表明了序列到序列学习用于修复软件漏洞的可行性。
2019-12-04 cs.CR cs.LG cs.SE
WakeMint: Detecting Sleepminting Vulnerabilities in NFT Smart Contracts
针对NFT智能合约中的sleepminting漏洞,本文分类了四种类型,并提出基于符号执行的检测工具WakeMint,在11,161个真实合约中实现87.8%的精确度。
2025-02-26 cs.SE
Uncover the Premeditated Attacks: Detecting Exploitable Reentrancy Vulnerabilities by Identifying Attacker Contracts
本文提出 BlockWatchdog 工具,通过识别攻击者合约和重入调用流来检测真正可利用的重入漏洞,并能发现 ERC 代币或自定义接口导致的新型重入漏洞,在 42 万余个以太坊合约中识别出价值约 9.086 亿美元的攻击。
2024-03-28 cs.CR cs.SE
Trace: Securing Smart Contract Repository Against Access Control Vulnerability
针对现有智能合约漏洞检测工具无法处理不可编译仓库的问题,提出结合大语言模型补全代码、基于调用图与控制流图检测访问控制漏洞的TRACE工具,在多类数据集上精度均显著优于现有方案。
2025-10-22 cs.SE
WACANA: A Concolic Analyzer for Detecting On-chain Data Vulnerabilities in WASM Smart Contracts
本文提出 WACANA,通过细粒度模拟链上数据表与 API,并结合覆盖率引导的具体与符号执行,提升 WASM 智能合约漏洞检测的准确性和实用性。
2024-12-05 cs.CR cs.SE
To Healthier Ethereum: A Comprehensive and Iterative Smart Contract Weakness Enumeration
针对 SWC 自 2020 年停更的问题,论文基于 86 篇文献和 273 条漏洞描述构建 SWE,归纳 40 类合约弱点并设计持续更新机制。
2023-08-20 cs.SE
OpenSCV: An Open Hierarchical Taxonomy for Smart Contract Vulnerabilities
本文提出OpenSCV,一种开放、分层且面向社区贡献的智能合约漏洞分类法,基于现有研究构建,覆盖当前检测工具能力,支持未来演进,为漏洞研究提供实用资源。
2023-04-07 cs.CR cs.SE
SCPatcher: Automated Smart Contract Code Repair via Retrieval-Augmented Generation and Knowledge Graph
Hainan University(海南大学)
本文提出SCPatcher框架,结合检索增强生成与知识图谱实现智能合约漏洞自动修复,通过构建5000个验证过的以太坊合约知识图谱,提升大语言模型推理能力,实现高修复率和编译通过率。
2026-04-01 cs.SE
Enabling Automatic Repair of Source Code Vulnerabilities Using Data-Driven Methods
Simula Research Laboratory(西穆拉研究实验室)
世界各地的用户在日常活动中依赖软件密集型系统。这些系统经常包含错误和安全漏洞。为了便于错误修复,自动程序修复的数据驱动模型使用错误代码和修复代码对来学习修复代码中错误的转换。然而,安全漏洞的自动修复仍然没有得到充分的探索。在这项工作中,我们提出了从三个角度来改善代码表示漏洞修复的方法:输入数据类型,数据驱动的模型,和下游任务。这项工作的预期结果是改进的代码表示自动程序修复,特别是修复安全漏洞。
2022-02-07 cs.CR cs.LG cs.SE
EVMFuzz: Differential Fuzz Testing of Ethereum Virtual Machine
以太坊虚拟机(EVM)是智能合约的运行环境,其漏洞可能会导致以太坊生态的严重问题。随着许多智能合约验证技术的开发,EVM的安全问题还没有得到很好的研究。在本文中,我们提出EVMFuzz,旨在检测EVMs与差分模糊测试的漏洞。EVMFuzz的核心思想是不断为不同的EVM的执行生成种子合约,从而尽可能多地发现执行结果之间的不一致,最终通过输出交叉引用发现漏洞。首先,我们提出了内部不一致性指标的评估指标,如执行的操作码序列和使用的气体。然后,我们通过一组预定义的变异器构建种子合同,并采用动态优先级调度算法来指导种子合同的选择和最大化的不一致性。最后,我们利用不同的EVM作为交叉引用的预言机,以避免手动检查执行输出。为了进行评估,我们对36,295个真实世界的智能合约进行了大规模突变,并生成了253,153个智能合约。其中,66.2%表现出差异性,包括1,596个变体合约触发了EVM之间的不一致输出。在人工分析的基础上,我们在四个广泛使用的EVM中发现了5个以前未知的安全漏洞,并且所有这些漏洞都已被纳入通用漏洞和暴露(CVE)数据库。
2019-04-08 cs.SE
Smart Contract Vulnerability Detection based on Static Analysis and Multi-Objective Search
本文提出一种结合静态分析与多目标优化的智能合约漏洞检测方法,针对重入、调用栈溢出、整数溢出和时间戳依赖四类漏洞,在6,693个合约上验证其覆盖率、精度和效率优于现有工具。
2024-09-30 cs.SE
SmartState: Detecting State-Reverting Vulnerabilities in Smart Contracts via Fine-Grained State-Dependency Analysis
针对智能合约状态回退漏洞检测难题,提出基于细粒度状态依赖分析的SmartState框架,结合字节码与交易数据提取依赖、建模漏洞模式,在实测中取得较高准确率与召回率,还发现大量新漏洞及对应资产风险。
2024-06-23 cs.SE
Fixing Outside the Box: Uncovering Tactics for Open-Source Security Issue Management
本研究通过分析GitHub上21,187个问题,构建了44种开源漏洞修复策略的分类法,发现社区依赖替代库等策略且44%不被工具支持,并指出54%的CVE缺乏修复建议,但93%的问题提供了可操作解决方案。
2025-03-30 cs.SE
Impact of Code Transformation on Detection of Smart Contract Vulnerabilities
针对智能合约漏洞检测训练数据集有限的问题,提出基于语义保持代码转换的数据集扩充方法,可生成能绕过现有检测工具的漏洞样本,使检测漏报率最高达100%,数据集规模至少扩大2.5倍。
2024-10-30 cs.CR cs.SE
Vulnerabilities and Open Issues of Smart Contracts: A Systematic Mapping
智能合约(SC)是存储在区块链中的程序,用于确保两方或多方之间的协议。由于区块链的不可改变的本质,SC中的故障或错误一旦发布就成为永久性的。供应链的可靠性对于避免经济损失至关重要。因此,必须检查SC以确保没有错误。因此,许多研究提出了新的方法和工具,零缺陷软件在SC。本文进行了一个系统的文献映射识别的倡议和工具来分析供应链和如何处理已识别的漏洞。此外,这项工作确定了可能导致未来工作的研究课题的差距。
2021-05-26 cs.CR cs.SE
ContractTinker: LLM-Empowered Vulnerability Repair for Real-World Smart Contracts
针对现有智能合约漏洞修复工具语义理解不足、难以处理真实漏洞的问题,提出结合思维链拆解与静态分析引导的LLM赋能修复工具ContractTinker,在48个高危漏洞上实现48%的有效修复率与21%的微改可用率。
2024-09-15 cs.CR cs.SE
Detecting State Manipulation Vulnerabilities in Smart Contracts Using LLM and Static Analysis
针对 DeFi 智能合约中的价格状态操纵攻击,本文提出结合 LLM 与静态分析的 PriceSleuth,通过核心逻辑识别、后向依赖和变量传播分析实现主动检测。
2025-06-11 cs.SE
sGUARD: Towards Fixing Vulnerable Smart Contracts Automatically
智能合约是在区块链网络上执行的分布式、自我执行的程序。它们有可能彻底改变许多行业,如金融机构和供应链。然而,智能合约存在基于代码的漏洞,这给其应用蒙上了阴影。由于智能合约是不可修补的(由于区块链的不变性),因此必须保证智能合约没有漏洞。不幸的是,像Solidity这样的智能合约语言是图灵完备的,这意味着静态验证它们是不可行的。因此,必须制定替代办法来提供保障。在这项工作中,我们开发了一种自动转换智能合约的方法,使它们可以证明没有4种常见的漏洞。关键思想是以一种高效且可证明正确的方式应用运行时验证。5000个智能合约的实验结果表明,我们的方法在时间方面产生了较小的运行时开销(即,14.79%)和气体(即,0.79%)。
2021-01-06 cs.CR cs.SE
Enhancing Reliability of Symbolic Execution Tools for Smart Contract Analysis through Rule-Based False Positive Reduction
Lakehead University(拉科德湖大学);United Arab Emirates University(阿联酋大学);German Research Center for Artificial Intelligence(德国人工智能研究中心);National University of Computer and Emerging Sciences(巴基斯坦国立计算机与新兴科学大学)
本文针对智能合约分析工具Mythril的误报问题,设计基于规则的误报减少方法,在不降低真实漏洞检测能力的前提下显著减少误报,提升了工具可靠性。
2026-08-12 cs.SE
Satellite: Detecting and Analyzing Smart Contract Vulnerabilities caused by Subcontract Misuse
本文提出字节码级静态分析框架 Satellite,通过迁移学习恢复继承方法、方法级特征比对和 SMV 指标识别子合约误用漏洞,并在真实合约中发现未知漏洞。
2025-09-28 cs.SE
An Empirical Study of Impact of Solidity Compiler Updates on Vulnerabilities in Ethereum Smart Contracts
本文收集 503,572 个以太坊合约开展实证研究,分析 Solidity 编译器版本对三类高危漏洞的影响,发现重大更新可降低漏洞出现率,并指出移除代码克隆可进一步减少 Unchecked Call。
2023-06-07 cs.CR cs.SE
Static Application Security Testing (SAST) Tools for Smart Contracts: How Far Are We?
本文提出包含45种漏洞类型的细粒度智能合约漏洞分类体系,并构建覆盖40种类型、含788个文件和10,394个漏洞的基准,评估8种SAST工具后发现其漏报约50%、精确率不足10%,同时揭示多工具组合可降低漏报但增加误报,为工具改进与选择提供指导。
2024-06-29 cs.SE
Combining GPT and Code-Based Similarity Checking for Effective Smart Contract Vulnerability Detection
本文提出智能合约漏洞检测工具 SimilarGPT,结合 GPT 模型与基于代码的相似性检查,利用拓扑排序优化检测序列并建立参考代码库,有效减少了漏报与误报。
2024-12-24 cs.SE
Pre-deployment Analysis of Smart Contracts -- A Survey
本文系统综述智能合约部署前分析方法,通过属性关联漏洞与方法,对静态分析、动态分析及机器学习算法进行分类,揭示不同方法的优势模式。
2023-06-30 cs.CR cs.SE
Assessing Smart Contracts Security Technical Debts
智能合约是一种自我执行的协议,用于在未经可信第三方批准的情况下交换资产。这一功能鼓励各个部门在交易时使用智能合约。经验表明,许多已部署的合同由于设计不佳而容易受到攻击,攻击者可以从相关方窃取宝贵的资产。因此,需要一种评估方法,使开发人员能够认识到部署易受攻击的合同的后果。在本文中,我们提出了一种债务感知方法来评估智能合约中的安全设计漏洞。我们的评估方法包括两个主要步骤:(i)使用安全分析技术识别设计漏洞,以及(ii)利用技术债务隐喻,其本金和利息估计所识别漏洞的后果。我们使用易受攻击的合同的例子来证明我们的方法的适用性。结果表明,我们的评估方法增加了安全设计问题的可见性。它还允许开发人员通过技术债务影响分析和优先级来集中精力解决智能合约漏洞。开发人员可以使用我们的方法来设计更安全的合同,并减少由于缺乏安全问题意识而造成的无意债务。
2021-03-17 cs.CR cs.SE
CrossInspector: A Static Analysis Approach for Cross-Contract Vulnerability Detection
本文提出 CrossInspector 框架,通过 Transformer 恢复语义信息并构建状态依赖图进行细粒度静态分析,有效检测智能合约字节码层面的跨合约漏洞,在精确率、召回率和检测时间上均优于现有工具。
2024-08-27 cs.CR cs.SE
Smart Contract Fuzzing Towards Profitable Vulnerabilities
针对智能合约可获利漏洞检测与利润最大化的问题,提出以利润为中心的模糊测试框架VERITE,通过DeFi操作变异器、异常资金流识别及梯度下降策略,在真实DeFi项目中检测和获利表现显著优于现有工具,还助力发现零日漏洞获赏金。
2025-02-12 cs.CR cs.SE
sFuzz: An Efficient Adaptive Fuzzer for Solidity Smart Contracts
智能合约是在区块链基础设施上执行的图灵完备程序,通常管理有价值的数字资产。Solidity是在以太坊平台上编写智能合约的最流行的程序设计语言之一。与传统程序一样,智能合约也可能存在漏洞。与传统程序不同,智能合约一旦部署就无法轻松修补。因此,在部署之前对智能合约进行彻底测试非常重要。在这项工作中,我们在以太坊平台上为智能合约提供了一个自适应模糊器,称为sFuzz。与现有的Solidity模糊器相比,sFuzz结合了AFL模糊器中的策略和针对那些难以覆盖的分支的高效轻量级多目标自适应策略。sFuzz已经应用于超过4000个智能合约,实验结果表明:(1)sFuzz是高效的,例如,比最先进的工具快两个数量级;(2)sFuzz在实现高代码覆盖率和发现漏洞方面是有效的;(3)sFuzz中的不同模糊策略相互补充。
2020-04-18 cs.SE
Chiral Analysis of Smart Contracts: Detecting Vulnerabilities from Relational Inconsistencies Across Business Paths
研究智能合约因业务路径关系不一致产生的漏洞,提出手性分析,将配对路径视为隐式规范,形式化关系并推导义务。通过ChiralDetector实现,经初步评估能减少候选对、产生去重结果,揭示难用单功能规则表达的漏洞类并控制成本与精度。
2026-07-21 cs.SE
Building Executable Secure Design Models for Smart Contracts with Formal Methods
智能合约之所以有吸引力,是因为它们是各方之间的自动执行的商业协议,具有预定义和不可变的义务和权利。然而,与所有软件一样,智能合约可能因设计缺陷而包含漏洞,其中一方可能会利用这些漏洞来欺骗其他方。在本文中,我们展示了一种使用形式化方法为智能合约构建安全设计模型的系统方法。为了构建安全模型,我们首先将参与方的行为建模为状态机,然后,我们对预定义的合同义务和权利进行建模,这些合同规定了状态机之间的交互以实现业务目标。在此之后,我们在TLA+(动作的时间逻辑)中说明了可执行的安全模型设计模式,以在设计层面上针对状态机和义务和权利方面的众所周知的智能合约漏洞。这些漏洞存在于以太坊合约中,包括Call to the unknown、Gasless send、Reentrancy、Lost in the transfer和Unpredictable state。由此产生的TLA+规范称为安全模型。我们说明了我们的方法来检测在设计层面上使用房地产合同的例子的漏洞。
2019-12-09 cs.SC cs.SE
MANDO: Multi-Level Heterogeneous Graph Embeddings for Fine-Grained Detection of Smart Contract Vulnerabilities
L3S Research Center, Leibniz Universität Hannover(汉诺威莱布尼茨大学L3S研究中心);Singapore Management University(新加坡管理大学)
学习由不同类型的节点和边组成的异构图增强了同构图技术的结果。这样的图的一个有趣的例子是控制流图表示可能的软件代码执行流。由于这种图代表了代码的更多语义信息,因此开发用于这种图的技术和工具对于检测软件中的漏洞以提高其可靠性非常有益。然而,现有的异构图技术仍然不足以处理复杂的图,其中不同类型的节点和边的数量是大的和可变的。本文集中讨论以太坊智能合约,作为由异构合约图表示的软件代码样本,这些合约图构建在包含不同类型节点和链接的控制流图和调用图上。我们提出了MANDO,一个新的异构图表示学习这种异构合同图的结构。MANDO提取定制的元路径,这些元路径组成不同类型的节点及其邻居之间的关系连接。此外,它还开发了一个多元路径异构图注意力网络,用于学习不同类型节点及其元路径在异构合约图中的多级嵌入,可以更准确地捕获智能合约的代码语义,并促进细粒度行级和粗粒度合约级漏洞检测。我们对大型智能合约数据集的广泛评估表明,MANDO在粗粒度合约级别上改善了其他技术的漏洞检测结果。更重要的是,它是第一个能够在细粒度行级别识别漏洞的基于学习的方法,并将传统的基于代码分析的漏洞检测方法的F1分数提高了11.35%至70.81%。
2022-09-07 cs.LG cs.SE
HFContractFuzzer: Fuzzing Hyperledger Fabric Smart Contracts for Vulnerability Detection
区块链技术凭借其去中心化、不可变性等独特优势,近年来在各个领域得到广泛应用。运行在区块链上的智能合约也在去中心化应用场景中发挥着越来越重要的作用。因此,智能合约安全漏洞的自动检测成为区块链技术应用中亟待解决的问题。Hyperledger Fabric是一个基于企业级许可分布式账本技术的智能合约平台。然而,Hyperledger Fabric智能合约的漏洞检测技术研究仍处于起步阶段。在本文中,我们提出了HFContractFuzzer,这是一种基于Fuzzing技术来检测Hyperledger Fabric智能合约的方法,它结合了一个名为go-fuzz的golang Fuzzing工具和golang编写的智能合约。我们使用HFContractFuzzer从典型的来源中检测出五个合同中的漏洞,发现其中四个存在安全漏洞,证明了所提出的方法的有效性。
2021-06-21 cs.CR cs.SE
How Effective are Smart Contract Analysis Tools? Evaluating Smart Contract Static Analysis Tools Using Bug Injection
针对智能合约的安全攻击一直在上升,这导致了财务损失和信任的侵蚀。因此,让开发人员在部署之前发现智能合约中的安全漏洞非常重要。已经开发了许多静态分析工具来查找智能合约中的安全漏洞。然而,尽管有许多错误发现工具,但没有系统的方法来评估所提出的工具并衡量其有效性。本文提出了SolidiFI,这是一种用于评估智能合约静态分析工具的自动化和系统化方法。SolidiFI基于注入错误(即,代码缺陷)到智能合约中的所有潜在位置,以引入有针对性的安全漏洞。然后,SolidiFI使用静态分析工具检查生成的错误合约,并识别工具无法检测到的错误(假阴性)以及报告为假阳性的错误。SolidiFI被用来评估六个广泛使用的静态分析工具,即Oyente,Securify,Mythril,SmartCheck,Manticore和Slither,使用一组由9369个不同的错误注入的50个合同。它发现了几个被评估的工具没有检测到的bug实例,尽管它们声称能够检测到这样的bug,并且所有的工具都报告了许多误报
2020-05-23 cs.SE
How Effective Are Neural Networks for Fixing Security Vulnerabilities
Purdue University(普渡大学);University of Waterloo(滑铁卢大学);York University(约克大学);University of Alberta(阿尔伯塔大学);J.P. Morgan AI Research(摩根大通AI研究院)
本文首次系统比较了LLMs与基于深度学习的APR模型在Java漏洞修复上的能力,提出新基准VJBench及变换版本,并发现现有方法修复率低、Codex表现相对最好,呼吁通过更大训练数据、微调和代码简化变换来提升自动修复效果。
2024-04-02 cs.AI cs.CR cs.SE
Understanding Software Vulnerabilities in the Maven Ecosystem: Patterns, Timelines, and Risks
本文利用 Goblin 框架对 Maven 生态中 77,393 个漏洞版本和 226 个 CWE 进行大规模分析,发现漏洞平均需近五年记录、4.4 年解决,延迟带来安全风险,凸显更高效漏洞管理的必要性。
2025-03-28 cs.SE