TL; DR
In den letzten Jahren hat sich die Technologiebranche vehement für das Konzept des „Shift Left“ in der Softwareentwicklung eingesetzt und sich für eine frühzeitige Integration von Sicherheitspraktiken in den Entwicklungslebenszyklus eingesetzt. Ziel dieser Bewegung ist es, Entwicklern die Verantwortung zu übertragen, die Sicherheit ihres Codes von Beginn des Projekts an zu gewährleisten. Obwohl die Absichten hinter diesem Ansatz edel sind, zeichnet die Realität ein differenzierteres Bild – eines, bei dem die vereinfachte Vorstellung, sich ausschließlich auf die Entwickler zu verlassen, aufrechterhalten wird Sicherheit der Software-Lieferkette erweist sich als unzureichend. In diesem Artikel stelle ich einen ergänzenden Ausgleichsansatz vor: CISO-gesteuerte SDLC-Leitplanken – automatische Kontrollmaßnahmen, die die Sicherheitsrichtlinien von SDLC steuern oder durchsetzen.
Wer hat meinen Käse zurückgelassen?
Das Shift-Left-Paradigma zielt im Wesentlichen darauf ab, Sicherheitsbedenken in der Anfangsphase der Entwicklung auszuräumen, und erwartet von den Entwicklern, dass sie Sicherheitsmaßnahmen proaktiv in ihren Code einbetten. Es handelt sich um eine ansprechende Ideologie, bei der Entwickler beim Schreiben und Bereitstellen ihres Codes damit beauftragt werden, Schwachstellen zu identifizieren und Sicherheitskontrollen zu implementieren.
Allerdings stößt dieser idealistische Ansatz in der praktischen Umsetzung auf erhebliche Herausforderungen. Obwohl sie sich mit der Programmierung auskennen, mangelt es den Entwicklern möglicherweise an umfassendem Fachwissen zu Sicherheitstechniken und Best Practices. Ihr Hauptaugenmerk liegt auf der Erfüllung funktionaler Anforderungen, und es ist unrealistisch, von ihnen ein umfassendes Verständnis der sich ständig weiterentwickelnden Landschaft der Cybersicherheit zu erwarten.
Darüber hinaus führen Zeitbeschränkungen und Projektdruck häufig zu Kompromissen zwischen Sicherheit und Einhaltung von Fristen. In der Eile, Funktionen zeitnah bereitzustellen, übersehen Entwickler möglicherweise versehentlich potenzielle Sicherheitslücken oder wenden weniger sichere Codierungspraktiken an, sodass Schwachstellen erst in späteren Phasen behoben werden. Letztlich sind ihre KPIs geschwindigkeitsorientiert und Sicherheit wird für die meisten von ihnen immer an zweiter Stelle stehen.
Geben Sie CI/CD-Leitplanken ein
Hier wird die Notwendigkeit der Implementierung von Sicherheitsleitplanken in der Continuous Integration/Continuous Deployment (CI/CD)-Pipeline deutlich. Leitplanken fungieren als automatisierte Kontrollpunkte, die in die Entwicklungspipeline eingebettet sind und sicherstellen, dass Sicherheitsmaßnahmen nicht ausschließlich auf manuellen Eingriffen oder dem Fachwissen oder der Motivation einzelner Entwickler beruhen.
Leitplanken fungieren als proaktive Gatekeeper, die Sicherheitsstandards, Richtlinien und Regeln während des gesamten Softwareentwicklungslebenszyklus (SDLC) ständig überwachen und durchsetzen. Diese automatisierten Prüfungen können verschiedene Sicherheitsaspekte umfassen, einschließlich, aber nicht beschränkt auf, das Blockieren fehlerhafter Pakete, das Stoppen von Code, der kritische Schwachstellen enthält, statische Code-Analysetests nicht besteht oder problematische Abhängigkeiten aufweist, und die Einhaltung von Compliance-Standards oder zur Sicherung von SDLC-Richtlinien (z. B. Code). Überprüfung für jedes Commit).
Mit Policy-as-Code-Konzepten kann man nahezu jede Regel erstellen, die man sich als Leitplanke vorstellen kann. Hier sind einige Beispiele für Leitplankenregeln im Einklang mit NIST 800-204D:
Beispielhafte Leitplankenregeln:
- Entwickler-Workstation
- Überprüfen Sie die Endpoint-Sicherheitssuite der Entwickler-Workstation
- SCM
- Überprüfen Sie die Branch-Protection-Rules: Erzwingen Sie mehrere spezifische Überprüfungen
- Stellen Sie sicher, dass CI-Dateien nur von autorisiertem Personal geändert werden
- Stellen Sie sicher, dass das Scannen von Geheimnissen durchgeführt wird und keine Geheimnisse erkannt werden.
- CI
- Überprüfen Sie, ob das Code-Scannen vorhanden ist.
- Überprüfen Sie, ob die Ergebnisse des Code-Scans unter einem vordefinierten Balken liegen
- Abhängigkeiten
- Überprüfen Sie die Open-Source-Lizenzierung.
- Stellen Sie sicher, dass Open-Source-Schwachstellen den Unternehmensrichtlinien entsprechen
- Artifacts
- Stellen Sie sicher, dass die richtigen Identitätssignaturen vorhanden sind.
- Überprüfen Sie die endgültigen Artefakt-Schwachstellen.
Leitplanken, keine Handläufe
Durch die Integration von Leitplanken in die CI/CD-Pipeline können Unternehmen Sicherheitsprotokolle systematisch durchsetzen und zu einem sicheren Produkt führen, ohne sich bei der Gewährleistung umfassender Sicherheitsmaßnahmen ausschließlich auf die Entwickler verlassen zu müssen. Unter Berücksichtigung der Tatsache, dass Entwickler aus Gründen der Entwicklungsgeschwindigkeit möglicherweise Sicherheitsmaßnahmen umgehen, macht der Guardrails-Ansatz diese Entscheidungen unmöglich oder zumindest sichtbar, sodass sie berücksichtigt werden können – sowohl auf der Ebene eines einzelnen Builds (z. B. bei der Entscheidung über die Vertrauenswürdigkeit von Artefakten). ) und auf Organisationsebene (Verstehen, was von den Entwicklern der Organisation erwartet werden kann und was nicht). Automatisierte Tools können potenzielle Schwachstellen oder Nichteinhaltungsprobleme kennzeichnen oder sogar blockieren, bevor die neue Version für die Produktion freigegeben oder an den Kunden geliefert wird. Schließlich ist die Behebung eines Sicherheitsproblems bereits in der Entwicklungsphase und nicht erst nach der Auslieferung viel einfacher, schneller und kostengünstiger.
Man muss sich unbedingt darüber im Klaren sein, dass eine Verschiebung nach links zwar die Beteiligung von Entwicklern an Sicherheitspraktiken fördert, andere Stakeholder – Sicherheitsexperten, DevOps-Ingenieure und Qualitätssicherungsteams – jedoch nicht von ihren Rollen entbinden sollte. Wenn Sie ein Produktsicherheits-, AppSec-, DevSecOps- oder CISO sind, dann wissen Sie bereits, dass eine „Verlagerung der Verantwortung nach links“ gegenüber den Entwicklern Sie nicht von der Verantwortung nimmt. Da die meisten CISOs und ihre Teams nicht aus der Forschung und Entwicklung kommen, waren Softwareentwicklungsumgebungen für sie in der Vergangenheit außer Sichtweite. Traditionell konzentrierten sie sich auf Betriebssicherheit, Netzwerksicherheit und organisationsübergreifende Konnektivität. Der Leitplanken-Ansatz ist eine Möglichkeit, die CISOs „behutsam“ in den Wilden Westen der Entwicklungsumgebungen zu bringen und die Kontrolle darüber zurückzugewinnen, wofür sie verantwortlich sind. Mit „behutsam“ meine ich „gemeinsam“. Da es sich bei der Produktsicherheit um eine gemeinsame Anstrengung von Sicherheits- und Entwicklungsteams handelt, ist die Zusammenarbeit zwischen diesen Einheiten bei der Entwicklung und Implementierung robuster Leitplanken von entscheidender Bedeutung, die die CI/CD-Pipeline gegen potenzielle Sicherheitsbedrohungen schützen, ohne die Entwicklungsgeschwindigkeit zu beeinträchtigen.
Die Integration von Shifting-Left-Prinzipien mit der Einrichtung von Leitplanken in der CI/CD-Pipeline ist eine gute Balance. Die Entwickler bleiben dafür verantwortlich, sicheren Code zu schreiben und grundlegende Sicherheitsprinzipien zu verstehen, während das Sicherheitsteam über die Standards entscheidet, die das Produkt erfüllen muss, um veröffentlicht zu werden. Anschließend werden Leitplanken entsprechend in Tools und Prozesse automatisiert, die als Sicherheitsnetz fungieren und Sicherheitsstandards und SDLC-Richtlinien kontinuierlich überwachen und verstärken. Leitplanken sind ein wesentlicher Schritt hin zu Produkten, die durch Design und Standard sicher sind.
Fazit
Zusammenfassend lässt sich sagen, dass das Konzept der Verschiebung nach links zwar gut gemeint ist, aber nicht in der Lage ist, eine umfassende Softwaresicherheit allein durch die Beteiligung der Entwickler zu gewährleisten. Um die Integrität und Vertrauenswürdigkeit des endgültigen Software-Artefakts zu stärken, müssen Unternehmen die Implementierung von Leitplanken innerhalb der CI/CD-Pipeline berücksichtigen. Dieser kombinierte Ansatz verbessert nicht nur den Sicherheitsstatus von Software, sondern fördert auch eine kollaborative Umgebung, in der Entwickler, Sicherheitsexperten und Automatisierungstools synergetisch auf ein gemeinsames Ziel hinarbeiten, nämlich die Entwicklung sicherer Software.
Diese Inhalte werden Ihnen von Scribe Security zur Verfügung gestellt, einem führenden Anbieter von End-to-End-Sicherheitslösungen für die Software-Lieferkette, der modernste Sicherheit für Code-Artefakte sowie Code-Entwicklungs- und Bereitstellungsprozesse in der gesamten Software-Lieferkette bietet. Weitere Informationen.