skip to main content
10.1145/3577923.3583647acmconferencesArticle/Chapter ViewAbstractPublication PagescodaspyConference Proceedingsconference-collections
research-article
Public Access

Role Models: Role-based Debloating for Web Applications

Published:24 April 2023Publication History

ABSTRACT

The process of debloating, i.e., removing unnecessary code and features in software, has become an attractive proposition to managing the ever-expanding attack surface of ever-growing modern applications. Researchers have shown that debloating produces significant security improvements in a variety of application domains including operating systems, libraries, compiled software, and, more recently, web applications. Even though the client/server nature of web applications allows the same backend to serve thousands of users with diverse needs, web applications have been approached monolithically by existing debloating approaches. That is, a feature can be debloated only if none of the users of a web application requires it. Similarly, everyone gets access to the same "global" features, whether they need them or not. Recognizing that different users need access to different features, in this paper we propose role-based debloating for web applications. In this approach, we focus on clustering users with similar usage behavior together and providing them with a custom debloated application that is tailored to their needs. Through a user study with 60 experienced web developers and administrators, we first establish that different users indeed use web applications differently. This data is then used by DBLTR, an automated pipeline for providing tailored debloating based on a user's true requirements. Next to debloating web applications, DBLTR includes a transparent content-delivery mechanism that routes authenticated users to their debloated copies. We demonstrate that for different web applications, DBLTR can be 30-80% more effective than the state-of-the-art in debloating in removing critical vulnerabilities.

References

  1. Muhammad Abubakar, Adil Ahmad, Pedro Fonseca, and Dongyan Xu. 2021. $SHARD$: Fine-Grained Kernel Specialization with Context-Aware Hardening. In Proceedings of the 30th USENIX Security Symposium.Google ScholarGoogle Scholar
  2. Babak Amin Azad, Pierre Laperdrix, and Nick Nikiforakis. 2019. Less is more: quantifying the security benefits of debloating web applications. In Proceedings of the 28th USENIX Security Symposium.Google ScholarGoogle Scholar
  3. Purnima Bholowalia and Arvind Kumar. 2014. EBK-means: A clustering technique based on elbow method and k-means in WSN. International Journal of Computer Applications (2014).Google ScholarGoogle Scholar
  4. Ivan Boci? and Tevfik Bultan. 2016. Finding access control bugs in web applications with CanCheck. In 31st IEEE/ACM International Conference on Automated Software Engineering.Google ScholarGoogle Scholar
  5. Alexander Bulekov, Rasoul Jahanshahi, and Manuel Egele. 2021. Saphire: Sandboxing PHP Applications with Tailored System Call Allowlists. In Proceedings of the 30th USENIX Security Symposium.Google ScholarGoogle Scholar
  6. Johannes Dahse and Jörg Schwenk. 2010. RIPS-A static source code analyser for vulnerabilities in PHP scripts. In Seminar Work. Horst Görtz Institute Ruhr-University Bochum.Google ScholarGoogle Scholar
  7. Michael Dalton, Christos Kozyrakis, and Nickolai Zeldovich. 2009. Nemesis: Preventing Authentication & Access Control Vulnerabilities in Web Applications. (2009).Google ScholarGoogle Scholar
  8. Adam Doupé, Bryce Boe, Christopher Kruegel, and Giovanni Vigna. 2011. Fear the EAR: Discovering and mitigating execution after redirect vulnerabilities. In Proceedings of the ACM SIGSAC Conference on Computer and Communications Security.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Martin Ester, Hans-Peter Kriegel, Jörg Sander, and Xiaowei Xu. 1996. A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise. In Proceedings of the Second International Conference on Knowledge Discovery and Data Mining (KDD'96).Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Fiverr. 2022. The online marketplace for freelance services. https://fiverr.comGoogle ScholarGoogle Scholar
  11. Ivan Fratrić. 2012. ROPGuard: Runtime prevention of return-oriented programming attacks. Technical report (2012).Google ScholarGoogle Scholar
  12. Seyedhamed Ghavamnia, Tapti Palit, Azzedine Benameur, and Michalis Polychronakis. 2020a. Confine: Automated System Call Policy Generation for Container Attack Surface Reduction. In 23rd International Symposium on Research in Attacks, Intrusions and Defenses.Google ScholarGoogle Scholar
  13. Seyedhamed Ghavamnia, Tapti Palit, Shachee Mishra, and Michalis Polychronakis. 2020b. Temporal system call specialization for attack surface reduction. In Proceedings of the 29th USENIX Security Symposium.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Kihong Heo, Woosuk Lee, Pardis Pashakhanloo, and Mayur Naik. 2018. Effective program debloating via reinforcement learning. In Proceedings of the ACM SIGSAC Conference on Computer and Communications Security.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Rasoul Jahanshahi, Adam Doupé, and Manuel Egele. 2020. You shall not pass: Mitigating sql injection attacks on legacy web applications. In Proceedings of the 15th ACM Asia Conference on Computer and Communications Security.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Pawan Jaiswal. 2022. WordPress File Manager Plugin Unauthenticated RCE Exploit. https://medium.com/swlh/wordpress-file-manager-plugin-exploit-for-unauthenticated-rce-8053db3512acGoogle ScholarGoogle Scholar
  17. Xin Jin and Jiawei Han. 2010. K-Means Clustering. Springer US.Google ScholarGoogle Scholar
  18. Igibek Koishybayev and Alexandros Kapravelos. 2020. Mininode: Reducing the Attack Surface of Node.js Applications. In Proceedings of the International Symposium on Research in Attacks, Intrusions and Defenses.Google ScholarGoogle Scholar
  19. Hyungjoon Koo, Seyedhamed Ghavamnia, and Michalis Polychronakis. 2019. Configuration-driven software debloating. In Proceedings of the 12th European Workshop on Systems Security.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Steve McConnell. 2004. Code complete. Pearson Education.Google ScholarGoogle Scholar
  21. Shachee Mishra and Michalis Polychronakis. 2018. Shredder: Breaking exploits through API specialization. In Proceedings of the 34th Annual Computer Security Applications Conference.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Shachee Mishra and Michalis Polychronakis. 2020. Saffire: Context-sensitive Function Specialization and Hardening against Code Reuse Attacks. In IEEE European Symposium on Security & Privacy.Google ScholarGoogle ScholarCross RefCross Ref
  23. Shachee Mishra and Michalis Polychronakis. 2021. SGXPecial: Specializing SGX Interfaces against Code Reuse Attacks. In Proceedings of the 14th European Workshop on Systems Security.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Andrew Y. Ng, Michael I. Jordan, and Yair Weiss. 2001. On Spectral Clustering: Analysis and an Algorithm. In Proceedings of the 14th International Conference on Neural Information Processing Systems: Natural and Synthetic (Vancouver, British Columbia, Canada) (NIPS'01). MIT Press, Cambridge, MA, USA, 849--856.Google ScholarGoogle Scholar
  25. NPM. 2022. Node Package Manager Statistics. https://blog.npmjs.org/post/615388323067854848/so-long-and-thanks-for-all-the-packages.htmlGoogle ScholarGoogle Scholar
  26. OpenResty. 2022. Scalable Web Platform by Extending NGINX with Lua. https://openresty.org/en/Google ScholarGoogle Scholar
  27. Packagist. 2022a. The PHP Package Repository. https://packagist.org/statisticsGoogle ScholarGoogle Scholar
  28. Packagist. 2022b. Popular PHP Packages. https://packagist.org/explore/popularGoogle ScholarGoogle Scholar
  29. Vasilis Pappas. 2012. kBouncer: Efficient and transparent ROP mitigation. (2012).Google ScholarGoogle Scholar
  30. PyPI. 2022. Package Download Statistics. https://pypistats.org/topGoogle ScholarGoogle Scholar
  31. Chenxiong Qian, Hyungjoon Koo, ChangSeok Oh, Taesoo Kim, and Wenke Lee. 2020. Slimium: Debloating the Chromium Browser with Feature Subsetting. In Proceedings of the ACM SIGSAC Conference on Computer and Communications Security.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Anh Quach, Aravind Prakash, and Lok Yan. 2018. Debloating software through piece-wise compilation and loading. In Proceedings of the 27th USENIX Security Symposium.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Vaibhav Rastogi, Drew Davidson, Lorenzo De Carli, Somesh Jha, and Patrick McDaniel. 2017. Cimplifier: automatically debloating containers. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Nilo Redini, Ruoyu Wang, Aravind Machiry, Yan Shoshitaishvili, Giovanni Vigna, and Christopher Kruegel. 2019. Bintrimmer: Towards static binary debloating through abstract interpretation. In International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment.Google ScholarGoogle ScholarCross RefCross Ref
  35. Ambionics Security. 2017. PHPGGC: PHP Generic Gadget Chains. https://github.com/ambionics/phpggcGoogle ScholarGoogle Scholar
  36. Peter Snyder, Cynthia Taylor, and Chris Kanich. 2017. Most websites don't need to vibrate: A cost-benefit approach to improving browser security. In Proceedings of the ACM SIGSAC Conference on Computer and Communications Security.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Sooel Son, Kathryn S McKinley, and Vitaly Shmatikov. 2013. Fix Me Up: Repairing Access-Control Bugs in Web Applications.. In NDSS.Google ScholarGoogle Scholar
  38. Statistica. 2022. How many websites are there? https://www.statista.com/chart/19058/number-of-websites-online/Google ScholarGoogle Scholar
  39. Upwork. 2022. The marketplace for freelancers. https://upwork.comGoogle ScholarGoogle Scholar
  40. Andreas Zeller and Ralf Hildebrandt. 2002. Simplifying and isolating failure-inducing input. IEEE Transactions on Software Engineering , Vol. 28, 2 (2002). ioGoogle ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Role Models: Role-based Debloating for Web Applications

      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
        CODASPY '23: Proceedings of the Thirteenth ACM Conference on Data and Application Security and Privacy
        April 2023
        304 pages
        ISBN:9798400700675
        DOI:10.1145/3577923

        Copyright © 2023 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: 24 April 2023

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate149of789submissions,19%

        Upcoming Conference

        CODASPY '24
      • Article Metrics

        • Downloads (Last 12 months)86
        • Downloads (Last 6 weeks)8

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader