Web-Based Secure Application Control
Total Page:16
File Type:pdf, Size:1020Kb
Dissertation zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften Web-based Secure Application Control Bastian Braun February, 2015 Eingereicht an der Fakult¨atf¨urInformatik und Mathematik der Universit¨atPassau Reviewers: Prof. Dr. Joachim Posegga Prof. Dr. Frank Piessens Abstract The world wide web today serves as a distributed application platform. Its origins, however, go back to a simple delivery network for static hypertexts. The legacy from these days can still be observed in the communication protocol used by increasingly sophisticated clients and applications. This thesis identifies the actual security require- ments of modern web applications and shows that HTTP does not fit them: user and application authentication, message integrity and confidentiality, control-flow integrity, and application-to-application authorization. We explore the other protocols in the web stack and work out why they can not fill the gap. Our analysis shows that the underlying problem is the connectionless property of HTTP. However, history shows that a fresh start with web communication is far from realistic. As a consequence, we come up with approaches that contribute to meet the identified requirements. We first present impersonation attack vectors that begin before the actual user authen- tication, i.e. when secure web interaction and authentication seem to be unnecessary. Session fixation attacks exploit a responsibility mismatch between the web developer and the used web application framework. We describe and compare three countermeasures on different implementation levels: on the source code level, on the framework level, and on the network level as a reverse proxy. Then, we explain how the authentication credentials that are transmitted for the user login, i.e. the password, and for session tracking, i.e. the session cookie, can be complemented by browser-stored and user-based secrets respectively. This way, an attacker can not hijack user accounts only by phishing the user's password because an additional browser-based secret is required for login. Also, the class of well-known session hijacking attacks is mitigated because a secret only known by the user must be provided in order to perform critical actions. In the next step, we explore alternative approaches to static authentication creden- tials. Our approach implements a trusted UI and a mutually authenticated session using signatures as a means to authenticate requests. This way, it establishes a trusted path between the user and the web application without exchanging reusable authentication credentials. As a downside, this approach requires support on the client side and on the server side in order to provide maximum protection. Another approach avoids client- side support but can not implement a trusted UI and is thus susceptible to phishing and clickjacking attacks. Our approaches described so far increase the security level of all web communication at all time. This is why we investigate adaptive security policies that fit the actual risk instead of permanently restricting all kinds of communication including non-critical requests. We develop a smart browser extension that detects when the user is authen- ticated on a website meaning that she can be impersonated because all requests carry 3 her identity proof. Uncritical communication, however, is released from restrictions to enable all intended web features. Finally, we focus on attacks targeting a web application's control-flow integrity. We explain them thoroughly, check whether current web application frameworks provide means for protection, and implement two approaches to protect web applications: The first approach is an extension for a web application framework and provides protection based on its configuration by checking all requests for policy conformity. The second approach generates its own policies ad hoc based on the observed web traffic and as- suming that regular users only click on links and buttons and fill forms but do not craft requests to protected resources. 4 Zusammenfassung Das heutige World Wide Web ist eine verteilte Plattform f¨urAnwendungen aller Art: von einfachen Webseiten ¨uber Online Banking, E-Mail, multimediale Unterhaltung bis hin zu intelligenten vernetzten H¨ausernund St¨adten. Seine Urspr¨ungeliegen allerdings in einem einfachen Netzwerk zur Ubermittlung¨ statischer Inhalte auf der Basis von Hyper- texten. Diese Urspr¨ungelassen sich noch immer im verwendeten Kommunikationspro- tokoll HTTP identifizieren. In dieser Arbeit untersuchen wir die Sicherheitsanforderun- gen moderner Web-Anwendungen und zeigen, dass HTTP diese Anforderungen nicht erf¨ullenkann. Zu diesen Anforderungen geh¨orendie Authentifikation von Benutzern und Anwendungen, die Integrit¨atund Vertraulichkeit von Nachrichten, Kontrollflussin- tegrit¨atund die gegenseitige Autorisierung von Anwendungen. Wir untersuchen die Web-Protokolle auf den unteren Netzwerk-Schichten und zeigen, dass auch sie nicht die Sicherheitsanforderungen erf¨ullenk¨onnen. Unsere Analyse zeigt, dass das grundle- gende Problem in der Verbindungslosigkeit von HTTP zu finden ist. Allerdings hat die Geschichte gezeigt, dass ein Neustart mit einem verbesserten Protokoll keine Option f¨ur ein gewachsenes System wie das World Wide Web ist. Aus diesem Grund besch¨aftigt sich diese Arbeit mit unseren Beitr¨agenzu sicherer Web-Kommunikation auf der Basis des existierenden verbindungslosen HTTP. Wir beginnen mit der Beschreibung von Session Fixation-Angriffen, die bereits vor der eigentlichen Anmeldung des Benutzers an der Web-Anwendung beginnen und im Erfol- gsfall die tempor¨are Ubernahme¨ des Benutzerkontos erlauben. Wir pr¨asentieren drei Gegenmaßnahmen, die je nach Eingriffsm¨oglichkeiten in die Web-Anwendung umgesetzt werden k¨onnen. Als n¨achstes gehen wir auf das Problem ein, dass Zugangsdaten im WWW sowohl zwischen den Teilnehmern zu Authentifikationszwecken kommuniziert werden als auch f¨urjeden, der Kenntnis dieser Daten erlangt, wiederverwendbar sind. Unsere Ans¨atze binden das Benutzerpasswort an ein im Browser gespeichertes Authentifikationsmerkmal und das sog. Session-Cookie an ein Geheimnis, das nur dem Benutzer und der Web- Anwendung bekannt ist. Auf diese Weise kann ein Angreifer weder ein gestohlenes Passwort noch ein Session-Cookie allein zum Zugriff auf das Benutzerkonto verwenden. Darauffolgend beschreiben wir ein Authentifikationsprotokoll, das vollst¨andigauf die Ubermittlung¨ geheimer Zugangsdaten verzichtet. Unser Ansatz implementiert eine ver- trausw¨urdigeBenutzeroberfl¨ache und wirkt so gegen die Manipulation derselben in herk¨ommlichen Browsern. W¨ahrenddie bisherigen Ans¨atzedie Sicherheit jeglicher Web-Kommunikation erh¨ohen, widmen wir uns der Frage, inwiefern ein intelligenter Browser den Benutzer { wenn n¨otig { vor Angriffen bewahren kann und { wenn m¨oglich { eine ungehinderte Kommunikation erm¨oglichen kann. Damit tr¨agtunser Ansatz zur Akzeptanz von Sicherheitsl¨osungenbei, 5 die ansonsten regelm¨aßigals l¨astigeEinschr¨ankungenempfunden werden. Schließlich legen wir den Fokus auf die Kontrollflussintegrit¨atvon Web-Anwendungen. B¨osartigeBenutzer k¨onnenden Zustand von Anwendungen durch speziell pr¨aparierte Folgen von Anfragen in ihrem Sinne manipulieren. Unsere Ans¨atzefiltern Benutzeran- fragen, die von der Anwendung nicht erwartet wurden, und lassen nur solche Anfragen passieren, die von der Anwendung ordnungsgem¨aßverarbeitet werden k¨onnen. 6 Acknowledgments There have been many people attending me on my way to finish this dissertation. I would like to express my special appreciation to my advisors Joachim Posegga and Frank Piessens for their help, advice, dialogue, and support. I am also particularly thankful to Daniel Schreckling and Martin Johns for being reference persons and sharing their helpful research experience in more than one moment. In no particular order, I would also like to thank Andrei Sabelfeld, Daniel Hedin, David Sands, Lieven Desmet, Nick Nikiforakis, Steven Van Acker, Philippe De Ryck, Jorge Cuellar, Monica Verma, Jan Wolff, Sebastian Lekies, Walter Tighzert, Dieter Gollmann, Felix Freiling, Thorsten Holz, Konrad Rieck, J¨orgSchwenk, Sebastian Schinzel, Christo- pher Alm, Hannah Lee, Marina Krotofil, Jan Meier, Henrich C. P¨ohls,Robert Olotu, Jan Seedorf, Eric Rothstein, Tobias Marktscheffel, Oussama Mahjoub, Arne Bilzhause, Boutheyna Belgacem, Wolfram Gottschlich, Juan David Parra, Hans P. Reiser, Guido Lenk, Marc Maisch, Alexander Seidl, Melanie Volkamer, Markus Karwe, Peng Liu, Ju- raj Somorovsky, Siglinde B¨ock, Marita G¨ungerich, Elisabeth Reither, Erika Langer, Korbinian Pauli, Daniel Hausknecht, Caspar Gries, Benedikt Petschkuhn, Johannes K¨ostler,Christian v. Pollak, Patrick Gemein, Stefan Kucher, Benedikt H¨ofling,Michael Schrank, Mathias Wagner, Benedikt Strobl, Christoph Oblinger, Johannes R¨uckert, Manuel Feifel, Stephan Huber, Tobias Friedl, Wolfgang Frankenberger, Thomas Schreiber, Boris Hemkemeier, and Dirk Wetter. Most of all, I feel a deep sense of gratitude to my family, my wife, Eyke, and my daughter, Kalea. You are the sunshine that lights up my life! 7 Contents 1 Introduction 17 1.1 Motivation................................... 17 1.2 Thesis Outline and Contributions...................... 19 1.2.1 Thesis Overview........................... 19 1.2.2 Associated Publications....................... 21 2 Web Communication and Respective Attacks 23 2.1 Basics of Web Communication........................ 23 2.2 Authentication................................ 23 2.3 Authentication Tracking