Författare : (1) Tianle Sun, Huazhong University of Science and Technology; (2) Ningyu He, Peking universitet (3) Jiang Xiao, Huazhong University of Science and Technology; (4) Yinliang Yue, Zhongguancun laboratorium (5) Xiapu Luo, Hong Kong Polytechnic University (6) Haoyu Wang, Huazhong University of Science and Technology. : Authors (1) Tianle Sun, Huazhong University of Science and Technology; (2) Ningyu He, Peking universitet (3) Jiang Xiao, Huazhong University of Science and Technology; (4) Yinliang Yue, Zhongguancun laboratorium (5) Xiapu Luo, Hong Kong Polytechnic University (6) Haoyu Wang, Huazhong University of Science and Technology. Tabell från vänster Abstrakt och 1. introduktion Background 2.1 Ethereum Primer 2.2 Whitelisted Address Verification 2.3 Taint Analysis on Smart Contracts and 2.4 Threat Model Motivating Example and Challenges 3.1 Motivating Example 3.2 Challenges 3.3 Limitations of Existing Tools Design of AVVERIFIER and 4.1 Overview 4.2 Notations 4.3 Component#1: Code Grapher 4.4 Component#2: EVM Simulator 4.5 Component#3: Vulnerability Detector Evaluation 5.1 Experimental Setup & Research Questions 5.2 RQ1: Effectiveness & Efficiency 5.3 RQ2: Characteristics of Real-world Vulnerable Contracts 5.4 RQ3: Real-time Detection Discussion 6.1 Threats to Validity and 6.2 Limitations 6.3 Ethical Consideration Related Work Conclusion, Availability, and References Abstract I Ethereum är praxis att verifiera giltigheten av de överförda adresserna en vanlig praxis, vilket är ett avgörande steg för att säkerställa säker utförande av smarta kontrakt. Sårbarheter i processen med adressverifiering kan leda till stora säkerhetsproblem, och anekdotiska bevis har rapporterats av vårt samhälle. Men denna typ av sårbarhet har inte studerats väl. För att fylla tomrummet, i denna artikel, syftar vi till att karakterisera och upptäcka denna typ av framväxande sårbarhet. Vi designar och implementerar AVVERIFIER, en lätt smärta analyser baserad på statisk EVM opcode simulering. Dess trefasade detektor kan gradvis utesluta falska positiva och falska negativa baserat på de inre egenskaperna. Efter en väletab 1 Introduktion After Satoshi Nakamoto launched Bitcoin [60], blockchain platforms have sprung up. Among them, Ethereum [18] is the most well-known one. Apart from these common characteristics among all blockchain platforms, the most eye-catching feature in Ethereum is the Det kan tas som ett stycke oföränderligt skript som ska utföras på ett bestämt sätt när de fördefinierade villkoren är uppfyllda. Smarta kontrakt Eftersom miljarder USD-ekvivalenta tillgångar lagras i smarta kontrakt är identifiering och utnyttjande av dolda sårbarheter i dem den högsta prioriteringen för angripare.Enligt en ny rapport [68], finns det cirka 303 stora attackhändelser mot kända Ethereum-kontrakt under det senaste året, vilket uppgår till förluster på cirka 3,8 miljarder dollar. Chen et al. [21] har sammanfattat 26 huvudtyper av sårbarheter i Ethereum smarta kontrakt, och nya typer av sårbarheter uppstår fortfarande i en oändlig ström längs den konstanta funktionsintroduktionen och avskrivningen i Ethereum [48]. The automatic identification of vulnerabilities in Ethereum smart contracts is a well-studied topic [14, 37, 46, 47, 56, 70, 72, 78]. Considering the number of contracts and the economic loss caused by false negatives, static symbolic execution, which can guarantee soundness to a certain extent, is used as the main analysis method. For example, Mythril [70] is a static bytecode-level symbolic executor for Ethereum contracts, while Slither [31] works on source code, which claims to achieve high efficiency and effectiveness. Verifying the validity of the input addresses is a common practic and a key step to ensure the secure execution of smart contracts. Vulnerabilities in the process of address verification can lead to great security issues, and anecdotal evidence has been reported by our community [11]. To be specific, functions in smart contracts can be addressed as arguments. If developers accidentally neglect the verification on the passed address, once it is taken as the target of an external call, arbitrary operations, including malicious ones, within an address can be invoked. Therefore, if any on-chain state modification relies on that external call, such modification may go against the developer’s wishes. Currently, no existing tools can detect the address verification vulnerability, and implementing such a vulnerability detector based on existing framework is challenging. On the one hand, according to the characteristics of the address verification vulnerability, to effectively identify it, the detector should perform an inter-procedural or even inter-contract analysis. Existing work, however, invariably suffers from either the efficiency or the effectiveness problem when conducting such analyses. For example, a pattern-based detector can barely handle such a complicated vulnerability pattern, while the symbolic execution suffers the path explosion issues and the bottleneck brought from the constraints solving. On the one hand, most contracts are close-sourced, and bytecode lacks sufficient semantics, making it difficult to precisely identify hidden vulnerabilities. Specifically, the address verification vulnerability requires fine-grained tracking in both memory and storage areas. In bytecode, it is hard to distinguish different variables stored in these two areas. Moreover, tracking them via symbolic execution would suffer severe path explosion issue due to the large space of feasible slots. För att fylla tomrummet strävar vi efter att karakterisera och upptäcka denna typ av framväxande sårbarhet. För att vara specifika utformar och implementerar vi AVVERIFIER, en ny lätt statisk smutsanalysram som effektivt och effektivt kan identifiera adressverifieringssårbarheten. Dess smutsanalys är beroende av den statiska simuleringen av opcode-sekvensen. Med andra ord, utan att ta hänsyn till möjligheten till vägar, behåller AVVERIFIER värdena för datastrukturer (t.ex. stack och minne) och smutspridningstillståndet. En sådan statisk simulering korsar många vägar, inklusive de ursprungligen omöjliga. Således upptäcker AVVERIFIER formellt adressverifieringssårbarheten genom en trefas This work. Baserat på våra utarbetade referensvärden överträffar AVVERIFIER betydligt toppmoderna smarta kontraktdetektionsverktyg (dvs. Mythril, Ethainter, Jackal och ETHBMC)[1] i både effektivitet och effektivitet. Enligt en omfattande utvärdering av över 5 miljoner utplacerade Ethereum-kontrakt flaggar AVVERIFIER över 812 sårbara kontrakt och 348 öppna smarta kontrakt verifierades ytterligare, vars totala värde är över $ 11,2 miljarder. Slutligen distribuerar vi AVVERIFIER som en realtidsdetektor på Ethereum och BSC, en EVM-liknande blockchain-plattform. Resultaten visar att AVVERIFIER kan höja tidiga varningar till utvecklare och samhället i tid. Ett verkligt fall, där AVVERIF Denna artikel ger följande bidrag: • This is the first work on detecting address verification vulnerability. We have designed and implemented AVVERIFIER, an efficient and effective taint analyzer based on static EVM simulation. • Vi har tillämpat AVVERIFIER på över 5 miljoner smarta kontrakt på Ethereum, och upptäckt hundratals sårbara smarta kontrakt som inte avslöjades av vårt samhälle tidigare. Jämfört med Mythril, Ethainter, Jackal och ETHBMC kan AVVERIFIER förbättra analyseffektiviteten cirka 2 till 5 gånger samtidigt som den uppnår 94,3% noggrannhet och 100% återkallelse på väletablerade referensvärden. • Vi har distribuerat AVVERIFIER som en realtidsdetektor på Ethereum och BSC. Resultaten tyder på att AVVERIFIER kan höja tidiga varningar när kontrakt distribueras innan attacken initieras av angripare. Den här artikeln finns tillgänglig på arkiv under CC BY 4.0 DEED-licens. Den här artikeln finns tillgänglig på arkiv under CC BY 4.0 DEED-licens. available on arxiv [1] Observera att dessa verktyg inte kan upptäcka adressverifieringssårbarheter, vi har implementerat samma detektionslogik ovanpå dem, för en rättvis jämförelse.