OWASP, Cybersecurity, Web Application Vulnerability
13. August 2024
Was ist OWASP?
Das Open Web Application Security Project (OWASP) ist eine internationale Non-Profit-Organisation, die sich der Sicherheit von Webanwendungen widmet. Das OWASP verfolgt keine kommerziellen Absichten und steht allen Menschen offen, die sie sich für das Thema Daten- und Betriebssicherheit von webanwendungen interessieren. Sie stellen Ressourcen wie Dokumentationen, Tools, Videos und Foren bereit. Ihr berühmtes Projekt ist die OWASP Top 10.
Was sind die OWASP Top 10?
Die OWASP Top 10 sind ein regelmäßig aktualisierter Bericht, der Sicherheitsrisiken für Webanwendungen beschreibt und sich dabei auf die 10 kritischsten Schwachstellen konzentriert. Die Liste wird seit 2003 von der namensstiftenden OWASP Non-Profit-Organisation erstellt und alle zwei bis drei Jahre aktualisiert. Im Jahr 2021 wurde die OWASP Top-10-Liste auf ihre neuste Version aktualisiert.
Die OWASP TOP 10 - 2021
In der aktuellen OWASP Top 10 von 2021 sind gegenüber der vorherigen Fassung von 2017 drei neue Kategorien hinzugekommen: Insecure Design, Software and Data Integrity Failures und Server-Side Request Forgery. Außerdem wurden einzelne Kategorien umbenannt oder neu definiert.
A01:2021 - Broken Access Control
Access Control konzentriert sich auf die Realisierung von Beschränkungen für authentifizierte Benutzer, damit sie keine Aktionen ausführen können, die über ihre Berechtigungsstufe hinausgehen. Fehler in der Zugriffskontrolle können zu einem unkontrollierten Datenabfluss sensibler Informationen führen oder auch eine Manipulation zugänglicher Daten ermöglichen.
Real-Life Example
Eine ungeeignete Zugangskontrolle hat dazu geführt, dass ein Sicherheitsexperte an die CD-Schlüssel für jedes Spiel auf Steam gelangen konnte.
A02:2021 - Cryptographic Failures
Kryptografische Fehler (Cryptographic failures) bezieht sich auf Fehler bei der Verschlüsselung von Daten und Datentransfers sowie den Verzicht auf angemessene Verschlüsselungsmethoden. Mängel in der Kryptographie beeinflussen eindeutig die Sicherheit von Anwendungen und deren Daten. Angreifer können aufgrund mangelnder Sicherheit Daten stehlen und verändern, was zu schwerwiegenden Folgen mit sich bringen kann. Dies wurde früher als „Sensitive Data Exposure“ bezeichnet, aber dieser Name ist nicht ganz korrekt, da er eher Symptome und Auswirkungen als Ursachen beschreibt. Der neue Name konzentriert sich auf Verschlüsselungsfehler, wie zuvor angedeutet. Die Offenlegung von sensiblen Daten wie privaten Schlüsseln oder Passwörtern erfolgt häufig, wenn Schwachstellen auftreten.
Real-Life Example
Im Rahmen von Googles Projekt Zero wurde eine Schwachstelle in den Edge-Servern von Cloudflare entdeckt, die es erlaubt, Speicher mit potenziell sensiblen Daten auszulesen, von denen einige von Suchmaschinen im Cache gespeichert wurden. Diese Schwachstelle wurde Cloudbleed benannt.
A03:2021 - Injection
Injection ist eine Hacking-Technik, die verwendet wird, wenn die Eingabe des Benutzers (User Input) von einer Applikation interpretiert wird. Dies kann dazu führen, dass der Text als Kommando oder Parameter verarbeitet wird. Die Verarbeitung hängt „natürlich“ von der verwendeten Technologie ab.
Zum Beispiel kann ein böswilliger Anwender bei einer SQL-Abfrage die Parameter ausnutzen, sodass er sensible oder sogar vertrauliche Daten lesen, ändern oder löschen kann. Diese Manipulation wird SQL Injection genannt.
Eine weitere Art von Injection ist die Command Injection. Dadurch kann der Angreifer Systemkommandos auf den Server starten oder stoppen, was es ihm ermöglicht, Kontrolle über das System zu erlangen.
Eine Injection Attack erfolgt dann, wenn nicht vertrauenswürdige Daten über eine Formulareingabe oder eine andere Datenübermittlung an eine Webanwendung an einen Code Interpreter gesendet werden. Daten oder die gesamte Anwendung können durch bösartigen Code, der von einem Angreifer platziert wurde, kompromittiert werden.
A04:2021 - Insecure Design
Im Grunde genommen bedeutet ein Insecure Design, dass während des gesamten Entwicklungszyklus keine Sicherheitskontrollen in die Anwendung integriert werden. Dies kann weitreichende und tiefgreifende Auswirkungen auf die Sicherheit haben, da die Anwendung selbst nicht sicherheitsorientiert konzipiert ist.
Diese Nachlässigkeiten führen dazu, dass das grundlegende Design und die Basis der Anwendung unsicher sind, was die Tür für eine Vielzahl von Sicherheitslücken öffnet - was letztendlich zur Offenlegung von Informationen oder zur völligen Kompromittierung der Anwendung führen kann.
Insecure Design deckt Schwachstellen ab, die durch bekannte/unbekannte Fehler in der Anwendungen-/ Softwarearchitektur entstanden sind. Diese Kategorie konzentriert sich auf Risiken, die sich aus Fehlern in Architektur- und Designentwürfen ergeben. Wie von OWASP erläutert, unterscheiden sich diese von Risiken, die mit Mängeln bei der Implementierung verbunden sind. Selbst gut implementierte unsichere Designs sind anfällig für Angriffe. Unsicheren Softwaredesigns mangelt es an Security Controls und des Business Risk Profilings. Das macht sie sehr anfällig für Angriffe.
A05:2021 - Security Misconfiguration
Sicherheitsfehlkonfigurationen (Security misconfiguration) konzentrieren sich auf Sicherheitskontrollen, die nicht gesichert oder nicht richtig konfiguriert sind. Diese Schwachstelle ist normalerweise auf einen der folgenden Gründe zurückzuführen:
Falsch konfigurierte Systeme wie Firewalls, Webserver oder Webanwendungen.
Zulassung und Installation von unnötigen Funktionen, wie z.B. Ports, Dienste, Seiten, Konten oder Berechtigungen.
Standardkonten/-Passwörter sind aktiviert oder unverändert.
Die Software ist nicht auf dem aktuellen Stand.
Real-Life Example
Falsch konfigurierte HTTP-Header auf der Webseite des US-Verteidigungsministeriums. Der X-XSS-Protection-Header war zwar enthalten, jedoch mit dem Wert DENY konfiguriert, der für die X-Frame-Option zu verwenden ist. Der Experte empfahl daher, diesen Wert in 1; mode=block zu ändern. Der Originalbericht kann hier eingesehen werden.
A06:2021 - Vulnerable and Outdated Components
Moderne Webentwickler verwenden Frameworks und Bibliotheken in ihren Webanwendungen. Diese sind Softwareteile, die Entwicklern helfen, redundante Arbeit zu vermeiden und die erforderliche Funktionalität bereitzustellen. Gern genutzte Beispiele sind Frontend-Frameworks wie React und kleinere Bibliotheken, die Teilen-Icons oder A/B-Test hinzufügen. Um größere Angriffe zu orchestrieren, suchen einige Angreifer nach Schwachstellen in diesen Komponenten. Einige der beliebtesten Komponenten werden in Hunderttausenden von Websites verwendet. Ein Angreifer, der eine Schwachstelle in einer dieser Komponenten findet, könnte Hunderttausende von Websites angreifbar machen.
Real-Life Example
Am 9. Dezember 2021 wurde eine Schwachstelle für Remote Code Execution (RCE) im Apache-Logging-Paket Log4j2, Version 2.14.1 gemeldet.
Die Log4j2-Bibliothek ist eine von der Apache Software Foundation bereitgestellte Open-Source-Protokollierungsbibliothek, die häufig in Onlineanwendungen und -diensten verwendet wird, um Entwicklungs-, Betriebs- und Sicherheitszwecke zu protokollieren.
A07:2021 - Identification and Authentification Failures
Diese Sicherheitslücken bei Authentifizierung und Sitzungsverwaltung wurden früher als Broken Authentication bezeichnet. Hier werden Schwachstellen in Verbindung mit Anmeldung und Authentifizierungen aufgeführt. Dazu gehören: unzureichender Schutz vor Brute Force, Credential Stuffing, Credential Cracking, Speichern von Passwörtern im Klartext und fehlende oder unzureichende Multi-Faktor-Authentifizierung. Diese Kategorie ist immer noch ein fester Bestandteil der Top 10, aber mit der zunehmenden Popularität standardisierter Entwicklungsframeworks wird diese Kategorie immer seltener.
Real-Life Example
Uber hat es versäumt, den https://biz.uber.com/confirm Endpunkt zu begrenzen, was es einem Angreifer ermöglichen würde, Geschäftskonten mit roher Gewalt zu öffnen und Fahrten in deren Namen zu übernehmen. Diese Schwachstelle wurde auf HackerOne gemeldet. Der Originalbericht kann hier eingesehen werden.
A08:2021 - Software and Data Integrity Failures
Die neuen Kategorien beziehen sich auf Schwachstellen in Software-Updates mit ungeprüfter Integrität von kritische Daten und CI/CD-Pipelines. Solche Fehler können beispielsweise bei Anwendungen auftreten, die Plug-ins, Bibliotheken oder Module aus nicht authentifizierten und nicht vertrauenswürdigen Quellen, Repositories oder Content Delivery Networks (CDNs) verwenden. Eine unsichere CI/CD-Pipeline kann Cyberkriminellen als Zugang dienen, um bösartigen Code einzuschleusen und System kompromittieren. Eine ähnliche Fehlerquelle könnte die automatische Update-Funktion der meisten Anwendungen sein, die nicht unbedingt eine gründliche Integritätsprüfung beinhaltet. Dies öffnet Angreifern die Tür, um Updates zu verbreiten, die darauf abzielen, Sicherheitslücken zu schaffen.
Real-Life Example
Das bekannteste Beispiel für ein versagendes Software- und Datenintegritätssystem ist der SolarWinds Orion Angriff, der sich auf kompromittierte Aktualisierungsmechanismen konzentrierte.
A09:2021 - Security Logging and Monitoring Failures
Die Kategorie belegte 2017 den zehnten Platz und wurde in diesem Jahr um weitere Arten von Schwachstellen erweitert. Im Allgemeinen werden Protokollierung und Überwachung verwendet, um proaktive Sicherheitsverletzungen zu erkennen, zu eskalieren und darauf zu reagieren. Probleme können beispielsweise entstehen, wenn der Fehler keine oder nur unzureichende Log-Einträge erzeugt, die Logs nur lokal geführt werden oder die Schwellwerte für den Warn- und Eskalationsprozess nicht richtig definiert sind.
A10:2021 - Server-Side Request Forgery (SSRF)
Server-Side Request Forgery (SSRF) tritt auf, wenn eine Webanwendung beim Anfordern einer Remote-Ressource eine vom Benutzer angegebene URL nicht validieren kann. Auf diese Weise kann ein Angreifer eine Anwendung dazu zwingen, eine präparierte Anfrage an ein unerwartetes Ziel zu senden, selbst wenn sie durch eine Firewall, ein VPN oder eine andere Art von Netzwerkzugriffskontrollliste (ACL) geschützt ist. OWASP stellte fest, dass die Schwere von SSRF aufgrund von Cloud-Diensten und komplexen Architekturen zunimmt.
Das Open Web Application Security Project (OWASP) ist eine internationale Non-Profit-Organisation, die sich der Sicherheit von Webanwendungen widmet. Das OWASP verfolgt keine kommerziellen Absichten und steht allen Menschen offen, die sie sich für das Thema Daten- und Betriebssicherheit von webanwendungen interessieren. Sie stellen Ressourcen wie Dokumentationen, Tools, Videos und Foren bereit. Ihr berühmtes Projekt ist die OWASP Top 10.