Leitfaden zu Risikominimierung und Datenschutz 5 Best Practices für sichere Softwareentwicklung
In einer Code-gesteuerten IT-Welt muss Sicherheit den gesamten Software Development Lifecycle abdecken. Doch wie bleibt dabei gewährleistet, dass Anwendungsentwicklung und -Bereitstellung nicht gestört werden?
Anbieter zum Thema

Niemand möchte anfällig für Cyber-Angriffe sein und so sensible Kunden-, Mitarbeiter- oder Geschäftsdaten gefährden. Die schmerzhaften Folgen von Datenlecks sind inzwischen wohlbekannt: Schaden für die Marke, Vertrauensverlust der Kunden und möglicherweise kostspielige Rechtsstreitigkeiten sowie Bußgelder, wie sie beispielsweise die DSGVO vorsieht.
Um diese Bedrohungen für Unternehmen zu reduzieren oder sogar ganz zu beseitigen, müssen sich Unternehmen auf die Punkte konzentrieren, an denen das Risiko für einen Angriff am größten ist. Hierzu ein Beispiel aus dem Alltag.
Wenn man sich entscheiden müsste, entweder eine defekte Haustüre oder ein kleines Loch im Gartenzaun zu reparieren, würde wohl kein rational handelnder Hausbesitzer den Zaun wählen. Bildlich gesprochen sind jedoch viel zu viele Unternehmen beim Thema Cyber-Sicherheit auf den Zaun fokussiert und ignorieren die eingeschlagene Tür.
Angreifer können viele unterschiedliche Angriffswege ausnutzen, um Schaden zu verursachen. Laut aktuellen Zahlen von Pradeo Lab erfolgen 78 Prozent der Cyber-Angriffe auf mobile Endgeräte über den Anwendungsvektor. Auch Experten von SAP führen die Anwendungsebene als häufigsten Angriffsvektor an.
Security beschränkt sich oft auf Netzwerksicherheit
Angesichts der Masse an Programmcode und den damit verbundenen, geradezu zwangsläufig vorhandenen Sicherheitslücken verwundert diese hohe Zahl nicht – schließlich handelt es sich bei Anwendungen um hochkomplexe Systeme. Doch die meisten Unternehmen verwenden die meiste Zeit und die meisten Mittel auf Netzwerksicherheit.
Praktisch jedes moderne Unternehmen verfügt heute über eine Online-Präsenz. Obwohl Software meist nicht das Kerngeschäft ist, stellen mobile Anwendungen und Webanwendungen die Grundlage neuer Geschäftsmöglichkeiten dar. Sind diese jedoch nicht sicher, mutieren sie schnell zu eingangs erwähnter offener Tür.
Anwendungssicherheit sollte aus zwei Gründen personen-, prozess- und technologieübergreifend und ganzheitlich über den gesamten Software-Entwicklungslebenszyklus (SDLC) hinweg betrachtet werden:
- 1. Um sensible Daten vor Missbrauch und damit den Ruf des Unternehmens vor Schaden zu schützen.
- 2. Um das Risiko von Sicherheitsmängeln in der Software kostengünstig zu minimieren.
Die eigentliche Herausforderung besteht darin, Sicherheit zu implementieren, ohne die Anwendungsentwicklung zu verlangsamen oder den Prozess zu komplex zu gestalten. Anwendungssicherheit ist keine Einwegveranstaltung, sondern eine kontinuierliche Entwicklung. Mit den folgenden fünf Best Practices lässt sich diese Aufgabe meistern.
Best Practice 1
Schwachstellen beseitigen, bevor Anwendungen in Produktion gehen.
Um Applikationssicherheit vor Abschluss der Entwicklung zu berücksichtigen, ist es unerlässlich, Sicherheit von Anfang an zu integrieren: in die Entwicklungsteams (Personen), Prozesse und Tools (Technologie). Ein Schlagwort dafür ist "shift left" – Sicherheit wird von der Konzept- und Designphase über den gesamten Entwicklungsprozess bis hin zur Produktion Teil des SDLC.
Die allgemeine Auffassung ist, dass Sicherheitstests während der Entwicklung den Prozess zu stark verlangsamen. Aber das Gegenteil ist der Fall: Das frühzeitige Finden und Beheben von Schwachstellen während der Entwicklung und des Testens ist kosteneffektiver als später am Ende des Entwicklungsprozesses, kurz bevor eine Anwendung produktiv eingesetzt wird.
Best Practice 2
Sicherheit bei Architektur, Design, Open Source und Drittanbieter-Komponenten angehen.
Eine Fehlersuche ausschließlich im proprietären Code oder Penetrationstests gegen das eigene System greifen zu kurz, denn Designfehler machen 50 Prozent der sicherheitsrelevanten Mängel aus. Daher ist es wichtig, potenzielle Schwachstellen in der Architektur zu identifizieren, einschließlich Verletzungen von sicherem Design, fehlerhaften Authentifizierungen sowie sicherheitsrelevanten Fehlkonfigurationen.
Möglich wird dies ist mit einer Risikoanalyse der Anwendungsarchitektur und Bedrohungsmodellen. Heutige Anwendungen enthalten bis zu 90 Prozent Open-Source- und Drittanbieter-Code. Diese Komponenten sind für die Anwendungsentwicklung quasi unerlässlich geworden, denn für Unternehmen ist es wirtschaftlich in der Regel nicht sinnvoll, eine Anwendung vollständig neu und eigenständig zu entwickeln.
Da Open Source so allgegenwärtig ist, aber selten getrackt wird, ist es zu einem primären Ziel für Hacker geworden: Exploits sind fast unmittelbar nach Bekanntwerden einer Sicherheitslücke im Internet verfügbar. Diese stellen die Schlüssel für Tausende von Anwendungen dar, die die betroffene Komponente enthalten.
Um dieses Risiko zu minimieren, ist es wichtig, die verwendeten Komponenten in der eigenen Codebasis genau zu kennen. Dabei hilft ein Code-Audit, auch bekannt als „Software Composition Analysis“.
Best Practice 3
Anwendungssicherheit von Anfang an ermöglichen: mit Tools, die in der Entwicklerumgebung funktionieren
IDE-Plug-ins (Integrated Development Environment) erlauben es Entwicklern, die Ergebnisse von Sicherheitstests direkt in der Entwicklerumgebung zu prüfen, während sie an ihrem Code arbeiten. Diese Analyse erfolgt automatisch während der Entwickler arbeitet und liefert Ergebnisse in nahezu Echtzeit.
Der Wahl der richtigen Tools kommt eine hohe Bedeutung zu. Ein einzelnes AppSec-Tool reicht nicht aus, da es schlicht nicht alles Notwendige leisten kann. Anwendungen …
- werden mit verschiedenen Sprachen und Frameworks entwickelt,
- werden in verschiedenen Umgebungen gehostet, sei es in der Cloud oder vor Ort,
- nutzen Open-Source- und Drittanbieter-Bibliotheken in unterschiedlichem Maße und
- unterscheiden sich auch in vielen anderen kritischen Aspekten, die sich auf die Ergebnisse von Anwendungssicherheitstests auswirken können.
Best Practice 4
Erstellen Sie einen „AppSec-Werkzeuggürtel“, der die Lösungen vereint, die Sie zur Bewältigung Ihrer Risiken benötigen.
Ein effektiver AppSec-Tool-Belt sollte integrierte Lösungen beinhalten, die sich End-to-End mit Anwendungssicherheitsrisiken befassen und die Analyse von Schwachstellen in proprietärem Code, Open-Source-Komponenten sowie der Laufzeit-Konfiguration ermöglichen.
Folgende Werkzeuge kommen hierfür in Betracht:
- DAST (Dynamic Application Security Testing) testet laufende Anwendungen früh im SDLC.
- IAST (Interactive Application Security Testing) unterstützt bei der Identifizierung und Verifizierung von Schwachstellen und Datenlecks durch automatisiertes Testen von laufenden Webanwendungen.
- SAST (static application security testing) hilft dabei, Sicherheits- und Qualitätsrisiken in proprietärem Code während der Entwicklung zu finden und zu beheben.
- SCA (Software Composition Analysis) unterstützt bei der Verwaltung von Open-Source-Sicherheits- und Lizenz-Compliance-Risiken durch automatisierte Analysen und die Durchsetzung von Richtlinien.
Penetration-Testing konzentriert sich auf explorative Risikoanalysen und Anwendungslogik, indem es Schwachstellen in Webanwendungen und -diensten anhand eines Prüfplans findet und versucht, diese zu manipulieren.
Jede Lösung behebt spezifische Arten von Schwachstellen in der Anwendungssicherheit. Erst durch die Kombination mehrerer Lösungen lassen sich Sicherheitsrisiken erfolgreich minimieren.
Best Practice 5
Erstellen Sie Sicherheitskonzepte, die Ihre Entwicklungs- und Betriebsteams bei der Implementierung von Best Practices für Cloud-Sicherheit unterstützen.
Die Vorteile einer Anwendungsbereitstellung in der Cloud sind offensichtlich: Höhere Agilität und geringere Betriebskosten. Der Gang in die Datenwolke birgt aber auch spezifische Risiken, insbesondere den Verlust der Transparenz und Kontrolle über Infrastruktur und Dienste, die die Anwendungssicherheit beeinträchtigen. Wenn Teams die Risiken der Cloud-Umgebung nicht verstehen und angehen, kann dies zur Gefährdung sensibler Daten führen.
Zunächst sollte eine Cloud-Sicherheitsbewertung durchgeführt werden, die spezifische Sicherheitsrisiken der angestrebten Cloud-Plattform identifiziert. Sobald diese Risiken vollständig erfasst wurden, sollte ein Fahrplan für die Cloud-Migration erstellt werden. So wird sichergestellt, dass alle Teams aufeinander abgestimmt sind und Ihre Prioritäten klar sind.
* Florian Thurmann ist Director Software Security Operations bei der Synopsys Software Integrity Group.
(ID:45966158)