Web/API-PentestJan Kahmen6 min Lesezeit

Sicherere Web-Anwendungen mit dem OWASP-Framework

Das OWASP (Open Web Application Security Project) ist eine NGO, die sich zum Ziel gesetzt hat, die Sicherheit von Web-Anwendungen zu verbessern.

Inhaltsverzeichnis

Das OWASP (Open Web Application Security Project) ist eine NGO, die sich zum Ziel gesetzt hat, die Sicherheit von Web-Anwendungen zu verbessern. Alle Hilfen und Materialien stellt die Organisation kostenfrei für alle auf ihrer Website zur Verfügung. Das OWASP-Framework bietet Unternehmen einen systematischen Leitfaden für die Implementierung sicherer Standards, Prozesse und Lösungen in der Entwicklung einer Web-Anwendung. Wir stellen das Framework vor und erklären, wie Sie es nutzen, um sicherere Web-Anwendungen zu entwickeln.

In fünf Phasen systematisch mehr Sicherheit für Web-Anwendungen erzielen

Im OWASP-Framework wird die Anwendungsentwicklung in mehrere Phasen unterteilt. Der Fokus ist dabei nicht die reine Entwicklung, sondern gesamte Entwicklungsprozess - von der Definition von Standards, dem Systemdesign über die Entwicklung und die Auslieferung bis zur regelmäßigen Wartung der Anwendung.

Planung: Standards definieren und dokumentieren

Bereits vor der eigentlichen Entwicklung müssen die Voraussetzungen für eine sichere Web-Anwendung geschaffen werden. Im Software Development Lifecycle legen Sie fest, welche Sicherheitsmaßnahmen Sie in welcher Phase wie implementieren. Für jede Phase sollten angemessene Standards, Best Practices und entsprechende Dokumentationen vorhanden sein. So schaffen Sie einen gemeinsamen, einheitlichen Bezugsrahmen für spätere Entwickler und sorgen für Konsistenz und Verständlichkeit über das ursprüngliche Team hinaus.

In dieser Phase sollten Sie auch Messkriterien für die Sicherheit der Anwendung festlegen. Erst durch klare, einheitliche Messkriterien können Sie Tests durchführen und dadurch Sicherheitslücken sichtbar machen und beheben.

Design: Spezifische Sicherheitsanforderungen definieren und testen

In der Designphase geht darum, Sicherheitsanforderungen zu definieren, die in der späteren Anwendung umgesetzt werden sollen. Diese Anforderungen müssen getestet werden, weil jede definierte Anforderung auf spekulativen Annahmen beruht, die nicht unbedingt zutreffen müssen. Anschließend sollten Sie realistische Bedrohungsszenarien entwickeln und überprüfen, ob diese Szenarien durch die entwickelte Architektur verunmöglicht werden.

Entwicklung: Vom Code-Walkthrough zum Code-Review

In der Entwicklung geht es darum, die vorher gewonnen Designentscheidungen in Code zu übersetzen. Meistens werden aber auch in der eigentlichen Entwicklung immer wieder neue kleine Designentscheidungen geworden, weil ein Detail durch das Designdokument nicht bedacht wurde oder es keine Richtlinien gibt. Daher muss auch in der Entwicklung der Code auf mögliche Sicherheitsrisiken überprüft werden. Eine gute Plattform für automatisierte Sicherheitsscans ist turingsecure.

Im ersten Schritt sollten die Entwickler einen Code-Walkthrough durchführen, bei dem Sie dem Sicherheitsverantwortlichen erklären, wie der Code in seiner Gesamtlogik aufgebaut ist und wie er funktioniert. Eine Checkliste hierzu stellt Microsoft bereit. Dann kann er im zweiten Schritt ein statisches Code-Review durchführen und den Code systematisch auf Sicherheitslücken abklopfen. Die Grundlage dafür ist ein Dokument, welches bestimmte Fehler definiert. In den OWASP-Top-10 werden zum Beispiel die 10 häufigsten Sicherheitslücken in Web-Anwendungen beschrieben. Die Liste basiert auf Untersuchungen des OWASP und wird jedes Jahr aktualisiert. Auch Programmiersprachen und Entwicklungsumgebungen liefern oft Dokumente für Code-Reviews.

Auslieferung: Sicherheit in der Praxis mit Penetrationstests überprüfen

Mit statischen Code-Reviews lassen sich viele Standardfehler bereits während der Entwicklung identifizieren und beheben. Aber manche Fehler sind durch die Dokumente nicht abgedeckt, weil sie spezifisch für die Anwendung oder einmalig sind. Daher sind auch nach dem Go-live Tests nötig. Im Penetrationstest überprüft ein externer Berater die Anwendung auf Sicherheitslücken. Dazu nutzt er dieselben Werkzeuge und Strategien, die auch ein echter Angreifer benutzen würde. Was ein Penetrationstest ist, haben wir hier erläutert.

Wartung: Regelmäßige Health-Checks für dauerhafte Sicherheit

Gerade Web-Anwendung werden regelmäßig aktualisiert: Die Benutzeroberfläche verändert sich, neue Features kommen hinzu, bestehende Features verändern sich. Dies kann auch die Sicherheit der Anwendung betreffen - selbst bei scheinbar kleinen und harmlosen Änderungen. Mit regelmäßigen Health-Checks stellen Sie sicher, dass keine neuen Sicherheitsrisiken entstanden sind. Diese Health-Checks sollten mindestens vierteljährlich durchgeführt werden. Bei häufigen Updates rät das OWASP zu monatlichen Health-Checks. Auch hier gilt: Jede Änderung muss getestet werden, um unerwartete Wirkungen auf die Sicherheit auszuschließen.

Fazit: Sicherere Web-Anwendung mit dem OWASP-Framework

Das OWASP-Framework bietet Unternehmen einen Leitfaden, um Sicherheitsaspekte bei der Entwicklung einer Web-Anwendung von Anfang an in jeder Phase zu berücksichtigen. Die Stärke des Frameworks liegt darin, dass Sicherheit als Querschnittanforderung begriffen wird, die in jeder Phase berücksichtigt werden muss. Dadurch haben Unternehmen mit dem OWASP-Framework ein Werkzeug an der Hand, proaktiv auf mögliche Sicherheitsbedrohungen zu reagieren. Das reduziert nicht nur die Wahrscheinlichkeit für einen erfolgreichen Angriff, sondern ist auch kosteneffizienter als ein reaktiver Ansatz. Weil bereits in der Designphase Sicherheitsaspekte mitgedacht werden, werden kostspielige Eingriffe in die Architektur zu einem späteren Zeitpunkt vermieden. Weitere detailierte Informationen finden Sie in dem Buch "Web Security Testing Approaches: Comparison Framework".

Kontakt

Neugierig? Überzeugt? Interessiert?

Vereinbaren Sie ein unverbindliches Erstgespräch mit einem unserer Vertriebsmitarbeiter. Nutzen Sie den folgenden Link, um einen Termin auszuwählen: