Zu Abschnitt

Sicherheit im Softwareentwicklungs-Lifecycle

URL kopieren

Der Softwareentwicklungs-Lifecycle (Software Development Lifecycle, SDLC) ist ein Framework für die Entwicklung, Bereitstellung und Verwaltung von Software. Das Framework formalisiert die Aufgaben oder Aktivitäten in sechs bis acht Phasen mit dem Ziel, die Softwarequalität durch Konzentration auf den Prozess zu verbessern. Die Formalisierung der Schritte soll Messungen und Analysen ermöglichen, die für Verbesserungen genutzt werden können, während Fortschritte und Kosten überwacht werden. 

Die Phasen des SDLC:

  • Planung: Bestimmen des Umfangs und des Zwecks der Software
  • Anforderungen: Definition der Funktionen, die die Software ausführen soll
  • Design: Entscheidung über zentrale Parameter wie Architektur, Plattformen und Benutzeroberflächen
  • Build: Erstellen und Implementieren der Software
  • Dokumentation: Erstellem von Informationen, die den Nutzenden und Stakeholdern zeigen, wie sie die Software nutzen und verwenden können
  • Test: Überprüfen, ob die Software die Anforderungen erfüllt
  • Deployment: Bereitstellung der Software für die vorgesehenen Nutzenden
  • Wartung: Beheben von in der Software entdeckten Bugs oder Schwachstellen

Auf den ersten Blick scheinen SDLC und Application Lifecycle Management (ALM) sehr ähnlich zu sein, da sich beide mit dem Prozess der Softwareentwicklung und -verwaltung befassen. SDLC kann als ein Teilbereich von ALM betrachtet werden, der sich hauptsächlich auf die Entwicklungsphase konzentriert. ALM wird in der Regel genutzt, um die Verwaltung eines Softwareportfolios in einem größeren Rahmen zu betrachten, während sich der SDLC auf eine einzelne Anwendung bezieht.  

Ein häufiges Problem bei der Softwareentwicklung besteht darin, dass sicherheitsrelevante Aktivitäten bis zur Testphase aufgeschoben werden, also bis zu einer späten Phase des SDLC, nachdem der Großteil der kritischen Design- und Implementierungsprozesse bereits abgeschlossen ist. Die in der Testphase durchgeführten Sicherheitsprüfungen können oberflächlich sein und sich auf Scanning und Penetrationstests beschränken, wodurch komplexere Sicherheitsprobleme möglicherweise nicht erkannt werden. Probleme, die in dieser späten Phase des SDLC-Prozesses entdeckt werden, führen häufig zu Verzögerungen bei der Produktion. Diese Probleme sind zeitaufwändiger und teurer zu beheben, da sie eine Neuentwicklung und erneutes Testen erfordern können.

Die Implementierung effektiver Sicherheitsprozesse erfordert von den Teams einen „Shift Left“, wobei Sicherheitsbelange in sämtlichen Phasen des SDLC berücksichtigt werden müssen, und zwar vom Beginn bis zum Ende des Projekts. Zur Einführung eines sicheren Softwareentwicklungs-Lifecycles (SSDLC) müssen in den verschiedenen Phasen des SDLC zusätzliche Sicherheitsmaßnahmen ergriffen werden. Dazu zählen:

SDLC-Phase

Sicherheitsaktivität

Planung

  • Bewertung der Risiken und der Bedrohungslage

  • Bewertung der potenziellen Auswirkungen von Sicherheitsvorfällen wie beispielsweise des Reputationsrisikos für das Unternehmen

Anforderungen

  • Einbeziehung von Sicherheitsanforderungen als Teil der Definition funktionaler Anforderungen

  • Verständnis und Einbeziehung von Compliance- und gesetzlichen Anforderungen

Design

  • Modellierung von Bedrohungen

  • Einbeziehung von Sicherheitsüberlegungen in den Architekturplan

  • Bewertung der Sicherheitsauswirkungen von Entscheidungen in der Designphase, wie Plattform und UI

Entwicklung

  • Training von Entwicklungsteams in Bezug auf sichere Kodierungspraktiken

  • Einbindung von Tools für Sicherheitstests in den Entwicklungsprozess

  • Bewertung von Softwareabhängigkeiten und Minderung potenzieller Sicherheitsrisiken

Dokumentation

  • Dokumentation von Sicherheitskontrollen und -prozessen

  • Zusammenstellung der Informationen zur Vorbereitung auf Audits, Compliance-Prüfungen und Sicherheitsüberprüfungen

Tests

  • Implementierung von Code-Review-Prozessen

  • Durchführung von Sicherheitstests wie statische Analysen und interaktive Anwendungssicherheitstests

Deployment

  • Sicherheitsbewertung der Bereitstellungsumgebung

  • Überprüfung der Konfigurationen auf Sicherheit

Wartung

  • Implementierung einer Überwachung zur Bedrohungserkennung

  • Bereitschaft, auf Schwachstellen und Angriffe mit Korrekturmaßnahmen zu reagieren

Damit Unternehmen auf die ständig wachsende Zahl von Sicherheitsbedrohungen vorbereitet sind, müssen sie ihre Sicherheitspraktiken und -prozesse ständig aktualisieren. Als Teil eines SSDLC müssen Sicherheits-Gates und -kontrollen frühzeitig in den Entwicklungs- und Bereitstellungsprozessen implementiert werden. Zur schnellen Iteration setzen Unternehmen auf DevOps-Prozesse und automatisierte CI/CD-Pipelines (Continuous Integration/Continuous Deployment). Um Engpässe zu vermeiden, muss auch die Sicherheit ein kontinuierlicher und automatisierter Prozess sein. Entwicklungsteams sind nicht nur für Design, Entwicklung, Betrieb und Wartung verantwortlich, sondern auch für die Anwendungssicherheit. 

DevSecOps umfasst eine Reihe von Praktiken, die Personen, Prozesse und Technologien einbeziehen, um die Geschwindigkeit und Effizienz der Softwareentwicklung zu verbessern und gleichzeitig für mehr Sicherheit, verbesserte Konsistenz, Wiederholbarkeit und Zusammenarbeit zu sorgen. Der Schlüssel zu DevSecOps ist die gemeinsame Verantwortung für Entwicklung, Operations und Sicherheit. Zu den Zielen von DevSecOps zählen:

  • Mehr Sicherheit und weniger Risiken durch frühzeitiges Entfernen von Sicherheitslücken im Anwendungsentwicklungs- und Infrastruktur-Lifecycle, was potenzielle Produktionsprobleme reduzieren kann.
  • Optimierte Effizienz und Geschwindigkeit bei DevOps-Release-Zyklen durch das Entfernen von veralteten Sicherheitspraktiken und -tools. Die Nutzung von Automatisierung, Standardisierung auf eine Toolchain und Implementierung von IaC (Infrastructure as Code), SaC (Security as Code) und CaC (Compliance as Code) für Wiederholbarkeit und Konsistenz kann für einen besseren Entwicklungsprozess sorgen.
  • Gemindertes Risiko und erhöhte Transparenz durch frühzeitiges Implementieren von Sicherheits-Gates im Anwendungsentwicklungs- und Infrastruktur-Lifecycle zur Reduzierung menschlicher Fehler und zur Verbesserung der Sicherheit, Compliance, Vorhersagbarkeit und Wiederholbarkeit bei gleichzeitiger Vereinfachung von Audits.

Das Durchlaufen der vier Phasen des DevSecOps-Entwicklungsmodells trägt dazu bei, dass die Sicherheit in die CI/CD-Pipeline integriert und an veränderte geschäftliche und/oder globale Bedingungen angepasst werden kann. Das Open Web Application Security Project® (OWASP) ist eine gemeinnützige Organisation, die von der Community geleitete Open Source-Softwareprojekte zur Verbesserung der Softwaresicherheit und des IT-Sicherheitsbewusstseins fördert. OWASP bietet kostenlose Projekte, Tools und Dokumente an, mit denen Sie Ihren Sicherheitsentwicklungs-Lifecycle verbessern können.

Bei der Sicherheit in der Softwarelieferkette werden Best Practices aus dem Risikomanagement und der Cybersicherheit kombiniert, um die Softwarelieferkette vor potenziellen Schwachstellen zu schützen. Die Softwarelieferkette besteht aus den Elementen und Personen, die im SDLC mit Ihrem Code in Berührung kommen, von der Anwendungsentwicklung über die CI/CD-Pipeline bis zum Deployment. 

Die Sicherheit der Softwarelieferkette ist wichtig für Ihre Organisation, Ihre Kundinnen und Kunden und die Unternehmen, die auf Open Source-Beiträge angewiesen sind. Natürlich möchte keine Organisation eine Sicherheitsverletzung erleben, aber gleichzeitig möchte sie auch nicht dafür verantwortlich sein, dass in einer anderen Organisation ein ähnliches Ereignis auftritt. Die Implementierung von Schutzmaßnahmen für Ihre Softwarelieferkette ist daher entscheidend. 

Zu den Best Practices, die Sicherheitsteams berücksichtigen sollten, zählen unter anderem:

  • Erteilen von Zugriff nach dem Least Privilege-Prinzip auf Ressourcen in der gesamten Lieferkette (beispielsweise Entwicklertools, Quellcode-Repositories und andere Softwaresysteme), Multi-Faktor-Authentifizierung und Verwendung starker Passwörter.
  • Härten der Sicherheit für Ihre angeschlossenen Geräte und sensiblen Daten.
  • Kennenlernen Ihrer Zulieferer und Geschäftspartner, beginnend mit den Tier-One-Lieferanten. Durchführen von Risikobewertungen zur Beurteilung des Cybersicherheitsstatus der einzelnen Anbieter und der öffentlichen Richtlinien zu Schwachstellen

Red Hat bietet bewährte Open Source-Software, die Unternehmen bei der Implementierung eines mehrschichtigen Sicherheitsansatzes im gesamten Infrastruktur- und Anwendungs-Stack und -Lifecycle unterstützt, um die Sicherheit On-Premise, in der Cloud oder an Edge-Standorten zu verbessern. Die Technologien von Red Hat werden nach einem Prozess entwickelt, der sich auf die Sicherheit in der Softwarelieferkette konzentriert. Auf dieser Basis können sich Unternehmen auf die Entwicklung, Verwaltung und Kontrolle hybrider Umgebungen, die Implementierung einer Automatisierungsstrategie und die Entwicklung von Sicherheit im SDLC mit DevSecOps-Praktiken konzentrieren.

Zusammen mit einem Netzwerk aus Sicherheitspartnern bietet Red Hat einen DevSecOps-Ansatz, mit dem Unternehmen weiter Innovationen schaffen können, ohne dabei die Sicherheit zu gefährden. Red Hat verfügt über die Expertise und Kompetenz, um ein robustes Portfolio für die Entwicklung, Bereitstellung und Ausführung sicherheitsorientierter Anwendungen in einer Open Hybrid Cloud für Unternehmen anzubieten – egal in welcher Phase der DevSecOps-Einführung sie sich befinden.

Weiterlesen

ARTIKEL

Was ist DevSecOps?

Wenn Sie die Agilität und Reaktionsfähigkeit von DevOps vollständig ausschöpfen möchten, muss die IT-Sicherheit im gesamten Lifecycle Ihrer Apps eine Rolle spielen.

ARTIKEL

Was ist das Besondere an der Cloud-Sicherheit?

Die wichtigsten Sicherheitslücken gefährden sowohl traditionelle IT- als auch Cloud-Systeme. Lernen Sie die Unterscheidungsmerkmale kennen.

ARTIKEL

Was ist SOAR?

SOAR umfasst drei wichtige Software-Funktionen, die Sicherheits-Teams verwenden: Case- und Workflow-Management, Aufgabenautomatisierung sowie eine zentrale Methode, um Bedrohungsinformationen (die so genannte Threat Intelligence) aufzurufen, zu durchsuchen und zu teilen.

Mehr über DevOps erfahren

Produkte

Ein fokussierter Intensiv-Workshop mit Red Hat Experten, bei dem Sie lernen, eine agile Methodik und Open Source-Tools zu verwenden, um die geschäftlichen Probleme Ihres Unternehmens anzugehen.

Interaktionen mit unseren strategischen Beratern, die sich ein Gesamtbild von Ihrem Unternehmen machen, Ihre Herausforderungen analysieren und Ihnen helfen, diese mit umfassenden, kosteneffektiven Lösungen zu meistern.

Ressourcen