Repository logo

Infoscience

  • English
  • French
Log In
Logo EPFL, École polytechnique fédérale de Lausanne

Infoscience

  • English
  • French
Log In
  1. Home
  2. Academic and Research Output
  3. Conferences, Workshops, Symposiums, and Seminars
  4. RetroWrite: Statically Instrumenting COTS Binaries for Fuzzing and Sanitization
 
conference paper

RetroWrite: Statically Instrumenting COTS Binaries for Fuzzing and Sanitization

Dinesh, Sushant
•
Burow, Nathan
•
Xu, Dongyan
Show more
January 1, 2020
2020 Ieee Symposium On Security And Privacy (Sp 2020)
41st IEEE Symposium on Security and Privacy (SP)

Analyzing the security of closed source binaries is currently impractical for end-users, or even developers who rely on third-party libraries. Such analysis relies on automatic vulnerability discovery techniques, most notably fuzzing with sanitizers enabled. The current state of the art for applying fuzzing or sanitization to binaries is dynamic binary translation, which has prohibitive performance overhead. The alternate technique, static binary rewriting, cannot fully recover symbolization information and hence has difficulty modifying binaries to track code coverage for fuzzing or to add security checks for sanitizers.

The ideal solution for binary security analysis would be a static rewriter that can intelligently add the required instrumentation as if it were inserted at compile time. Such instrumentation requires an analysis to statically disambiguate between references and scalars, a problem known to be undecidable in the general case. We show that recovering this information is possible in practice for the most common class of software and libraries: 64-bit, position independent code. Based on this observation, we develop RetroWrite, a binary-rewriting instrumentation to support American Fuzzy Lop (AFL) and Address Sanitizer (ASan), and show that it can achieve compiler-level performance while retaining precision. Binaries rewritten for coverage-guided fuzzing using RetroWrite are identical in performance to compiler-instrumented binaries and outperform the default QEMU-based instrumentation by 4.5x while triggering more bugs. Our implementation of binary-only Address Sanitizer is 3x faster than Valgrind's memcheck, the state-of-the-art binary-only memory checker, and detects 80% more bugs in our evaluation.

  • Details
  • Metrics
Type
conference paper
DOI
10.1109/SP40000.2020.00009
Web of Science ID

WOS:000618063500088

Author(s)
Dinesh, Sushant
Burow, Nathan
Xu, Dongyan
Payer, Mathias  
Date Issued

2020-01-01

Publisher

IEEE COMPUTER SOC

Publisher place

Los Alamitos

Published in
2020 Ieee Symposium On Security And Privacy (Sp 2020)
ISBN of the book

978-1-7281-3497-0

Series title/Series vol.

IEEE Symposium on Security and Privacy

Start page

1497

End page

1511

Subjects

Computer Science, Information Systems

•

Computer Science, Theory & Methods

•

Engineering, Electrical & Electronic

•

Computer Science

•

Engineering

Editorial or Peer reviewed

REVIEWED

Written at

EPFL

EPFL units
HEXHIVE  
Event nameEvent placeEvent date
41st IEEE Symposium on Security and Privacy (SP)

ELECTR NETWORK

May 18-21, 2020

Available on Infoscience
March 26, 2021
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/176474
Logo EPFL, École polytechnique fédérale de Lausanne
  • Contact
  • infoscience@epfl.ch

  • Follow us on Facebook
  • Follow us on Instagram
  • Follow us on LinkedIn
  • Follow us on X
  • Follow us on Youtube
AccessibilityLegal noticePrivacy policyCookie settingsEnd User AgreementGet helpFeedback

Infoscience is a service managed and provided by the Library and IT Services of EPFL. © EPFL, tous droits réservés