Erfahren Sie, wie die Continuous Quality Platform von Parasoft dabei hilft, Testumgebungen zu steuern und zu verwalten, um zuverlässig hochwertige Software zu liefern. Für Demo registrieren >>

BLOG

Erste Schritte mit AppSec mit OWASP

Erste Schritte mit AppSec mit OWASP Lesezeit: 7 Minuten

Wir sehen weiterhin große Datenverletzungen, die Unternehmen jeder Größe betreffen. Während die Cybersicherheitsprobleme anhalten und sogar häufiger und schwerwiegender werden, müssen wir uns fragen: "Sind wir die nächsten?" und "Was kann ich dagegen tun?" Hier kommt OWASP ins Spiel.

Was ist OWASP Top 10?

Am bekanntesten für die OWASP Top 10, OWASP ist das Open Web Application Security Project, eine offene Community mit kostenlosen Informationen und Schulungen zur Anwendungssicherheit. Die OWASP Top 10 sind eine Liste der häufigsten gefährlichen Sicherheitsrisiken für Webanwendungen, die regelmäßig aktualisiert werden, um auf dem neuesten Stand zu bleiben. Wenn Sie in Bezug auf die Anwendungssicherheit nicht viel getan haben oder wenn Sie Ad-hoc-Maßnahmen ergriffen haben, sind die OWASP Top 10 ein hervorragender Ausgangspunkt.

Was sind die OWASP Top 10-Sicherheitslücken für heute?

Die OWASP Top 10 wurden zuletzt im Jahr 2017 aktualisiert und umfassen die folgenden Sicherheitslücken A1-A10:

  1. Spritze
  2. Unterbrochene Authentifizierung
  3. Belichtung sensibler Daten
  4. Externe XML-Entitäten (XXE)
  5. Unterbrochene Zugangskontrolle
  6. Sicherheitskonfiguration
  7. Cross-Site Scripting (XSS)
  8. Unsichere Deserialisierung
  9. Verwenden von Komponenten mit bekannten Sicherheitslücken
  10. Unzureichende Protokollierung und Überwachung

OWASP bietet Dokumentation für die Top 10 mit einer Webseite für jede Sicherheitsanfälligkeit. Die Seite beschreibt die einzelnen Sicherheitsanfälligkeiten und bietet eine Risikobewertung, anhand derer mögliche Sicherheitsanfälligkeiten priorisiert und ermittelt werden können. Sehen Sie sich ein Beispiel der folgenden Seite an:

Die verschiedenen Abschnitte auf der Seite helfen Ihnen dabei, die Bedeutung und Gefahr jeder der Sicherheitsanfälligkeiten zu verstehen.

Ist die Anwendung anfällig?

Der Abschnitt namens Ist die Anwendung anfällig? erklärt, was es für eine Anwendung bedeutet, die Sicherheitsanfälligkeit zu haben, und welche Arten von Tools (DAST, SAST usw.) nützlich sind, um diese bestimmte Sicherheitsanfälligkeit zu finden.

Beispiel für Angriffsszenarien

The Beispiel für Angriffsszenarien Der Abschnitt zeigt, wie ein Angreifer jede Sicherheitsanfälligkeit ausnutzen kann. Diese Informationen können verwendet werden, um Tests zu erstellen und das Team darüber zu informieren, wie sich Software-Schwachstellen auf die Anwendungssicherheit auswirken.

Wie man etwas vorbeugt

The Wie man etwas vorbeugt Abschnitt ist der interessanteste IMHO. Sicherheitstests sind wichtig, aber das Erstellen von sicherem Code ist die einzige solide Grundlage für eine starke Anwendungssicherheit. In diesem Abschnitt werden verschiedene Strategien beschrieben, mit denen Sie Ihre Sicherheit nach links verlagern können, indem Sie nicht nur früher testen, sondern auch besseren Code erstellen, der grundsätzlich weniger anfällig für Angriffe ist. Dies ist die Grundlage für einen Security-by-Design-Ansatz (z. B. von der DSGVO gefordert).

Referenzen

Schließlich enthält jedes Top-10-Element einen Abschnitt mit weiteren Informationen zu jedem Problem, Ansätzen zur Vermeidung und Ansätzen zum Testen. Es enthält auch Links, die Sie zu verwandten Problemen führen. Dies ist sehr nützlich, wenn Sie daran arbeiten, Ihre Software-Sicherheit kontinuierlich zu verbessern.

Wenn Sie die OWASP Top 10-Dokumentation lesen, stellen Sie möglicherweise fest, dass einige der Elemente allein anhand ihres Namens ersichtlich sind, während andere zum Verständnis tiefer gehen müssen. Beispielsweise, A1 - "Injection" - ist eigentlich eine breite Palette von Dingen wie SQL-Injection, Befehlsinjektion, LDAP-Injection und mehr. Dieser Sicherheitslücke liegt die Tatsache zugrunde, dass Benutzereingaben nicht ausreichend überprüft und bereinigt werden, bevor eine Anwendung sie verwendet.

Warum OWASP Top 10 verwenden?

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.

Konformität bedeutet auch, dass wir genau wissen müssen, welcher bestimmte Artikel in unserem Toolkit welchen bestimmten Teil des Standards unterstützt. Bei der statischen Analyse bedeutet dies, zu wissen, welche Prüfer welche Elemente im Standard unterstützen und ob es Elemente im Standard gibt, die mehr als eine statische Analyse erfordern (z. B. Peer-Code-Überprüfung oder Analyse der Software-Zusammensetzung).

Am Ende beginnen

Es ist für Softwareentwicklungsunternehmen einfach (und gefährlich häufig), die Sicherheit am Ende zu beginnen - mithilfe externer Tests mit vollem System und späten Zyklen, wie z. B. Penetrationstests (ich könnte dies so etwas nennen) DevTestOpsSec). Diese Tests eignen sich hervorragend, um zu demonstrieren, dass die Anwendung / das System keine der in OWASP aufgeführten Sicherheitslücken enthält. Dieser Black-Box-Test ist jedoch nicht der effizienteste Weg, 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 um sie als Beweis für die Software zu verwenden is zu sichern.

Wenn der Penetrationstest eine Sicherheitslücke findet, müssen wir uns fragen warum und versuchen Sie, die zugrunde liegende Ursache des Problems zu beheben. An diesem Punkt bewegen wir uns von einer „Test Security In“- zu einer „Security-by-Design“-Mentalität. Dafür finden Sie Tools zum statischen Testen der Anwendungssicherheit (SAST) wie die statische Codeanalyse mit Unterstützung für OWASP.

Mehr als DAST und SAST

Eine kleine Sache zu beachten ist, dass der Punkt A9 in den OWASP Top 10 völlig anders ist als die anderen und sich nicht dazu eignet SAST or DAST weil es darum geht, nach bekannten Schwachstellen in Open Source zu suchen und keine neuen Schwachstellen zu finden.

Zum Glück hat OWASP dafür ein kostenloses Tool namens OWASP-Abhängigkeitsprüfung. Dieses Tool identifiziert Projektabhängigkeiten und prüft, ob bekannte, öffentlich bekannt gegebene Schwachstellen vorliegen. Es kann zum Scannen von Anwendungen und ihren abhängigen Bibliotheken verwendet werden, um bekannte anfällige Komponenten zu identifizieren.

(Wenn Sie verwenden ParasoftWir haben OWASP Dependency Check tatsächlich in unser Berichtssystem integriert und es in das OWASP Top 10 Dashboard aufgenommen. Dies erleichtert die Behandlung von Problemen in Ihren Open Source-Komponenten, indem Sie zusammen mit SAST als regulärer Bestandteil Ihres CI scannen und die Ergebnisse mit den restlichen OWASP-Informationen in einem einheitlichen Dashboard zusammenfassen. Bei diesem Ansatz wird A9 nicht als separater orthogonaler Prozess, sondern wie gewünscht in die Top 10 integriert.)

Tools und Tipps zur Analyse statischer Codes

Das Schöne an der statischen Analyse ist, dass nicht die gesamte Anwendung oder das gesamte System fertiggestellt sein muss, sodass Sie viel früher im Zyklus nach Sicherheitsproblemen suchen können (bis nach links verschieben Sicherheitstests). Wenn Sie die Sicherheit spät oder gegen Ende Ihrer Entwicklung (DevOpsSec) durchführen, können Sie mithilfe der statischen Analyse die Sicherheit früher erhöhen, bevor der Test überhaupt beginnt, während der Code tatsächlich geschrieben wird (DevOpsSec).DevSecOps).

Die hässliche Seite der statischen Analyse ist, dass sie den Ruf hat, sehr laut zu sein, zum Beispiel Hunderte oder sogar Tausende von Verstößen zu verursachen, als Sie dachten, Sie wären bereit, sie freizugeben. Glücklicherweise gibt es einige sehr gute Strategien, um damit umzugehen. Hier sind einige Dinge zu beachten:

  • Speichern Sie Sicherheitstests nicht bis zum Ende. Starten Sie die statische Analyse, sobald Sie mit dem Codieren beginnen. Wenn Sie warten und es nur als Teil Ihrer CI / CD-Pipeline ausführen, häufen sich die Ergebnisse und überwältigen Ihr Entwicklungsteam. Führen Sie es auf dem Desktop aus, um Probleme zu finden, und führen Sie es in CI / CD aus, um einfach zu überprüfen, ob der Code ordnungsgemäß erstellt wurde
  • Passen Sie Ihre Konfiguration an. Einige statische Analyseprüfer werden im Kontext Ihres Codes möglicherweise nicht benötigt. Überprüfen Sie Ihre Anwendung und stellen Sie fest, welche Sicherheitsrisiken für Sie von Bedeutung sind, und arbeiten Sie nur an diesen. Suchen Sie niemals nach Problemen, die Sie nicht beheben möchten.
  • Das Alter des Codes ist wichtig. "Wenn es nicht kaputt ist, beheben Sie es nicht" sollte für Legacy-Code gelten. Führen Sie die kritischsten Sicherheitsscanner nur für älteren Code aus. Kleinere Probleme verschwenden Ihre Zeit und diese Änderungen bringen ihr eigenes neues Risiko mit sich. Überprüfen Sie niemals Code, den Sie nicht reparieren möchten.
  • Es geht nur um Risiko. SAST-Tools finden sowohl echte als auch potenzielle Schwachstellen. Nicht alle Befunde haben das gleiche potenzielle Risiko. OWASP hat geholfen, indem es das Risiko für jedes Element in den Top 10 basierend darauf definiert hat, wie einfach es ist, eine Schwachstelle auszunutzen, wie einfach es für jemanden ist, die Schwachstelle zu finden, und wie sich die tatsächliche Auswirkung der Exploit auswirken kann. Verwenden Sie diese hilfreichen Informationen, um Ihre SAST-Ergebnisse zu priorisieren und zu analysieren:

Die Kraft der Prävention

Ich möchte etwas hervorheben, das wichtig ist, wenn Sie Ihre Anwendung wirklich härten möchten. Es ist sehr einfach, die Sicherheit zu testen, aber schwieriger, sie zu erstellen. Glücklicherweise gibt es statische Analyseprüfer in verschiedenen Geschmacksrichtungen. Einige Prüfer suchen nach typischen Problemen wie fehlerhaften Daten und versuchen herauszufinden, ob in der Anwendung ein Fluss vorhanden ist, in 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:

  1. Ein Muster, das in der Vergangenheit häufig mit Problemen verbunden war. Während dies möglicherweise nicht so interessant aussieht wie eine bestimmte Stapelverfolgung eines Exploits, kann es viel gründlicher sein, einfach alles zu beheben, was schwächer ist als es sein sollte, als nur Probleme zu beheben, die einen nachgewiesenen Angriffsvektor haben.
  2. Anforderungen an bestimmte Codierungsarten, um ein ordnungsgemäßes Funktionieren sicherzustellen. Automobil- und Flugzeugstandards wie MISRA und JSF setzen auf diese Technik, um die funktionale Sicherheit zu gewährleisten. Die gleiche Technik, bei der neben dem Markieren von schlechtem Code auch guter Code benötigt wird, hilft Ihnen beim Erstellen sicherer Anwendungen.

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.

Zusammenfassung

OWASP Top 10 zu bekommen ist nicht einfach, wenn Sie sich noch nie auf Sicherheit konzentriert haben, aber es ist erreichbar und ein guter Anfang. DAST ist ein einfacher Weg, um mit den Top 10 zu beginnen, und dann hilft Ihnen die Verwendung von SAST Verschieben Sie Ihre Sicherheitstests nach links. Bei ordnungsgemäßer Implementierung kann SAST sogar Probleme verhindern und nicht nur erkennen. Suchen Sie daher nach Tools, die den Standard vollständig abdecken, sowohl mit Erkennungs- als auch mit vorbeugenden Überprüfungen.

Erfahren Sie, wie Sie die OWASP-Risikobewertung verwenden, um die Ergebnisse zu priorisieren und sicherzustellen, dass Ihre Tools diese Risikoinformationen mit ihren Ergebnissen ausgeben. Dies hilft Ihnen, sich auf das Wesentliche zu konzentrieren und ist der Schlüssel für eine erfolgreiche OWASP-Implementierung.

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.

Geschrieben von

Artur Hicken

Arthur ist seit über 25 Jahren bei Parasoft im Bereich Software-Sicherheit und Testautomatisierung tätig. Er hilft bei der Erforschung neuer Methoden und Techniken (einschließlich 5 Patente) und hilft Kunden dabei, ihre Software-Praktiken zu verbessern.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.