Der Shift-Left-Ansatz in der Sicherheit

August 22, 2022

Was ist der Shift-Left-Ansatz in der Sicherheit?

Beim Shift-Left-Ansatz werden Sicherheitsmaßnahmen in die frühen Phasen des Anwendungsentwicklungsprozesses integriert. Anfälliger Code wird während der Entwicklung und nicht erst in der Testphase identifiziert, was Kosten spart und die Sicherheit von Anwendungen verbessert.

Da Unternehmen ihre digitale Transformation vorantreiben und immer mehr Ressourcen in die Cloud verlagern, werden Anwendungssicherheit und Workload-Schutz immer wichtiger. Die Geschwindigkeit von Softwareveröffentlichungen, die Nutzung cloudbasierter Services, die Integration von Automatisierung in den Software-Entwicklungsprozess sowie die häufigen Innovationen in der Entwicklungs-Toolkette – dies alles sind Trends, die die Anwendungssicherheit untergraben.

Angreifer und Bedrohungsakteure suchen stets nach Einfallstoren, über die sie ihre Schaddaten einschleusen können. Da mittlerweile Unternehmen aller Größen ihre Cybersicherheitsmaßnahmen verstärkt haben, forschen die Hacker nun nach Schwachstellen in anfälligen Anwendungen und Workloads, die sie für die Umsetzung ihrer Ziele nutzen können. Und weil heute quasi jedes Unternehmen ein Software-Unternehmen ist, gibt es genügend Möglichkeiten, Anwendungen zu missbrauchen.

Bisher wurde Code erst in der letzten Phase vor der Veröffentlichung auf Sicherheit geprüft. Da die Entwickler in der Regel bis zur letzten Minute an einer Anwendung arbeiten, muss das Sicherheitsteam den Code dadurch unter großem Zeitdruck prüfen. Werden Schwachstellen aufgedeckt, wird entweder die Veröffentlichung verschoben oder das Entwicklerteam muss in kürzester Zeit alle Sicherheitsprobleme beheben, während das Sicherheitsteam so schnell wie möglich die Korrekturen prüft. Dies führt zu hohen Kosten und verzögert die Freigabe sowie die Markteinführung von Anwendungen. Wenn diese zudem in aller Eile veröffentlicht werden, steigt die Gefahr, eine Schwachstelle zu übersehen oder zu vernachlässigen. Anwendungssicherheit ist ein zentraler Teil der Software-Entwicklung und muss an erster Stelle stehen.

Unternehmen suchen nach Wegen, Sicherheitsmaßnahmen zu einem wichtigen Bestandteil des Entwicklungsprozesses zu machen und es den Entwicklern zu ermöglichen, sichere und zuverlässige Lösungen zu liefern, ohne dass diese selbst zu Sicherheitsexperten werden zu müssen – und ohne den Entwicklungsprozess von Anwendungen auszubremsen. Der Shift-Left-Ansatz unterstützt diesen Prozess, da er die Sicherheit cloudnativer Software und der Anwendungsentwicklung deutlich verbessert.

Vorteile des Shift-Left-Ansatzes

Automatisierung

Durch automatisierte Prozesse können viele menschliche Fehler und Produktionsprobleme vermieden werden. Zudem wird die Testabdeckung erweitert, da mehrere Tests gleichzeitig durchgeführt werden können und die Tester sich in der Zwischenzeit auf andere Aufgaben konzentrieren können.

Höhere Bereitstellungsgeschwindigkeit

Der Shift-Left-Ansatz reduziert die Zeit zwischen den Veröffentlichungen, da die DevOps- und Sicherheitsteams parallel arbeiten können. Außerdem wird die Software-Qualität verbessert, da die Teams Zeit haben, Probleme so wie früh möglich im Entwicklungsprozess zu identifizieren und zu beheben.

Sichere Anwendungen und Entwicklungsprozesse

Tests sind einer der häufigsten Gründe für Release-Verschiebungen. Der Shift-Left-Ansatz unterstützt eine schnellere Anwendungsbereitstellung, da während der Sicherheitsprüfung weiter programmiert werden kann. Durch kontinuierliche Tests können Sicherheitsfehler früher entdeckt werden, sodass die Korrekturen kleiner ausfallen und weniger Zeit kosten. Den DevOps- und Sicherheitsteams werden dadurch viel Ärger und lange Nächte erspart, während neue benutzerfreundliche Funktionen schneller bereitgestellt werden können.

Arten von Shift-Left-Sicherheitstools und -technologien

Shift-Left-Sicherheitstools lassen sich in zwei Kategorien einteilen: Sicherheitsscanner und Laufzeitschutztools. Sicherheitsscanner sind Testtools, die die Integration von Sicherheit in DevOps-Prozesse vereinfachen, während Laufzeitschutztools die Cybersicherheit gewährleisten und Anwendungen während der Ausführung schützen.

Sicherheitsscanner / Image-Bewertung

Static Application Security Testing (SAST)

SAST (dt. statische Tests zur Anwendungssicherheit) ist ein Verfahren für Anwendungssicherheit, mit dem Anwendungen auf Schwachstellen geprüft werden. Es handelt sich dabei um einen White-Box-Test. Das bedeutet, dass nicht die Funktionalität, sondern die inneren Bestandteile einer Anwendung getestet werden. Ein SAST-Tool repräsentiert den Blick eines Entwicklers auf den Code und nicht den eines Hackers. Es analysiert den Quellcode, ohne die Anwendung auszuführen, und kann somit frühzeitig Schwachstellen im Software-Entwicklungszyklus aufspüren, weshalb die Implementierung kostengünstiger ist. Das SAST-Verfahren unterstützt zwar alle Arten von Software, kann jedoch keine laufzeit- und umgebungsbezogenen Probleme erkennen, da es den Code nur statisch scannt.

Software Composition Analysis (SCA)

SCA identifiziert offenen Quellcode in einer Codebasis. Open-Source-Lizenzen unterliegen Beschränkungen, die sich nur schwer manuell nachverfolgen lassen. SCA automatisiert die Untersuchung von Paketverwaltungen, Manifesten, Quellcode, Binärdateien, Container-Images usw. und trägt die Ergebnisse in einer „Bill of Materials“ (Stückliste) zusammen, die wiederum mit zahlreichen Datenbanken abgeglichen wird, um Schwachstellen, Lizenzprobleme sowie Qualitätsprobleme in Bezug auf den Code aufzuspüren. Anhand der Ergebnisse kann das Sicherheitsteam zeitnah kritische Sicherheitslücken sowie rechtliche Probleme erkennen und diese entsprechend schnell beheben.

Dynamic Application Security Testing (DAST)

DAST ist ein Black-Box-Verfahren zur Überprüfung der Sicherheit in Web-Anwendungen, mit dem Schwachstellen in der Funktionalität von Anwendungen zur Laufzeit aufgespürt werden können. Das DAST-Tool stellt die Herangehensweise von Hackern nach, da die Tester keinen Einblick in die inneren Abläufe der Anwendung haben, und sucht nach Schwachstellen am Ende des Software-Entwicklungszyklus. Da das DAST-Verfahren laufende Anwendungen dynamisch analysiert, unterstützt es nur Web-Anwendungen und -Services.

Laufzeitschutztools

Runtime Application Self-Protection (RASP)

RASP-Tools (Runtime Application Self-Protection, dt. Selbstschutz für Laufzeitanwendungen) analysieren das Anwendungsverhalten im Kontext und erkennen somit Angriffe auf eine Anwendung in Echtzeit. Ein RASP-Tool fängt alle Aufrufe der Anwendung an ein System ab und validiert die Datenanfragen innerhalb der Anwendung. Im Grunde nutzt es die Anwendung selbst, um deren eigenes Verhalten zu überwachen. Es kann für Web-Anwendungen und nicht webbasierte Anwendungen eingesetzt werden, da die Schutzfunktionen auf dem Server der Anwendung laufen und zusammen mit der Anwendung gestartet werden.

Web-Anwendungsfirewall (WAF)

WAFs filtern, überwachen und blockieren schädlichen, in eine Anwendung eingehenden Datenverkehr und hindern nicht autorisierten Datenverkehr daran, die Anwendung zu verlassen. Ihr Verhalten wird durch Richtliniensätze bestimmt, mit denen sie schädlichen von harmlosem Datenverkehr unterscheiden. Ihre Effektivität hängt also wesentlich von den Sicherheitsrichtlinien des Unternehmens ab. Da es in einem Unternehmen Tausende WAFs und Millionen von Richtlinien geben kann, spielt Automatisierung eine wichtige Rolle, wenn es darum geht, die WAFs auf dem neuesten Stand zu halten.

Bot-Verwaltung

Die Bot-Verwaltung erkennt schädliche Bots und hindert sie durch den Einsatz von Blockier- und Zulassungslisten, Bot-Fallen sowie Ratenbegrenzungen an der Ausführung von Angriffen (z. B. DDoS-Angriffe auf die Anwendungsschicht (Schicht 7), SQL-Injektionen und Credential Stuffing). Hierbei ist Vorsicht geboten, denn eine zu streng eingestellte Bot-Verwaltung kann legitimen Webdatenverkehr und zudem Bots blockieren, die für interne Tests und zu Automatisierungszwecken genutzt werden. Die Bot-Verwaltung ist auf dem besten Weg, WAFs in den nächsten Jahren abzulösen, da Bot-Angriffe in einer digital transformierten Welt an Bedeutung gewinnen.

Scannen von Container-Images und serverlosen Funktionen

Um den Quellcode einer Anwendung und all ihre Abhängigkeiten in einer einzigen Datei zu bündeln, werden in der Anwendungsentwicklung heute Container genutzt. Ein Container-Image ist eine Datei, die mit der Container-Datei zusammengeführt wurde. Das Container-Image enthält den Code, die Laufzeit, Systemtools und Systembibliotheken sowie die Einstellungen einer Anwendung. Beim Scannen eines Container-Images werden die Inhalte eines Containers und der Build-Prozess eines Container-Images analysiert, um diese auf Sicherheitsprobleme und schlechte Praktiken zu prüfen.

Der Bedarf an Scans für Serverless Computing (serverlose Datenverarbeitung) steigt, da die meisten modernen Anwendungen mithilfe von Serverless Computing Funktionen hinzufügen, die für ein internes Build zu kompliziert oder zu teuer wären. Für die Nutzung dieser Services, die auf AWS, Azure usw. gehostet werden, müssen die Daten von der Unternehmensinfrastruktur zum Cloud-Service-Anbieter und an andere Orte verlagert werden. Den Schutz der Daten während der Übertragung und Speicherung übernimmt ausschließlich der Eigentümer der Anwendung und nicht der Cloud-Service-Anbieter, der nur seine eigene Infrastruktur schützt. Das Scannen von serverlosen Funktionen erfordert eine andere Art von Überwachung und Debugging als klassisch gehostete Anwendungen. Daher sind cloudnative Lösungen sind für diesen Zweck die beste Wahl.

Schutz für Workloads

Moderne Anwendungen sind in der gesamten Cloud-Infrastruktur als Container, Kubernetes und serverlose Architekturen verteilt. Diese Umgebungen sind ständigen Änderungen unterworfen und das Hinzufügen neuer Services vergrößert die Angriffsfläche. Zudem ist es schwierig, den Überblick über ein derart komplexes und sich veränderndes Ökosystem zu behalten.

Beim Workload-Schutz werden Sicherheitskontrollen auf der Ebene der einzelnen Anwendungs-Workloads angewendet. Dies ermöglicht es Unternehmen, Schwachstellen im Laufe des gesamten Anwendungslebenszyklus zu identifizieren und zu beheben, die Einhaltung von Vorschriften durchzusetzen sowie Sicherheitskonfigurationen und Best Practices für Container, Kubernetes und Workloads zu implementieren. Eine Lösung zum Schutz von Cloud-Workloads sollte laterale Bewegungen verhindern, Verhaltensanomalien aufdecken, die Einhaltung von Compliance-Vorschriften überwachen und die Angriffsfläche verringern.

Best Practices für einen Shift-Left-Ansatz

Integration von Sicherheitsmaßnahmen in die Entwicklung neuer Anwendungen

An welcher Stelle sollte Sicherheit in den Prozess einbezogen werden? Von Anfang an. Sicherheit sollte vom ersten Moment an, in dem die Entwickler mit der Programmierung beginnen, Teil des Entwicklungsprozesses sein. Mithilfe von APIs lassen sich Sicherheitsmaßnahmen in die Toolsets von Entwicklern integrieren, sodass das Sicherheitsteam Probleme aufspüren kann, bevor der Code auf den Main Branch übertragen wird.

Integration von Sicherheitsmaßnahmen für Anwendungen und Container in die DevOps-Toolkette

Scans stehen am Anfang des Shift-Left-Ansatzes für Anwendungssicherheit. Sie sind jedoch nur hilfreich, wenn die Ergebnisse dem DevOps-Team zur Verfügung stehen. Der große Vorteil des Shift-Left-Ansatzes liegt darin, dass er dem DevOps-Team die Möglichkeit gibt, Hand in Hand mit dem Sicherheitsteam zu arbeiten. Deshalb sollten die Ergebnisse in einer Web-IDE und einem Web-Pipeline-Bericht bereitgestellt werden, damit die Entwickler sie nutzen können. Automatisieren Sie die Erstellung einer „Software Bill of Materials“ (Software-Stückliste, SBOM), die ein Inventar aller Abhängigkeiten in einem Projekt zusammenträgt und Container-Images sowie serverlose Funktionen scannt, um bekannte Schwachstellen in einem Container-Image, Projekt-Verzeichnis oder serverlosen Service aufzudecken.

Kombination von Scans, um Transparenz zu verbessern und richtig zu priorisieren

Die einzelnen Scans dienen unterschiedlichen Zwecken. SAST und DAST ergänzen einander und sind für die Anwendungssicherheit von grundlegender Bedeutung. Auch Unternehmen, die Open-Source-Bibliotheken verwenden – was in der Regel der Fall ist –, werden von SCA profitieren. Alle Scans sollten in mehrere Schritte der CI/CD-Pipeline (Continuous Integration/Continuous Delivery) integriert sein, damit auf diese Weise Schwachstellen blockiert werden, bevor diese eine Registrierung erreichen. Zudem sollten Laufzeit-Scans durchgeführt werden, um die Anwendung vor neuen CVEs (Common Vulnerabilities and Exposures, dt. bekannte Schwachstellen und Anfälligkeiten) zu schützen.

Der CrowdStrike-Ansatz

Das Motto von CrowdStrike lautet: We Stop Breaches.

CrowdStrike definiert Sicherheit mit einer der weltweit fortschrittlichsten cloudnativen Plattformen neu, schützt Workloads in der Cloud, verhindert Kompromittierungen und ermöglicht es Unternehmen, Cloud-Anwendungen schnell und zuverlässig zu erstellen, auszuführen und zu sichern.

CrowdStrike Falcon Cloud Workload Protect automatisiert Sicherheit, erkennt und stoppt verdächtige Aktivitäten, Zero-Day-Angriffe und riskantes Verhalten in allen Clouds, Containern und Kubernetes-Anwendungen. Durch die Integration in CI/CD-Workflows bleiben Workloads geschützt, während das DevOps-Team schnell und ohne Leistungseinbußen arbeiten kann.

Die CrowdStrike Falcon-Plattform nutzt die CrowdStrike Security Cloud, um Echtzeit-Angriffsindikatoren, Bedrohungsanalysen, veränderte Vorgehensweisen von Angreifern sowie angereicherte Telemetriedaten aus dem gesamten Unternehmen auszuwerten. Dadurch kann die CrowdStrike-Plattform äußerst präzise Bedrohungen erkennen, automatisierte Schutz- und Behebungsmaßnahmen bereitstellen, zuverlässige Bedrohungssuchen durchführen und Schwachstellen priorisieren.

Zudem bieten wir vollständig verwaltete Bedrohungserkennung und Reaktion für Cloud-Workloads sowie unsere branchenführende Garantie zur Verhinderung von Kompromittierungen in Höhe von bis zu 1 Million US-Dollar für die Kosten einer Reaktion, sollte es in der durch CrowdStrike Falcon Complete geschützten Umgebung zu einer Kompromittierung kommen.

Erfahren Sie mehr darüber, wie Sie mit dem Shift-Left-Ansatz die Sicherheit Ihrer Anwendungen verbessern können.