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.
- 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.Google ScholarDigital Library
- 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.Google ScholarCross Ref
- 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. Google ScholarDigital Library
- 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. Google ScholarCross Ref
- 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. Google ScholarDigital Library
- 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. Google ScholarDigital Library
- David A. Powner. Federal agencies need to address aging legacy systems. In Information Technology, Management Issues, 2016.Google Scholar
- The Standish Group. Chaos report. 2014.Google Scholar
- 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.Google ScholarCross Ref
- 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. Google ScholarDigital Library
- Open Source. Dyninst: An application program interface (api) for runtime code generation.Google Scholar
- 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.Google Scholar
- 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. Google ScholarDigital Library
- 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.Google ScholarCross Ref
- 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.Google ScholarDigital Library
- 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. Google ScholarDigital Library
- Mingwei Zhang and R. Sekar. Control flow integrity for cots binaries. In USENIX Security Symposium, pages 337--352, 2013.Google ScholarDigital Library
- Kevin A. Roundy. Hybrid analysis and control of malicious code. PhD thesis, The University of Wisconsin-Madison, 2012.Google Scholar
- 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. Google ScholarDigital Library
- 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. Google ScholarCross Ref
- Liang Xu, Fangqi Sun, and Zhendong Su. Constructing precise control flow graphs from binaries. University of California, Davis, Tech. Rep, 2009.Google Scholar
- Tiffany Bao, Johnathon Burket, Maverick Woo, Rafael Turner, and David Brumley. Byteweight: Learning to recognize functions in binary code. USENIX, 2014.Google Scholar
- Stephen McCamant and Greg Morrisett. Evaluating sfi for a cisc architecture. In USENIX Security Symposium, 2006.Google ScholarDigital Library
- 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. Google ScholarCross Ref
- Nick Mitchell and Gary Sevitsky. The causes of bloat, the limits of health. In ACM SIGPLAN Notices, volume 42, pages 245--260. ACM, 2007. Google ScholarDigital Library
- 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. Google ScholarDigital Library
- 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. Google ScholarDigital Library
- Shuai Wang, Pei Wang, and Dinghao Wu. Reassembleable disassembling. In USENIX Security Symposium, pages 627--642, 2015.Google Scholar
- 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. Google ScholarDigital Library
- Yan Shoshitaishvili, Ruoyu Wang, Christophe Hauser, Christopher Kruegel, and Giovanni Vigna. Firmalice-automatic detection of authentication bypass vulnerabilities in binary firmware. In NDSS, 2015. Google ScholarCross Ref
- 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. Google ScholarDigital Library
- 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. Google ScholarCross Ref
- 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.Google ScholarCross Ref
- 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.Google ScholarDigital Library
- 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.Google ScholarCross Ref
- 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.Google Scholar
- Ben Niu and Gang Tan. Modular control-flow integrity. ACM SIGPLAN Notices, 49(6):577--587, 2014. Google ScholarDigital Library
- 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.Google ScholarDigital Library
- 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. Google ScholarCross Ref
- 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. Google ScholarDigital Library
- 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. Google ScholarDigital Library
- 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.Google ScholarCross Ref
- 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. Google ScholarDigital Library
Index Terms
- DamGate: Dynamic Adaptive Multi-feature Gating in Program Binaries
Recommendations
TOSS: Tailoring Online Server Systems through Binary Feature Customization
FEAST '18: Proceedings of the 2018 Workshop on Forming an Ecosystem Around Software TransformationNetwork-based models are increasingly adopted to deliver key software service and utilities (e.g., data storage, search, and processing) to end users. The need to satisfy diverse user requirements and to fit different application environment often leads ...
Hybrid binary rewriting for memory access instrumentation
VEE '11: Proceedings of the 7th ACM SIGPLAN/SIGOPS international conference on Virtual execution environmentsMemory access instrumentation is fundamental to many applications such as software transactional memory systems, profiling tools and race detectors. We examine the problem of efficiently instrumenting memory accesses in x86 machine code to support ...
Anywhere, any-time binary instrumentation
PASTE '11: Proceedings of the 10th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software toolsThe Dyninst binary instrumentation and analysis framework distinguishes itself from other binary instrumentation tools through its abstract, machine independent interface; its emphasis on anywhere, any-time binary instrumentation; and its low overhead ...
Comments