Der Security Day auf der W-JAX 2014

Ein Tag für die Sicherheit von IT-Anwendungen

Christian Schneider
Christian Schneider

Auf dem Security Day der W-JAX hatten die Konferenzteilnehmer Gelegenheit, sich anhand von vier Vorträgen und einer anschließenden Podiumsdiskussion mit dem Thema Security aus Entwicklersicht zu beschäftigen.

Die Sicht eines Angreifers

Als lockerer Einstieg (und auch etwas zur Motivation für das Thema Security) wurde der Tag mit einer Live-Hacking Demo begonnen, in welcher die Teilnehmer diverse Angriffe live auf eine Java-Web-Anwendung mitverfolgen konnten. In meiner Session „Live-Hacking und Data Exfiltration – Erleben Sie die Sicht eines Angreifers an Praxisbeispielen“ wurde eine Demo-Anwendung mit einem mehrstufigen Berechtigungssystem zuerst mittels Cross-Site Scripting (XSS) und danach mittels SQL-Injection angegriffen. Der Schwerpunkt bei den Demonstrationen lag auf den realen Ausnutzungsmöglichkeiten dieser Lücken durch Angreifer.

Hierzu wurden für die XSS-Schwachstelle mit Hilfe von zwei Browsern die Rolle „Opfer“ und „Angreifer“ gezeigt. Die Teilnehmer konnten live mitverfolgen, wie die Web-Session eines eingeloggten Nutzers vom Angreifer für das Opfer unbemerkt übernommen wurde. Diese Angriffe auf eingeloggte Opfer mittels XSS-Schwachstellen wurden in Form einer persistenten XSS-Schwachstelle darüber hinaus mit Hilfe von Browser-Exploitation-Werkzeugen vertieft und mit Social-Engineering-Inhalten kombiniert. Abschließend wurde gezeigt, wie Angreifer mit passenden Werkzeugen über eine SQL-Injection (und somit allein über die Web-GUI mit Hilfe von HTTP(S)-Requests) die komplette Datenbank auslesen, sich ihre Berechtigungen im System erweitern und am Ende eine SSH-Shell auf dem Datenbankserver erfolgreich öffnen können. Je Lücke wurden kurz die wichtigsten Gegenmaßnahmen für Entwickler erwähnt, jedoch lag der Schwerpunkt auf der Demonstration möglicher Angriffsszenarien.

Sicher Mobil

Nach dieser offensiveren Live-Demo sprach Bruce Sams (OPTIMA Business Information Technology GmbH) in seiner Session „Hacken und Absichern von Mobilanwendungen“ über die Sicherheit von Mobilanwendungen mit dem Schwerpunkt iOS. Interessiert verfolgten die Teilnehmer, welche sicherheitstechnischen Veränderungen Apple in iOS 8 vorgenommen hat und welche Möglichkeiten man als App-Entwickler hat, seine Apps sicherer zu gestalten. Mit Hilfe von Data-Protection-Klassen haben die Entwickler z.B. die Möglichkeit, bestimmte Daten entsprechend ihres Schutzbedarfs auf dem Device verfügbar zu halten. Ebenso wurde über Code-Signing und das leider immer noch zu sehr von App-Entwicklern vernachlässigte Certificate Pinning gesprochen, mit welchem Man-in-the-Middle-Angriffe unterbunden werden können.

Die Möglichkeiten forensischer Werkzeuge zur Analyse und dem Auslesen von Daten, was in vergangenen Versionen teilweise sogar remote möglich war, wurden ebenfalls aufgezeigt. Aus Sicht von Mobile-Device-Management-(MDM)-Systemen wurde auch auf die Themen Jailbreak-Erkennung und App-Sandboxing eingegangen. Abschließend folgte der wichtige Verweis auf Apples Secure Coding Guidelines und die Notwendigkeit eines Secure Software Development Lifecycles.  

Security 101

Als nächste Session wurde mit „Security 101“ von Tobias Hahn (Fraunhofer Institut für sichere Informationstechnologie) und Christoph Iserlohn (innoQ) das Einmaleins der Security in Form von wichtigen Grundlagen als Basis gefestigt. In diesem Vortrag wurden nach aktuellen und erschreckenden Zahlen zu real in den letzten Monaten bei konkreten Angriffen auf große Unternehmen gestohlenen Accounts mit Passwörtern auf Themen wie Assets, Schäden, Schutzziele und Prozesse  eingegangen. Die Teilnehmer konnten sich einen Überblick über unterschiedliche Formen symmetrischer und asymmetrischer kryptographischer Absicherungen sowie der Möglichkeiten einer sicheren Verifikation von Credentials machen, um im Falle eines Einbruchs nicht gleich alles zu verlieren.

Hierzu wurden Themen wie diverse Hashing-Verfahren und Angreifermöglichkeiten mit Hilfe von Rainbow-Tables praxisnah erklärt. Nach der Erläuterung diverse Angriffstypen auf kryptographische Systeme (Ciphertext only attack, Known plaintext attack, Chosen plaintext attack) wurde abschließend über Angriffe wie Heartbleed und auch über den nicht ganz so einfachen „Zufall“ gesprochen und wie wichtig gute Zufallsdaten im Kontext der Kryptographie sind.

Kopfsache

In der vierten Session des Security Days „Kopfsache – Java-Security-Header“ sprach Dominik Schadow (BridgingIT GmbH) mit Hilfe von Praxisdemos über das Thema „Härtung von Webanwendungen mittels Response Headern“. Angefangen bei einfachen und effektiven Möglichkeiten der Härtung mittels Anti-Caching Headern und X-Frame-Options (u.a. zum Verhindern bestimmter Clickjacking-Angriffe) wurde gezeigt, wie wichtig die Absicherung gegen Man-in-the-Middle-Angriffe mit Hilfe der HTTP Strict Transport Security (HSTS) ist. Die Teilnehmer bekamen Tipps, wie sie mit aktuellen Web-Frameworks, oder auch mittels Servlet-Filter, die Header am einfachsten setzen können und auch, wie sie deren Wirkung überprüfen können.

Abgeschlossen wurde die Session mit dem komplexen Schutzheader Content-Security-Policy (CSP): Anhand von Live-Demos konnten die Teilnehmer nachvollziehen, wie die CSP in aktuellen Browsern eine gute sekundäre Schutzschicht gegen die Ausnutzung der meisten XSS-Angriffe bieten kann – auch wenn sie sicherlich die Entwickler nicht davon befreit, trotzdem XSS-Schwachstellen so gut es geht zu verhindern.

Abgerundet wurde der Security Day am letzten Tag der Hauptkonferenz mit einer lockeren Diskussionsrunde, an welcher sich die Speaker des Tages beteiligten und das Publikum sich mit Fragen und Diskussionen einbringen konnte. Trotz des Bahnstreiks und des damit am letzten Konferenztag für einige Teilnehmer umgeplante und vorverlegte Abreisen war es ein sehr erfolgreicher Security Day, was man u.a. auch an den gut besuchten vier ersten Sessions des Tages sehen konnte.

Christian Schneider (@cschneider4711) ist als freiberuflicher Softwareentwickler, White Hat Hacker und Trainer tätig. Abseits der klassischen Softwareentwicklung unterstützt er Kunden im Bereich Web-Application-Security durch Penetrationstests sowie Security-Code-Audits. In dieser Rolle ist er regelmäßig als Trainer zu Java-Web-Security tätig und bloggt auf www.Christian-Schneider.net.

Geschrieben von
Christian Schneider
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: