skip to main content
10.1145/2048066.2048145acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

F4F: taint analysis of framework-based web applications

Authors Info & Claims
Published:22 October 2011Publication History

ABSTRACT

This paper presents F4F (Framework For Frameworks), a system for effective taint analysis of framework-based web applications. Most modern web applications utilize one or more web frameworks, which provide useful abstractions for common functionality. Due to extensive use of reflective language constructs in framework implementations, existing static taint analyses are often ineffective when applied to framework-based applications. While previous work has included ad hoc support for certain framework constructs, adding support for a large number of frameworks in this manner does not scale from an engineering standpoint.

F4F employs an initial analysis pass in which both application code and configuration files are processed to generate a specification of framework-related behaviors. A taint analysis engine can leverage these specifications to perform a much deeper, more precise analysis of framework-based applications. Our specification language has only a small number of simple but powerful constructs, easing analysis engine integration. With this architecture, new frameworks can be handled with no changes to the core analysis engine, yielding significant engineering benefits.

We implemented specification generators for several web frameworks and added F4F support to a state-of-the-art taint-analysis engine. In an experimental evaluation, the taint analysis enhanced with F4F discovered 525 new issues across nine benchmarks, a harmonic mean of 2.10X more issues per benchmark. Furthermore, manual inspection of a subset of the new issues showed that many were exploitable or reflected bad security practice.

References

  1. J. Aldrich, J. Sunshine, D. Saini, and Z. Sparks. Typestate-oriented programming. In OOPSLA Onward!, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Ball, V. Levin, and F. Xie. Automatic creation of environment models via training. In TACAS, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  3. Java SE Desktop Technologies -- Java Beans. http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138795.htm%l.Google ScholarGoogle Scholar
  4. M. Bravenboer and Y. Smaragdakis. Strictly declarative specification of sophisticated points-to analyses. In OOPSLA, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. Burbeck. Applications programming in Smalltalk-80: How to use model-view-controller (MVC). http://st-www.cs.illinois.edu/users/smarch/st-docs/mvc.html, 1992.Google ScholarGoogle Scholar
  6. P. Centonze, G. Naumovich, S. J. Fink, and M. Pistoia. Role-Based Access Control Consistency Validation. In ISSTA, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. The Unified Expression Language. http://java.sun.com/products/jsp/reference/techart/unifiedEL.html.Google ScholarGoogle Scholar
  8. S. Guarnieri, M. Pistoia, O. Tripp, J. Dolby, S. Teilhet, and R. Berg. Saving the World Wide Web from vulnerable JavaScript. In Proceedings of the 2011 International Symposium on Software Testing and Analysis, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. Jaspan and J. Aldrich. Checking framework interactions with relationships. In ECOOP, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Java EE at a Glance. http://www.oracle.com/technetwork/java/javaee/.Google ScholarGoogle Scholar
  11. JavaServer Pages Technology. http://java.sun.com/products/jsp/.Google ScholarGoogle Scholar
  12. B. Livshits, J. Whaley, and M. S. Lam. Reflection analysis for Java. In K. Yi, editor, Proceedings of the 3rd Asian Symposium on Programming Languages and Systems, Nov. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. V. B. Livshits and M. S. Lam. Finding security errors in Java programs with static analysis. In Proceedings of the 14th Usenix Security Symposium, Aug. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. V. B. Livshits, A. V. Nori, S. K. Rajamani, and A. Banerjee. Merlin: specification inference for explicit information flow problems. In PLDI, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. C. Myers. JFlow: practical mostly-static information flow control. In POPL, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. O'Callahan. Generalized Aliasing as a Basis for Program Analysis Tools. PhD thesis, Carnegie Mellon University, November 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. OWASP. Cross-site scripting. http://www.owasp.org/index.php/Cross-site_Scripting_(XSS). Accessed 16-August-2011.Google ScholarGoogle Scholar
  18. U. Shankar, K. Talwar, J. S. Foster, and D. Wagner. Detecting format string vulnerabilities with type qualifiers. In USENIX Security Symposium, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. T. Tateishi, M. Pistoia, and O. Tripp. Path- and index-sensitive string analysis based on monadic second-order logic. In Proceedings of the 2011 International Symposium on Software Testing and Analysis, ISSTA '11, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. O. Tripp, M. Pistoia, S. J. Fink, M. Sridharan, and O. Weisman. TAJ: effective taint analysis of web applications. In PLDI, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. R. Vallée-Rai, L. Hendren, V. Sundaresan, P. Lam, E. Gagnon, and P. Co. Soot - a Java optimization framework. In Proceedings of CASCON, 1999.Google ScholarGoogle Scholar
  22. T.J. Watson Libraries for Analysis (WALA). http://wala.sourceforge.net.Google ScholarGoogle Scholar
  23. Wikipedia. Comparison of web application frameworks. http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks. Accessed 16-August-2011.Google ScholarGoogle Scholar
  24. X. Zhang, L. Koved, M. Pistoia, S. Weber, T. Jaeger, G. Marceau, and L. Zeng. The case for analysis preserving language transformation. In ISSTA, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. F4F: taint analysis of framework-based 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
                OOPSLA '11: Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
                October 2011
                1104 pages
                ISBN:9781450309400
                DOI:10.1145/2048066
                • cover image ACM SIGPLAN Notices
                  ACM SIGPLAN Notices  Volume 46, Issue 10
                  OOPSLA '11
                  October 2011
                  1063 pages
                  ISSN:0362-1340
                  EISSN:1558-1160
                  DOI:10.1145/2076021
                  Issue’s Table of Contents

                Copyright © 2011 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 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]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 22 October 2011

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article

                Acceptance Rates

                Overall Acceptance Rate268of1,244submissions,22%

                Upcoming Conference

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader