In this article
Die Grundlagen des Einstiegs in Shift-Left-Testing
Modernisieren Sie Ihre AppSec-Tests mit der Shift-Left-Philosophie
Shift-Left-Testing erklärt
Was ist Shift-Left-Testing?
Beim Shift-Left-Testing werden Softwaretests einschließlich Sicherheit so früh wie möglich in den Softwareentwicklungslebenszyklus (SDLC) integriert. Prozesse und Tools versetzen Entwicklungs- und Betriebsteams in die Lage, gemeinsam Verantwortung für die Bereitstellung sicherer, hochwertiger Software zu übernehmen. Shift-Left-Testing und Shift-Left-Tools helfen Unternehmen, Software häufiger zu veröffentlichen, indem sie häufige Fehler und Engpässe durch Sicherheitsprobleme verhindern.
Betrachtet man die traditionelle Continuous-Integration-/Continuous-Delivery-Pipeline (CI/CD), sind Tests typischerweise der vierte Schritt in einem Zyklus aus acht Schritten. Beim Shift-Left-Testing werden jedoch viele Testaspekte in die Build- und Code-Phasen integriert. Dadurch werden Sicherheit und Fehlererkennung buchstäblich nach links verschoben.

So verlagern Sie Sicherheit in der agilen Entwicklung nach links
In typischen Cloud-Umgebungen folgt die Softwareentwicklung meist der agilen Methodik, in die sich Shift-Left-Testing gut einfügt. Bei der agilen Entwicklung werden Funktionen schnell und in der Regel in kleinen Code-Schritten iteriert. Dadurch erfolgt die Softwarebereitstellung meist in kurzen Abständen. Eine hohe Bereitstellungsgeschwindigkeit setzt voraus, dass sich Testtools und -ziele an ein dynamisches, sich schnell veränderndes Umfeld anpassen lassen.
Shift-Left-Testing fügt sich gut in die agile Methodik ein.
Einige Unternehmen verlagern Shift-Left-Testing mit testgetriebener Entwicklung noch näher an die Programmierphase. Wenn Sie zuerst Tests für den zu entwickelnden Code schreiben, können Sie mit testgetriebener Entwicklung den Code sofort validieren und Fehler vermeiden. Ebenso können Unternehmen Sicherheitstests nach links verlagern, um Sicherheitsprobleme zu verhindern. Application-Security-Tools sollten proaktiv sein und den gesamten sicheren Softwareentwicklungslebenszyklus (SDLC) abdecken.
Darüber hinaus eignen sich Shift-Left-Security-Tools, die den gesamten SDLC proaktiv scannen, besser für Multi-Cloud-Umgebungen, wie sie häufig in größeren Unternehmen vorkommen. Die Kombination aus privaten, öffentlichen und hybriden Cloud-Plattformen bringt neue Komplexität mit sich. Unternehmen nutzen Multi-Cloud-Umgebungen wegen ihrer Flexibilität und Skalierbarkeit. Diese Vorteile stellen sie jedoch auch vor erhebliche Sicherheitsherausforderungen. Wenn Entwicklungs- und Sicherheitsteams früh im Prozess integrierte Sicherheitsautomatisierung einsetzen, beispielsweise mit IaC-Scans, können sie sich besser auf Multi-Cloud-Herausforderungen einstellen.
Eine weitere Möglichkeit, Tests weiter nach links zu verlagern, ist der Einsatz statischer Analyselösungen wie Static Application Security Testing (SAST)-Tools. Ein SAST-Tool hilft dabei, Probleme mit Parametertypen oder einer falschen Verwendung von Schnittstellen zu erkennen. Einige SAST-Scanner weisen Sie schon während des Programmierens auf Fehler hin.
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.
So starten Sie mit Shift-Left-Security-Tests
Shift-Left-Testing sieht in jedem Unternehmen anders aus. Faktoren wie Unternehmensgröße, Anzahl der Sicherheitsfachkräfte, aktuelle Prozesse und das Risiko, dem Produkte ausgesetzt sind, beeinflussen, wie die einzelnen Teams diesen Wandel angehen. Die folgenden Schritte helfen Ihnen jedoch beim Einstieg.

Schritt 1 – Sicherheitsrichtlinien einführen
Sicherheitsrichtlinien sind ein guter erster Schritt für Shift-Left-Testing. Sie können automatisch und einheitlich Grenzen festlegen, bevor die Arbeit beginnt, und so wichtige Informationen für effiziente Entwicklungsprozesse einschließlich der Sicherheit bereitstellen.
Die Vereinbarung von Codierungsstandards sollte Teil Ihrer Sicherheitsrichtlinie sein. Diese Standards legen fest, welche Sprachen und Konfigurationen Ihr Team in bestimmten Situationen verwendet. Alle Entwicklerinnen und Entwickler müssen auf dem gleichen Stand sein. Das hilft ihnen, Code-Reviews schneller durchzuführen, und sorgt zugleich für eine höhere Codequalität. Diese Richtlinien sollten die Zahl der Fehler senken. Wenn Entwicklerinnen und Entwickler Best Practices befolgen, können sie fehlerhaften oder unsicheren Code vermeiden.
Schritt 2 – Tests früh im SDLC einführen
Wenn Ihre Entwicklerinnen und Entwickler sich mit sicheren Programmierpraktiken vertraut machen, empfiehlt es sich, Ihren SDLC zu überprüfen. Wenn Sie Ihre aktuellen Praktiken verstehen, können Sie kleine Schritte ermitteln, um Tests früher einzubinden. Außerdem können Sie herausfinden, welche Tools für Ihre Codebasis relevant sein könnten.
Eine mögliche Strategie ist die Einführung eines agilen SDLC, der mit kleinen Code-Schritten arbeitet. Jeder Sprint umfasst anschließend eine Entwicklungs- und eine Testphase. So wird sichergestellt, dass jede noch so kleine Funktion mit geeigneten Tests abgedeckt wird.
Für manche Unternehmen ist ein drastischer Wechsel zu Shift-Left-Testing nicht möglich. Daher kann sich das Entwicklungsteam darauf einigen, für jede entwickelte Funktion Unit-Tests zu schreiben.
Schritt 3 – Sicherheitsautomatisierung nutzen
Shift-Left-Testing bedeutet, häufiger nach Sicherheitsproblemen zu suchen. Ihr Entwicklungsteam sollte daher Tools zur Sicherheitsautomatisierung einsetzen. Bei der Sicherheitsautomatisierung werden softwarebasierte Prozesse verwendet, um externe Bedrohungen für Anwendungen und Systeme programmgesteuert zu erkennen, zu untersuchen und zu beheben. So beschleunigt die Automatisierung den Entwicklungslebenszyklus und verkürzt Ihre Markteinführungszeit.
Sicherheitsautomatisierung beschleunigt den Entwicklungslebenszyklus und verkürzt die Markteinführungszeit.
Ein Beispiel für einen frühen Einstieg in die automatisierte Sicherheit sind Sicherheitsprüfungen bei Pull Requests. Pull Requests sind häufig ein zentraler Bestandteil Git-basierter Entwicklungsworkflows und bieten eine einfache Möglichkeit zur Zusammenarbeit, wenn Entwicklerinnen und Entwickler Änderungen in Code-Repositories einpflegen und zusammenführen. Automatisierungstools können Pull Requests vor dem Zusammenführen auf Sicherheits- und Lizenzprobleme prüfen.
Shift-Left ist ein Kulturwandel, nicht nur eine Frage neuer Tools
Sicherheits- und Testlösungen können entscheidend sein, um Shift-Left-Testing zu unterstützen. Tools sind jedoch nur ein Bestandteil eines viel größeren Ganzen. Shift-Left-Testing erfordert auch einen erheblichen Kulturwandel. Zum Erfolg gehört außerdem, Verantwortlichkeiten von klassischen IT-Funktionen auf Entwicklungsteams zu übertragen, um Feedbackschleifen zu beschleunigen. Da Shift-Left-Testing die erwarteten Verantwortlichkeiten von Entwicklungs-, Betriebs- und Sicherheitsteams auf agile Weise verändert, lässt sich das Problem nicht allein durch die Einführung neuer Tools lösen.
Shift-Left-Testing verändert auf agile Weise die erwarteten Verantwortlichkeiten von Entwicklungs-, Betriebs- und Sicherheitsteams.
Eine aktuelle Studie von ESG ergab beispielsweise, dass Entwicklerinnen und Entwickler mehr Verantwortung für das Testen von Anwendungen auf Sicherheitsprobleme erhalten, ohne angemessen geschult zu werden. Obwohl die meisten Unternehmen Sicherheitsschulungen vorschreiben, gaben 35 % der Befragten an, dass tatsächlich weniger als die Hälfte ihrer Entwicklungsteams an formellen Schulungen teilnimmt. Solche Versäumnisse bei der Unterstützung untergraben alle Investitionen in Sicherheitstools. Wenn Entwicklerinnen und Entwickler keine neuen Testmethoden kennenlernen möchten, scheitern auch neue Sicherheitspraktiken. Sicherheitsschulungen, die zeigen, wie sich später Zeit sparen lässt, sowie einfach zu bedienende, integrierte Tools können Entwicklerinnen und Entwickler oft für neue Sicherheitsverantwortlichkeiten gewinnen.
Eine Shift-Left-Testing-Kultur soll Empathie und gemeinsame Ziele zwischen verschiedenen Fachbereichen eines Unternehmens fördern. Entwicklungs-, Betriebs- und Sicherheitsteams müssen enger zusammenarbeiten und Verantwortung teilen, um die Testarbeit untereinander aufzuteilen. Manche Analysten bezeichnen diese Kultur als DevSecOps.
Shift-Left-Testing
Mit den vier nachfolgend beschriebenen Tests können Entwicklerinnen und Entwickler damit beginnen, Tests nach links zu verlagern. Jeder davon erfordert nur einen geringen Aufwand und verringert zugleich Reibungsverluste in den Sicherheits- und Qualitätssicherungsphasen der Softwareentwicklung.
Unit-Tests: Unit-Tests überprüfen die Leistung einer einzelnen Methode, Funktion oder Klasse. Üblicherweise werden sie auf der kleinsten testbaren Softwareeinheit ausgeführt, etwa auf Prozeduren, Schnittstellen oder Klassen. Nach einem erfolgreichen Unit-Test kann die Einheit sicher in die größere Codebasis integriert werden. Liefert ein Unit-Test bei einer Eingabe nicht den korrekten Wert zurück, gilt er als fehlgeschlagen und der Code ist für die weitere Verwendung ungeeignet.
Tests grundlegender Funktionen: Funktionstests prüfen, ob alle Aspekte des Codes ordnungsgemäß funktionieren, statt sich wie Unit-Tests auf eine einzelne Ausgabe zu konzentrieren. Wird die Anwendung beispielsweise korrekt angezeigt? Funktioniert sie auch außerhalb von Entwicklungsumgebungen? Können Nutzerinnen und Nutzer Daten übermitteln, ohne dass die Anwendung abstürzt? Unterstützt die aufgerufene API jede Funktion? Mit diesen Tests können Sie später in der Qualitätssicherung oder Sicherheit Zeit sparen.
Code-Review: Ein Code-Review beschleunigt den Programmierprozess, indem eine Kollegin oder ein Kollege den Code überprüft. Viele Entwicklerinnen und Entwickler übersehen Fehler im eigenen Code, während eine unvoreingenommene Person oft Unstimmigkeiten entdeckt. Eine kurze zweite manuelle Prüfung kann viel dazu beitragen, den Quellcode zu bereinigen. Es empfiehlt sich immer, den überprüften Code auf Sicherheitsprobleme zu prüfen.
Statische Codeanalyse: Bei der statischen Codeanalyse werden automatisierte Tools verwendet, um den Code auf Fehler zu prüfen, ohne ihn auszuführen. Diese Tests untersuchen die Code-Struktur und stellen sicher, dass der Code gängigen Kriterien entspricht. Eine statische Analyse prüft den Code auf folgende Probleme:
Häufig erkannte Sicherheitslücken (SAST)
Programmierfehler
Verstöße gegen Codierungsstandards
Syntaxfehler oder Auffälligkeiten
Nicht definierte Werte
Tools zur statischen Codeanalyse unterscheiden sich, doch die Lösungen sollten den gesamten noch nicht getesteten Code eines Projekts scannen, bevor er in die Produktion gelangt. Ein statischer Code-Analyzer vergleicht den Code mit einer Reihe vordefinierter Standards und Regeln, um festzustellen, ob er diese erfüllt. Durch diesen Scan wird sichergestellt, dass bekannte Sicherheitsprobleme die CI/CD-Pipeline nicht in der Sicherheitsphase aufhalten.
Warum Shift-Left-Security wichtig ist
Mit Shift-Left-Security kann Sicherheit mit agilen Entwicklungsmethoden Schritt halten und zugleich neue Risiken durch Cloud-Technologien bewältigen.
Agile Methoden und DevOps-Praktiken verändern die Entwicklung und Bereitstellung von Software. Sie beschleunigen den Weg vom Schreiben des Codes über die Bereitstellung eines Mehrwerts für Kunden bis hin zu Erkenntnissen aus dem Markt und der Anpassung. Eigenverantwortliche Entwicklungsteams veröffentlichen Software kontinuierlich und schneller als je zuvor. Dabei treffen sie Technologie- und Implementierungsentscheidungen autonom und ohne Vermittlung durch andere.
Während sich der Rest des Unternehmens weiterentwickelt hat, sehen sich Sicherheitsteams mit höheren Anforderungen konfrontiert und werden häufig zunehmend zum Engpass. Ältere Application-Security-Tools und -Praktiken wurden für die langsamere Zeit vor der Cloud entwickelt und bringen Sicherheitsteams in den kritischen Pfad bei der Bereitstellung hochwertiger Anwendungen.
Shift-Left-Security befähigt Entwicklungsteams, ihre Produkte in ihrem eigenen Tempo abzusichern.
Um diese Herausforderungen zu bewältigen, begannen Unternehmen, ihre Sicherheitspraktiken zu ändern und Sicherheit nach links zu verlagern. Wenn die Verantwortung für Sicherheit im gesamten Unternehmen geteilt wird, können Entwicklungsteams ihre Produkte in ihrem eigenen Tempo absichern und zugleich die Zusammenarbeit zwischen Entwicklung und Sicherheit stärken. Sicherheitsteams können so unterstützend tätig sein und Fachwissen sowie Tools bereitstellen, die die Autonomie der Entwicklerinnen und Entwickler erhöhen und gleichzeitig die vom Unternehmen geforderte Aufsicht gewährleisten.
5 Vorteile von Shift-Left-Testing
Tests nach links zu verlagern, bietet zahlreiche Vorteile:
Schnellere Bereitstellung: Die Softwarebereitstellung wird beschleunigt, wenn Tests in die Pipeline integriert sind. Fehler werden vor der Bereitstellung erkannt und behoben, sodass sich Entwicklerinnen und Entwickler auf die Veröffentlichung neuer Funktionen konzentrieren können.
Verbesserte Sicherheitslage: Sicherheit ist bereits ab der Designphase ein Merkmal. Ein Modell geteilter Verantwortung sorgt dafür, dass Sicherheit durchgängig integriert ist – von der Entwicklung über die Bereitstellung bis hin zur Absicherung produktiver Workloads.
Geringere Kosten: Werden Schwachstellen und Fehler vor der Bereitstellung erkannt, sinken Risiken und Betriebskosten erheblich.
Bessere Sicherheitsintegration und höheres Tempo: Kosten und Zeitaufwand für die sichere Softwarebereitstellung sinken, da Sicherheitskontrollen nicht erst nach der Entwicklung nachgerüstet werden müssen.
Mehr Geschäftserfolg insgesamt: Ein größeres Vertrauen in die Sicherheit entwickelter Software und die Nutzung neuer Technologien ermöglichen ein stärkeres Umsatzwachstum und den Ausbau des Angebots.
Wie Sie sehen, bietet Shift-Left-Testing einige überzeugende Vorteile. Diese Vorteile gelten zweifellos auch für agile Methoden.
Mit Shift-Left-Testing erfolgreicher sein
Agile Entwicklungsprozesse und die zunehmende Komplexität von Softwarekomponenten haben viele Unternehmen dazu veranlasst, Tests weiter nach links zu verlagern, damit sie schneller auf Veränderungen am Markt reagieren können. Außerdem senkt Shift-Left-Testing die Kosten für die Behebung von Problemen in späteren Phasen der CI/CD-Pipeline, in denen mehr Ressourcen benötigt werden. Frühere Tests bedeuten auch ein geringeres Risiko und eine höhere Softwareintegrität. So erfüllen Sie die Erwartungen Ihrer Kunden und stärken den Ruf Ihres Unternehmens sowie dessen Profitabilität.