Entwicklung besserer, sicherer Apps 5 Tipps für die DevSecOps-Strategie

Von Raj Rajamani * 4 min Lesedauer

Anbieter zum Thema

Cloud-native und Container-basierte Anwendungen sorgen für eine zunehmend komplexe Sicherheitslage. Die fünf hier genannten Best Practices helfen Unternehmen dabei, ihre Apps und Infrastrukturen besser abzusichern.

In Zeiten Cloud-nativer und containerisierter Anwendungen muss Sicherheit fester Bestandteil der DevOps-Prozesse sein.
In Zeiten Cloud-nativer und containerisierter Anwendungen muss Sicherheit fester Bestandteil der DevOps-Prozesse sein.
(Bild: ArtemisDiana - stock.adobe.com)

Die Cloud entwickelt sich schnell zu einem maßgeblichen Schlachtfeld für Cyberangriffe – und die Kosten für eine Kompromittierung waren noch nie höher. Die durchschnittlichen Kosten für eine Sicherheitsverletzung betrugen laut IBM im vergangenen Jahr etwa 4,5 Millionen US-Dollar.

Der CrowdStrike 2023 Global Threat Report besagt, dass die Cloud-Exploits um 95 Prozent im Jahr 2022 zugenommen haben und dass sich die Fälle, an denen Cloud-affine Bedrohungsakteure beteiligt waren, verdreifacht haben. Diese Zunahme der auf die Cloud ausgerichteten Bedrohungsaktivitäten und ihre Auswirkungen haben dazu geführt, dass die Sicherheit in allen Unternehmen – insbesondere in DevOps-Teams – priorisiert wird.

Sicherheit in der Cloud ist eine gemeinsame Aufgabe

Die Sicherheitsteams sind für den Schutz vor Risiken verantwortlich, aber sie dürfen nicht die einzigen sein. Jedes Team muss versuchen, anderen Abteilungen in der Pipeline zu vermitteln, warum ihr Beitrag zum Entwicklungsablauf wichtig ist.

Mit dem Wachstum von Cloud-nativen Anwendungen und der Nachfrage nach schnellerer Bereitstellung von Anwendungen oder Continuous Integration und Continuous Delivery (CI/CD) nimmt die Verwendung von Containern stark zu. Da Unternehmen oftmals Container-gestützte und serverlose Technologien sowie Cloud-basierte Dienste einsetzen, entstehen komplexere Sicherheitsprobleme.

Anwendungsentwickler müssen ein Gleichgewicht zwischen Geschwindigkeit und Sicherheit finden. Früher war Sicherheit für DevOps ein Thema, über das erst nach der Entwicklung nachgedacht wurde, aber das hat sich geändert. Entwicklerinnen und Entwickler, die früher bis zur letzten Minute programmieren mussten, sodass kaum Zeit blieb, Schwachstellen zu finden und zu beheben, nutzen jetzt Shift-Left-Funktionen, um sicherzustellen, dass anfälliger Code nicht in die Produktion gelangt.

DevSecOps hilft Developern außerdem, Schwachstellen früher im Entwicklungsprozess einer Anwendung zu finden und zu beheben. Schwachstellen, die während des Entwicklungsprozesses ausfindig gemacht und beseitigt werden, sind weniger kostspielig und können schneller entfernt werden.

Durch die Automatisierung von Tests, Fehlerbehebung und Bereitstellung gewährleistet DevSecOps eine höhere Softwaresicherheit, ohne die Entwicklungszyklen zu verlangsamen. Ziel ist es, die Sicherheit zu einem Teil des Softwareentwicklungs-Workflows zu machen, anstatt mehr Probleme während der Laufzeit angehen zu müssen.

Im Folgenden finden Sie fünf wichtige Tipps für eine sichere und effiziente Anwendungsentwicklung:

1. Sicherheitsüberprüfungen und -tests automatisieren: Jede DevSecOps-Pipeline sollte eine Kombination oder Variation der unten aufgeführten Tools und Funktionen nutzen. Eine automatisierte und vereinheitlichte Lösung bietet einen umfassenden Überblick und adressiert Probleme, wenn sie auftreten, während sie gleichzeitig Warnungen ausgibt, die Einhaltung von Vorschriften durchsetzt und individuelle Berichte mit relevanten Erkenntnissen für die DevOps- und Sicherheitsteams bereitstellt.

  • SAST: Statisches Testen der Anwendungssicherheit, um einen unsicheren Code zu erkennen, bevor er verwendet wird.
  • SCA: Analyse der Zusammensetzung von Software zur Erkennung von Schwachstellen in der Programmbibliothek, bevor sie entstehen.
  • CSA: Container-Scan-Analyse zur Erkennung von Schwachstellen in der Betriebssystembibliothek und zur Risikominderung.
  • IaC-Scannen: Infrastructure-as-Code-Scanning, um Schwachstellen in der Infrastruktur zu erkennen.
  • ASPM: Application Security Posture Management zur Erkennung von Anwendungsschwachstellen und -risiken nach der Bereitstellung.

2. Integration mit Developer-Toolchains: Entwickler und Sicherheitsteams sollten sich auf eine einzige Schnittstelle und Single Source of Truth konzentrieren können. Vor diesem Hintergrund gilt es, die Toolchain zu optimieren und zu konsolidieren. Je besser die Verbindung zwischen Sicherheit und App-Entwicklung ist, desto früher können Bedrohungen erkannt und die Implementierung beschleunigt werden. Die nahtlose Integration mit Jenkins, Jira, Bamboo, GitLab und anderen Cloud-Sicherheitslösungen ermöglicht es DevOps-Teams, schneller auf Vorfälle zu reagieren und diese mit den bereits verwendeten Toolsets zu beheben.

3. Expertise mit anderen Teams teilen: DevSecOps wird durch Technologie ermöglicht, der Prozess beginnt jedoch mit dem Menschen. Hat ein DevSecOps-Team eine Kompromittierung behoben, sollte es die gewonnenen Erkenntnisse und Schritte zur Schadensbegrenzung weitergeben. Einige Unternehmen ernennen einen Sicherheitsbeauftragten, der dazu beiträgt, das Verantwortungsbewusstsein für die Sicherheit innerhalb des Teams zu stärken.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Noch bevor die Sicherheitsprozesse geändert und angepasst werden, sollte man alle beteiligten Teams in diese einbinden. Gleichzeitig gilt es sicherzustellen, dass jeder die Vorteile von DevSecOps versteht. Sicherheitstests sind idealerweise fester Bestandteil von Projektstarts und Zielvereinbarungen. Den Teams sind Schulungen, Weiterbildungen und Tools bereitzustellen, um ihnen die Arbeit zu erleichtern.

4. Sicherheitslage messen und evaluieren: Zunächst einmal empfiehlt es sich, potenzielle Schwachstellen und Sicherheitsrisiken bei der Softwareentwicklung zu ermitteln. Auf Basis dessen lässt sich ein Plan erstellen und umsetzen, der für das jeweilige Unternehmen oder Team geeignet ist. Wichtig ist es, die Ergebnisse zu verfolgen und zu messen, z. B. den Zeitaufwand für die Behebung von Sicherheitslücken nach der Zusammenführung von Codes. Idealerweise lassen sich Muster in der Art oder Ursache dieser Schwachstellen identifizieren und Anpassungen vornehmen, um sie früher zu erkennen und zu beheben.

5. „Shift Right“ und „Shift Left“: Die Erkennung von Schwachstellen garantiert nicht immer Sicherheit. „Shift Right“ ist wichtig, um sich der Sicherheitslage von Anwendungen und APIs in der Produktion bewusst zu werden. Durch den Einsatz von Application Security Posture Management (ASPM) decken Teams potenzielle Schwachstellen im Anwendungscode nach der Bereitstellung auf, die den Zugriff auf andere wichtige Daten und Systeme durch Hintertüren ermöglichen könnten.

Während Sicherheit und Entwicklung früher getrennt waren, verschwimmen die Grenzen jetzt so weit, dass die Sicherheit mehr und mehr in die tägliche Arbeit der Entwickler und Entwicklerinnen integriert wird. Der Vorteil ist, dass diese moderne Vorgehensweise den Teams im gesamten Unternehmen ein gemeinsames Verständnis vor Augen führt, was wiederum das Geschäftswachstum fördert. DevSecOps erfordert die Zusammenarbeit der Teams und ermöglicht es dem Unternehmen, den Kunden sicherere Anwendungen zu liefern, ohne die Sicherheit zu gefährden.

Sicherheit sollte bestehende Geschäftsziele nicht behindern oder die Softwareentwicklung verlangsamen. Sie soll es ermöglichen, diese Ziele sicher und mit minimalem Risiko zu erreichen.

* Über den Autor
Raj Rajamani ist Chief Product Officer bei CrowdStrike.

Bildquelle: CrowdStrike

(ID:49861414)