| EOS is a blockchain platform launched in 2017.It supports smart contracts and decentralized applications.In the past few years,several attacks against the vulnerabilities of EOS smart contracts have caused severe financial losses to this prevalent blockchain platform.As a lightweight test-generation approach,grey-box fuzzing can open up the possibility of improving the security of EOS smart contracts.However,developing a practical grey-box fuzzer for EOS smart contracts from scratch is time-consuming and requires a deep understanding of EOS internals.Existing static detection tools suffer from high false positive rates and are difficult to expand for newly discovered security vulnerabilities.However,the existing detection tools based on black-box fuzzing have the defect of low code coverage.In this thesis,we proposed Ant Fuzzer,a highly extensible grey-box fuzzing framework for EOS smart contracts.Ant Fuzzer implements a novel approach that interfaces AFL to conduct AFL-style grey-box fuzzing on EOS smart contracts.Compared to blackbox fuzzing tools,Ant Fuzzer can effectively trigger those hard-to-cover branches.It achieved an improvement in code coverage on 37.5% of smart contracts in our benchmark dataset,the average code coverage improved by 22.7%.Second,Ant Fuzzer is designed to be extensible.Ant Fuzzer provides unified interfaces for users to develop new detection plugins for continually emerging vulnerabilities easily.Third,we have implemented8 detection plugins on Ant Fuzzer to detect major vulnerabilities of EOS smart contracts.Among them,this thesis presents new detection techniques for integer overflow,stack overflow and receipt hijack vulnerabilities of EOS smart contracts.On the benchmark dataset,the detection accuracy of Ant Fuzzer reaches 97.8%.In large-scale fuzzing experiments on 4,616 real-world smart contracts,Ant Fuzzer detected 754 vulnerabilities.The results demonstrate the effectiveness and efficiency of Ant Fuzzer and our detection plugins. |