PenetrationstestTill Oberbeckmann7 min Lesezeit

Die wichtigsten Sicherheitslücken in Web-Anwendungen: OWASP Top Ten

Die OWASP TOP 10 bietet einen einfachen Überblick über relevante Sicherheitslücken. Sie wird jedes Jahr vom Open Web Application Security Project erstellt.

Inhaltsverzeichnis

Die OWASP TOP 10 bietet Unternehmen einen einfachen Überblick über relevante Sicherheitslücken des Jahres. Sie wird jedes Jahr vom Open Web Application Security Project erstellt, um Unternehmen eine Grundlage für die Planung und Implementierung adäquater Sicherheitsmaßnahmen zu bieten. Das OWASP ist eine Non-Profit-Organisation mit dem Ziel, die Sicherheit von Webanwendungen zu verbessern.

Die OWASP Top 10 im Überblick

Injektion

Die Injektion ist seit Jahrzehnten einer der wichtigsten Sicherheitslücken. Viele große Datenleaks von Unternehmen in der Vergangenheit basierten auf SQL-Injektionen. Bei einer Injektion wird eine reguläre usergesteuerte Datenübermittlung missbraucht, um sich Zugang zur Datenbank zu verschaffen. Eine Injektion-Sicherheitslücke entsteht, wenn Daten, die ein User übermittelt, nicht vom System validiert werden. Angriffspunkte werden im Rahmen einer Code-Analyse aufgespürt und geschlossen.

Fehlerhafte Authentifizierung

Auf Platz 2 der OWASP Top 10 der größten Sicherheitslücken, findet sich das Eingangstor selbst. Ein fehlerhaftes Authentifizierungssystem erlaubt es Angreifern, sich durch die Vordertür Zugriff zum System zu verschaffen. Ein typischer Fehler ist zum Beispiel der Verzicht auf eine Zwei-Faktor-Authentifizierung. Fehlt diese zusätzliche Barriere, ist das System nur so sicher wie die Zugangsdaten des nachlässigsten Nutzers. Kommen dann noch Systeme zur Generierung von Nutzernamen zum Einsatz (z. B. name.vorname@unternehmen.de ), dann können Angreifer Passwörter per Brute-Force-Angriff erraten.

Sensible Daten

Webanwendungen beruhen auf Kommunikation. Dabei werden auch sensible Daten wie private Daten, Passwörter oder Kontoinformationen ausgetauscht. Beim Man-in-the-Middle-Angriff schaltet sich der Angreifer zwischen die beiden kommunizierenden Systeme und liest die ausgetauschten Daten mit. Dabei täuscht er dem System vor, selbst das richtige Ziel für die Daten zu sein. Das Mitlesen ausgetauschter Daten verhindern Sie am besten durch die Verschlüsselung des Datenaustauschs. Ohne passenden Schlüssel können sich Angreifer dann nicht mehr als legitimer Empfänger tarnen.

XML

XML ist eine Markup-Sprache, die lange genutzt wurde, um Daten zu übermitteln, die sowohl menschen- als auch maschinenlesbar ist. XML-Dateien kommen in der IT-Welt nahezu überall zum Einsatz. Jede .doc-Datei besteht aus mehreren XML-Dateien in einem Container. Auch Web-Anwendungen setzten auf XML. Wegen seiner Komplexität kommt es aber häufig zu Sicherheitslücken. Angreifer können zum Beispiel den XML-Parser täuschen und ihn dazu bringen, sensible Daten an externe Entitäten wie eine Festplatte zu senden. XML wird daher zunehmend weniger genutzt. Der beste Schutz vor diesen Angriffen ist die Umstellung auf ein einfacheres Format wie JSON, dass ebenfalls von Menschen und Maschinen lesbar ist und in fast jeder Programmiersprache verarbeitet werden kann.

Lückenhafte Zugriffskontrolle

Während der Angreifer bei einem Angriff auf die Authentifizierung durch die Vordertür kommt, klettert er bei einer fehlerhaften Zugriffskontrolle durch das offenstehende Fenster direkt neben der Vordertür.  Ein einfaches Beispiel dafür wäre ein nicht geschützter Unterordner. Versucht ein Nutzer über die Hauptseite auf unternehmen.de/mitglieder zuzugreifen, wird er zwar auf die Log-in-Seite geleitet, gibt er aber einfach unternehmen.de/mitglieder/sensibledaten in den Browser ein, wird die Berechtigung nicht geprüft.  Unternehmen können ihre Zugriffskontrolle durch Autorisierungstokens verbessern. Jeder Nutzer erhält nach der Anmeldung einen Token. Bei jeder Anfrage fragt das System den User dann nach einem Token. So ist jeder einzelne Zugriff kontrolliert, ohne dass die User Experience durch ständige Passwortabfragen gestört wird.

Sicherheitsrelevante Fehlkonfiguration

Fehlkonfigurationen treten zum Beispiel dann auf, wenn die Standardkonfiguration unverändert übernommen wird. Sicherheitsrelevant wird das, wenn die Standardkonfiguration Lücken lässt oder für unbrauchbare Fehlermeldungen sorgt, die zu detailliert sind und wichtige Fehler so unentdeckt lassen.

Cross-Site Scripting

Cross-Site-Scripting bezeichnet die Ausführung von schädlichem Javascript-Code, der in einer URL versteckt wird. Ein Angreifer könnte zum Beispiel in einem Link einer E-Mail Code verstecken, der dann im Browser des Empfängers ausgeführt wird. Moderne Entwicklungsframeworks bieten integrierten Schutz vor XSS-Attacken. Mit der Umstellung auf ReactJS oder Ruby on Rails schließen sie diese Sicherheitslücke weitgehend.

Unsichere Deserialisierung

Serialisierung und Derealisierung gewinnen mit der wachsenden Popularität von Video-Streaming und Cloud-Anwendungen an Relevanz. Serialisierung bezeichnet die Konvertierung von Objekten in ein anderes Format für einen anderen Zweck. Die Derealisierung verwandelt diese Objekte zurück in für die Anwendung nutzbare Formate. Hier besteht für Angreifer potenziell die Möglichkeit, schädliche Daten in das Objekt und damit die Anwendung zu schleusen. Dies ermöglicht eine Vielzahl an Angriffen von DDos-Attacken bis zur Remote Code Execution.

Die Sicherheitslücke in der Derealisierung lässt sich nicht grundsätzlich schließen. Die Konvertierung von Daten liegt in der Natur des Vorgangs. Nur das Verbot von Derealisierung aus vertrauenswürdigen Quellen schließt diese Lücke vollkommen. Wenn die Anwendung auf Derealisierung angewiesen ist, bleibt nur die Überwachung des Vorgangs, um potenzielle Angreifer zu identifizieren.

Veralteter Code, Bibliotheken und mehr

Die moderne Webentwicklung funktioniert in hohem Maße arbeitsteilig: Für die Entwicklung von Anwendungen empfinden Entwickler nicht jedes Mal das Rad neu. Stattdessen greife sie auf Bibliotheken, Frameworks und Module von anderen Entwicklern zurück. Das machen sich Angreifer zunutze, indem sie die genutzten Komponenten systematisch auf Schwachstellen untersuchen. Das lohnt sich für Angreifer besonders, denn manche Komponenten kommen auf Millionen von Websites zum Einsatz. Das Finden einer Sicherheitslücke ermöglicht Angreifern so potenziell Zugriff auf ein großes Arsenal an Websites. In der modernen Umgebung ist der Verzicht auf externe Komponenten keine Option. Stattdessen sollten die genutzten Komponenten entfernt werden, sobald sie nicht mehr genutzt werden. So wird die Angriffsfläche zumindest minimiert.

Unzureichende Protokollierung und Überwachung

Neben Lücken, die direkten Zugriff auf das System erlauben, sind oft auch die Überwachungs- und Protokollierungsmaßnahmen bei einem Angriff mangelhaft. Die Folge: Bis ein Angriff erkannt wird, vergeht viel Zeit. Dadurch hat der Angreifer mehr Zeit, Schaden anrichten. Um Angriffe schnell zu entdecken und Schäden zu minimieren, sollten Überwachungsmaßnahmen daher von Anfang an implementiert werden.

OWASP TOP 10 von Anfang an berücksichtigen und Anwendungssicherheit verbessern

Die OWASP Top 10 sind ein nützliches Werkzeug in der Entwicklung, das bereits in der Planung berücksichtigt werden sollte. So können bereits in der Architektur bestimmte Sicherheitslücken geschlossen werden. Das macht die Anwendung sicherer und die Implementierung günstiger.

Kontakt

Neugierig? Überzeugt? Interessiert?

Vereinbaren Sie ein unverbindliches Erstgespräch mit einem unserer Vertriebsmitarbeiter. Nutzen Sie den folgenden Link, um einen Termin auszuwählen: