Webanwendungen sind nach wie vor eines der Hauptangriffsziele für Bedrohungsakteure. Laut dem Data-Breach-Investigations-Report von Verizon waren Angriffe auf Webanwendungen für 26 Prozent aller erfolgreichen Angriffe in den letzten zwölf Monaten verantwortlich. Obwohl die Methoden für Angriffe auf Webanwendungen gut bekannt sind und verstanden werden, wie die Arbeit des Open Web Application Security Project (OWASP) an seiner Top-Ten-Liste im Laufe der Jahre gezeigt hat, ist es für viele Unternehmen immer noch eine Herausforderung, ihre Anwendungen zu schützen.
Autorisierung und Zugriffskontrolle stellen die größten Herausforderungen dar, die OWASP in seiner jüngsten Top-10-Liste (2021) identifiziert hat – drei der fünf größten Probleme betrafen fehlerhafte Autorisierung, während fehlerhafte Authentifizierung und unzulässiger Zugriff auf Ressourcen ebenfalls häufige Probleme waren. Die OWASP-Top-10-Liste für 2021 umfasst auch Angriffe, die auf den uneingeschränkten Zugriff auf sensible Geschäftsabläufe abzielen, wie z. B. die Erstellung gefälschter Konten und serverseitige Anforderungsfälschung, bei der APIs Ressourcen an die falschen Stellen senden können.
Im „Qualys TruRisk Research Bericht“ wurden mehr als 370.000 Webanwendungen untersucht und mehr als 25 Millionen Schwachstellen entdeckt. Die häufigsten Probleme, die auftraten, machten ein Drittel der Gesamtzahl aus, wurden als Sicherheitsfehlkonfigurationen gemäß den OWASP-Leitlinien eingestuft, so dass dies ein Bereich ist, auf den Sie sich konzentrieren sollten, wenn Sie potenzielle Probleme beseitigen wollen.
Um Probleme mit Webanwendungen zu vermeiden, sollte die Sicherheit von Anfang an in den gesamten Prozess der Anwendungsentwicklung einbezogen werden. Dieser „Secure by Design“-Ansatz sollte der Standard sein, aber es gibt so viele Anforderungen an das Anwendungsentwicklungsteam, mit denen es Schritt halten muss. Um Unternehmen dabei zu helfen, gibt es einige bewährte Verfahren, die Sie anwenden können.
Sicherheitstests von Anfang an planen
Der erste Schritt zur Verbesserung der Sicherheitspraktiken für Webanwendungen ist die Integration von Sicherheitstests in die Entwurfsphase Ihrer Software. Auf diese Weise können Softwaretechniker und Entwicklerteams schon zu Beginn eines Projekts erkennen, wo es potenzielle Probleme gibt, die behoben werden müssen, und nicht erst später im Prozess. Dabei geht es jedoch nicht nur um das Aufzeigen potenzieller Probleme, sondern auch darum, den Gesamtprozess der Softwareentwicklung und -sicherheit zu besprechen, damit Sie im Laufe der Zeit effektiver zusammenarbeiten können. Da Sie die Anwendungen bereits während der Entwicklung testen können, können Sie vermeiden, dass später Probleme auftreten.
Befähigung von Sicherheitsbeauftragten
Im Rahmen dieser Zusammenarbeit sollten Sie sich auch überlegen, wie Sie Ihre Entwickler dazu befähigen können, selbst zu Sicherheitsbeauftragten zu werden. Anstatt sie bei der Durchführung dieser Tests von den Sicherheitsteams abhängig zu machen, sollten Sie Ihren Entwicklern mehr Autonomie und Eigenverantwortung für ihren Entwicklungsprozess einräumen und ihnen gleichzeitig Sicherheitsunterstützung bieten. Dies ist ein besserer Ansatz für die Zusammenarbeit, als anderen Personen die Verantwortung für diese Sicherheitsprobleme allein zu überlassen. Im Laufe der Zeit kann diese Zusammenarbeit und Eigenverantwortung zu tiefgreifenden Veränderungen bei der Leistung der Anwendungs-sicherheitsprogramme führen.
Verteidigung in der Tiefe
Zu den üblichen Werkzeugen für das Scannen von Anwendungen im Hinblick auf die Sicherheit gehören automatische Software-Scanner und manuelle Penetrationstests. Diese beiden Ansätze ergänzen sich gegenseitig, da sie ihre eigenen Stärken und Schwächen haben, die genutzt werden können, um den Gesamterfolg eines Anwendungssicherheitsprogramms zu verbessern. Durch automatisiertes Scannen erhalten Sie häufigere Aktualisierungen, während manuelle Tests Ihnen helfen, den Kontext Ihrer Anwendung zu verstehen und herauszufinden, wie die Anwendungslogik angegriffen werden könnte, sobald sie in Produktion geht. Durch die Verknüpfung beider Methoden erhalten Sie das Beste aus beiden Welten.
Das Risiko angehen – nicht die Symptome
Möglicherweise finden Sie in Ihren Webanwendungen Probleme, die behoben werden sollten, aber Sie haben vielleicht auch Schwierigkeiten, diese Lösungen einzuführen. So könnte Ihre Anwendung beispielsweise sehr gefragt sein und dazu dienen, Einnahmen für das Unternehmen zu generieren. Wenn sie also aufgrund einer Aktualisierung nicht verfügbar ist, könnte dies in diesem Zeitraum zu Umsatzeinbußen führen. In diesem Szenario kann eine klare Darlegung des Risikos gegenüber dem CISO und anderen Führungskräften dazu beitragen, dass diese erkennen, dass die finanziellen Vorteile einer sicheren Webanwendung die Verfügbarkeit der Website langfristig überwiegen.
Oftmals führen geschäftliche Anforderungen dazu, dass Sicherheitsteams die Symptome und nicht das zugrunde liegende Problem angehen, indem sie versuchen, das Risiko mit Web-Application-Firewalls (WAFs) zu lösen. WAFs bieten zwar vorübergehend Sicherheit für Ihre Anwendungen, können aber von entschlossenen Angreifern umgangen werden. Um dies zu verhindern, sollten Sie Ihre Teams ermutigen, behobenen Code einzusetzen, der das Problem so schnell wie möglich vollständig behebt. Dies ist im Laufe der Zeit sehr viel effektiver.
Konzentration der Ressourcen
Der letzte Ratschlag zur Sicherheit von Webanwendungen lautet, die Schlachten zu schlagen, die es wert sind, gewonnen zu werden. Mit anderen Worten: Konzentrieren Sie Ihre Ressourcen dort, wo sie die größte Wirkung entfalten können. Wenn zum Beispiel die Ressourcen Ihres Teams begrenzt sind oder die Entwickler sich auf die dringendsten Risiken konzentrieren müssen, müssen Sie Prioritäten setzen, auf welche Probleme Sie sich konzentrieren. Wenn Sie realistisch sind, wird deutlich, dass Sie die Ziele und Kapazitäten aller Beteiligten im Blick haben, so dass Sie mit der Zeit eine stärkere Zusammenarbeit und Einigkeit entwickeln können.
Dieser Punkt ist besonders wichtig für Sicherheitsteams, die neben all den anderen Risiken, mit denen Unternehmen konfrontiert sind, auch die Sicherheit von Webanwendungen verwalten müssen. Die Sicherheitsabteilungen sind möglicherweise nicht für die Bereitstellung von Updates verantwortlich – dies kann von den Entwicklern abhängen, so dass der Aufbau einer engen Arbeitsbeziehung und das Verständnis für den Druck, dem sie ausgesetzt sind, von entscheidender Bedeutung sind. Wenn die Ziele und Druckpunkte der Entwickler bekannt sind, ist das hilfreich, um Ziele zu erreichen und gemeinsam die Sicherheit der Webanwendungen zu verbessern.
Von John Delaroderie, Leiter Produktmanagement für Webanwendungssicherheit bei Qualys