Abstract
Modern web applications frequently implement complex control flows, which require the users to perform actions in a given order. Users interact with a web application by sending HTTP requests with parameters and in response receive web pages with hyperlinks that indicate the expected next actions. If a web application takes for granted that the user sends only those expected requests and parameters, malicious users can exploit this assumption by crafting harming requests. We analyze recent attacks on web applications with respect to user-defined requests and identify their root cause in the missing explicit control-flow definition and enforcement. Then, we evaluate the most prevalent web application frameworks in order to assess how far real-world web applications can use existing means to explicitly define and enforce intended control flows. While we find that all tested frameworks allow individual retrofit solutions, only one out of ten provides a dedicated control-flow integrity protection feature. Finally, we describe ways to equip web applications with control-flow integrity properties.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Paleari, R., Marrone, D., Bruschi, D., Monga, M.: On Race Vulnerabilities in Web Applications. In: Zamboni, D. (ed.) DIMVA 2008. LNCS, vol. 5137, pp. 126–142. Springer, Heidelberg (2008)
Chen, S.: Session Puzzles - Indirect Application Attack Vectors. White Paper (May 23, 2012), http://puzzlemall.googlecode.com/files/Session%20Puzzles%20-%20Indirect%20Application%20Attack%20Vectors%20-%20May%202011%20-%20Whitepaper.pdf
Grossman, J.: Seven Business Logic Flaws That Put Your Website At Risk. White Paper (May 19, 2012), https://www.whitehatsec.com/assets/WP_bizlogic092407.pdf
The New York Times: Thieves Found Citigroup Site an Easy Entry (May 24, 2012), http://www.nytimes.com/2011/06/14/technology/14security.html
Wang, R., Chen, S., Wang, X., Qadeer, S.: How to Shop for Free Online – Security Analysis of Cashier-as-a-Service Based Web Stores. In: IEEE Symposium on Security and Privacy (2011)
Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., Berners-Lee, T.: Hypertext Transfer Protocol – HTTP/1.1. RFC 2616 (June 1999), http://www.w3.org/Protocols/rfc2616/rfc2616.html
Berners-Lee, T., Fielding, R., Masinter, L.: Uniform Resource Identifiers (URI): Generic Syntax. RFC 2396 (August 1998), http://www.ietf.org/rfc/rfc2396.txt
Jovanovic, N., Kruegel, C., Kirda, E.: Preventing cross site request forgery attacks. In: Securecomm (2006)
OWASP: Race Conditions (May 23, 2012), https://www.owasp.org/index.php/Race_Conditions
Hallé, S., Ettema, T., Bunch, C., Bultan, T.: Eliminating Navigation Errors in Web Applications via Model Checking and Runtime Enforcement of Navigation State Machines. In: ASE (2010)
builtWith: Framework Usage Statistics – Overview of Statistics for Framework Technologies, http://trends.builtwith.com/framework
Johnson, R.E., Foote, B.: Designing Reusable Classes. Journal of Object-Oriented Programming 1 (1988)
The Apache Software Foundation: Tapestry, http://tapestry.apache.org/
Google, Inc.: Google Web Toolkit, https://developers.google.com/web-toolkit/
SpringSource: The Spring Framework, http://www.springsource.org/
EllisLab, Inc.: CodeIgniter, http://ellislab.com/codeigniter
Cake Software Foundation, Inc.: CakePHP, http://cakephp.org/
Kohana Team: Kohana, http://kohanaframework.org/
Microsoft: ASP.NET, http://www.asp.net/
Microsoft: ASP.NET Web Forms, http://www.asp.net/web-forms
Microsoft: ASP.NET MVC, http://www.asp.net/mvc
Microsoft: ASP.NET Web Pages, http://www.asp.net/web-pages
Hansson, D.H.: Ruby on Rails, http://rubyonrails.org/
Django Software Foundation: Django, https://www.djangoproject.com/
Mozilla Developer Network: AJAX, https://developer.mozilla.org/en-US/docs/AJAX
Spring Projects: Spring Web Flow, http://www.springsource.org/spring-web-flow
OWASP: Failure to Restrict URL Access (May 11, 2012), https://www.owasp.org/index.php/Top_10_2010-A8-Failure_to_Restrict_URL_Access
OWASP: Forced Browsing (May 4, 2012), https://www.owasp.org/index.php/Forced_browsing
Bray, T.: Deep Linking in the World Wide Web (May 29, 2012), http://www.w3.org/2001/tag/doc/deeplinking.html
Braun, B., Gemein, P., Reiser, H.P., Posegga, J.: Control-Flow Integrity in Web Applications. In: Jürjens, J., Livshits, B., Scandariato, R. (eds.) ESSoS 2013. LNCS, vol. 7781, pp. 1–16. Springer, Heidelberg (2013)
Cova, M., Balzarotti, D., Felmetsger, V., Vigna, G.: Swaddler: An Approach for the Anomaly-Based Detection of State Violations in Web Applications. In: Kruegel, C., Lippmann, R., Clark, A. (eds.) RAID 2007. LNCS, vol. 4637, pp. 63–86. Springer, Heidelberg (2007)
Li, X., Xue, Y.: BLOCK: A Black-box Approach for Detection of State Violation Attacks Towards Web Applications. In: ACSAC (2011)
Balzarotti, D., Cova, M., Felmetsger, V., Vigna, G.: Multi-Module Vulnerability Analysis of Web-based Applications. In: CCS (2007)
Jayaraman, K., Lewandowski, G., Talaga, P.G., Chapin, S.J.: Enforcing Request Integrity in Web Applications. In: Foresti, S., Jajodia, S. (eds.) Data and Applications Security and Privacy XXIV. LNCS, vol. 6166, pp. 225–240. Springer, Heidelberg (2010)
Felmetsger, V., Cavedon, L., Kruegel, C., Vigna, G.: Toward Automated Detection of Logic Vulnerabilities in Web Applications. In: USENIX Security (2010)
Balduzzi, M., Gimenez, C.T., Balzarotti, D., Kirda, E.: Automated Discovery of Parameter Pollution Vulnerabilities in Web Applications. In: NDSS (2011)
Bisht, P., Hinrichs, T., Skrupsky, N., Bobrowicz, R., Venkatakrishnan, V.N.: NoTamper: Automatic Blackbox Detection of Parameter Tampering Opportunities in Web Applications. In: CCS (2010)
Vikram, K., Prateek, A., Livshits, B.: Ripley: Automatically Securing Web 2.0 Applications Through Replicated Execution. In: CCS (2009)
Guha, A., Krishnamurthi, S., Jim, T.: Using Static Analysis for Ajax Intrusion Detection. In: WWW (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Braun, B., Pollak, C.v., Posegga, J. (2013). A Survey on Control-Flow Integrity Means in Web Application Frameworks. In: Riis Nielson, H., Gollmann, D. (eds) Secure IT Systems. NordSec 2013. Lecture Notes in Computer Science, vol 8208. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-41488-6_16
Download citation
DOI: https://doi.org/10.1007/978-3-642-41488-6_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-41487-9
Online ISBN: 978-3-642-41488-6
eBook Packages: Computer ScienceComputer Science (R0)