Lade Inhalt...

Sichere Web-Anwendungen

Studienarbeit 2013 27 Seiten

Informatik - IT-Security

Leseprobe

Inhaltsverzeichnis

1 Einleitung
1.1 Motivation
1.2 Ziel der Arbeit
1.3 Vorgehen

2 Webapplikation Angriffe
2.1 Sicherheitskonzept
2.2 OWASP
2.2.1 Bewertung von Risiken
2.2.2 Injektion
2.2.3 Broken Authentication an Session Management
2.2.4 Cross Site Scripting
2.2.5 Insecure Direct Object References
2.2.6 Security Misconfiguration
2.3 Sicherheitstest

3 Angriffe und Gegenmaßnahmen
3.1 SQL Injektion
3.2 Cross-Site-Scripting

4 Zusammenfassung und Ausblick

5 Literaturverzeichnis

Anlage 1: Übung Websicherheit

Abbildungsverzeichnis

Abbildung 1: Ergebnisse von Webangriffen im Jahr 2010

Abbildung 2: Beispiel fehlerhaftes E-Mail Formular

Abbildung 3: Fehler in der Implementierung

Abbildung 4: SQL Injection und Google Hacking

Abbildung 5: Offene Hotmail Accounts

Abbildung 6: Cross Site Scripting Schwachstelle

Abbildung 7: Unsichere Referenz

Abbildung 8: ungewollt sichtbare Konfiguration

Abbildung 9: Session Hijacking

Abbildung 10: Session Fixation Schwachstelle

Tabellenverzeichnis

Tabelle 1: SQL Injektion

Tabelle 2: Broken Authentication and Session Management

Tabelle 3:Cross Site Scripting

Tabelle 4: Insecure Direct Object References

Tabelle 5: Security Misconfiguration

1 Einleitung

Diese Arbeit beschäftigt sich mit dem Thema „Sichere Webanwendungen“. Dabei werden in mehreren Schritten der Wert einer Webanwendung, die verschiedenen Schichten, Testmethoden und einzelne Angriffe vorgestellt.

1.1 Motivation

Durch die weltweite Verbreitung des Internets sind die Möglichkeiten für Webanwendungen um ein Vielfaches gestiegen. Webportale wie zum Beispiel Facebook beinhalten nicht nur die Accounts von einer Milliarde Mitgliedern, sondern auch alle Arten von Anwendungen und Spielen. Proportional zu den Möglichkeiten sind aber auch noch zwei andere Faktoren im Web gestiegen. Zum einen die verwendete Technik, zum anderen die Angriffe auf Websites. Das große Problem dabei ist, dass nur wenige Websites dies realisiert und auch die Sicherheitsmaßnahmen erhöht haben.

1.2 Ziel der Arbeit

Das Ziel dieser Arbeit ist es, den Providern von Websites Schwachstellen und Lösungen aufzuzeigen. Des Weiteren wird versucht einen Eindruck über die aktuelle Sicherheitssituation im Internet zu geben.

1.3 Vorgehen

Die Arbeit gliedert sich in zwei Abschnitte. Im ersten Abschnitt wird betrachtet, warum es für jede Website wichtig ist sich zu schützen, und was die wichtigsten Schwachstellen sind. Insbesondere wird beschrieben, wie solche Schwachstellen selbst gefunden werden können. Im zweiten Abschnitt werden dann zwei konkrete Probleme im Detail besprochen. Eine Zusammenfassung der Arbeit findet sich in der beiliegenden Präsentation. Da das Thema sehr komplex ist, werden im Rahmen dieser Arbeit nur einige wenige Punkte genauer besprochen, da dies sonst den Rahmen dieser Arbeit sprengen würde.

2 Webapplikation Angriffe

Webapplikationen sind der ständigen Gefahr von Angriffen ausgesetzt. Dabei sind die Ziele, die verfolgt werden, ganz verschieden. Zum einen dienen viele Webapplikationen als Interface für persönliche Daten. Seit dem Aufkommen des Web 2.0 sind Daten eines der lohnendsten Assets(Ziele) einer Website. Dabei können alle Daten von Interesse sein, sowohl Kreditkartennummern als auch Anschrift oder Hobbies. Ein anderes Ziel, das Angriffe auf Website verfolgen, ist das Verbreiten von Malware. Sicherheitslücken wie zum Beispiel XSS(Cross-Site-Scripting) erlauben es dem Angreifer indirekt die Computer der Website Besucher anzugreifen. Besonders Botnetze können so sehr schnell wachsen. Aber auch der Webserver selbst kann durch eine Website kompromittiert werden. Neben den genannten existieren noch weitere Assets, von denen einige im Verlauf der Arbeit beschrieben werden. Eine Orientierung, welchen Nutzen der Angreifer aus der Webseite ziehen kann, bietet die folgende Statistik:

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1: Ergebnisse von Webangriffen im Jahr 2010

Die in Abbildung 1 zu sehende Statistik ist Teil der WASC Web Hacking Incidents Database, welche Angriffe auf Websites registriert und auswertet[1].

Betrachtet man den Wert einer Website insgesamt, so lässt sich feststellen, dass diese immer ein lohnendes Ziel aus Sicht des Angreifers ist, welches durch Faktoren wie persönliche Daten noch attraktiver werden kann. Deswegen ist auch die große Anzahl von Angriffen auf Websites nicht überraschend. Im Folgenden wird beschrieben, welche Risiken beim Sicherheitskonzept einer Website beachtet werden müssen.

2.1 Sicherheitskonzept

Um einen umfassenden Schutz einer Website zu implementieren, wird zwischen verschiedenen Ebenen unterschieden[2]. Auf jeder Ebene gibt es eigene Angriffe und Gegenmaßnahmen. Es ist deshalb notwendig jede der folgenden Ebenen zu betrachten, damit die Website einen hohen Sicherheitslevel erreicht.

Semantik

Die semantische Ebene beschreibt die Inhalte der Website. So muss darauf geachtet werden, welche Funktionen verfügbar sind und ob diese nicht missbraucht werden können. Angriffe, die sich auf diese Ebene beziehen, fallen unter anderem in die Kategorien Social Engineering, Phishing und Identitätsdiebstahl. Ein klassisches Beispiel für eine missbrauchte Funktion ist die Funktion um eine URL, als Empfehlung per Email, an Freunde zu schicken.

Folgendes Formular bietet die Website der Universität Oldenburg[3] an:

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2: Beispiel fehlerhaftes E-Mail Formular

Dieses E-Mail Formular schickt einem angegebenen Empfänger eine Nachricht, welche als Absender die E-Mail der Universität Oldenburg enthält. Ein Social Engineering Angriff könnte zum Beispiel so ablaufen, dass über dieses Formular alle Studenten die Nachricht erhalten, dass die Universität einen Tag geschlossen hat. Da als Absender die E-Mail Adresse der Universität selbst zu sehen wäre, würde diese Nachricht authentisch erscheinen.

Logik

Die Logik einer Website zielt auf das präzise Zusammenspiel der Komponenten ab. So ist ein sicherer Login gut, bringt aber nicht viel, wenn die Passwortrichtlinien schwach sind. Das in Abbildung 2 zu sehende Formular enthält auch auf dieser Ebene eine Schwachstelle: Das Versenden von Empfehlungen ist ein nützliches Feature. Allerdings ohne Überprüfungen, ob es sich wirklich um sinnvolle Eingaben von einem Menschen handelt, wird es zum Sicherheitsrisiko. So wäre es möglich ein Programm zu entwickeln, das automatisch große Mengen von E-Mails über dieses Formular versendet. Mehr Sicherheit würde hier zum Beispiel ein CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart) bringen.

Implementierung

Auf der Ebene der Implementierung wird das Design der Software betrachtet. Aufgrund der enormen Komplexität von modernen Websprachen(Java, PHP, Perl, ASPX, Ruby usw.) und deren APIs ist es schwer eine einheitliche und sichere Struktur in den Source Code zu bekommen. Deswegen bedarf es Code Style Guides, die Verfahren beschreiben, um Fehler wie zum Beispiel Cross-Site-Scripting zu verhindern. Betrachtet man das bereits erwähnte E-Mail-Formular aus Abbildung 2: Beispiel , so zeigen sich auch auf der Ebene der Implementierung Schwächen: Der Link für die Empfehlung, wie in Abbildung 3 zu sehen, wird in einem versteckten HTML Feld clientseitig gespeichert und kann damit beliebig angepasst werden.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3: Fehler in der Implementierung

Technologie

Die vierte Ebene, die betrachtet werden muss, ist die verwendete Technologie. Die Herausforderung besteht darin, aus den vielen Technologien die richtige auszuwählen. Bei der Auswahl gilt es zwischen dem Einsatzzweck und dem Schutzbedarf abzuwägen. So ist das http Protokoll für das Versenden von E-Mails über ein Webformular eine einfache Lösung, bietet aber zum Beispiel keinen Schutz vor dem Manipulieren der Daten durch Dritte. Die Lösung für dieses Problem ist das Verwenden der richtigen Technologie, nämlich des https Protokolls, welches mit nur geringem zusätzlichem Aufwand die Daten hinreichend sicher verschlüsselt.

System

Ein weiteres Thema ist auch das System, auf dem die Website produktiv ist. Hierbei ist sowohl die Wahl und Sicherung des Betriebssystems als auch des Servers wichtig. Ist die Website gut geplant und erfüllt alle Anforderungen der höheren Ebenen, so muss dies trotzdem nicht effektiv sein, wenn die Basis - das System - unsicher ist. Genauso wichtig wie die anfängliche Wahl des richtigen Systems ist auch die Systempflege. Dabei müssen zum Beispiel neue Updates richtig und zeitnah eingespielt werden. Dies betrifft auch externe Systeme oder Komponenten einer Website. So wurde das in Abbildung 2 zu sehende fehlerhafte E-Mail-Formular durch eine neue Version verbessert, die alte aber nicht entfernt, sondern nur umbenannt(von index.html zu index1.html). Diese Maßnahme bringt keine zusätzliche Sicherheit.

Netzwerk & Host

Auf der letzten Ebene ist die Hardware angesiedelt. Auch diese trägt zum gesamten Schutz einer Website bei. Wird zum Beispiel ein entfernter kostenloser Server als Host für die Website gewählt, dann kann man den Schutz persönlicher Daten nicht gewährleisten, da es keine Kontrolle über die Zugriffe auf den Server gibt.

2.2 OWASP

Eine der wichtigsten Projekte zur Verbesserung der Sicherheit von Websites ist die OWASP(Open Web Application Security Projekt). Das Ziel der OWASP ist es, durch das Offenlegen von potentiellen Angriffen und Risiken auf Webtechnologien die Sicherheit zu fördern. Ein Bestandteil des Projektes ist es, jährlich die Top 10 Risiken für Web- Applikationen zu ermitteln. Im Folgenden werden 5 der Top 10 Risiken und ihre Auswirkungen erläutert.[4]

Top 10 Risiken 2013:

1. Injection
2. Broken Authentication an Session Management
3. Cross Site Scripting
4. Insecure Direct Object References
5. Security Misconfiguration
6. Sensitive Data Exposure
7. Missing Function Level Access Control
8. Cross Site Request Forgery
9. Using Components with Known Vulnerabilities
10. Unvalidated Redirects and Forwards

2.2.1 Bewertung von Risiken

Die im Folgenden vorgestellten Top Risiken für Webapplikationen wurden aufgrund von verschiedenen Kriterien bewertet. Diese waren Ausnutzbarkeit, Verbreitung, Auffindbarkeit und Auswirkung. Als Risiko definiert die OWASP jeden möglichen Weg, den ein Angreifer nutzen kann um Schaden anzurichten. Alle vier Kriterien zur Bewertung eines Risikos werden von der OWASP jedes Jahr für die bekannten Risiken neu bewertet. Interessant ist die Tatsache, dass sich die Top Risiken seit Beginn der Statistik kaum geändert haben. Vergleicht man zum Beispiel das Jahr 2010 mit 2013, so fällt auf, dass nur das Risiko „Sensitive Data Exposure“ neu in die TOP 10 aufgenommen ist.

2.2.2 Injektion

An Platz 1 der Top 10 stehen Code Injektion. Dabei handelt es sich um die Möglichkeit Eingaben so zu gestalten, dass sie von einem Interpreter als Code interpretiert und ausgeführt werden. Dies kann an jeder Stelle passieren, an der bestimmte Zeichen eine fest definierte Semantik haben, zum Beispiel bei SQL, JavaScript, HTML, OS, NoSQL und weitere.

Beispiele für Injektion gibt es enorm viele, einige davon werden im Abschnitt: SQL Injektion besprochen. Um aber einen Eindruck von diesem Risiko zu bekommen, kann folgende Google Suchanfrage(inurl:select inurl:union inurl:from inurl:id) betrachtet werden:

[...]

Details

Seiten
27
Jahr
2013
ISBN (eBook)
9783656493877
ISBN (Buch)
9783656493631
Dateigröße
915 KB
Sprache
Deutsch
Katalognummer
v232616
Institution / Hochschule
Hochschule Aalen
Note
1.0
Schlagworte
sichere web-anwendungen

Autor

Teilen

Zurück

Titel: Sichere Web-Anwendungen