Skip to main content

15 Best Practices für Anwendungssicherheit

Artikel von
Introducing open source security runtime monitoring

8. Oktober 2020

0 Min. Lesezeit

Die wichtigsten Erkenntnisse

  • Verfolgen Sie einen Shift-Left-Ansatz: Integrieren Sie Sicherheitspraktiken von Beginn des Entwicklungslebenszyklus an (Design und Implementierung), um Schwachstellen möglichst früh zu erkennen und zu beheben.

  • Beheben Sie Schwachstellen in Open-Source-Software: Verwalten und überwachen Sie Open-Source-Software aktiv auf bekannte Schwachstellen und sorgen Sie für zeitnahe Updates und Patches, da ein großer Anteil von Unternehmensanwendungen darauf basiert.

  • Verbessern Sie Transparenz und Risikomanagement: Behalten Sie alle Ihre Assets im Blick und führen Sie regelmäßig Risikobewertungen durch, um Bedrohungen, Angriffsvektoren und erforderliche Sicherheitsmaßnahmen zu identifizieren.

  • Setzen Sie grundlegende Sicherheitsmaßnahmen um: Priorisieren Sie den Datenschutz durch Verschlüsselung (gespeicherter und übertragener Daten), stellen Sie eine präzise Eingabevalidierung sicher und automatisieren Sie einfache Sicherheitsaufgaben, damit sich Teams auf komplexere Herausforderungen konzentrieren können.

Die Welt der App-Entwicklung ist seit 2010 beispiellos gewachsen. Bei Millionen verfügbarer mobiler Apps und Web-Apps sind Anwendungen zu einem wesentlichen Teil unseres Alltags geworden. Parallel dazu hat sich das Internet der Dinge (IoT) weiterentwickelt und die Automatisierung manueller Prozesse ermöglicht.

Diese positiven Entwicklungen haben jedoch auch zahlreiche Probleme mit sich gebracht. Insbesondere Sicherheitsprobleme sind inzwischen weit verbreitet. Obwohl die meisten Entwickler und Unternehmen ihre Anwendungen für ausreichend sicher halten, bringen sie weiterhin anfälligen Code in Produktionsversionen ein. Anwendungssicherheitslösungen wie Snyk helfen Ihnen, Schwachstellen zuvorzukommen, indem sie Entwickler dabei unterstützen, Sicherheitsprobleme früh im Entwicklungslebenszyklus zu beheben.

Mehr Apps, mehr [Sicherheits-]Probleme: Häufige Herausforderungen der Anwendungssicherheit

Zu den häufigsten Herausforderungen der Anwendungssicherheit zählen:

  • Unerfahrene Programmierer: Mit der wachsenden Nachfrage nach Anwendungen und dem Mangel an qualifizierten Entwicklern schreiben zahlreiche unerfahrene Programmierer mobile Apps. Entwicklungsteams fehlt zudem häufig das Wissen, um die auftretenden Sicherheitsprobleme zu lösen.

  • Unzureichende Nutzung von Tools: Entwickler nutzen die Test-Tools, in die sie investiert haben, oft nicht effektiv. Viele glauben außerdem, dass diese Tools den Entwicklungsprozess verlangsamen.

  • Web-Apps als Angriffsvektor: Webanwendungen sind der wichtigste Angriffsvektor bei Datenlecks. Unternehmen sollten daher wissen, welche APIs in ihren Apps vorhanden sind und welche Risiken damit verbunden sind. Viele API-Angriffe betreffen Unternehmen, denen nicht bewusst ist, dass ihre Lösungen solche Schnittstellen enthalten.

  • Kein DevSecOps-Ansatz: Die meisten Unternehmen befolgen keine Best Practices für sichere Anwendungsentwicklung. Häufig versäumen sie es, einen DevSecOps-Prozess (den „Shift-Left“-Ansatz) einzuführen. Dieser ist entscheidend, damit jedes sicherheitsrelevante Problem so schnell wie möglich erkannt und behoben wird.

  • Schwachstellen in Open-Source-Software: Open-Source-Software birgt aufgrund der zahlreichen darin enthaltenen Schwachstellen ein Risiko. Schätzungen zufolge nutzen 96 % der Unternehmensanwendungen und -bibliotheken Open-Source-Software.

Mit dieser Checkliste für Anwendungssicherheit vermeiden Sie diese Fallstricke und verbessern die Sicherheit Ihrer Anwendungen.

Bei Best Practices für die Sicherheit in der Anwendungsentwicklung und Webanwendungssicherheit lassen sich die gleichen Sicherheitspraktiken oft auf Web-, Mobilgeräte- und Desktop-Software anwenden, da sich die Entwicklungsprozesse ähneln.

So führen Sie eine Gap-Analyse für die Anwendungssicherheit durch

In diesem Leitfaden führen wir Sie durch die Schritte einer Gap-Analyse für die Anwendungssicherheit, mit der Sie die Transparenz über Ihre Assets, die AppSec-Abdeckung und die Priorisierung bewerten.

Checkliste mit 15 Best Practices für Anwendungssicherheit

  1. Verfolgen Sie einen DevSecOps-Ansatz

  2. Führen Sie einen sicheren SDLC-Managementprozess ein

  3. Beheben Sie Schwachstellen in Open-Source-Software

  4. Automatisieren Sie

  5. Behalten Sie Ihre eigenen Assets im Blick

  6. Risikobewertung

  7. Sicherheitsschulungen für Entwickler

  8. Verwalten Sie Container korrekt

  9. Beschränken Sie den Benutzerzugriff auf Daten

  10. Aktualisieren und patchen Sie regelmäßig

  11. Stellen Sie den Zugriff auf Logdaten sicher

  12. Verschlüsseln Sie Ihre Daten

  13. Setzen Sie Pentests ein

  14. Sorgen Sie für eine präzise Eingabevalidierung

  15. Streben Sie dauerhafte Lösungen an

#1 Verfolgen Sie einen DevSecOps-Ansatz

DevSecOps oder der Shift-Left-Ansatz zielt darauf ab, Sicherheitslücken von Anfang an zu erkennen, um Sicherheitsprobleme von vornherein zu verhindern und sie so schnell wie möglich zu beheben, falls sie doch auftreten. DevSecOps versetzt Entwicklungsteams in die Lage, Sicherheitsprobleme in allen Phasen der Software-Supply-Chain zu erkennen – vom Design bis zur Implementierung.

#2 Führen Sie einen sicheren SDLC-Managementprozess ein

Der Managementprozess für den sicheren Softwareentwicklungslebenszyklus (SSDLC) definiert den Produktlebenszyklus aus Sicht der Produktsicherheit. Er stellt sicher, dass Produkte während ihres Lebenszyklus:

  • von sicherheitstechnisch geschulten Mitarbeitern entwickelt und gewartet werden

  • in einer sicheren Umgebung und gemäß den Best Practices für Softwaresicherheit erstellt werden

  • sicher an Kunden ausgeliefert werden

Der SSDLC umfasst den gesamten Prozess der Entwicklung eines neuen Produkts – vom Konzept über alle Entwicklungsaktivitäten bis hin zur vollständigen und sicheren Markteinführung als ausgereiftes Produkt und bis zum Ende seines Lebenszyklus.

#3 Beheben Sie Schwachstellen in Open-Source-Software

Open-Source-Tools bieten viele Vorteile, darunter Kosteneffizienz, setzen Sie aber auch erheblichen Schwachstellen aus. Bei der Verwendung von Open-Source-Software sind daher die laufende Überwachung auf Schwachstellen, regelmäßige Updates und die schnellstmögliche Behebung von Schwachstellen entscheidend.

#4 Automatisieren Sie einfache Sicherheitsaufgaben

Die schier endlose Zahl an Schwachstellen lässt sich manuell kaum beheben. Automatisierung ist daher entscheidend. Alle einfachen Aufgaben sollten automatisiert werden, damit sich Teams auf anspruchsvollere Herausforderungen konzentrieren können.

#5 Behalten Sie Ihre eigenen Assets im Blick

Transparenz ist der erste Schritt, um den Sicherheitsstatus Ihres Unternehmens zu verstehen, denn was Sie nicht kennen, können Sie auch nicht schützen. Es ist entscheidend, genau zu wissen, welche Assets zu Ihren Anwendungen und Ihrer Software-Produktionsinfrastruktur gehören.

#6 Risikobewertung

Führen Sie eine Risikobewertung durch und versetzen Sie sich dabei in die Lage eines Angreifers. Stellen Sie sicher, dass Sie alle wichtigen Aspekte berücksichtigen:

  • Erstellen Sie eine Liste aller Assets, die geschützt werden müssen.

  • Identifizieren Sie Ihre Bedrohungen und überlegen Sie, wie Sie sie isolieren und eindämmen können.

  • Identifizieren Sie Angriffsvektoren, durch die Ihre Anwendung kompromittiert werden könnte.

  • Stellen Sie sicher, dass geeignete Sicherheitsmaßnahmen zur Erkennung und Abwehr von Angriffen vorhanden sind.

  • Prüfen Sie, ob Sie zusätzliche oder möglicherweise andere Tools benötigen.

#7 Sicherheitsschulungen für Entwickler

Da Entwickler ebenfalls dafür verantwortlich sind, Code in die Produktion einzubringen, müssen sie unbedingt von Ihrem Sicherheitsteam geschult werden. Die Schulung sollte selbstverständlich auf die jeweilige Rolle und den Sicherheitsbedarf der Entwickler zugeschnitten sein.

#8 Verwalten Sie Container korrekt

Stellen Sie zunächst sicher, dass Ihre Container-Images mit einem Tool für digitale Signaturen (z. B. Docker Content Trust) signiert sind. Wichtig ist auch, automatische Scans auf Schwachstellen in Open-Source-Software durchzuführen, um Container während der gesamten gängigen Integrationspipeline sicher zu nutzen.

#9 Beschränken Sie den Benutzerzugriff auf Daten

Eine der besten Möglichkeiten, die Sicherheit zu verbessern, ist es, den Zugriff auf Ihre Daten weiter einzuschränken:

  • Legen Sie fest, wer tatsächlich Zugriff auf die jeweilige Ressource benötigt.

  • Erstellen Sie Zugriffsregeln.

  • Halten Sie Zugriffsrechte aktuell, indem Sie aktive Zugangsdaten entfernen, sobald der Zugriff auf die Daten nicht mehr benötigt wird.

#10 Aktualisieren und patchen Sie regelmäßig

Software-Updates und Patches zu installieren, ist eine der effektivsten Möglichkeiten, Ihre Software zu schützen. Warum Probleme selbst lösen, wenn es dafür bereits eine Lösung gibt? Wichtig ist jedoch, jedes neue Update zu planen. Dazu muss eine geeignete Architektur entworfen werden, um beim Upgrade auf neue Versionen Kompatibilitätsprobleme mit APIs zu vermeiden.

#11 Stellen Sie den Zugriff auf Logdaten sicher

Der Zugriff auf Logdaten aus dem täglichen Cloud-Betrieb ist für jeden Plan zur Reaktion auf Sicherheitsvorfälle entscheidend. Die Erfassung und Auswertung solcher Daten im Vorfeld eines Vorfalls wirkt sich direkt auf die Sicherheit aus und kann auch für spätere Untersuchungen relevant sein. Ohne diese Informationen sind Sie möglicherweise machtlos, wenn tatsächlich ein Sicherheitsvorfall eintritt.

#12 Verschlüsseln Sie Ihre Daten

Zu den Best Practices für Webanwendungssicherheit gehört die Verschlüsselung gespeicherter und übertragener Daten. Zur grundlegenden Verschlüsselung gehört unter anderem die Verwendung von SSL mit einem aktuellen Zertifikat. Vertrauliche Benutzerdaten wie IDs und Passwörter dürfen keinesfalls im Klartext gespeichert werden, da dies Man-in-the-Middle-Angriffe (MITM) ermöglichen kann. Verwenden Sie unbedingt die stärksten Verschlüsselungsalgorithmen.

#13 Führen Sie Pentests durch

Automatisierte Tests erkennen zwar die meisten Sicherheitsprobleme vor der Veröffentlichung, doch können unentdeckte Lücken bestehen bleiben. Um dieses Risiko zu minimieren, empfiehlt sich ein erfahrener Pentester, der die Anwendung testet. Dieser ethische Hacker versucht, in die Anwendung einzudringen, um Schwachstellen und mögliche Angriffsvektoren aufzudecken und das System so vor einem echten Angriff zu schützen. Wichtig ist, dass der Pentester ein externer Experte ist, der nicht am Projekt beteiligt ist.

#14 Sorgen Sie für eine präzise Eingabevalidierung

Alle Eingabedaten müssen syntaktisch und semantisch korrekt sein. Prüfen Sie die Länge der Daten – sie sollten die erwartete Anzahl von Ziffern und Zeichen enthalten – sowie die korrekte Größe, Länge usw. Eine Validierung anhand einer Positivliste wird zwar empfohlen, lässt sich aber nicht immer umsetzen.

#15 Streben Sie dauerhafte Lösungen an

Bei der Analyse von CVE-Listen fällt auf, dass bestimmte Arten von Schwachstellen immer wieder auftreten (z. B. Cross-Site-Scripting (XSS), SQL-Injection oder Pufferüberläufe). Um eine Schwachstelle dauerhaft zu beseitigen, ist es daher entscheidend, bei ihrem Auftreten die Ursache zu ermitteln, anstatt nur einen teilweisen Patch anzuwenden.

Fazit: Warum Anwendungssicherheit wichtig ist

Sicherheitsexperten vertreten zwar unterschiedliche Ansichten und Meinungen zu Best Practices für Anwendungssicherheit, doch die meisten würden zustimmen, dass einige wichtige Punkte – wie in diesem Artikel beschrieben – in jede Checkliste zur Überprüfung der Anwendungssicherheit gehören.

Es lohnt sich jedoch immer, besser geschützt zu sein als andere und alles daranzusetzen, die Zahl der Fehler in Ihren Anwendungen zu minimieren. So wird es für Angreifer schwieriger, Sie erfolgreich anzugreifen. 1

Häufig gestellte Fragen zur Anwendungssicherheit

Was ist Anwendungssicherheit?

Anwendungssicherheit umfasst das Erkennen und Beheben von Schwachstellen auf Anwendungsebene. Anschließend wird die Anwendung durch Härtungsmaßnahmen besser geschützt, um ihre allgemeine Sicherheitslage zu verbessern.

Welche Tools für Anwendungssicherheitstests werden empfohlen?

Kein Tool und kein Testverfahren kann alle denkbaren Sicherheitsrisiken mindern. Teams sollten stattdessen eine Kombination verschiedener Tools einsetzen, darunter Tools für statische Anwendungssicherheitstests (SAST), interaktive Anwendungssicherheitstests (IAST), dynamische Anwendungssicherheitstests (DAST) und Tools zur Software-Composition-Analyse (SCA).

Welche Ansätze gibt es hauptsächlich für Anwendungssicherheitstests?

Eine der wichtigsten Methoden, um Schwachstellen im Quellcode Ihres Produkts aufzuspüren, ist der Einsatz von Tools für statische Anwendungssicherheitstests (SAST). Im Gegensatz zu SAST-Tools erkennen Tools für dynamische Anwendungssicherheitstests (DAST) Schwachstellen, indem sie versuchen, Ihre Anwendung zur Laufzeit aktiv auszunutzen.

Sichern Sie Ihre Anwendungen mit unserem entwicklerorientierten Tool

Effiziente und umsetzbare Empfehlungen für die Anwendungssicherheit – in IDEs, Repositories, Containern und Pipelines.

Weiterlesen

Blog

Frontier-Modelle fanden die Schwachstellen. Nur der Angreifer fand die Angriffsketten.

Die statische Analyse fand die Schwachstellen, doch erst Live-Angriffstests bewiesen, wie sie sich zu Angriffen verketten lassen. Ein Vergleich von Evo COS, Claude Security und Claude Code Security.

feature insights context
Blog

Autonome Angriffe sind bereits Realität. Die Verteidigung muss Schritt halten.

Autonome Angreifer verkürzen das Zeitfenster für die Verteidigung. Erfahren Sie, wie kontinuierliches Erkennen, Beheben, Validieren und Verhindern Sicherheitsteams helfen kann, Schritt zu halten.

Blog

Warum KI-Coding-Agenten immer wieder fehlerhafte Zugriffskontrollen schreiben

KI-Coding-Agenten können Autorisierungslogik erzeugen, die kompiliert und die Prüfung besteht, dabei aber die Daten eines Mandanten für einen anderen offenlegt. Erfahren Sie, warum fehlerhafte Zugriffskontrollen schwer zu erkennen sind und wie Sie sie verhindern.