Jump to section

Shift Left im Vergleich zu Shift Right

URL kopieren

Das Testen in verschiedenen Phasen des Softwareentwicklungs-Lifecycles ist wichtig, um die Erwartungen von Nutzenden sowie Funktionsanforderungen und Sicherheitsmaßnahmen zu erfüllen. Bei einem Shift Left-Ansatz werden so früh wie möglich Sicherheitstests durchgeführt, um bereits während der Entwicklung Schwachstellen zu finden und Probleme zu beheben. Bei einem Shift Right-Ansatz werden Nutzerverhalten, Nutzung, Performance und Sicherheitsmetriken in der Produktionsphase überwacht, um die Funktionsfähigkeit der Software zu überprüfen.

Sowohl der Shift Left- als auch der Shift Right-Ansatz sollen die Qualität und Performance neuer Produkte und Funktionen im gesamten DevOps-Prozess und Softwareentwicklungs-Lifecycle (SDLC) mithilfe kontinuierlicher Testmethoden bewerten und sicherstellen. Die Idee hinter den Shift Left- und Shift Right-Prinzipien in einer agilen Praktik lautet „klein scheitern, schnell beheben“ und zielt darauf ab, potenzielle Probleme zu erkennen, bevor diese große Auswirkungen haben können.

Für ein besseres Verständnis von Shift Left und Shift Right können Sie sich den Softwareentwicklungs-Lifecycle als eine Linie vorstellen, die von links nach rechts verläuft. Auf der linken Seite dieser Linie findet die Codierungs- und Entwicklungsphase statt, auf der rechten Seite die Produktionsphase, die das Deployment und Monitoring der Software umfasst.

Ursprünglich wurde die Sicherheit der Software erst spät in der Mitte des SDLC getestet – kurz bevor die Software in Produktion ging. Die Verzögerung von Tests kann allerdings dazu führen, dass Sicherheitsprobleme der Software in späteren Phasen des Lifecycles unentdeckt bleiben. Wenn dann schließlich eine Schwachstelle entdeckt wird, müssen Teams komplexe und teure Nachbesserungen vornehmen, um die Fehler zu isolieren und zu beheben, die sich bis zu diesem Zeitpunkt in der Anwendung angesammelt haben.

Mit der Zeit haben Unternehmen festgestellt, dass sie mit der Beseitigung von Engpässen in frühen Phasen des SDLC die Kosten für die Behebung von Schwachstellen und Fehlern senken, Ressourcen einsparen und ein besseres Endprodukt erreichen können. So entstand der Ansatz, „die Sicherheit nach links zu verschieben“, der seitdem zur Grundlage der modernen Anwendungsentwicklung geworden ist.

Entwicklungsteams geben nicht vor, Sicherheitsprofis zu sein, und das wollen sie auch gar nicht. Sie haben ohnehin schon Schwierigkeiten, mit den Release-Kadenzen mitzuhalten, insbesondere dann, wenn sie Fehler beheben oder Code korrigieren müssen, der von einem anderen Teammitglied geschrieben wurde und versehentlich eine schwerwiegende Sicherheitslücke verursacht hat.

Die zunehmend komplexe, große und dezentralisierte Softwarearchitektur erschwert zusätzlich die effektive und unternehmensweite Überwachung und Verwaltung von Sicherheit. Moderne Methoden der Softwarebereitstellung, die kontinuierliche Deployments in hybriden Umgebungen vorsehen, erfordern einen neuen Sicherheitsansatz, der Sicherheitsrichtlinien früher im Anwendungsentwicklungsprozess etabliert, automatisierte Sicherheit bei jedem Schritt ermöglicht und Sicherheit in einen Wettbewerbsvorteil transformiert.

Entwicklungsteams nutzen den Shift Left-Ansatz als eine proaktive Maßnahme zur Verbesserung der Anwendungssicherheit, indem sie Fehler erkennen und beheben, bevor sie in der Pipeline zu weit fortgeschritten sind. Bei dieser Strategie werden somit Sicherheitspraktiken und Tests so früh wie möglich in den Entwicklungsprozess integriert, anstatt sie als nachträgliche Maßnahme zu betrachten. Der Shift Left-Ansatz hängt eng mit der Beliebtheit von DevSecOps-Praktiken zusammen, bei denen die frühe und kontinuierliche Integration von Sicherheit eine große Rolle spielt. 

Sicherheitsvorfälle können in der Entwicklungs-, Deployment- und Runtime-Phase auftreten. Die Implementierung und Automatisierung von DevSecOps mit einem Shift Left-Ansatz bietet entwicklungsfreundliche Richtlinien, die Nutzungsfehler in der Entwicklungs- und Deployment-Phase reduzieren und Workloads zur Runtime schützen.

Shift Left-Tests können Folgendes beinhalten:

  • SAST (Static Application Security Testing): Hierbei wird die Quelle, der Byte- oder Binärcode einer Anwendung auf Sicherheitsschwachstellen analysiert.
  • DAST (Dynamic Application Security Testing): Eine Blackbox-Testmethode, bei der potenzielle Sicherheitsschwachstellen mithilfe von automatisierten Sicherheitsscans im laufenden System entdeckt werden können.
  • Bedrohungsmodellierung: Bei diesem Prozess wird jede getroffene Entscheidung in einem System überdacht und daraus abgeleitet, wie diese das Sicherheitsprofil jetzt oder in Zukunft beeinflussen könnte.
  • Überprüfung der Sicherheitsarchitektur: Die Identifizierung, Bewertung und Minderung von Risiken, um die Sicherheitsmaßnahmen einer Organisation gegen aktuelle und neu auftretende Bedrohungen und Risiken zu stärken.
  • Scan von Container Images: Eine schichtweise Analyse eines Container Images, um potenzielle Sicherheitsbedrohungen zu entdecken.
  • Codesignierung: Eine Methode, bei der ein Programm, eine Datei oder ein Software-Update mit einer digitalen Signatur versehen wird, sodass die Authentizität und Integrität bei der Installation und Ausführung verifiziert werden kann. 

Der Shift Left-Ansatz zielt darauf ab, Schwachstellen frühzeitig in der Codierungsphase zu finden und zu beheben. Dadurch wird neben der Sicherheit auch das Benutzererlebnis und die Funktionalität verbessert, indem Software schneller, häufiger und in besserer Qualität bereitgestellt wird. Indem Softwarefehler früher im Entwicklungszyklus erkannt und behoben werden, können Sie die Entwicklungseffizienz verbessern und Fixkosten reduzieren. 

Da die Bedrohungsvektoren zunehmend anspruchsvoller werden und Angriffsflächen weiterhin exponentiell wachsen, erkennen Unternehmen, dass es für einen angemessenen Schutz vor neuen Sicherheitsbedrohungen nicht mehr ausreicht, sich lediglich auf Shift Left-Tests in der Build-Phase zu verlassen.

Das bedeutet, dass sich ein ergänzender Ansatz zu Shift Left entwickelt hat: Shift Right-Tests. Ein Shift Right-Ansatz bedeutet, dass die Test-, Qualitätssicherungs- und Performance-Bewertungsmaßnahmen in einer Post-Produktivumgebung fortgesetzt werden. 

Bei Shift Right-Tests führen Entwicklungsteams gegen Ende des Softwareentwicklungszyklus kontrollierte Experimente durch, um Funktionalität, Performance, Fehlertoleranz und Benutzererlebnis zu untersuchen.

Folgende Techniken können unter anderem im Rahmen von Shift Right-Tests für wichtige Kontrollen und Echtzeit-Transparenz verwendet werden:

  • SIEM (Security Information and Event Management): Steht für die Verwaltung von Sicherheitsinformationen und -events. Diese Lösung hilft Unternehmen dabei, Bedrohungen zu erkennen, zu analysieren und auf diese zu reagieren.
  • SOAR (Security Orchestration, Automation and Response): Bezeichnet die Sicherheitsorchestrierung, -automatisierung und -reaktion. Damit sollen IT-Teams entlastet werden, indem Aufgaben zwischen verschiedenen Personen und Tools koordiniert, ausgeführt und automatisiert werden.
  • Canary Deployments: Bei dieser Technik wird eine neue Funktion zuerst mit einer Teilmenge an Nutzenden getestet, bevor sie für alle Nutzenden freigegeben wird.
  • Deployment-Ringe: Hierbei werden Änderungen an Ihrer Erweiterung Schritt für Schritt in der Produktion bereitgestellt und validiert, wodurch die Auswirkungen auf Ihre Nutzenden eingeschränkt werden.
  • A/B-Tests: Bei diesem Ansatz werden Hypothesen getestet, indem beispielsweise verschiedene Szenarien, Funktionen oder Designs vorgestellt werden und die unterschiedlichen Reaktionen darauf mit der gewünschten Reaktion und einer Kontrollgruppe abgeglichen werden.
  • Fault-Injection-Tests: Bei dieser Methode werden absichtlich Fehler in ein System eingeschleust, um es zu testen.
  • API-Sicherheitstest: Verfolgen Sie Egress-Datenverkehr und ausgehende Aufrufe, um Verhaltensweisen zu verstehen und Sicherheitsvorfälle zu erkennen.  Istio ist eine Service Mesh-Plattform, die den zugrunde liegenden Kommunikationskanal bereitstellt und die Verwaltung der Authentifizierung, Autorisierung und Verschlüsselung der Service-Kommunikation in großem Umfang unterstützt.
  • Chaos Engineering: Hierbei werden „Dinge absichtlich zerstört“, um die Resilienz eines Systems zu testen.
  • Blue/Green Deployment (Blau/Grün-Bereitstellung): Ein Anwendungs-Release-Modell, das den Benutzerverkehr schrittweise von einer früheren Version einer Anwendung auf ein nahezu identisches neues Release überträgt, während beide in der Produktivumgebung ausgeführt werden. 

Wenn Teams das Verhalten von Software in echten Umgebungen beobachten, können sie proaktiv Sicherheitsbedrohungen in der Runtime entdecken und sicherstellen, dass sich Anwendungen wie erwartet ausgeführt werden. Shift Right-Tests ermöglichen eine kontinuierliche Echtzeit-Feedbackschleife von Nutzenden und bieten die Möglichkeit, Probleme zu analysieren, die möglicherweise nicht vorhergesehen wurden. 

Wenn Organisationen zu cloudnativen Konstrukten wechseln und ihre Anwendungen modernisieren, indem sie sie um Technologien wie Microservices und Container erweitern, empfiehlt es sich, sowohl Shift Left- als auch Shift Right-Strategien einzusetzen. Indem Sie Ihrem Team die Möglichkeit geben, End-to-End-Tests in den verschiedenen Phasen des SDLC auszuführen, kann Ihr Unternehmen dem ultimativen Ziel von CD/CD (Continuous Integration/Continuous Delivery) näherkommen.

Zu den Vorteilen einer Einführung von Shift Left- und Shift Right-Maßnahmen zählen unter anderem erhöhte Effizienz, verbesserte Produktqualität, mehr Sicherheit, kürzere Markteinführungszeiten und eine höhere Nutzerzufriedenheit. Darüber hinaus haben Unternehmen festgestellt, dass die relativen Kosten für die Behebung von Fehlern, basierend auf dem Zeitpunkt der Erkennung, im Laufe der Zeit zunehmen. Oder anders ausgedrückt: Je länger Sie damit warten, ein Problem zu beheben, desto mehr Geld wir es Sie wahrscheinlich kosten. Das bedeutet, dass die vorsorglichen Maßnahmen des Shift Left-Ansatzes wahrscheinlich positive Auswirkungen auf Ihr Geschäftsergebnis haben werden. 

Der Schutz Ihrer Softwarelieferkette erfordert einen vielschichtigen Ansatz. Sie können die Sicherheit Ihrer Softwarelieferkette auf vielfältige Weise verbessern, und jede dieser Möglichkeiten sorgt für eine zusätzliche Schicht zum Schutz Ihrer Organisation und Kunden.

Wenn Sie Shift Left- und Shift Right-Ansätze in den Entwicklungs-Lifecycle Ihrer Organisation implementieren möchten, sollten Sie mit einer SBOM (Software Bill of Materials) anfangen. Dabei handelt es sich um ein verschachteltes Inventory sämtlicher Quellen und Abhängigkeiten eines Artefakts, einschließlich Quellcode, Open Source-Software und -Libraries, Middleware und Entwicklungs-Frameworks.

Danach sollten Sie automatisierte Tests implementieren, um Daten und Analysen in der gesamten Softwareentwicklungs- und -Deployment-Pipeline zu sammeln. Durch das kontinuierliche Testen in allen Phasen des SDLC können Sie die Performance bestmöglich überwachen und die Ursache von Problemen finden.

Vor allen Dingen sollten Sie intern und zwischen den einzelnen Abteilungen kommunizieren und zusammenarbeiten, um Problembereiche in den Teams zu identifizieren und geeignete Tools zu finden. 

In der sich rasant wandelnden Technologielandschaft von heute greifen Unternehmen vermehrt auf Containerisierung zurück, um eine größere Skalierbarkeit, Portierbarkeit und Effizienz in ihren Anwendungsbereitstellungen zu erreichen. Containerisierung hat Vorteile, kann aber auch Herausforderungen bei der IT-Sicherheit mit sich bringen. Diese müssen überwunden werden, um die Sicherheit, Vertraulichkeit und Zugänglichkeit containerisierter Anwendungen zu verbessern. Mit der zunehmenden Nutzung von cloudnativen Anwendungen wird es umso wichtiger, die Sicherheitslage von Containern und Kubernetes zu verbessern.

Red Hat® investiert erheblich in die Wartung von Open Source-Software während der verschiedenen Lebensphasen eines Produkts. Wir übernehmen für die Software, die wir bereitstellen, nicht nur die Verantwortung und den Support, sondern kümmern uns auch um wichtige Aspekte wie die Sicherheit.

Mit Red Hat Trusted Software Supply Chain können Unternehmen Sicherheit von Anfang an in den Softwareentwicklungs-Lifecycle integrieren. Mit der richtigen Sicherheitssoftware können sich Organisationen vor den Risiken und Schwachstellen in den Systemen ihrer Lieferketten schützen. Ohne einen angemessenen Schutz riskieren sie es, das Vertrauen ihrer Nutzenden, Kunden und anderen Stakeholder zu verlieren. Mit Red Hat Trusted Software Supply Chain können Kunden ihre Software mithilfe bewährter Plattformen, vertrauenswürdiger Inhalte sowie Echtzeit-Sicherheitsscans und -Fehlerbehebung programmieren, entwickeln und überwachen.

Red Hat OpenShift® setzt sich für einen Shift Left-Ansatz ein, indem es DevSecOps automatisiert und Sicherheit frühzeitig und durchgehend im Entwicklungszyklus integriert. Seine Vielzahl an einsatzbereiten Entwicklertools, CI/CD-Funktionen und der Sicherheitsfokus sorgen für eine sichere und effiziente Softwarelieferkette. Die umfassende Anwendungsplattform basiert auf Kubernetes und hilft Unternehmen beim Entwickeln, Bereitstellen, Ausführen, Managen und Schützen von innovativen Anwendungen in großem Umfang.

Red Hat Advanced Cluster Security for Kubernetes verschiebt die Sicherheit nach links und automatisiert die Best Practices des DevSecOps-Ansatzes. Die Plattform ist kompatibel mit einer großen Anzahl von Kubernetes-Umgebungen und kann mit DevOps und Sicherheitstools kombiniert werden. So können Teams leichter operationalisieren und ihre Lieferkette, Infrastruktur und Workloads besser schützen.

Red Hat Ansible Automation Platform bietet Ihnen ein konsistentes Unternehmens-Framework für die Entwicklung und den Betrieb von IT-Automatisierung in großem Umfang, wobei die Sicherheit im gesamten Softwareentwicklungs-Lifecycle im Vordergrund steht. Sie können Sicherheit und Compliance im gesamten Unternehmen automatisieren sowie zertifizierte Automatisierungsinhalte verwenden und so koordiniert mit Rund-um-die-Uhr-Support auf Bedrohungen reagieren. Red Hat Ansible bietet eine Reihe von Sicherheitsintegrationen an, die von Red Hat und seinen Partnern im Bereich Sicherheitstechnologien unterstützt werden.

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 CI/CD?

CI/CD sorgt für eine kontinuierliche Automatisierung und Überwachung über alle Phasen des App-Lifecycles hinweg, von der Integration und Tests bis hin zur Bereitstellung und Implementierung.

ARTIKEL

Was ist ein DevOps-Ingenieur?

DevOps-Ingenieure besitzen verschiedene besondere Fähigkeiten und Kenntnisse, die für eine bessere Zusammenarbeit, mehr Innovationen und kulturelle Verschiebungen innerhalb einer Organisation sorgen können. 

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