Fan Long

dblp:55/3921 · DBLP profile ↗
← Back
38ranked-venue papers
8as first author
16since 2021 · last 2025
0000-0001-7973-1188ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 26 · 8 first-author · 12 since 2021Systems, architecture and hardware · 8 · 3 since 2021Security and privacy · 5 · 3 since 2021Computer networks · 3 · 2 since 2021Artificial intelligence and machine learning · 2 · 1 since 2021
YearPublicationVenuePosition
2025 TypyBench: Evaluating LLM Type Inference for Untyped Python Repositories
abstract
Type inference for dynamic languages like Python is a persistent challenge in software engineering. While large language models (LLMs) have shown promise in code understanding, their type inference capabilities remain underexplored. We introduce TypyBench, a benchmark designed to evaluate LLMs’ type inference across entire Python repositories. TypyBench features two novel metrics: TypeSim, which captures nuanced semantic relationships between predicted and ground truth types, and TypeCheck, which assesses type consistency across codebases. Our evaluation of various LLMs on a curated dataset of 50 high-quality Python repositories reveals that, although LLMs achieve decent TypeSim scores, they struggle with complex nested types and exhibit significant type consistency errors. These findings suggest that future research should shift focus from improving type similarity to addressing repository-level consistency. TypyBench provides a foundation for this new direction, offering insights into model performance across different type complexities and usage contexts. Our code and data are available at https://github.com/typybench/typybench
Honghua Dong, Yuhe Jiang, Gennady Pekhimenko, Fan Long, Xujie Si
ICML6
2025 HEMVM: A Heterogeneous Blockchain Framework for Interoperable Virtual Machines
abstract
This paper introduces HEMVM, an innovative heterogeneous blockchain framework that seamlessly integrates diverse virtual machines (VMs), including the Ethereum Virtual Machine (EVM) and the Move Virtual Machine (MoveVM), into a unified system. This integration facilitates interoperability while retaining compatibility with existing Ethereum and Move toolchains by preserving high-level language constructs. HEMVM's unique cross-VM operations allow users to interact with contracts across various VMs using any wallet software, effectively resolving the fragmentation in user experience caused by differing VM designs. Our experimental results demonstrate that HEMVM is both fast and efficient, incurring minimal overhead (less than 4.4 %) for intra-VM transactions and achieving up to 9300 TPS for cross-VM transactions. Our results also show that the cross-VM operations in HEMVM are sufficiently expressive to support complex decentralized finance interactions across multiple VMs. Finally, the parallelized prototype of HEMVM shows performance improvements up to 44.8 % compared to the sequential version of HEMVM under workloads with mixed transaction types.
Vladyslav Nekriach, Sidi Mohamed Beillahi, Chenxing Li, Peilun Li, Ming Wu 0007, Andreas G. Veneris, Fan Long
Proc. ACM Program. Lang.7
2024 FlashSyn: Flash Loan Attack Synthesis via Counter Example Driven Approximation
abstract
In decentralized finance (DeFi), lenders can offer flash loans to borrowers, i.e., loans that are only valid within a blockchain transaction and must be repaid with fees by the end of that transaction. Unlike normal loans, flash loans allow borrowers to borrow large assets without upfront collaterals deposits. Malicious adversaries use flash loans to gather large assets to exploit vulnerable DeFi protocols.
Zhiyang Chen 0004, Sidi Mohamed Beillahi, Fan Long
ICSE3
2024 Safeguarding DeFi Smart Contracts against Oracle Deviations
abstract
This paper presents OVer, a framework designed to automatically analyze the behavior of decentralized finance (DeFi) protocols when subjected to a "skewed" oracle input. OVer firstly performs symbolic analysis on the given contract and constructs a model of constraints. Then, the framework leverages an SMT solver to identify parameters that allow its secure operation. Furthermore, guard statements may be generated for smart contracts that may use the oracle values, thus effectively preventing oracle manipulation attacks. Empirical results show that OVer can successfully analyze all 10 benchmarks collected, which encompass a diverse range of DeFi protocols. Additionally, this paper illustrates that current parameters utilized in the majority of benchmarks are inadequate to ensure safety when confronted with significant oracle deviations. It shows that existing ad-hoc control mechanisms such as introducing delays are often in-sufficient or even detrimental to protect the DeFi protocols against the oracle deviation in the real-world.
Sidi Mohamed Beillahi, Cyrus Minwalla, Andreas G. Veneris, Fan Long
ICSE6
2024 OpenTracer: A Dynamic Transaction Trace Analyzer for Smart Contract Invariant Generation and Beyond
abstract
Smart contracts, self-executing programs on the blockchain, facilitate reliable value exchanges without centralized oversight. Despite the recent focus on dynamic analysis of their transaction histories in both industry and academia, no open-source tool currently offers comprehensive tracking of complete transaction information to extract user-desired data such as invariant-related data. This paper introduces OpenTracer, designed to address this gap. OpenTracer guarantees comprehensive tracking of every execution step, providing complete transaction information. OpenTracer has been employed to analyze 350,800 Ethereum transactions, successfully inferring 23 different types of invariant from predefined templates. The tool is fully open-sourced, serving as a valuable resource for developers and researchers aiming to extract or validate new invariants from transaction traces. A demonstration video of OpenTracer is available at https://youtu.be/vTdmjWdYd30. The source code of OpenTracer is available at https://github.com/jeffchen006/OpenTracer.
Zhiyang Chen 0004, Ye Liu 0012, Sidi Mohamed Beillahi, Yi Li 0008, Fan Long
ASE5
2024 LMPT: A Novel Authenticated Data Structure to Eliminate Storage Bottlenecks for High Performance Blockchains
abstract
We present the Layered Merkle Patricia Trie (LMPT), a performant storage data structure for processing transactions in high-throughput systems when compared to traditional Merkle Patricia Tries used in Ethereum clients. LMPTs keep smaller intermediary tries in memory to alleviate read and write amplification from high-latency disk storage. As an additional feat, they also allow for the I/O and transaction verifier threads to be scheduled in parallel and independently. LMPTs can ultimately reduce significant I/O traffic that happens on the critical path of transaction processing. Empirical results show that LMPTs can process up to$\times6$more transactions per second on real-life ERC20 smart contract workloads when compared to existing Ethereum clients.
Jemin Andrew Choi, Sidi Mohamed Beillahi, Srisht Fateh Singh, Panagiotis Michalopoulos, Peilun Li, Andreas G. Veneris, Fan Long
IEEE Trans. Netw. Serv. Manag.7
2024 LVMT: An Efficient Authenticated Storage for Blockchain
abstract
Authenticated storage access is the performance bottleneck of a blockchain, because each access can be amplified to potentially O (log n ) disk I/O operations in the standard Merkle Patricia Trie (MPT) storage structure. In this article, we propose a multi-Layer Versioned Multipoint Trie (LVMT), a novel high-performance blockchain storage with significantly reduced I/O amplifications. LVMT uses the authenticated multipoint evaluation tree vector commitment protocol to update commitment proofs in constant time. LVMT adopts a multi-layer design to support unlimited key–value pairs and stores version numbers instead of value hashes to avoid costly elliptic curve multiplication operations. In our experiment, LVMT outperforms the MPT in real Ethereum traces, delivering read and write operations 6× faster. It also boosts blockchain system execution throughput by up to 2.7×.
Chenxing Li, Sidi Mohamed Beillahi, Guang Yang 0020, Ming Wu 0007, Wei Xu 0005, Fan Long
ACM Trans. Storage6
2023 Möbius: an Atomic State Sharding Design for Account-Based Blockchains
abstract
This paper presents Mobius, the first cost-efficient state sharding design that remains consensus mechanism agnostic and guarantees atomicity for cross-shard smart contract transactions. In particular, to address the challenges posed by the growing blockchain state, Mobius enables its participants to verify all transactions while only storing a partial state. Unlike previous state sharding systems, the proposed protocol uses a novel vector commitment data structure to reduce the network bandwidth overhead via proof aggregation. Further, it utilizes a novel epoch-based multi-phase commitment technique for guaranteeing atomicity in cross-shard transactions. Experiments presented here show that Mobius reduces the disk requirement of each participant linearly with respect to the number of shards. Further, it presents a 4.7-7.3x lower network bandwidth overhead when compared to existing state-of-the-art state sharding systems. The outcomes also confirm that existing smart contracts can operate on Mobius in cross-shard scenarios without modifications.
Srisht Fateh Singh, Panagiotis Michalopoulos, Sidi Mohamed Beillahi, Andreas G. Veneris, Fan Long
ICBC5
2023 Mercury: Fast Transaction Broadcast in High Performance Blockchain Systems
abstract
Blockchain systems must be secure and offer high performance. These systems rely on transaction broadcast mechanisms to provide both of these features. Unfortunately, in today’s systems, the broadcast mechanisms are highly inefficient.We present Mercury, a new transaction broadcast protocol designed for high performance blockchains. Mercury shortens the transaction propagation delay using two techniques: a virtual coordinate system and an early outburst strategy. Simulation results show that Mercury outperforms prior propagation schemes and decreases overall propagation latency by up to 44%. When implemented in Conflux, an open-source high-throughput blockchain system, Mercury reduces transaction propagation latency by over 50% with less than 5% bandwidth overhead.
Mingxun Zhou, Liyi Zeng, Peilun Li, Fan Long, Dong Zhou 0006, Ivan Beschastnikh, Ming Wu 0007
INFOCOM5
2023 LVMT: An Efficient Authenticated Storage for Blockchain
Chenxing Li, Sidi Mohamed Beillahi, Guang Yang 0020, Ming Wu 0007, Wei Xu 0005, Fan Long
OSDI6
2022 Automatic Horizontal Fusion for GPU Kernels
abstract
We present automatic horizontal fusion, a novel optimization technique that complements the standard kernel fusion techniques for GPU programs. Unlike the standard fusion, whose goal is to eliminate intermediate data round trips, our horizontal fusion technique aims to increase the thread-level parallelism to hide instruction latencies. We also present HFUSE, a new source to source CUDA compiler that implements automatic horizontal fusion. Our experimental results show that the horizontal fusion can speed up the running time by 2.5% 60.8%. Our results reveal that the horizontal fusion is especially beneficial for fusing kernels with instructions that require different kinds of GPU resources (e.g., a memory-intensive kernel and a compute-intensive kernel).
Ao Li 0009, Bojian Zheng, Gennady Pekhimenko, Fan Long
CGO4
2022 Automated Auditing of Price Gouging TOD Vulnerabilities in Smart Contracts
abstract
With the emergence of decentralized finance, smart contracts and their users become more and more susceptible to expensive exploitations. This paper investigates the price gouging transaction order dependency vulnerabilities in smart contracts. A static analysis based approach is proposed to automatically locate and rectify such vulnerabilities, and a prototype tool using Slither, a static analyzer for Solidity, is also developed. All in all, empirical results on a benchmark suite containing 51 Solidity smart contracts show that the proposed methodology can be used successfully to both detect such vulnerabilities and rectify them, or to certify that a Solidity smart contract under question does not contain such vulnerabilities.
Sidi Mohamed Beillahi, Eric Keilty, Keerthi Nelaturu, Andreas G. Veneris, Fan Long
ICBC5
2022 LMPTs: Eliminating Storage Bottlenecks for Processing Blockchain Transactions
abstract
We present the Layered Merkle Patricia Trie (LMPT), a performant storage data structure for processing transactions in high-throughput systems when com-pared to traditional Merkle Patricia Tries used in Ethereum clients. LMPTs keep smaller intermediary tries in memory to alleviate read and write amplification from high-latency disk storage. As an additional feat, they also allow for the I/O and transaction verifier threads to be scheduled in parallel and independently. LMPTs can ultimately reduce significant I/O traffic that happens on the critical path of transaction processing. Empirical results presented here confirm that LMPTs can process up to × 6 more transactions per second on real-life workloads when compared to existing Ethereum clients.
Jemin Andrew Choi, Sidi Mohamed Beillahi, Peilun Li, Andreas G. Veneris, Fan Long
ICBC5
2022 Utilizing Parallelism in Smart Contracts on Decentralized Blockchains by Taming Application-Inherent Conflicts
abstract
Traditional public blockchain systems typically had very limited transaction throughput because of the bottleneck of the consensus protocol itself. With recent advances in consensus technology, the performance limit has been greatly lifted, typically to thousands of transactions per second. With this, transaction execution has become a new performance bottleneck. Exploiting parallelism in transaction execution is a clear and direct way to address this and to further increase transaction throughput. Although some recent literature introduced concurrency control mechanisms to execute smart contract transactions in parallel, the reported speedup that they can achieve is far from ideal. The main reason is that the proposed parallel execution mechanisms cannot effectively deal with the conflicts inherent in many blockchain applications.
Péter Garamvölgyi, Dong Zhou 0006, Fan Long, Ming Wu 0007
ICSE4
2022 SigVM: enabling event-driven execution for truly decentralized smart contracts
abstract
This paper presents SigVM, the first blockchain virtual machine that extends EVM to support an event-driven execution model, enabling developers to build truly decentralized smart contracts. Contracts in SigVM can emit signal events, on which other contracts can listen. Once an event is triggered, corresponding handler functions are automatically executed as signal transactions. We build an end-to-end blockchain platform SigChain and a contract language compiler SigSolid to realize the potential of SigVM. Experimental results show that our benchmark applications can be reimplemented with SigVM in a truly decentralized way, eliminating the dependency on centralized and unreliable mechanisms like off-chain relay servers. The development effort of reimplementing these contracts with SigVM is small, i.e., we modified on average 3.17% of the contract code. The runtime and the gas overhead of SigVM on these contracts is negligible.
Sidi Mohamed Beillahi, Ryan Song, Yuxi Cai, Andreas G. Veneris, Fan Long
Proc. ACM Program. Lang.6
2021 PipeZK: Accelerating Zero-Knowledge Proof with a Pipelined Architecture
abstract
Zero-knowledge proof (ZKP) is a promising cryptographic protocol for both computation integrity and privacy. It can be used in many privacy-preserving applications including verifiable cloud outsourcing and blockchains. The major obstacle of using ZKP in practice is its time-consuming step for proof generation, which consists of large-size polynomial computations and multi-scalar multiplications on elliptic curves. To efficiently and practically support ZKP in real-world applications, we propose PipeZK, a pipelined accelerator with two subsystems to handle the aforementioned two intensive compute tasks, respectively. The first subsystem uses a novel dataflow to decompose large kernels into smaller ones that execute on bandwidth-efficient hardware modules, with optimized off-chip memory accesses and on-chip compute resources. The second subsystem adopts a lightweight dynamic work dispatch mechanism to share the heavy processing units, with minimized resource underutilization and load imbalance. When evaluated in 28 nm, PipeZK can achieve 10x speedup on standard cryptographic benchmarks, and 5x on a widely-used cryptocurrency application, Zcash.
Ye Zhang 0042, Shuo Wang 0009, Xian Zhang 0001, Jiangbin Dong, Xingzhong Mao, Fan Long, Dong Zhou 0006, Mingyu Gao 0001, Guangyu Sun 0003
ISCA6
2020 Shrec: bandwidth-efficient transaction relay in high-throughput blockchain systems
abstract
The success of Bitcoin and Ethereum has attracted many efforts to build high-throughput blockchain systems. This paper focuses on transaction dissemination --- a rather overlooked issue in these systems. We argue that efficient transaction dissemination is the key for a blockchain system to sustain at high-throughput --- usually thousands of transactions per second --- and the existing solutions fell short at doing so.
Chenxing Li, Peilun Li, Ming Wu 0007, Dong Zhou 0006, Fan Long
SoCC6
2020 Gosig: a scalable and high-performance byzantine consensus for consortium blockchains
abstract
Existing Byzantine fault tolerance (BFT) protocols face significant challenges in safety, scalability, throughput, and latency. We present a new BFT protocol, Gosig, for the consortium blockchains. Gosig guarantees safety even in asynchronous networks fully controlled by adversaries, by combining secret leader selection with multi-round voting. We co-design both the consensus protocol and the underlying gossip network to optimize performance. In particular, we adopt transmission pipelining to fully utilize the network bandwidth while use aggregated signature gossip to reduce the number of messages. These optimizations help Gosig to achieve unprecedented single-chain performance. On a public cloud testbed spanning multiple data centers consisting of 280 nodes across 14 cities on five continents, Gosig achieves over 15,000 transactions per second with 15.8-second confirmation time. When the system scales to 5,000 nodes, Gosig can still achieve 3,000 transactions per second with about 23.9-second confirmation time.
Peilun Li, Guosai Wang, Fan Long, Wei Xu 0005
SoCC4
2020 Securing smart contract with runtime validation
abstract
We present Solythesis, a source to source Solidity compiler which takes a smart contract code and a user specified invariant as the input and produces an instrumented contract that rejects all transactions that violate the invariant. The design of Solythesis is driven by our observation that the consensus protocol and the storage layer are the primary and the secondary performance bottlenecks of Ethereum, respectively. Solythesis operates with our novel delta update and delta check techniques to minimize the overhead caused by the instrumented storage access statements. Our experimental results validate our hypothesis that the overhead of runtime validation, which is often too expensive for other domains, is in fact negligible for smart contracts. The CPU overhead of Solythesis is only 0.1% on average for our 23 benchmark contracts.
Ao Li 0009, Jemin Andrew Choi, Fan Long
PLDI3
2020 A Decentralized Blockchain with High Throughput and Fast Confirmation
Chenxing Li, Peilun Li, Dong Zhou 0006, Ming Wu 0007, Guang Yang 0020, Wei Xu 0005, Fan Long, Andrew Chi-Chih Yao
USENIX ATC8
2017 Automatic inference of code transforms for patch generation
abstract
We present a new system, Genesis, that processes human patches to automatically infer code transforms for automatic patch generation. We present results that characterize the effectiveness of the Genesis inference algorithms and the complete Genesis patch generation system working with real-world patches and defects collected from 372 Java projects. To the best of our knowledge, Genesis is the first system to automatically infer patch generation transforms or candidate patch search spaces from previous successful patches.
Fan Long, Peter Amidon, Martin C. Rinard
ESEC/SIGSOFT FSE1
2017 CodeCarbonCopy
abstract
We present CodeCarbonCopy (CCC), a system for transferring code from a donor application into a recipient application. CCC starts with functionality identified by the developer to transfer into an insertion point (again identified by the developer) in the recipient. CCC uses paired executions of the donor and recipient on the same input file to obtain a translation between the data representation and name space of the recipient and the data representation and name space of the donor. It also implements a static analysis that identifies and removes irrelevant functionality useful in the donor but not in the recipient. We evaluate CCC on eight transfers between six applications. Our results show that CCC can successfully transfer donor functionality into recipient applications.
Stelios Sidiroglou-Douskos, Eric Lahtinen, Anthony Eden, Fan Long, Martin C. Rinard
ESEC/SIGSOFT FSE4
2016 An analysis of the search spaces for generate and validate patch generation systems
abstract
We present the first systematic analysis of key characteristics of patch search spaces for automatic patch generation systems. We analyze sixteen different configurations of the patch search spaces of SPR and Prophet, two current state-of-the-art patch generation systems. The analysis shows that 1) correct patches are sparse in the search spaces (typically at most one correct patch per search space per defect), 2) incorrect patches that nevertheless pass all of the test cases in the validation test suite are typically orders of magnitude more abundant, and 3) leveraging information other than the test suite is therefore critical for enabling the system to successfully isolate correct patches.
Fan Long, Martin C. Rinard
ICSE1
2016 Automatic patch generation by learning correct code
abstract
We present Prophet, a novel patch generation system that works with a set of successful human patches obtained from open- source software repositories to learn a probabilistic, application-independent model of correct code. It generates a space of candidate patches, uses the model to rank the candidate patches in order of likely correctness, and validates the ranked patches against a suite of test cases to find correct patches. Experimental results show that, on a benchmark set of 69 real-world defects drawn from eight open-source projects, Prophet significantly outperforms the previous state-of-the-art patch generation system.
Fan Long, Martin C. Rinard
POPL1
2015 Targeted Automatic Integer Overflow Discovery Using Goal-Directed Conditional Branch Enforcement
abstract
We present a new technique and system, DIODE, for auto- matically generating inputs that trigger overflows at memory allocation sites. DIODE is designed to identify relevant sanity checks that inputs must satisfy to trigger overflows at target memory allocation sites, then generate inputs that satisfy these sanity checks to successfully trigger the overflow. DIODE works with off-the-shelf, production x86 binaries. Our results show that, for our benchmark set of applications, and for every target memory allocation site exercised by our seed inputs (which the applications process correctly with no overflows), either 1) DIODE is able to generate an input that triggers an overflow at that site or 2) there is no input that would trigger an overflow for the observed target expression at that site.
Stelios Sidiroglou-Douskos, Eric Lahtinen, Nathan Rittenhouse, Paolo Piselli, Fan Long, Deokhwan Kim, Martin C. Rinard
ASPLOS5
2015 Control Jujutsu: On the Weaknesses of Fine-Grained Control Flow Integrity
abstract
Control flow integrity (CFI) has been proposed as an approach to defend against control-hijacking memory corruption attacks. CFI works by assigning tags to indirect branch targets statically and checking them at runtime. Coarse-grained enforcements of CFI that use a small number of tags to improve the performance overhead have been shown to be ineffective. As a result, a number of recent efforts have focused on fine-grained enforcement of CFI as it was originally proposed. In this work, we show that even a fine-grained form of CFI with unlimited number of tags and a shadow stack (to check calls and returns) is ineffective in protecting against malicious attacks. We show that many popular code bases such as Apache and Nginx use coding practices that create flexibility in their intended control flow graph (CFG) even when a strong static analyzer is used to construct the CFG. These flexibilities allow an attacker to gain control of the execution while strictly adhering to a fine-grained CFI. We then construct two proof-of-concept exploits that attack an unlimited tag CFI system with a shadow stack. We also evaluate the difficulties of generating a precise CFG using scalable static analysis for real-world applications. Finally, we perform an analysis on a number of popular applications that highlights the availability of such attacks.
Isaac Evans, Fan Long, Ulziibayar Otgonbaatar, Howard E. Shrobe, Martin C. Rinard, Hamed Okhravi, Stelios Sidiroglou-Douskos
CCS2
2015 An analysis of patch plausibility and correctness for generate-and-validate patch generation systems
abstract
We analyze reported patches for three existing generate-and- validate patch generation systems (GenProg, RSRepair, and AE). The basic principle behind generate-and-validate systems is to accept only plausible patches that produce correct outputs for all inputs in the validation test suite. Because of errors in the patch evaluation infrastructure, the majority of the reported patches are not plausible — they do not produce correct outputs even for the inputs in the validation test suite. The overwhelming majority of the reported patches are not correct and are equivalent to a single modification that simply deletes functionality. Observed negative effects include the introduction of security vulnerabilities and the elimination of desirable functionality. We also present Kali, a generate-and-validate patch generation system that only deletes functionality. Working with a simpler and more effectively focused search space, Kali generates at least as many correct patches as prior GenProg, RSRepair, and AE systems. Kali also generates at least as many patches that produce correct outputs for the inputs in the validation test suite as the three prior systems. We also discuss the patches produced by ClearView, a generate-and-validate binary hot patching system that lever- ages learned invariants to produce patches that enable systems to survive otherwise fatal defects and security attacks. Our analysis indicates that ClearView successfully patches 9 of the 10 security vulnerabilities used to evaluate the system. At least 4 of these patches are correct.
Zichao Qi, Fan Long, Sara Achour, Martin C. Rinard
ISSTA2
2015 Principled Sampling for Anomaly Detection
Brendan Juba, Christopher Musco, Fan Long, Stelios Sidiroglou-Douskos, Martin C. Rinard
NDSS3
2015 Automatic error elimination by horizontal code transfer across multiple applications
abstract
We present Code Phage (CP), a system for automatically transferring correct code from donor applications into recipient applications that process the same inputs to successfully eliminate errors in the recipient. Experimental results using seven donor applications to eliminate ten errors in seven recipient applications highlight the ability of CP to transfer code across applications to eliminate out of bounds access, integer overflow, and divide by zero errors. Because CP works with binary donors with no need for source code or symbolic information, it supports a wide range of use cases. To the best of our knowledge, CP is the first system to automatically transfer code across multiple applications.
Stelios Sidiroglou-Douskos, Eric Lahtinen, Fan Long, Martin C. Rinard
PLDI3
2015 Staged program repair with condition synthesis
abstract
We present SPR, a new program repair system that combines staged program repair and condition synthesis. These techniques enable SPR to work productively with a set of parameterized transformation schemas to generate and efficiently search a rich space of program repairs. Together these techniques enable SPR to generate correct repairs for over five times as many defects as previous systems evaluated on the same benchmark set.
Fan Long, Martin C. Rinard
ESEC/SIGSOFT FSE1
2014 Automatic runtime error repair and containment via recovery shepherding
abstract
We present a system, RCV, for enabling software applications to survive divide-by-zero and null-dereference errors. RCV operates directly on off-the-shelf, production, stripped x86 binary executables. RCV implements recovery shepherding, which attaches to the application process when an error occurs, repairs the execution, tracks the repair effects as the execution continues, contains the repair effects within the application process, and detaches from the process after all repair effects are flushed from the process state. RCV therefore incurs negligible overhead during the normal execution of the application.
Fan Long, Stelios Sidiroglou-Douskos, Martin C. Rinard
PLDI1
2014 Sound input filter generation for integer overflow errors
abstract
We present a system, SIFT, for generating input filters that nullify integer overflow errors associated with critical program sites such as memory allocation or block copy sites. SIFT uses a static pro- gram analysis to generate filters that discard inputs that may trigger integer overflow errors in the computations of the sizes of allocated memory blocks or the number of copied bytes in block copy operations. Unlike all previous techniques of which we are aware, SIFT is sound -- if an input passes the filter, it will not trigger an integer overflow error at any analyzed site. Our results show that SIFT successfully analyzes (and therefore generates sound input filters for) 56 out of 58 memory allocation and block memory copy sites in analyzed input processing modules from five applications (VLC, Dillo, Swfdec, Swftools, and GIMP). These nullified errors include six known integer overflow vulnerabilities. Our results also show that applying these filters to 62895 real-world inputs produces no false positives. The analysis and filter generation times are all less than a second.
Fan Long, Stelios Sidiroglou-Douskos, Deokhwan Kim, Martin C. Rinard
POPL1
2013 From Natural Language Specifications to Program Input Parsers
Tao Lei 0001, Fan Long, Regina Barzilay, Martin C. Rinard
ACL (1)2
2012 Automatic input rectification
abstract
We present a novel technique, automatic input rectification, and a prototype implementation, SOAP. SOAP learns a set of constraints characterizing typical inputs that an application is highly likely to process correctly. When given an atypical input that does not satisfy these constraints, SOAP automatically rectifies the input (i.e., changes the input so that it satisfies the learned constraints). The goal is to automatically convert potentially dangerous inputs into typical inputs that the program is highly likely to process correctly. Our experimental results show that, for a set of benchmark applications (Google Picasa, ImageMagick, VLC, Swfdec, and Dillo), this approach effectively converts malicious inputs (which successfully exploit vulnerabilities in the application) into benign inputs that the application processes correctly. Moreover, a manual code analysis shows that, if an input does satisfy the learned constraints, it is incapable of exploiting these vulnerabilities. We also present the results of a user study designed to evaluate the subjective perceptual quality of outputs from benign but atypical inputs that have been automatically rectified by SOAP to conform to the learned constraints. Specifically, we obtained benign inputs that violate learned constraints, used our input rectifier to obtain rectified inputs, then paid Amazon Mechanical Turk users to provide their subjective qualitative perception of the difference between the outputs from the original and rectified inputs. The results indicate that rectification can often preserve much, and in many cases all, of the desirable data in the original input.
Fan Long, Vijay Ganesh 0001, Michael Carbin, Stelios Sidiroglou-Douskos, Martin C. Rinard
ICSE1
2011 G2: A Graph Processing System for Diagnosing Distributed Systems
Dong Zhou 0006, Haoxiang Lin, Mao Yang 0004, Fan Long, Chaoqiang Deng, Changshu Liu, Lidong Zhou
USENIX ATC5
2010 Language-based replay via data flow cut
abstract
A replay tool aiming to reproduce a program's execution interposes itself at an appropriate replay interface between the program and the environment. During recording, it logs all non-deterministic side effects passing through the interface from the environment and feeds them back during replay. The replay interface is critical for correctness and recording overhead of replay tools.
Ming Wu 0007, Fan Long, Xi Wang 0005, Zhilei Xu, Haoxiang Lin, Xuezheng Liu, Huayang Guo, Lidong Zhou, Zheng Zhang 0001
SIGSOFT FSE2
2009 MODIST: Transparent Model Checking of Unmodified Distributed Systems
Tisheng Chen, Ming Wu 0007, Zhilei Xu, Xuezheng Liu, Haoxiang Lin, Mao Yang 0004, Fan Long, Lidong Zhou
NSDI8
2009 Api hyperlinking via structural overlap
abstract
This paper presents a tool Altair that automatically generates API function cross-references, which emphasizes reliable structural measures and does not depend on specific client code. Altair ranks related API functions for a given query according to pair-wise overlap, i.e., how they share state, and clusters tightly related ones into meaningful modules.
Fan Long, Xi Wang 0005, Yang Cai 0001
ESEC/SIGSOFT FSE1