Nothing Special   »   [go: up one dir, main page]

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

DamGate: Dynamic Adaptive Multi-feature Gating in Program Binaries

Published: 03 November 2017 Publication History

Abstract

Feature creep has emerged as a serious threat due to the growing number of utilities and capabilities crammed into modern software systems. While feature elimination and de-bloating techniques can produce slimmer executables, a complete elimination of all unnecessary or unwanted features is often not possible, not only due to the tight coupling of feature-related functions/codes, but also because the usefulness/necessity of program features is often difficult to determine statically and can vary during runtime. This paper presents DamGate, a framework for dynamic feature customization, allowing vigilant management of program features at runtime to prevent violation of privacy and security policies. At the heart of this technique is the selective placement of checker functions(known as gates) into feature-constituent functions that need to be protected. Through execution gating and feature validation on the fly, DamGate provides differentiated control policy for program features and enables flexible runtime reconfiguration. The proposed framework is prototyped and evaluated using LibreOffice, a large-scale office suit. The evaluation results show that it can achieve desired feature customization with negligible gating overhead.

References

[1]
Yufei Jiang, Can Zhang, Dinghao Wu, and Peng Liu. Feature-based software customization: Preliminary analysis, formalization, and methods. In High Assurance Systems Engineering (HASE), 2016 IEEE 17th International Symposium on, pages 122--131. IEEE, 2016.
[2]
Gail C. Murphy, Albert Lai, Robert J. Walker, and Martin P. Robillard. Separating features in source code: An exploratory study. In Software Engineering, 2001. ICSE 2001. Proceedings of the 23rd International Conference on, pages 275--284. IEEE, 2001.
[3]
Guoqing Xu, Nick Mitchell, Matthew Arnold, Atanas Rountev, and Gary Sevitsky. Software bloat analysis: finding, removing, and preventing performance problems in modern large-scale object-oriented applications. In Proceedings of the FSE/SDP workshop on Future of software engineering research, pages 421--426. ACM, 2010.
[4]
Yufei Jiang, Dinghao Wu, and Peng Liu. Jred: Program customization and bloatware mitigation based on static analysis. In Computer Software and Applications Conference (COMPSAC), 2016 IEEE 40th Annual, volume 1, pages 12--21. IEEE, 2016.
[5]
Guoqing Xu, Nick Mitchell, Matthew Arnold, Atanas Rountev, Edith Schonberg, and Gary Sevitsky. Finding low-utility data structures. ACM Sigplan Notices, 45(6):174--186, 2010.
[6]
Peter Snyder, Lara Ansari, Cynthia Taylor, and Chris Kanich. Browser feature usage on the modern web. In Proceedings of the 2016 ACM on Internet Measurement Conference, pages 97--110. ACM, 2016.
[7]
David A. Powner. Federal agencies need to address aging legacy systems. In Information Technology, Management Issues, 2016.
[8]
The Standish Group. Chaos report. 2014.
[9]
Yan Shoshitaishvili, Ruoyu Wang, Christopher Salls, Nick Stephens, Mario Polino, Andrew Dutcher, John Grosen, Siji Feng, Christophe Hauser, Christopher Kruegel, et al. Sok:(state of) the art of war: Offensive techniques in binary analysis. In Security and Privacy (SP), 2016 IEEE Symposium on, pages 138--157. IEEE, 2016.
[10]
Harish Patil, Cristiano Pereira, Mack Stallcup, Gregory Lueck, and James Cownie. Pinplay: a framework for deterministic replay and reproducible analysis of parallel programs. In Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization, pages 2--11. ACM, 2010.
[11]
Open Source. Dyninst: An application program interface (api) for runtime code generation.
[12]
Gogul Balakrishnan, Radu Gruian, Thomas Reps, and Tim Teitelbaum. Codesurfer/x86:a platform for analyzing x86 executables. In Compiler Construction, pages 139--139. Springer, 2005.
[13]
Yongbo Li, Fan Yao, Tian Lan, and Guru Venkataramani. Sarre: semantics-aware rule recommendation and enforcement for event paths on android. IEEE Transactions on Information Forensics and Security, 11(12):2748--2762, 2016.
[14]
Jens Müller, Vladislav Mladenov, Juraj Somorovsky, and Jörg Schwenk. Sok: Exploiting network printers. In Security and Privacy (SP), 2017 IEEE Symposium on, pages 213--230. IEEE, 2017.
[15]
Chao Zhang, Tao Wei, Zhaofeng Chen, Lei Duan, Laszlo Szekeres, Stephen McCamant, Dawn Song, and Wei Zou. Practical control flow integrity and randomization for binary executables. In Security and Privacy (SP), 2013 IEEE Symposium on, pages 559--573. IEEE, 2013.
[16]
Martín Abadi, Mihai Budiu, Ulfar Erlingsson, and Jay Ligatti. Control-flow integrity. In Proceedings of the 12th ACM conference on Computer and communications security, pages 340--353. ACM, 2005.
[17]
Mingwei Zhang and R. Sekar. Control flow integrity for cots binaries. In USENIX Security Symposium, pages 337--352, 2013.
[18]
Kevin A. Roundy. Hybrid analysis and control of malicious code. PhD thesis, The University of Wisconsin-Madison, 2012.
[19]
Andrew R. Bernat, Kevin Roundy, and Barton P. Miller. Efficient, sensitivity resistant binary instrumentation. In Proceedings of the 2011 International Symposium on Software Testing and Analysis, pages 89--99. ACM, 2011.
[20]
Fan Yao, Yongbo Li, Yurong Chen, Hongfa Xue, Tian Lan, and Guru Venkataramani. Statsym: vulnerable path discovery through statistics-guided symbolic execution. In Dependable Systems and Networks (DSN), 2017 47th Annual IEEE/IFIP International Conference on, pages 109--120. IEEE, 2017.
[21]
Liang Xu, Fangqi Sun, and Zhendong Su. Constructing precise control flow graphs from binaries. University of California, Davis, Tech. Rep, 2009.
[22]
Tiffany Bao, Johnathon Burket, Maverick Woo, Rafael Turner, and David Brumley. Byteweight: Learning to recognize functions in binary code. USENIX, 2014.
[23]
Stephen McCamant and Greg Morrisett. Evaluating sfi for a cisc architecture. In USENIX Security Symposium, 2006.
[24]
Rohit Jalan and Arun Kejariwal. Trin-trin: Who is calling? a pin-based dynamic call graph extraction framework. International Journal of Parallel Programming, pages 1--33, 2012.
[25]
Nick Mitchell and Gary Sevitsky. The causes of bloat, the limits of health. In ACM SIGPLAN Notices, volume 42, pages 245--260. ACM, 2007.
[26]
Guoqing Xu, Nick Mitchell, Matthew Arnold, Atanas Rountev, Edith Schonberg, and Gary Sevitsky. Scalable runtime bloat detection using abstract dynamic slicing. ACM Transactions on Software Engineering and Methodology (TOSEM), 23(3):23, 2014.
[27]
Khanh Nguyen and Guoqing Xu. Cachetor: Detecting cacheable data to remove bloat. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, pages 268--278. ACM, 2013.
[28]
Shuai Wang, Pei Wang, and Dinghao Wu. Reassembleable disassembling. In USENIX Security Symposium, pages 627--642, 2015.
[29]
Christopher Kruegel, William Robertson, and Giovanni Vigna. Detecting kernel-level rootkits through binary analysis. In Computer Security Applications Conference, 2004. 20th Annual, pages 91--100. IEEE, 2004.
[30]
Yan Shoshitaishvili, Ruoyu Wang, Christophe Hauser, Christopher Kruegel, and Giovanni Vigna. Firmalice-automatic detection of authentication bypass vulnerabilities in binary firmware. In NDSS, 2015.
[31]
Xiaozhu Meng and Barton P. Miller. Binary code is not easy. In Proceedings of the 25th International Symposium on Software Testing and Analysis, pages 24--35. ACM, 2016.
[32]
Dongpeng Xu, Jiang Ming, and Dinghao Wu. Cryptographic function detection in obfuscated binaries via bit-precise symbolic loop mapping. In Security and Privacy (SP), 2017 IEEE Symposium on, pages 921--937. IEEE, 2017.
[33]
Jiang Ming and Dinghao Wu. Bincfp: Efficient multi-threaded binary code control flow profiling. In Source Code Analysis and Manipulation (SCAM), 2016 IEEE 16th International Working Conference on, pages 61--66. IEEE, 2016.
[34]
Alessandro Di Federico, Mathias Payer, and Giovanni Agosta. rev. ng: a unified binary analysis framework to recover cfgs and function boundaries. In Proceedings of the 26th International Conference on Compiler Construction, pages 131--141. ACM, 2017.
[35]
Hongfa Xue, Yurong Chen, Fan Yao, Yongbo Li, Tian Lan, and Guru Venkataramani. Simber: Eliminating redundant memory bound checks via statistical inference. In IFIP International Conference on ICT Systems Security and Privacy Protection, pages 413--426. Springer, 2017.
[36]
Jiang Ming, Dongpeng Xu, Yufei Jiang, and Dinghao Wu. Binsim: Trace-based semantic binary diffing via system call sliced segment equivalence checking. In 26th USENIX Security Symposium USENIX Security 17, 2017.
[37]
Ben Niu and Gang Tan. Modular control-flow integrity. ACM SIGPLAN Notices, 49(6):577--587, 2014.
[38]
Ben Niu and Gang Tan. Per-input control-flow integrity. In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, pages 914--926. ACM, 2015.
[39]
Xinyang Ge, Nirupama Talele, Mathias Payer, and Trent Jaeger. Fine-grained control-flow integrity for kernel software. In Security and Privacy (EuroS&P), 2016 IEEE European Symposium on, pages 179--194. IEEE, 2016.
[40]
Nathan Burow, Scott A Carr, Joseph Nash, Per Larsen, Michael Franz, Stefan Brunthaler, and Mathias Payer. Control-flow integrity: Precision, security, and performance. ACM Computing Surveys (CSUR), 50(1):16, 2017.
[41]
Isaac Evans, Fan Long, Ulziibayar Otgonbaatar, Howard Shrobe, Martin Rinard, Hamed Okhravi, and Stelios Sidiroglou-Douskos. Control jujutsu: On the weaknesses of fine-grained control flow integrity. In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, pages 901--913. ACM, 2015.
[42]
Fan Yao, Jie Chen, and Guru Venkataramani. Jop-alarm: Detecting jump-oriented programming-based anomalies in applications. In Computer Design (ICCD), 2013 IEEE 31st International Conference on, pages 467--470. IEEE, 2013.
[43]
Richard Wartell, Vishwath Mohan, Kevin W. Hamlen, and Zhiqiang Lin. Securing untrusted code via compiler-agnostic binary rewriting. In Proceedings of the 28th Annual Computer Security Applications Conference, pages 299--308. ACM, 2012.

Cited By

View all
  • (2023)Input-Driven Dynamic Program Debloating for Code-Reuse Attack MitigationProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616274(934-946)Online publication date: 30-Nov-2023
  • (2023)DynaCutProceedings of the 24th International Middleware Conference10.1145/3590140.3629121(275-287)Online publication date: 27-Nov-2023
  • (2023)Coverage-Based Debloating for Java BytecodeACM Transactions on Software Engineering and Methodology10.1145/354694832:2(1-34)Online publication date: 4-Apr-2023
  • Show More Cited By

Index Terms

  1. DamGate: Dynamic Adaptive Multi-feature Gating in Program Binaries

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      FEAST '17: Proceedings of the 2017 Workshop on Forming an Ecosystem Around Software Transformation
      November 2017
      78 pages
      ISBN:9781450353953
      DOI:10.1145/3141235
      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 ACM 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]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 03 November 2017

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. binary rewriting
      2. de-bloating
      3. feature customization

      Qualifiers

      • Research-article

      Funding Sources

      • US Office of Naval Research

      Conference

      CCS '17
      Sponsor:

      Upcoming Conference

      CCS '25

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)6
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 16 Nov 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2023)Input-Driven Dynamic Program Debloating for Code-Reuse Attack MitigationProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616274(934-946)Online publication date: 30-Nov-2023
      • (2023)DynaCutProceedings of the 24th International Middleware Conference10.1145/3590140.3629121(275-287)Online publication date: 27-Nov-2023
      • (2023)Coverage-Based Debloating for Java BytecodeACM Transactions on Software Engineering and Methodology10.1145/354694832:2(1-34)Online publication date: 4-Apr-2023
      • (2023)Exploring Effective Fuzzing Strategies to Analyze Communication ProtocolsDigital Threats: Research and Practice10.1145/35260885:1(1-22)Online publication date: 4-Oct-2023
      • (2022)DeView: Confining Progressive Web Applications by Debloating Web APIsProceedings of the 38th Annual Computer Security Applications Conference10.1145/3564625.3567987(881-895)Online publication date: 5-Dec-2022
      • (2022)IRQDebloat: Reducing Driver Attack Surface in Embedded Devices2022 IEEE Symposium on Security and Privacy (SP)10.1109/SP46214.2022.9833695(1608-1622)Online publication date: May-2022
      • (2020)Hunting Garbage Collection Related Concurrency Bugs through Critical Condition RestorationProceedings of the 2020 ACM Workshop on Forming an Ecosystem Around Software Transformation10.1145/3411502.3418426(17-22)Online publication date: 13-Nov-2020
      • (2020)EgalitoProceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3373376.3378470(133-147)Online publication date: 9-Mar-2020
      • (2020)Saffire: Context-sensitive Function Specialization against Code Reuse Attacks2020 IEEE European Symposium on Security and Privacy (EuroS&P)10.1109/EuroSP48549.2020.00010(17-33)Online publication date: Sep-2020
      • (2019)Exploring Effective Fuzzing Strategies to Analyze Communication ProtocolsProceedings of the 3rd ACM Workshop on Forming an Ecosystem Around Software Transformation10.1145/3338502.3359762(17-23)Online publication date: 15-Nov-2019
      • Show More Cited By

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media