Die neuen OWASP Top 10 - 2021
Das Open Worldwide Application Security Project (kurz OWASP) veröffentlichte am 24. September die neuen Top 10 der häufigsten Sicherheitsrisiken für Webanwendungen. Zum ersten Mal seit 2010 stellen nicht mehr Injections, sondern ungenügende Zugangsbeschränkungen die größte Gefahr für Webanwendungen dar. Seit der letzten Ausgabe der OWASP Top 10 aus dem Jahr 2017 wurden drei neue Kategorien eingeführt und vier Kategorien geändert.
Die Änderungen im Überblick
Injections wurden auf den dritten Platz herabgestuft und enthalten jetzt auch Cross-Site-Scripting (XSS). Diese Änderung erscheint logisch, da XSS schlussendlich auch nur das Einfügen von nicht vertrauenswürdigem Code in einen neuen Kontext ist. Mit unseren Ansätzen rund um den Secure Software Development Lifecycle (SSDL) und Threat Modeling fühlen wir uns bei aramido mit dem auf der vierten Position neu hinzugekommenen Risiko Unsicheres Design bestätigt. Unsere Penetrationstester entdecken immer wieder Schwachstellen, die bereits im Planungsprozess hätten berücksichtigt werden müssen. Ein weiterer Neuankömmling in der Top-10-Liste ist auf dem achten Platz die Fehlerhafte Integritätsprüfung von Software und Daten. Dieser etwas sperrige Punkt beinhaltet unter anderem die in der 2017er-Liste separat geführte unsichere Deserialisierung, will aber auch die Kategorie der Supply-Chain-Angriffe abdecken, welche spätestens durch die SolarWinds-Angriffe bekannt geworden ist. An zehnter Stelle ist schließlich noch mit Server Side Request Forgery (SSRF) eine sehr konkrete Schwachstelle aufgenommen worden.
Die Grenzen der OWASP Top Ten
Die Übersicht der Änderungen an der Top-10-Liste zeigt recht gut die Probleme, die eine solche Aufstellung mit sich bringt. Während einige Schwachstellen zu breiteren Kategorien zusammengefasst wurden, gibt es andere, enger definierte Schwachstellenarten, die nicht einmal mit den anderen Kategorien überschneidungsfrei sind. Dieses Identitätsproblem, was die OWASP-Top-10-Liste eigentlich sein will, wird auch von anderen diskutiert. Dass eine Top-10-Liste nur eine Auswahl aller möglichen Schwachstellen und nicht das gesamte Risikopotential von Webanwendungen und deren Wahrscheinlichkeiten ausreichend abbildet, liegt in der Natur einer Top-Liste. Die OWASP Top Ten sind also kein Standard, gegen den man Webanwendungen verifizieren und für sicher befinden könnte (OWASP bietet für diesen Zweck den Application Security Verification Standard (ASVS)). Wie die Autoren der Liste selbst schreiben, sind die Top Ten ein Sensibilisierungsdokument. Dafür hat die Liste in der Vergangenheit sehr gute Dienste geleistet und wird das auch in Zukunft tun. Zum Beispiel orientieren wir uns bei aramido bei Sensibilisierungsveranstaltungen für Entwickler an den Top 10, um für mögliche Schwachstellen zu sensibilisieren und eine Diskussion zu Gegenmaßnahmen einzuleiten.
Die Liste der kritischsten Sicherheitslücken von Webanwendungen
Die OWASP Top 10 - 2021 beschreiben die zehn kritischsten Sicherheitsrisiken für Webanwendungen, zeigen Angriffsvektoren auf und empfehlen Schutzmaßnahmen, wie man sich vor den Angriffen schützen kann. Sie basieren auf einer umfangreichen Datenerhebung der Autoren mit Hilfe der Security Community.
A01:2021 - Broken Access Control
Fehler im Zugriffsmanagement rückt von der fünften Position (2017) auf den ersten Platz (2021). Wird die Autorisierung in einer Webanwendung nicht stringent umgesetzt, können Benutzer auf Daten zugreifen, die nicht für sie freigegeben sind. Beim Design einer Anwendung (A04:2021) muss deshalb zwingend und klar definiert werden, wie Benutzer sich gegenüber einer Anwendung authentifizieren und im Folgeschritt, wenn die Identität festgestellt wurde, wozu der Benutzer berechtigt ist.
A02:2021 - Cryptographic Failures
Zuvor wurde diese Kategorie als „Veröffentlichung sensitiver Informationen“ bezeichnet. Die neue Bezeichnung konzentriert sich auf Fehler im Zusammenhang mit der Kryptografie, wie es zuvor implizit der Fall war. Die Schwachstellen führen häufig zur Offenlegung sensibler Daten wie Passwörter oder privater Schlüssel.
A03:2021 - Injection
Injections rücken vom ersten auf den dritten Rang. Sie entstehen durch die Verarbeitung von nicht vertrauenswürdigen Daten durch eine Anwendung. Diese Daten wurden hierbei nicht oder nur unzureichend validiert und behandelt. In der Vergangenheit wurden häufig SQL-Injections ausgenutzt; dennoch müssen ebenso andere Injections wie gegen LDAP-Verzeichnisse oder das Betriebssystem berücksichtigt werden. Teil dieser Kategorie ist jetzt auch Cross-Site-Scripting (XSS), was in den vorangegangenen Versionen separat aufgeführt wurde.
A04:2021 - Insecure Design
Die neue Kategorie konzentriert sich auf Risiken im Zusammenhang mit Designfehlern. Bedrohungsmodelle und sichere Architekturen in der Entwicklung von Webanwendungen werden immer wichtiger, um Angriffe abzuwehren. Unsichere Architekturen können nicht allein durch die Implementierung behoben werden, wenn beispielsweise erforderliche Sicherheitskontrollen nicht frühzeitig im Entwicklungsprozess berücksichtigt wurden.
A05:2021 - Security Misconfiguration
Werden Fehler in der Konfiguration von Systemen wie Firewalls, Webservern oder Webanwendungen gemacht, kann dies weitreichende Folgen haben. Denkbar sind von der Veröffentlichung sensitiver Informationen über unautorisierten Systemzugriff bis hin zu Dienstversagen viele Fälle. Angesichts der zunehmenden Umstellung auf hochkonfigurierbare Software ist es nicht überraschend, dass diese Kategorie im Vergleich zu den Top 10 - 2017 aufgestiegen ist. Die frühere Kategorie für XML External Entities (XXE) ist nun Teil dieser Risikokategorie. Der XML-Standard sieht es vor externe Daten in ein XML-Dokument nachzuladen. Wer das bei der Verarbeitung dieser Dokumente nicht berücksichtigt, riskiert eine unberechtigte Befehlsausführung, den Abfluss interner Informationen oder Dienstversagen.
A06:2021 - Vulnerable and Outdated Components
Wie auch schon 2017 findet sich in dieser Kategorie die Verwendung von unsicheren Komponenten mit bekannten Schwachstellen wieder. In der heutigen Welt von Frameworks und Softwarebibliotheken verwenden Entwickler sehr häufig fremden Code. Was Effizienz- und Sicherheitsvorteile bietet, kann gleichfalls zum Einfallstor für Hacker werden. Nachdem Sicherheitslücken von Softwarekomponenten bekannt werden, muss unverzüglich für ein Update gesorgt werden.
A07:2021 - Identification and Authentication Failures
Die Kategorie Identifizierungs- und Authentifizierungsfehler, die zuvor "Fehler im Authentifizierungsmanagement" hieß, rutscht vom zweiten Platz ab und umfasst nun insbesondere Fehler in der Nutzeridentifikation. Diese Kategorie ist immer noch ein fester Bestandteil der Top 10, wird aber durch die zunehmende Verfügbarkeit von standardisierten Entwicklungs-Frameworks seltener.
A08:2021 - Software and Data Integrity Failures
Die neue Kategorie für 2021 konzentriert sich auf Sicherheitslücken in Bezug auf Software-Updates, kritische Daten und CI/CD-Pipelines ohne Integritätsüberprüfung. Die 2017 als „Unsichere Deserialisierung“ bezeichnete Kategorie wird nun dieser Kategorie zugeordnet. Bei einer Serialisierung werden komplexe Datenstrukturen in eine sequentielle Zeichenkette umgewandelt. Der umgekehrte Prozess – die Deserialisierung – kann ausgenutzt werden, um fremde Befehle auszuführen.
A09:2021 - Security Logging and Monitoring Failures
Diese Kategorie war 2017 auf Platz Zehn und wurde dieses Jahr erweitert, um mehr Arten von Sicherheitslücken zu umfassen. Logging und die Analyse von Daten stellen den wichtigsten Weg dar einen Angriff auf die eigenen Systeme zu erkennen. Ebenso müssen Fehler der Anwendung im laufenden Betrieb protokolliert und an die verantwortlichen Stellen kommuniziert werden. Fehlendes und falsches Logging können sich direkt auf die Sichtbarkeit, die Alarmierung bei Vorfällen und die Forensik auswirken.
A10:2021 - Server-Side Request Forgery (SSRF)
Bei der ebenfalls neuen Kategorie handelt es sich um SSRF-Schwachstellen, die immer dann auftreten, wenn eine Webanwendung eine Remote-Ressource abruft, ohne die vom Benutzer angegebene URL zu validieren. Dadurch kann ein Angreifer die Anwendung dazu zwingen, manipulierte Anfragen vom Server zu senden, selbst wenn sie durch eine Firewall, ein VPN oder eine andere Art von Access Control List (ACL) geschützt ist. OWASP weist darauf hin, dass der Schweregrad von SSRF aufgrund von Cloud-Diensten und komplexen Architekturen immer größer wird.
Erhebung der Daten
Die neue Ausgabe der OWASP Top Ten beruht auf statistischen Daten zu häufigen Sicherheitslücken, die in der Vergangenheit über betreffende Branchenkanäle gemeldet wurden. Zudem wurden regelmäßig Umfragen von Branchenexperten durchgeführt, um die vorhandenen Daten mit den aktuellsten Erkenntnissen der Fachleute im Bereich Anwendungssicherheit und Entwicklung abzugleichen.
Am 21.10.2021 in der Kategorie Sicherheit von Webanwendungen veröffentlicht.