In this article
Webanwendungssicherheit erklärt: Risiken und neun Best Practices
Da Komfort und Remote-Zugriff für Beschäftigte und Verbraucher weltweit immer wichtiger geworden sind, ist auch die Nachfrage nach Webanwendungen gestiegen. Web-Apps bieten dieselben Funktionen wie Desktop- oder native Anwendungen, sind aber bequem über den Browser zugänglich. Außerdem lassen sie sich leichter auf verschiedenen Plattformen bereitstellen, sodass Unternehmen eine größere Nutzerbasis aufbauen können. Leider eröffnen sie auch Angreifern Einfallstore, über die sie in Datenbanken und Clientsysteme eindringen können.
Aufgrund der inhärenten Sicherheitsrisiken browserbasierter Apps und der Fortschritte bei Build- und Deployment-Methoden tragen Entwickler heute mehr Verantwortung dafür, den Code neuer Webanwendungen zu schützen, die sie veröffentlichen. Viele Entwickler haben sich bisher auf „Security through Obscurity“ verlassen: Sie glaubten, Hacker würden nicht tief genug graben, um Schwachstellen im Code auszunutzen. Das hat sich als Irrtum erwiesen. Entwickler müssen heute ihre Denkweise ändern und die Verantwortung dafür übernehmen, Anwendungen vor der Veröffentlichung abzusichern. Dabei können sie auf Application-Security-Lösungen zurückgreifen, um Schwachstellen zu finden und zu beheben.
Die größten Sicherheitsrisiken für Webanwendungen
Das Open Web Application Security Project (OWASP) ist eine gemeinnützige Organisation der Branche, die sich für mehr Sicherheit im Web einsetzt. Alle paar Jahre veröffentlicht sie eine aktualisierte Liste der zehn häufigsten Schwachstellen in Webanwendungen.
2021 umfasste diese Liste:
Fehlerhafte Zugriffskontrolle – trat in fast jeder 25. von OWASP getesteten Anwendung auf.
Kryptografische Fehler – eine Hauptursache für die Offenlegung sensibler Daten.
Injection – Angreifer schleusen schädlichen Code in SQL-Abfragen oder Befehle ein.
Unsicheres Design – umfasst mangelhaft konzipierte oder fehlende Kontrollen, etwa Fehlermeldungen, die sensible Daten enthalten.
Fehlkonfiguration der Sicherheit – ein zunehmendes Risiko durch den Trend zu hochgradig konfigurierbarer Software.
Verwundbare und veraltete Komponenten – erfordern leistungsfähige Tools und Prozesse, die Komponenten in Entwicklungs- und Live-Umgebungen scannen können.
Fehler bei Identifizierung und Authentifizierung – rutschten gegenüber der OWASP-Top-10-Liste von 2017 vom zweiten Platz ab, sind aber nach wie vor ein häufiges Einfallstor für Angriffe.
Fehler bei Software- und Datenintegrität – eine neue Kategorie in der Liste von 2021. Sie betrifft Code oder Infrastruktur, deren Integrität vor der Einführung nicht überprüft wurde.
Fehler bei Sicherheitsprotokollierung und -überwachung – sind schwer zu testen, aber entscheidend, um Sicherheitsverletzungen zu erkennen.
Server-Side Request Forgery – eine seltene, aber schwerwiegende Schwachstelle, bei der Angreifer URL-Anfragen so kapern, dass sie Netzwerkzugriffskontrollen umgehen.
Eine ausführliche Analyse dieser Schwachstellen und ihrer Behebung finden Sie in unserer Analyse der OWASP Top 10.
Neun Best Practices zum Schutz Ihrer Web-App
1. Sicherheit im SDLC nach links verlagern
Security Left ersetzt herkömmliche Sicherheitsprozesse und -tools, die für das Wasserfallmodell entwickelt wurden, indem Sicherheitsmaßnahmen so früh wie möglich in den Softwareentwicklungszyklus (SDLC) verlagert werden. Folgende Methoden unterstützen diesen Wandel:
Einsatz von Threat Modeling
Berücksichtigung von Sicherheitsaspekten bei Code-Design und -Architektur
Testen des Codes während der Entwicklung, statt damit zu warten, bis Anwendungen in der Produktionsumgebung live sind
2. Injection und Eingabevalidierung
Injection umfasst verschiedene Angriffsmethoden, bei denen schädlicher Code in Browser oder andere Eingabemasken eingeschleust wird. Zwei Beispiele sind SQL-Injection und Cross-Site-Scripting, bei denen schädlicher SQL-Code beziehungsweise Skripte in Website-Frontends zum Einsatz kommen. Zum Schutz vor Injection-Angriffen sollten Eingabevalidierungen sicherstellen, dass nur korrekt formatierte Daten eingegeben werden können. So wird verhindert, dass schädlicher Code in ein System gelangt.
3. Verwaltung der Benutzerauthentifizierung
Da „Fehler bei Identifizierung und Authentifizierung“ 2021 auf Platz sieben der OWASP Top 10 standen, ist die Benutzerauthentifizierung ein wichtiger Aspekt der Websicherheit. Die Verwaltung der Benutzerauthentifizierung trägt dazu bei, Benutzernamen und Passwörter sicherer zu machen, und bietet Sicherheitsadministratoren zahlreiche Möglichkeiten, den Zugriff auf Apps auf zugelassene Personen zu beschränken. Eine davon ist die Multi-Faktor-Authentifizierung. Dabei müssen Nutzer ihre Identität mit mindestens zwei verschiedenen Authentifizierungsarten nachweisen.
4. Datenverschlüsselung
Kryptografische Fehler oder fehlende Verschlüsselung können zur Offenlegung sensibler Informationen führen. Deshalb stehen sie auf Platz zwei der OWASP Top 10. Die Verschlüsselung gespeicherter und übertragener Daten ist ein wichtiger Schutz im Falle einer Sicherheitsverletzung. Verschlüsselungsalgorithmen sind in der Regel als Open-Source-Pakete verfügbar und wurden bereits von Kryptografieexperten entwickelt. In der Praxis bedeutet Verschlüsselung, Kontrollen und Standards durchzusetzen – etwa den gesamten internen und externen Datenverkehr zu verschlüsseln, aktuelle Verschlüsselungsalgorithmen zu verwenden und die Verschlüsselung verbindlich vorzuschreiben.
5. Fehlkonfigurationen finden und beheben
Fehlkonfigurationen – etwa die Missachtung des Prinzips der geringsten Berechtigungen – erleichtern Dritten den Zugriff auf sensible Daten. Da die meisten Fehlkonfigurationen durch manuelle Fehler entstehen, können Infrastructure as Code (IaC) und Automatisierung dabei helfen, sie zu verhindern. Außerdem können Scan-Tools wie Snyk IaC Fehlkonfigurationen erkennen und beheben, bevor sie in Produktionsumgebungen gelangen.
6. Protokollierung und Audits
Damit geht es um Platz neun der OWASP Top 10: Fehler bei Sicherheitsprotokollierung und -überwachung. Es gibt kaum direkte Daten dazu, wie Protokolle und Audits Sicherheitsverletzungen verhindern können. Sicherheitsverletzungen zu erkennen und zu beheben, ist jedoch unverzichtbar. Dazu gehören die Protokollierung von Ereignissen wie Anmeldungen und wichtigen Transaktionen, die Überwachung der Protokolle auf ungewöhnliche Aktivitäten sowie automatische Warnmeldungen oder Behebungsmaßnahmen, wenn auffälliges Verhalten erkannt wird.
7. Web Application Firewalls
Eine Web Application Firewall (WAF) befindet sich zwischen Clients und Webservern und fungiert als Proxy für den Datenverkehr zwischen ihnen. Mit entsprechenden Regeln in einer WAF können Sie eine Webanwendung oder eine Gruppe von Webanwendungen vor gängigen Angriffen wie Injection schützen.
8. Sicherheitstests in Ihrer CI/CD
Wer Sicherheitstests erst am Ende von CI/CD-Pipelines ausführt – oder noch schlimmer: erst dann, wenn Webanwendungen bereits live sind –, muss mit kostspieligen und zeitaufwändigen Behebungen rechnen. Wenn Sie Sicherheitstests in Ihre CI/CD integrieren, sparen Sie Ihrem Team Zeit, Geld und Frust. Automatisierungstools machen das mit minimalen Auswirkungen auf die Arbeitsabläufe der Entwickler möglich.
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.
9. Autorisierung
Autorisierungsprozesse verhindern eine Rechteausweitung. Bei diesem Angriff verschafft sich ein Nutzer zunächst Zugriff auf eine Anwendung und ändert dann seine Berechtigungen oder Rolle, um den Zugriff auszuweiten. Rechteausweitungen lassen sich durch Penetrationstests aufdecken, durch den Betrieb von Anwendungen mit den geringsten erforderlichen Berechtigungen abmildern und durch die korrekte Konfiguration von Authentifizierungsschlüsseln verhindern.
Tools für Sicherheitstests von Webanwendungen
Sehen wir uns kurz die Tools an, die Entwicklern bei der Sicherheitsbewertung und -behebung von Webanwendungen helfen.
SAST
Tools für Static Application Security Testing (SAST) wie Snyk Code prüfen Code anhand vordefinierter Best Practices, um problematische Codemuster zu erkennen. SAST hängt von der verwendeten Programmiersprache ab.
DAST
Dynamic Application Security Testing (DAST) scannt Anwendungen zur Laufzeit und ist unabhängig von der Programmiersprache.
Weitere Informationen zu den Unterschieden zwischen SAST und DAST finden Sie in unserem Blogbeitrag.
SCA
Tools für die Software Composition Analysis (SCA) wie Snyk Open Source scannen Abhängigkeiten von Drittanbieter-Code in Webanwendungen. Da moderne Anwendungsentwicklung stark auf Open-Source-Bibliotheken setzt, ist SCA ein wirksames Tool im Sicherheits-Toolkit.
Penetrationstests
Bei Penetrationstests versuchen ethische Hacker, Angriffspunkte aufzudecken und zu beheben, über die eine Webanwendung kompromittiert werden könnte. Regelmäßige Penetrationstests sind in einigen Vorschriften wie PCI DSS vorgeschrieben und werden für alle Web-Apps dringend empfohlen.
RASP
Runtime Application Self-Protection (RASP) ist eine in Anwendungen integrierte Technologie, die ihr Verhalten überwacht und prüft, ob sie nur vorgesehene Aktionen ausführen. Sie ergänzt Perimeter-Technologien wie WAFs, kann aber bestimmte Angriffe auf Basis von Authentifizierung oder Autorisierung möglicherweise nicht erkennen. Für eine vollständige Wirksamkeit sollte RASP zusammen mit anderen Tools wie SAST und SCA eingesetzt werden.
So unterstützt Snyk Sie beim Entwickeln sicherer Webanwendungen
Die Developer-Security-Plattform von Snyk vereint die Tools Snyk Open Source, Snyk Code, Snyk Container und Snyk IaC auf einer Plattform. Entwickler von Webanwendungen können Snyk in ihre bestehenden Workflows integrieren, um Code und Open-Source-Komponenten auf Schwachstellen und Fehlkonfigurationen zu scannen. Unsere umfassende Schwachstellen-Datenbank wird von den Sicherheitsexperten von Snyk kuratiert und ist die umfangreichste auf dem Markt.
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.
Weitere Informationen zu Web-AppSec finden Sie in diesen Artikeln:
Application Security erklärt – Tools und Trends für 2023
Application-Security-Tests – Antworten auf die wichtigsten Fragen | Snyk
Application-Security-Bewertung: 5 wichtige Schritte | Snyk
Häufig gestellte Fragen zur Sicherheit von Webanwendungen
Was ist Webanwendungssicherheit?
Webanwendungssicherheit umfasst eine Reihe von Tools und Kontrollen, die Webanwendungen und zugehörige Ressourcen schützen. Dazu gehören Prozesse, mit denen Schwachstellen in Webanwendungen aufgedeckt und behoben werden. Außerdem umfasst sie sichere Entwicklungspraktiken und berücksichtigt Sicherheit vom Entwurf bis zur Implementierung.
Warum ist die Sicherheit von Webanwendungen wichtig?
Die Sicherheit von Webanwendungen ist aus zwei Gründen wichtig: Erstens können Angreifer über Webanwendungen auf vertrauliche Informationen in Ihren Datenbanken zugreifen. Zweitens können sie Webanwendungen auch nutzen, um Angriffe auf deren Nutzerinnen und Nutzer vorzubereiten.
Was sind die drei häufigsten Risiken für die Anwendungssicherheit?
Die drei häufigsten Risiken für die Anwendungssicherheit sind laut OWASP Top 10 2021 fehlerhafte Zugriffskontrollen, kryptografische Fehler und Injection (einschließlich SQL-Injection und Cross-Site-Scripting).
Wie sichern Sie eine Webanwendung ab?
Die Absicherung einer Webanwendung beginnt bereits in den frühesten Entwicklungsphasen. Dabei sorgen Secure-by-Design und Threat Modeling dafür, dass Sicherheit von Anfang an berücksichtigt wird. Während des Entwicklungsprozesses sollten Entwickler Scan-Tools einsetzen, um Schwachstellen und Fehlkonfigurationen zu erkennen. Nach Abschluss eines Release-Zyklus sollten Penetrationstests durchgeführt werden, um zuvor unentdeckte Schwachstellen aufzudecken.