skip to main content
10.1145/2508859.2516704acmconferencesArticle/Chapter ViewAbstractPublication PagesccsConference Proceedingsconference-collections
research-article

ShadowReplica: efficient parallelization of dynamic data flow tracking

Published:04 November 2013Publication History

ABSTRACT

Dynamic data flow tracking (DFT) is a technique broadly used in a variety of security applications that, unfortunately, exhibits poor performance, preventing its adoption in production systems. We present ShadowReplica, a new and efficient approach for accelerating DFT and other shadow memory-based analyses, by decoupling analysis from execution and utilizing spare CPU cores to run them in parallel. Our approach enables us to run a heavyweight technique, like dynamic taint analysis (DTA), twice as fast, while concurrently consuming fewer CPU cycles than when applying it in-line. DFT is run in parallel by a second shadow thread that is spawned for each application thread, and the two communicate using a shared data structure. We avoid the problems suffered by previous approaches, by introducing an off-line application analysis phase that utilizes both static and dynamic analysis methodologies to generate optimized code for decoupling execution and implementing DFT, while it also minimizes the amount of information that needs to be communicated between the two threads. Furthermore, we use a lock-free ring buffer structure and an N-way buffering scheme to efficiently exchange data between threads and maintain high cache-hit rates on multi-core CPUs. Our evaluation shows that ShadowReplica is on average ~2.3× faster than in-line DFT (~2.75× slowdown over native execution) when running the SPEC CPU2006 benchmark, while similar speed ups were observed with command-line utilities and popular server software. Astoundingly, ShadowReplica also reduces the CPU cycles used up to 30%.

References

  1. M. Abadi, M. Budiu, U. Erlingsson, and J. Ligatti. Control-flow integrity. In Proc. of CCS, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques, and Tools (2nd Edition). Addison-Wesley Longman Publishing Co., Inc., 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Attariyan and J. Flinn. Automating configuration troubleshooting with dynamic information flow analysis. In Proc. of OSDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D. Bruening and Q. Zhao. Practical memory checking with dr. memory. In Proc. of CGO, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Bruening, Q. Zhao, and S. Amarasinghe. Transparent dynamic instrumentation. In Proc. of VEE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Y. Chen and H. Chen. Scalable deterministic replay in a parallel full-system emulator. In Proc. of PPoPP, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. V. Chipounov, V. Kuznetsov, and G. Candea. S2E: a platform for in-vivo multi-path analysis of software systems. In Proc. of ASPLOS, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Chow, T. Garfinkel, and P. Chen. Decoupling dynamic program analysis from execution in virtual environments. In Proc. of USENIX ATC, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Chow, B. Pfaff, T. Garfinkel, K. Christopher, and M. Rosenblum. Understanding Data Lifetime via Whole System Simulation. In Proc. of USENIX Security, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. Clause, W. Li, and A. Orso. Dytan: A Generic Dynamic Taint Analysis Framework. In Proc. of ISSTA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Costa, J. Crowcroft, M. Castro, A. Rowstron, L. Zhou, L. Zhang, and P. Barham. Vigilante: End-to-End Containment of Internet Worms. In Proc. of SOSP, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. W. Enck, P. Gilbert, B.-G. Chun, L. P. Cox, J. Jung, P. McDaniel, and A. N. Sheth. TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones. In Proc. of OSDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Festa, P. M. Pardalos, and M. G. Resende. Feedback set problems. Handbook of combinatorial optimization, 4:209--258, 1999.Google ScholarGoogle Scholar
  14. J. Ha, M. Arnold, S. M. Blackburn, and K. S. McKinley. A concurrent dynamic analysis framework for multicore hardware. In Proc. of OOPSLA, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Hex-Rays. The IDA Pro Disassembler and Debugger, cited Aug. 2013. http://www.hex-rays.com/products/ida/.Google ScholarGoogle Scholar
  16. A. Jaleel, R. S. Cohn, C.-K. Luk, and B. Jacob. Cmp$im: A pin-based on-the-fly multi-core cache simulator. In Proc. of MoBS, 2008.Google ScholarGoogle Scholar
  17. K. Jee. Bug 56113. GCC Bugzilla, cited Aug. 2013. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56113.Google ScholarGoogle Scholar
  18. K. Jee, G. Portokalidis, V. P. Kemerlis, S. Ghosh, D. I. August, and A. D. Keromytis. A General Approach for Efficiently Accelerating Software-based Dynamic Data Flow Tracking on Commodity Hardware. In Proc. of NDSS, 2012.Google ScholarGoogle Scholar
  19. V. P. Kemerlis, G. Portokalidis, K. Jee, and A. D. Keromytis. libdft: practical dynamic data flow tracking for commodity systems. In Proc. of VEE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. L. Lamport. Specifying Concurrent Program Modules. ACM Transactions on Programming Languages and Systems (TOPLAS), 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. K. H. Lee, X. Zhang, and D. Xu. High Accuracy Attack Provenance via Binary-based Execution Partition. In Proc. of NDSS, 2013.Google ScholarGoogle Scholar
  22. C. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. Reddi, and K. Hazelwood. Pin: building customized program analysis tools with dynamic instrumentation. In Proc. of PLDI, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. N. Nethercote and J. Seward. Valgrind: a framework for heavyweight dynamic binary instrumentation. In Proc. of PLDI, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. J. Newsome and D. Song. Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software. In Proc. of NDSS, 2005.Google ScholarGoogle Scholar
  25. E. B. Nightingale, D. Peek, P. M. Chen, and J. Flinn. Parallelizing security checks on commodity hardware. In Proc. of ASPLOS, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. G. Portokalidis, P. Homburg, K. Anagnostakis, and H. Bos. Paranoid Android: Versatile protection for smartphones. In Proc. of ACSAC, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. G. Portokalidis, A. Slowinska, and H. Bos. Argos: an Emulator for Fingerprinting Zero-Day Attacks. In Proc. of EuroSys, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. F. Qin, C. Wang, Z. Li, H.-s. Kim, Y. Zhou, and Y. Wu. LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks. In Proc. of MICRO, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. A. Slowinska, T. Stancescu, and H. Bos. Howard: a dynamic excavator for reverse engineering data structures. In Proc. of NDSS, 2011.Google ScholarGoogle Scholar
  30. R. Wahbe, S. Lucco, T. E. Anderson, and S. L. Graham. Efficient software-based fault isolation. In Proc. of SOSP, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. S. Wallace and K. Hazelwood. Superpin: Parallelizing dynamic instrumentation for real-time performance. In Proc. of CGO, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. H. Yin, D. Song, M. Egele, C. Kruegel, and E. Kirda. Panorama: capturing system-wide information flow for malware detection and analysis. In Proc. of CCS, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Q. Zhao, I. Cutcutache, and W. Wong. PiPA: pipelined profiling and analysis on multi-core systems. In Proc. of CGO, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. D. Zhu, J. Jung, D. Song, T. Kohno, and D. Wetherall. TaintEraser: Protecting Sensitive Data Leaks Using Application-Level Taint Tracking. In SIGOPS Oper. Syst. Rev., 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. ShadowReplica: efficient parallelization of dynamic data flow tracking

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            CCS '13: Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
            November 2013
            1530 pages
            ISBN:9781450324779
            DOI:10.1145/2508859

            Copyright © 2013 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 4 November 2013

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            CCS '13 Paper Acceptance Rate105of530submissions,20%Overall Acceptance Rate1,261of6,999submissions,18%

            Upcoming Conference

            CCS '24
            ACM SIGSAC Conference on Computer and Communications Security
            October 14 - 18, 2024
            Salt Lake City , UT , USA

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader