• DocumentCode
    2944474
  • Title

    TaintScope: A Checksum-Aware Directed Fuzzing Tool for Automatic Software Vulnerability Detection

  • Author

    Wang, Tielei ; Wei, Tao ; Gu, Guofei ; Zou, Wei

  • Author_Institution
    Key Lab. of Network & Software Security Assurance, Peking Univ., Beijing, China
  • fYear
    2010
  • fDate
    16-19 May 2010
  • Firstpage
    497
  • Lastpage
    512
  • Abstract
    Fuzz testing has proven successful in finding security vulnerabilities in large programs. However, traditional fuzz testing tools have a well-known common drawback: they are ineffective if most generated malformed inputs are rejected in the early stage of program running, especially when target programs employ checksum mechanisms to verify the integrity of inputs. In this paper, we present TaintScope, an automatic fuzzing system using dynamic taint analysis and symbolic execution techniques, to tackle the above problem. TaintScope has several novel contributions: 1) TaintScope is the first checksum-aware fuzzing tool to the best of our knowledge. It can identify checksum fields in input instances, accurately locate checksum-based integrity checks by using branch profiling techniques, and bypass such checks via control flow alteration. 2) TaintScope is a directed fuzzing tool working at X86 binary level (on both Linux and Window). Based on fine-grained dynamic taint tracing, TaintScope identifies which bytes in a well-formed input are used in security-sensitive operations (e.g., invoking system/library calls) and then focuses on modifying such bytes. Thus, generated inputs are more likely to trigger potential vulnerabilities. 3) TaintScope is fully automatic, from detecting checksum, directed fuzzing, to repairing crashed samples. It can fix checksum values in generated inputs using combined concrete and symbolic execution techniques. We evaluate TaintScope on a number of large real-world applications. Experimental results show that TaintScope can accurately locate the checksum checks in programs and dramatically improve the effectiveness of fuzz testing. TaintScope has already found 27 previously unknown vulnerabilities in several widely used applications, including Adobe Acrobat, Google Picasa, Microsoft Paint, and ImageMagick. Most of these severe vulnerabilities have been confirmed by Secunia and oCERT, and assigned CVE identifiers (such as CVE-2009-1882, CVE-200- - 9-2688). Corresponding patches from vendors are released or in progress based on our reports.
  • Keywords
    Assembly; Computational modeling; Computer architecture; Digital signal processing; Digital signal processing chips; Large scale integration; Logic; Registers; Software tools; Telecommunication control; dynamic taint analysis; fuzzing; symbolic execution;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Security and Privacy (SP), 2010 IEEE Symposium on
  • Conference_Location
    Oakland, CA, USA
  • ISSN
    1081-6011
  • Print_ISBN
    978-1-4244-6894-2
  • Electronic_ISBN
    1081-6011
  • Type

    conf

  • DOI
    10.1109/SP.2010.37
  • Filename
    5504701