Koch, R. (2013). On WebSockets in penetration testing [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-58898
In den letzten Jahren entwickelte sich das Web zu einer Plattform, wo mehr und mehr Anwendungen laufen, die bisher nur auf Desktop Computern liefen. Die Fertigstellung des HTML5 Standard unterstützt diese Entwicklung. Anfangs noch Teil von HTML5, wurde die Standardisierung von WebSockets bald unabhängig. In naher Zukunft soll der Standard verabschiedet werden. WebSockets ermöglichen eine neue Art der Kommunikation, die beide Endpunkte dazu befähigt Nachrichten zur selben Zeit zu senden & zu empfangen. Eine neue Verbindung startet mit einem HTTP-basierten Handshake. Unmittelbar danach werden die Paketdaten vom leichtgewichtigen WebSocket Protokoll bestimmt, das auf Echtzeit-Anwendungen abzielt.<br />Mit der Entwicklung von leistungsfähigeren W3C Standards wächst auch die Bedeutung des Browsers. Zur selben Zeit werden Browser-Plug-Ins wie Flash und Java obsolet. Benutzer profitieren von dieser Entwicklung, da sie potentiell unsichere Plug-Ins von Dritten entfernen können. Oft vernachlässigen Plug-In Hersteller Sicherheits-Aspekte, während Browser Hersteller sich sorgfältig darum kümmern. Im Hinblick auf die Sicherheit dürfen wir nicht vergessen auch unsere Web Anwendungen abzusichern.<br />Entwickler und Sicherheits-Experten müssen Schritt halten mit neuen Standards und den Gefahren die davon ausgehen. Nur wenn diese Personengruppen gut geschult sind, können sie auch mögliche Angriffe unschädlich machen. Das kreative Denken im Hinblick auf mögliche Angriffsszenarien ist besonders im Bereich von Penetrations-Tests wichtig. Hier versucht man als Angreifer mögliche Schwachstellen zu identifizieren. Intercepting Proxy's sind einfach zu benutzende grafische Anwendungen, die zur Kategorie der Web Application Scanner zählen. Durch sie wird die Suche nach Schwachstellen erleichtert. Man lässt sie als Man-in-the-Middle zwischen Browser und Internet laufen.<br />Während man die zu testende Web Anwendung im Browser durchklickt, wird die stattfindende Kommunikation vom Intercepting Proxy aufgezeichnet und dem Penetrations-Tester angezeigt. Zurzeit bietet kein Web Application Scanner vollständige Unterstützung von WebSockets an.<br />Innerhalb dieser Arbeit werden Angriffsvektoren für WebSockets identifiziert. Darüber hinaus wird der freie Intercepting Proxy Zed Attack Proxy (ZAP) um WebSockets erweitert. Infolgedessen können Web-Anwendungen, die WebSockets verwenden, gründlich analysiert werden.<br />Zusätzlich wird in dieser Arbeit die Verwendung von WebSockets in Smartphone Apps untersucht. Eine Evaluierung wurde auf Basis von über 15000 frei erhältlichen Android Apps durchgeführt. Bei 14 Apps konnte die Verwendung von WebSockets nachgewiesen werden.<br />In Zukunft wird die Verbreitung von WebSockets zunehmen.<br />Tool-Unterstützung erleichtert es Entwicklern und Sicherheits-Testern die Sicherheit ihrer Anwendungen zu gewährleisten.<br />
de
In recent years the Web has grown to a platform, where standalone application types known from desktop computers run direct in a browser. The finalization of the HTML5 standard aids this development.<br />WebSockets emerged also with HTML5, although their specification was outsourced to its own standardization process, which is nearly finalized. This new way to communicate enables two endpoints to send & receive messages at the same time. A new WebSocket connection starts with a HTTP-based handshake. Afterwards a lightweight protocol takes over, enabling real-time communication. WebSocket connections are based on TCP and feature asynchronous & bi-directional communication. With more powerful standards the importance of browsers grow, while browser-plugins such as Flash or Java become obsolete. Users may profit from this development, because they can remove potential insecure third-party plugins. While modern browsers care about security, third-party vendors often do not. So the web as a platform becomes safer, but we need not to forget about securing our web applications.<br />Developers and security testers need to keep up with new standards and be aware of new threats. Only if they are educated well enough, they are able to think out-of-the-box, to think like an attacker. This is required especially in the field of penetration testing, where you try to find vulnerabilities by acting like an attacker. Intercepting proxies, a sub-type of web application scanners can aid the search for weaknesses. These easy-to-use graphical tools are put as Man-in-the-Middle between your browser and the Internet. While you are browsing your web application under test, the communication is recorded and displayed to the penetration tester. Thorough support for WebSockets does not exist for any web application scanner, which may result in untested parts.<br />Within this work, attack vectors for WebSockets are identified and support for the open-source intercepting proxy Zed Attack Proxy (ZAP) is developed. Consequently, web applications using WebSockets can be analysed in-depth. While the usage of WebSockets on the Internet was already evaluated by other researchers, I did an evaluation on WebSocket usage in smartphone apps. Therefore I fetched over 15000 freely available Android apps and examined if they make use of WebSockets. 14 apps proofed to use the soon-standardized WebSockets.<br />In the future, usage of WebSockets is expected to rise. With tool support, developers and security testers are able to deliver more secure applications.<br />