OWASP Top 10 – Die 10 häufigsten Sicherheitsrisiken für Webanwendungen

30. Mai 2016 at 12:23
OWASP Top 10

Sicherheitsrisiken für Webanwendungen

Webapplikationen sind aus unserem Alltag nicht mehr wegzudenken. Online-Banking und -Shopping, Social-Media, E-Mails, Gewinnspiele und vieles mehr nutzen wir tagtäglich. Überall hinterlassen wir vertrauliche und schützenswerte Daten.

Programmierfehler können hier schwere Folgen für den Betreiber und dessen Kunden haben. Immer wieder wird über schwere Sicherheitslücken berichtet, durch die oft Millionen von Datensätzen, wie Kreditkarten- und Zugangsdaten, erbeutet werden konnten. Noch viel öfter werden Daten auch im kleinen Stil erbeutet, ohne dass darüber berichtet wird oder es überhaupt irgendjemand mitbekommen hat.

Obwohl viele Sicherheitsrisiken lange bekannt sind und meist mit einfachsten Mitteln schnell verhindert werden können, sind es doch immer wieder dieselben Lücken, die die Anwendung angreifbar machen. Durch die zunehmende Komplexität der Webapplikationen wächst auch der Aufwand für die Anwendungssicherheit.

Das Open Web Application Security Project (OWASP) liefert eine Top 10 Liste der am häufigsten auftretenden Sicherheitsrisiken im World Wide Web. Die erste Version wurde 2003 veröffentlicht. Seitdem gab es einige Updates, wobei sich die größten Sicherheitsrisiken kaum geändert haben.

Die aktuelle Liste basiert auf Datenerhebungen verschiedener Beratungsunternehmen und Softwareanbietern. Diese Daten umfassen mehr als 500.000 Schwachstellen in Hunderten von Unternehmen und Tausenden von Anwendungen. Die Gewichtung ergibt sich im Wesentlichen aus der Häufigkeit des Auftretens einer Schwachstelle und den Auswirkungen auf die Technik und die Geschäftsprozesse des Unternehmens.

Ziel des Projektes ist es, Geschäftsführer, Manager, Prüfer und Entwickler für die Sicherheit der Webapplikationen zu sensibilisieren und den Einstieg in dieses Thema zu erleichtern. Entwicklern werden Lösungen, Tipps und Tools zum Vermeiden der Schwachstellen an die Hand gegeben.

Das Open Web Application Security Project ist eine offene Community, an der Firmen, Bildungseinrichtungen und Einzelpersonen international beteiligt sind. Dabei steht das OWASP nicht mit Technologiefirmen in Verbindung, um unvoreingenommene und praxisnahe Informationen über die Applikationssicherheit bereitstellen zu können.

Die aktuellen Top 10 Themen sind:

A1 – Injection
Die wohl am häufigsten auftretende Injection-Schwachstelle ist die SQL-Injection. Daten aus Formularen oder Parametern, die der Angreifer über seinen Browser absendet, werden ungeprüft an die Datenbank weitergegeben. Der Angreifer kann so die Daten manipulieren, löschen oder sogar kopieren. Auch eine komplette Systemübernahme ist denkbar.

A2 – Fehler in Authentifizierung und Session-Management
Unter dieser Kategorie werden verschiedene Szenarien beschrieben, durch die der Angreifer die Identität eines anderen Benutzers annehmen kann. So hat der Angreifer die Möglichkeit, an die Daten des Opfers zu gelangen oder in seinem Namen Transaktionen auszuführen.

A3 – Cross-Site Scripting (XSS)
Dies ist die am häufigsten auftretende Schwachstelle. Durch XSS hat der Angreifer die Möglichkeit, Scriptcode, in der Regel JavaScript, im Browser des Opfers auszuführen. Dadurch können Benutzersitzungen übernommen oder Seiteninhalte verändert werden. Auch kann der Benutzer auf bösartige Seiten umgeleitet werden.

A4 – Unsichere direkte Objektreferenzen
Häufig werden Daten durch einfache und vorhersagbare Parameter referenziert. Zum Beispiel der Account eines Benutzers: http://examle.com/account?id=10. Wenn es einen Benutzer mit der ID 10 gibt, existiert sicher auch ein Benutzer mit der ID 9. Wenn das Skript nun über keine weitere Zugriffskontrolle verfügt, ändert der Angreifer einfach den Parameter und hat somit Zugriff auf die Daten des anderen Benutzers.

A5 – Sicherheitsrelevante Fehlkonfiguration
Viele Systeme sind standardmäßig so konfiguriert, dass Systemfehlermeldungen öffentlich angezeigt werden. Dabei enthalten solche Fehlermeldungen häufig wichtige und sensible Informationen über das System. Diese wiederum liefern dem Angreifer oft wertvolle Informationen über mögliche Sicherheitslücken.
Auch werden häufig Systeme installiert, die von Haus aus mit einem Standard-Zugang ausgeliefert werden. Werden diese Standardkonten nicht geändert oder gelöscht, ist ein unberechtigter Zugriff auf das System möglich.

A6 – Verlust der Vertraulichkeit sensibler Daten
Sensible Daten wie Kreditkartendaten werden bei der Speicherung oder der Übertragung häufig nicht richtig geschützt. Eine Übertragung ohne SSL-Verschlüsselung ist keine Seltenheit. Auch die Speicherung der Daten in Datenbanken oder Logfiles im Klartext ist keine Ausnahme. Angreifer können solche ungeschützten Daten auslesen und nutzen.

A7 – Fehlerhafte Autorisierung auf Anwendungsebene
Viele Anwendungen realisieren Zugriffsberechtigungen nur durch das Anzeigen und Ausblenden von Funktionen in der Benutzeroberfläche. Der direkte Zugriff auf diese Funktionen bleibt allerdings ungeprüft. So können Benutzer auf Funktionen zugreifen, für die sie nicht berechtigt sind.

A8 – Cross-Site Request Forgery (CSRF)
Diese Lücke erlaubt es Angreifern, manipulierte HTTP-Requests an eine verwundbare Anwendung zu senden. Die Anwendung wird dabei im Browser des Opfers ausgeführt, während dieser in der Anwendung angemeldet ist. Funktionen, für die nur das Opfer berechtigt ist, sind so durch den Angreifer ausführbar.

A9 – Nutzung von Komponenten mit bekannten Schwachstellen
Angreifer können über Scans oder manuelle Analyse die Versionen von eingesetzten Software-Komponenten erkennen. Sind in diesen Versionen Schwachstellen bekannt, ist das System entsprechend angreifbar. Das Beobachten, regelmäßiges Kontrollieren und Aktualisieren dieser Komponenten ist unabdingbar.

A10 – Ungeprüfte Um- und Weiterleitungen
Viele Anwendungen nutzen ungeprüfte Weiterleitungen auf andere Webseiten. Angreifer haben dadurch die Möglichkeit, das Opfer auf Phishing-Seiten oder Seiten mit Schadcode umzuleiten. Die Links sehen dabei auf den ersten Blick oft seriös aus.

Viele dieser Sicherheitsrisiken sind einfach zu beheben und lassen sich durch Code-Reviews, den Einsatz von Frameworks und sauberes Programmieren von vornherein vermeiden. Vulnerability Scanner, wie der bei der brandung eingesetzte Acunetix, finden viele dieser Sicherheitslücken automatisiert. So lässt sich die Sicherheit der gesamten Anwendung oder eines neuen Features vor dem Deployment überprüfen.

 

Quellen:
https://www.owasp.org
https://de.wikipedia.org/wiki/Open_Web_Application_Security_Project