Entdecken Sie das TÜV-zertifizierte GoogleTest mit Agentic AI für C/C++-Tests!
Details ansehen »
Zum Abschnitt springen
Parasoft-Blog
Die Anwendungssicherheit in Ihrem Unternehmen lässt sich nicht allein mit Sicherheitstools gewährleisten. Hier erfahren Sie detailliert, warum Kenntnisse des Open Web Application Security Project (OWASP) Ihnen helfen können, Anwendungsschwachstellen zu minimieren.
Zum Abschnitt springen
Wir erleben weiterhin massive Datenpannen, die Unternehmen jeder Größe betreffen. Angesichts der anhaltenden und sogar zunehmenden Cybersicherheitsprobleme fragen wir uns: „Sind wir die Nächsten?“ und „Was kann ich dagegen tun?“ Genau hier setzt OWASP an.
OWASP (Open Web Application Security Project) ist vor allem für die OWASP Top 10 bekannt . Es handelt sich um eine offene Community mit kostenlosen Informationen und Schulungen zur Anwendungssicherheit. Die OWASP Top 10 ist eine Liste häufiger Sicherheitsrisiken für Webanwendungen, die regelmäßig aktualisiert wird. Wenn Sie sich bisher wenig oder nur unregelmäßig mit Anwendungssicherheit beschäftigt haben, sind die OWASP Top 10 ein hervorragender Ausgangspunkt.
Die Organisation OWASP stellt Ressourcen, Richtlinien und Tools bereit, um Webanwendungsentwicklern dabei zu helfen, Sicherheitslücken zu identifizieren, zu mindern und zu verhindern. Die OWASP Top Ten sind eine wichtige Ressource, die die Organisation seit 2003 veröffentlicht. Ziel ist es, die Entwicklergemeinschaft auf wichtige Sicherheitsprobleme zu konzentrieren und deren Auswirkungen zu verstehen.
Das Verstehen und Umsetzen der OWASP Top Ten und anderer Empfehlungen des OWASP verbessert die Sicherheit von Webanwendungen, da es dazu beiträgt, die häufigsten und kritischsten Sicherheitsrisiken zu beseitigen. Das Erlernen der Grundursachen dieser zehn größten Schwachstellen hilft Entwicklern, ihre Bemühungen zu priorisieren und sich auf die größten Risiken zu konzentrieren. Wenn ein Unternehmen reifer wird und diese Praktiken umsetzt, sind seine Webanwendungen widerstandsfähiger gegen Angriffe und verringern das Risiko von Datenschutzverletzungen, finanziellen Verlusten und Reputationsschäden.
Die OWASP Top 10 umfasst die folgenden Schwachstellen A1-A10:
OWASP bietet Dokumentation für die Top 10 mit einer eigenen Webseite für jede Schwachstelle. Auf der Seite wird beschrieben, um welche Schwachstelle es sich handelt, und es wird eine Risikobewertung bereitgestellt, die bei der Priorisierung und Einstufung möglicher Schwachstellen hilft. Hier ist ein Beispiel der A05:2025-Injection-Webseite:
Das „Inhaltsverzeichnis“ oben rechts bietet Orientierung und hilft Ihnen, die Bedeutung und Gefahr der einzelnen Schwachstellen zu verstehen.
Laut den OWASP Top Ten sind fehlerhafte Zugriffskontrollen, kryptografische Fehler und Injektionsfehler die häufigsten Schwachstellen.
Durch die Zugriffskontrolle bleiben Benutzer innerhalb ihrer vorgesehenen Berechtigungen in einer Anwendung. Diese Kontrollen sind jedoch häufig schlecht implementiert und können leicht umgangen werden. Mit höheren Berechtigungen als vorgesehen können Angreifer auf private Daten zugreifen oder den Betrieb stören. Eine ordnungsgemäße Zugriffskontrolle bedeutet die Implementierung wirksamer Kontrollen mit einer standardmäßigen Deny-Philosophie. Bei Sicherheitstests müssen mögliche Probleme bei der Zugriffskontrolle gründlich untersucht werden.
Eine weitere häufige Schwachstelle ist das Fehlen geeigneter Kryptografie. Schwache oder fehlende Sicherung von Daten während der Übertragung oder im Ruhezustand führt häufig zur Offenlegung von Daten. Bei Kryptografie kommt manchmal eine schwache Verschlüsselung zum Einsatz, die bereits von Angreifern geknackt wurde. Der Schlüssel zur Prävention liegt in der Datensicherheit bei der Übertragung mit sicheren Protokollen und einer starken Verschlüsselung bei der Speicherung. Dies erfordert auch eine ordnungsgemäße Schlüsselverwaltung und die bedarfsgerechte Aktualisierung von Verschlüsselungstools und -methoden.
Injektionsangriffe manipulieren Eingaben, um unautorisierte Befehle auszuführen. Mit diesen Befehlen können vertrauliche Informationen offengelegt werden. Beispielsweise kann ein SQL-Injection-Angriff Kundendaten offenlegen. Schwache Anmelde- und Sitzungsverwaltung kann zu unbefugtem Zugriff führen, was häufig zu einer Offenlegung von Daten führt, was auf ein allgemeines Problem des unzureichenden Schutzes vertraulicher Informationen hinweist.
Die OWASP Top Ten konzentrieren sich bei der Behebung unsicherer Designprobleme auf die organisatorischen Aspekte der Webanwendungssicherheit. Da sich ein unsicheres Design während der Implementierung nicht mehr korrigieren lässt, ist es ratsam, Sicherheit frühzeitig in den Entwicklungsprozess und über den gesamten Lebenszyklus hinweg zu integrieren.
„Secure by Design“ ist ein Ansatz, der Bedrohungsanalyse, Risikomanagement, sichere Design- und Programmierpraktiken sowie die kontinuierliche Validierung und Verifizierung der Sicherheit umfasst. OWASP veröffentlicht das Software Assurance Maturity Model (SAMM), um Organisationen bei der Ausrichtung und Weiterentwicklung ihres sicheren Softwareentwicklungszyklus zu unterstützen.
OWASP enthält viele Empfehlungen für den Übergang zu einem sichereren Entwicklungsprozess. Zu den wichtigsten Aspekten gehören die Bedrohungsmodellierung, die Integration von Sicherheitsprüfungen und Sprache in User Stories und natürlich die Einrichtung eines sicheren Entwicklungslebenszyklus mit externen AppSec-Experten, falls erforderlich.
Für jede der Top Ten gibt es eine eigene Seite für jede Kategorie von Sicherheitsproblemen bei Webanwendungen.
Im Abschnitt „Faktoren“ werden die mit der Kategorie verknüpften Daten angezeigt, z. B. die Anzahl der kartierten CWEs, Inzidenzraten, prozentuale Abdeckung und Anzahl der Vorfälle.
Die Übersicht und Beschreibung liefern erwartungsgemäß Details zur Schwachstellenkategorie. Dies ist eine Erweiterung gegenüber früheren Versionen der Liste.
Der Abschnitt „Prävention“ ist meiner Meinung nach der interessanteste. Sicherheitstests sind wichtig, aber die Entwicklung sicheren Codes ist die einzige solide Grundlage für eine starke Anwendungssicherheit. Dieser Abschnitt beschreibt verschiedene Strategien, die Ihnen helfen, Ihre Sicherheit frühzeitig zu verbessern, indem Sie nicht nur früher testen, sondern auch besseren Code entwickeln, der grundsätzlich weniger anfällig für Angriffe ist. Dies ist die Basis für einen Security-by-Design-Ansatz, wie er beispielsweise von der DSGVO gefordert wird.
Der Abschnitt „Beispielhafte Angriffsszenarien“ zeigt, wie ein Angreifer die einzelnen Schwachstellen ausnutzen könnte. Diese Informationen können zur Erstellung von Tests sowie zur Aufklärung des Teams darüber verwendet werden, wie sich Softwareschwachstellen auf die Anwendungssicherheit auswirken.
Schließlich gibt es zu jedem Top-10-Element einen Abschnitt mit weiteren Informationen zu jedem Problem, Ansätzen zu seiner Vermeidung und Ansätzen zu seiner Prüfung. Es enthält auch Links, die Sie zu verwandten Problemen führen. Dies ist sehr nützlich, wenn Sie daran arbeiten, die Sicherheit Ihrer Software kontinuierlich zu verbessern.
Im letzten Abschnitt sind alle CWEs der aktuellen Kategorie mit Links zu den CWE-Beschreibungen von MITRE aufgelistet.
Wenn Sie die OWASP Top 10-Dokumentation lesen, werden Sie möglicherweise feststellen, dass einige der Elemente allein schon aufgrund ihres Namens offensichtlich sind, während andere tiefer graben müssen, um sie zu verstehen. Bei A01 Broken Access Control handelt es sich beispielsweise tatsächlich um eine umfassendere Reihe von Dingen wie die Durchsetzung von Zugriffskontrollen, Autorisierungstests, das Widerrufen des Zugriffs und mehr. Dieser Sicherheitslücke liegt die Tatsache zugrunde, dass Zugriffsfehler zur unbefugten Offenlegung, Änderung oder Zerstörung aller Daten oder zur Ausführung einer Funktion außerhalb der Grenzen des Benutzers führen können.
In den OWASP Top 10 finden Sie Informationen, Schulungen und Ratschläge. Sie können sich über häufig auftretende Sicherheitsprobleme sowie über Strategien zum Erkennen und sogar Vermeiden einiger Probleme informieren. Alle diese Informationen sind kostenlos verfügbar und werden ständig aktualisiert und verbessert.
Compliance bedeutet auch, dass wir genau wissen müssen, welches spezifische Element in unserem Toolkit welchen spezifischen Teil des Standards unterstützt. Im Falle einer statischen Analyse bedeutet dies, dass Sie wissen, welche Prüfer welche Elemente im Standard unterstützen und ob es Elemente im Standard gibt, die mehr als eine statische Analyse erfordern, wie z. B. Peer-Code-Review oder Software-Kompositionsanalyse.
Die Einführung von „Security by Design“ sollte bei der Entwicklung von Webanwendungen oberste Priorität haben. Prävention durch sicheres Design und Codierung sowie die Implementierung eines sicheren Codierungsstandards sind Teil der Lösung. Tatsächlich wurde in der neuesten OWASP-Top-Ten-Liste die Kategorie „unsicheres Design“ hinzugefügt, um genau diese Probleme anzugehen. Sicherheit lässt sich nicht anschrauben. Es muss von Anfang an in der Bewerbung enthalten sein.
SAST-Tools spielen eine wichtige Rolle bei der Verlagerung der Sicherheit nach links, d. h. bei der Anwendung von Sicherheitskontrollen früher im Entwicklungslebenszyklus. SAST-Tools tragen zur Vermeidung von Sicherheitslücken bei, wenn sie zur Durchsetzung sicherer Codierungspraktiken und -standards eingesetzt werden. Darüber hinaus können diese Tools bestehende Schwachstellen erkennen, sei es in neu entwickeltem oder bestehendem Code.
Der Nutzen für ein sicheres Design ist beträchtlich, da Sicherheitsvorfälle, insbesondere Datenschutzverletzungen, sehr kostspielig sind. Die Behebung von Sicherheitsproblemen, die in der Produktion oder in bereitgestellten Produkten festgestellt werden, kostet mehrere Größenordnungen mehr als die Behebung von Sicherheitsproblemen, die während der Entwicklung festgestellt werden. Verstöße gegen öffentliche Daten, die zu Schlagzeilen werden, können Unternehmen Millionen von Dollar kosten.
Sicheres Design bietet auch Vorteile im Hinblick auf den Ruf und das Kundenerlebnis. Eine bewährte Methode ist es, von Anfang an Sicherheit einzubauen.
Die OWASP Top Ten bieten in erster Linie Bewusstsein und eine gemeinsame Sprache für die häufigsten und riskantesten Schwachstellen von Webanwendungen. Als Liste bietet es auch eine Priorisierung und Risikobewertung, die Entwickler berücksichtigen können. Beispielsweise bleiben Injektionsfehler eine kritische Schwachstelle und sollten beim Sicherheitsdesign, bei der Codierung und bei der Verwendung von Scan- und Penetrationstest-Tools im Mittelpunkt stehen.
Die Top Ten sind auch eine gute Ressource für die Schulung und Unterstützung von Organisationen bei der Weiterentwicklung ihrer Sicherheitslage. Secure by Design und DevSecOps stützen sich alle auf die Informationen und Anleitungen von OWASP und Ressourcen wie den Top Ten.
Es ist einfach – und erschreckend üblich –, dass Softwareentwicklungsunternehmen die Sicherheit erst am Ende angehen, indem sie externe, späte Systemtests wie Penetrationstests durchführen. Ich würde das vielleicht DevTestOpsSec nennen.
Dieser Test eignet sich hervorragend, um nachzuweisen, dass die Anwendung/das System keine der in OWASP aufgeführten Schwachstellen enthält. Diese Black-Box-Tests sind jedoch nicht die effizienteste Methode, um tatsächlich sichereren Code zu erstellen. Wir möchten uns nicht auf Black-Box-Tests verlassen, um unsere Software zu sichern oder Fehler zu finden, sondern vielmehr, um zu beweisen, dass die Software sicher ist.
Wenn Penetrationstests also eine Schwachstelle aufdecken, müssen wir uns fragen: Warum? Und versuchen, die zugrunde liegende Ursache des Problems zu beheben. Dies ist der Zeitpunkt, an dem wir von einer „Testsicherheit in“ zu einer „Sicherheit durch Design“-Mentalität wechseln. Hierfür stehen Tools für statische Anwendungssicherheitstests (SAST), wie z. B. die statische Codeanalyse, mit Unterstützung für OWASP zur Verfügung.
Eine kleine Anmerkung: Punkt A06 in den OWASP Top 10 ist völlig anders als die übrigen und eignet sich nicht für SAST oder DAST, da es hier um die Suche nach bekannten Schwachstellen in Open Source geht und nicht um das Auffinden neuer Schwachstellen.
Glücklicherweise bietet OWASP hierfür ein kostenloses Tool namens OWASP Dependency Check an . Dieses Tool identifiziert Projektabhängigkeiten und prüft, ob bekannte, öffentlich bekannt gewordene Sicherheitslücken vorliegen. Es kann außerdem verwendet werden, um Anwendungen und deren abhängige Bibliotheken zu scannen und bekannte anfällige Komponenten zu identifizieren.
Wenn Sie Parasoft verwenden, haben wir OWASP Dependency Check tatsächlich in unser Berichtssystem integriert und es zu einem Teil des OWASP Top 10 Dashboards gemacht. Dies macht es einfach, Probleme in Ihren Open-Source-Komponenten zu lösen, indem Sie zusammen mit SAST einen regulären Teil Ihres CI scannen und die Ergebnisse zusammen mit den restlichen OWASP-Informationen in ein einheitliches Dashboard einfügen. Mit diesem Ansatz ist A9 kein separater orthogonaler Prozess, sondern wie vorgesehen in die Top 10 integriert.
Tools zum Testen der Anwendungssicherheit unterstützen die notwendigen Aktivitäten, um die in den OWASP Top Ten aufgeführten Schwachstellen zu verhindern. Daher ist die Verwendung einer Kombination dieser Tools eine bewährte Vorgehensweise für Softwareentwickler.
SAST-Tools analysieren ruhenden Code und können sehr früh im Softwareentwicklungszyklus eingesetzt werden. Ihre Stärke liegt darin, Software-Schwachstellen und unsichere Programmierung bereits beim Schreiben des Codes zu erkennen. Sie eignen sich außerdem hervorragend zur Durchsetzung sicherer Programmierstandards wie SEI CERT. Anbieter von SAST-Tools verfügen häufig über Konfigurationen für die OWASP Top Ten und dokumentieren, wie ihr Tool zur Behebung dieser Top-Schwachstellen eingesetzt werden kann.
DAST-Tools hingegen werden verwendet, wenn eine Anwendung ausgeführt wird. Sie erkennen Schwachstellen bereits bei ihrem Auftreten und mit sehr hoher Präzision. DAST-Tools werden während des Tests verwendet, um Fehler und Schwachstellen zu erkennen, die allein anhand der Testergebnisse möglicherweise übersehen werden.
Die OWASP Top Ten helfen bei Anwendungssicherheitstests und Codeanalysen, indem sie eine priorisierte Liste der kritischsten Sicherheitsrisiken für Webanwendungen bereitstellen. Entwickler und Sicherheitsteams können ihren Code unter Berücksichtigung dieser Risiken überprüfen und so sicherstellen, dass sie Schwachstellen im Zusammenhang mit diesen zehn Hauptproblemen beheben und mindern
Der Vorteil der statischen Analyse liegt darin, dass die Anwendung oder das System nicht vollständig fertiggestellt sein muss. Sie können die Suche nach Sicherheitsproblemen viel früher im Entwicklungszyklus beginnen ( Shift-Left-Sicherheitstests) . Wenn Sie die Sicherheit erst spät oder gegen Ende der Entwicklung berücksichtigen (DevOpsSec), können Sie die statische Analyse nutzen, um die Sicherheit bereits vor Beginn der Tests zu integrieren, während der Code noch geschrieben wird ( DevSecOps ).
Die hässliche Seite der statischen Analyse besteht darin, dass sie den Ruf hat, sehr laut zu sein und beispielsweise Hunderte oder sogar Tausende von Verstößen genau dann zu produzieren, wenn Sie dachten, Sie wären bereit für die Veröffentlichung. Glücklicherweise gibt es einige gute Strategien, damit umzugehen. Hier sind einige Dinge, die Sie beachten sollten:
Ich möchte etwas hervorheben, das wichtig ist, wenn Sie Ihre Bewerbung wirklich absichern möchten. Es ist einfach, die Sicherheit zu testen, aber es ist schwieriger, dafür zu sorgen. Glücklicherweise gibt es statische Analyseprüfer in verschiedenen Ausführungen. Einige Prüfer suchen nach typischen Problemen wie fehlerhaften Daten und versuchen herauszufinden, ob es in der Anwendung einen Fluss gibt, bei dem dies passieren könnte. Dies sind die häufigsten Prüfer in vielen SAST-Tools.
Der größere Wert bei der statischen Code-Analyse liegt jedoch in Prüfern, die zwei besondere Dinge erzwingen:
Ironischerweise ist dies der Ansatz, den sicherheitskritische Branchen seit Jahrzehnten mit Hardware und Software verfolgen, aber in der Cybersicherheit glauben wir, dass wir die Sicherheit in einer Anwendung testen können und uns nicht darauf konzentrieren müssen, sicheren Code zu erstellen. Nutzen Sie die vollen Funktionen der proaktiven statischen Analyse zusätzlich zu Früherkennungsprüfern, um den größtmöglichen Nutzen zu erzielen.
Die Best Practices, die wir aus den OWASP Top Ten lernen können, sind in der Liste selbst aufgeführt. Der Schlüssel zur Vermeidung von Injektionsfehlern liegt beispielsweise in der ordnungsgemäßen Validierung aller Eingaben in die Anwendung. Darüber hinaus sind die folgenden Best Practices erforderlich.
Die OWASP Top Ten bietet eine geordnete Liste der risikoreichsten Sicherheitslücken in Webanwendungen. Vor diesem Hintergrund verfügen Webanwendungsentwickler über die Informationen, die sie benötigen, um auftretende Sicherheitsrisiken zu bewerten. Die Priorität von Sicherheitsvorfällen oder der Erkennung von Schwachstellen während der Entwicklung kann anhand ihres Platzes auf der Liste priorisiert werden. Alle Top Ten sind von entscheidender Bedeutung, aber Entwickler müssen sich zunächst auf das häufigste und höchste Risiko konzentrieren
Der Einstieg in die OWASP Top 10 ist nicht einfach, wenn man sich bisher nicht mit IT-Sicherheit beschäftigt hat, aber durchaus machbar. DAST bietet einen einfachen Einstieg in die Top 10, und SAST hilft Ihnen anschließend, Ihre Sicherheitstests frühzeitig zu implementieren . Richtig implementiert, kann SAST Probleme sogar verhindern, anstatt sie nur zu erkennen. Achten Sie daher auf Tools, die alle Punkte der Liste abdecken und sowohl Erkennungs- als auch Präventionsmechanismen bieten.
Webanwendungsentwickler können im Rahmen der OWASP Top Ten von Anfang an Sicherheit in ihre Anwendungen einbauen, indem sie:
Das zentrale Thema besteht darin, Sicherheitsmaßnahmen von Anfang an in den Entwicklungsprozess zu integrieren, proaktiv zu sein und der Risikominderung Priorität einzuräumen, indem die in den OWASP Top Ten beschriebene Risikobewertung erfolgt.
Mit diesen Tipps sollten Sie bereit sein, die heute häufigsten und gefährlichsten Sicherheitsrisiken für Webanwendungen zu beseitigen.
Bauen Sie von Anfang an Sicherheit in Ihre Anwendung ein.
„MISRA“, „MISRA C“ und das Dreieckslogo sind eingetragene Marken von The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Alle Rechte vorbehalten.