Sie sind hier: HomeTelekommunikation

Software-Security: Mit der Agilität Schritt halten

DevOps haben die Abläufe in der Software-Entwicklung rasant beschleunigt. Die Praxis zeigt aber, dass die Qualitätssicherung nicht immer mit dem agilen Tempo Schritt halten kann. Checkmarx, Anbieter im Bereich Software-Security, gibt zehn Tipps, worauf es bei der Absicherung des SDLC ankommt.

Bildquelle: © stefan schurr - zhu difeng / fotolia.com

DevOps haben die Abläufe in der Software-Entwicklung rasant beschleunigt. Unternehmen bringen ihre Anwendungen heute schneller zur Marktreife und stellen für ihre Kunden oft im Tagesrhythmus neue Builds bereit. Die Praxis zeigt aber, dass die Qualitätssicherung nicht immer mit dem agilen Tempo Schritt halten kann. Die Folge: fehlerhafter Code, der Cyberkriminellen unzählige Angriffspunkte bietet. „Im Zuge von Digitalisierung und IoT haben sich die Entwicklungszyklen für neue Anwendungen immer mehr beschleunigt“, erklärt Dr. Jürgen Eitle, Professional Security Architect bei Checkmarx. „Heute liefern Softwareentwickler oft mehrmals am Tag neue Builds ihrer Produkte aus – und nutzen die schnelle Entwicklung als USP, um sich von ihren Konkurrenten abzuheben. Agile DevOps-Umgebungen sind deshalb mittlerweile Standard. Sie bringen aber auch Herausforderungen für die Software-Security mit sich. Gerade mit Blick auf die Digitalisierung zunehmend kritischer Dienste dürfen Unternehmen das Thema Software-Sicherheit nicht auf die leichte Schulter nehmen.“

Folgende Punkte sollten Unternehmen bei der Definition sicherer Entwicklungsprozesse (DevSecOps) beachten:

  1. Identifizieren Sie Sicherheitslücken so früh wie möglich: Analysieren Sie Ihre Anwendungen bereits im Anfangsstadium der Entwicklung mit statischen Sicherheitstests (SAST), um Fehler möglichst schon im Quellcode zu identifizieren. So lassen sich viele Sicherheitslücken mit minimalem Aufwand schließen, ehe die Software in die Testphase oder live geht.
  2. Integrieren Sie Open-Source-Sicherheitstests: Die Einbindung von Open Source Code ist in agilen Entwicklungsumgebungen unerlässlich. Die Entwickler dürfen sich aber nicht darauf verlassen, dass der quelloffene Code auch wirklich sicher ist. Open-Source-Analyse-Lösungen (OSA) weisen die Entwickler während des Programmierprozesses auf Fehler in quelloffenem Code hin und ermöglichen es ihnen, unsichere Elemente zu entfernen oder zu ersetzen.
  3. Analysieren Sie auch den kompilierten Code: Um sicherzustellen, dass der kompilierte Code einwandfrei ist, sollten Sie auch interaktive Security-Analysen (IAST) vorsehen. Diese Tests lassen sich automatisiert und effizient in kürzester Zeit im laufenden Betrieb durchführen und helfen Ihnen, Sicherheitslücken in der Schlussphase der Entwicklung zuverlässig zu erkennen.
  4. Schulen Sie Ihre Entwickler – während sie entwickeln: Nutzen Sie die Möglichkeiten moderner interaktiver Schulungsplattformen. Heute sind auf dem Markt zahlreiche innovative Analyselösungen verfügbar, die Ihre Entwickler schon während der laufenden Programmierung auf mögliche Fehler hinweisen. So lernt Ihr Team On-the-fly dazu.
  5. Decken Sie den gesamten Software Development Life Cycle (SDLC) ab: Führen Sie Ihre Analyse-Werkzeuge in einem durchgängigen Prozess zusammen, der von den ersten Design- und Entwicklungsstufen bis hin zum Go-live reicht – und definieren Sie auch verbindliche Feedback-Zyklen für weiterführende Modifikationen im laufenden Betrieb. So minimieren Sie das Risiko für Ihr Business und stellen Ihren Kunden ein hochwertiges, sicheres Produkt zur Verfügung – ohne die Geschwindigkeit von DevOps zu beeinträchtigen.
  6. Stellen Sie Ihre Entwickler in den Mittelpunkt: Binden Sie Ihre Entwickler vom ersten Tag an eng in das Projekt „Software-Security“ ein, um sicherzustellen, dass die Lösung akzeptiert und aktiv genutzt wird. Dazu gehört, dass sie sich am Entscheidungsprozess für eine geeignete Plattform beteiligen können, Oberflächen an den Entwicklungsprozess angepasst werden und auch die Optimierung der Security-Plattform in enger Absprache mit den Entwicklern stattfindet.
  7. Priorisieren Sie Code-Schwachstellen: Achten Sie bei der Auswahl Ihrer Software-Security-Plattform darauf, dass Schwachstellen nicht nur identifiziert, sondern auch priorisiert werden. So machen Sie es den Entwicklern leicht, die unvermeidlichen False Positives von kritischen Fehlern zu unterscheiden. Korrelieren Sie die Rohergebnisse aus SAST, IAST und OSA mithilfe von Machine-Learning-Algorithmen, um den Entwicklern handlungsrelevante Empfehlungen für die Fehlerbehebung an die Hand zu geben.
  8. Binden Sie alle Programmiersprachen und Frameworks ein: Achten Sie darauf, dass Ihre Security-Plattform alle gängigen Programmier- und Skriptsprachen (zum Beispiel Java, C#, JavaScript, TypeScript, PHP, Python) und alle gängigen Entwicklungsumgebungen (zum Beispiel Eclipse, IntelliJ, Visual Studio) unterstützt. So garantieren Sie, dass die Entwickler durchgehend von den Analyselösungen profitieren.
  9. Achten Sie auf einfache Administrierbarkeit: Stellen Sie Ihren Verantwortlichen geeignete Orchestrierungswerkzeuge zur Verfügung, die sie jederzeit über die aktuelle Sicherheitslage im Bilde halten, Code-Fehler projektweise darstellen und vollständige, chronologische Reports zu allen KPIs liefern. Integrieren Sie auch intelligente Richtlinienkonzepte für proprietäre Code- und Open-Source-Softwarekomponenten sowie Zugriffsberechtigungen.
  10. Automatisieren Sie Ihre Security-Tests: Soll die Software-Security mit der Geschwindigkeit von DevOps Schritt halten, ist die Automatisierung der Analyseprozesse unerlässlich. Nur wenn es Ihnen die Software-Security-Plattform ermöglicht, Test- und Optimierungsprozesse weitgehend automatisch abzuwickeln, können Sie Ihre Entwickler nachhaltig entlasten und Freiräume für innovativere Aufgaben schaffen.