Getty Images/iStockphoto
Mit bewährten DevOps-Sicherheitspraktiken Bedrohungen trotzen
Sie wissen nicht, wo Sie anfangen sollen, wenn es um die Sicherung Ihrer DevOps-Umgebung geht? Mit diesen fünf Maßnahmen können Sie den Schutz gegen Cyberangriffe stärken.
Die Digitalisierung beherrscht alle Aspekte des modernen Lebens, von sozialen Kontakten über Online-Banking bis hin zum Kauf von Produkten und Dienstleistungen. Und obwohl diese Abhängigkeit von der Technologie zahlreiche Vorteile mit sich bringt, setzt sie auch große Mengen sensibler Daten den Risiken aus, die das Internet mit sich bringt.
Um in dem sich schnell verändernden Geschäftsumfeld von heute einen Wettbewerbsvorteil zu erlangen, wollen Unternehmen den Benutzern ihre Dienste so schnell wie möglich zur Verfügung stellen, was eine schnelle Entwicklung von Anwendungen und deren Überführung in die Produktion erfordert. Die DevOps-Methode wird weltweit eingesetzt, um die schnelle Bereitstellung von hochwertiger Software zu unterstützen.
Wenn DevOps-Teams jedoch keine bewährten Sicherheitspraktiken anwenden, sind die von ihnen erstellten Anwendungen anfällig für Cyberbedrohungen. Die Entwicklung von Softwareprojekten erfordert heute die Einbeziehung von Sicherheitsaspekten in das DevOps-Framework – ein Ansatz, der als DevSecOps bekannt ist – , um die ständig wachsende Zahl von Cyberangriffen zu bekämpfen.
Der Wechsel von DevOps zu DevSecOps
DevOps basiert auf der Zusammenarbeit zwischen IT-Betriebs- und Entwicklungsteams, und DevSecOps erweitert dieses Modell um eine Sicherheitskomponente. DevSecOps integriert zusätzliche Sicherheitskontrollen und Best Practices in jede Phase des DevOps-Lebenszyklus, um robustere und sicherere Softwareprojekte zu schaffen.
In einer DevSecOps-Umgebung arbeiten Tools, Praktiken, Prozesse und Menschen harmonisch zusammen, um die Sicherheit in jeder Phase des Lebenszyklus der Softwareentwicklung zu gewährleisten: Planung, Codierung, Tests, Bereitstellung und Überwachung. Die Integration der Sicherheit in die CI/CD-Pipelines hilft den Entwicklungsteams, Sicherheitsprobleme zu erkennen und zu beheben, bevor eine Anwendung in Produktion geht.
Um Sicherheit in den DevOps-Lebenszyklus zu integrieren, sollten Sie zunächst die folgenden fünf bewährten Methoden befolgen.
1. Fördern Sie ein Sicherheitsdenken im gesamten Unternehmen
In der Vergangenheit waren DevOps-Teams möglicherweise der Ansicht, dass Sicherheit nicht in ihren Zuständigkeitsbereich fällt. Beispielsweise könnten sich Entwickler bei der Entwicklung ihrer Anwendungen auf die Verbesserung der Benutzerfreundlichkeit konzentrieren, ohne sich die Zeit zu nehmen, ihre Software auf Schwachstellen für verschiedene Cyberbedrohungen zu überprüfen.
Diese Denkweise zu ändern ist der wichtigste Teil einer erfolgreichen Integration von Sicherheit in den DevOps-Lebenszyklus. Ein DevSecOps-Ansatz sollte Sicherheit als ein Kernkonzept betrachten, das Entwickler, IT-Betrieb und sogar das Management von Anfang an bei der Entwicklung von Softwareprojekten berücksichtigen müssen.
2. Verwendung automatisierter DevOps-Sicherheits-Tools
Softwareprojekte können Tausende von externen Abhängigkeiten enthalten, um ihre Funktionen bereitzustellen. Die manuelle Überprüfung jeder Komponente eines Softwareprojekts auf Sicherheitsschwachstellen ist entmutigend und es ist praktisch unmöglich, eine 100-prozentige Genauigkeit zu erreichen.
Durch den Einsatz automatisierter Tools können jedoch viele Sicherheitsschwachstellen beseitigt und der Lieferprozess schnell verbessert werden. Die Automatisierung ermöglicht es Entwicklern, jeden Code, jede Konfiguration, jeden API-Aufruf, jede Softwarebibliothek und jede Abhängigkeit zu überprüfen, um sicherzustellen, dass sie sicher und nicht anfällig für Cyberbedrohungen sind.
Im Folgenden finden Sie einige Beispiele für automatisierte Sicherheits-Tools, die in den DevOps-Lebenszyklus integriert werden können:
- Tools zum Scannen von Schwachstellen. Diese Tools scannen den Quellcode und andere Komponenten aller Projekte, um sicherzustellen, dass sie frei von Schwachstellen sind. Viele Entwickler verwenden zum Beispiel Container-Images aus Public Repositories. Um deren Sicherheit zu gewährleisten, sollten solche Images auf Schwachstellen gescannt werden, bevor sie in die Projektdateien integriert werden. Trivy ist ein Beispiel für einen Schwachstellenscanner für Container-Images.
- Tools zur statischen Prüfung der Anwendungssicherheit (SAST). Diese Tools scannen den Quellcode eines Softwareprojekts auf unsicheren Code. SonarQube ist ein beliebtes Open Source Tool zur Überprüfung von SAST-Code.
- Tools für die dynamische Prüfung der Anwendungssicherheit (DAST). Im Gegensatz zu SAST-Tools führen DAST-Tools Tests an der laufenden Anwendung durch, zum Beispiel an ihrer Weboberfläche, ohne auf ihren Quellcode zuzugreifen.
- Tools zum Scannen der IT-Infrastruktur. Moderne Webanwendungen umfassen Cloud-, lokale und On-Promises-Umgebungen. Obwohl die lokale Infrastruktur leicht auf Schwachstellen gescannt werden kann, gilt dies nicht für Anwendungen, die von einem externen Cloud-Anbieter gehostet werden. Um dieses Problem zu entschärfen, sollten Sie Tools zum Scannen der Cloud-Infrastruktur einsetzen, um Fehlkonfigurationen zu erkennen, die die Sicherheit der bereitgestellten Anwendung beeinträchtigen können.
- Visualisierungs-Tools. Diese Tools ermöglichen es allen an einem Softwareprojekt beteiligten Teams, miteinander zu kommunizieren und sicherheitsrelevante Informationen auszutauschen.
3. Privilegierte Zugriffsverwaltung verwenden
Privileged Access Management (PAM) bezieht sich auf Identitäts-Tools und -Technologien, die alle Benutzer, Prozesse, Systeme und Dienste verfolgen, die auf die IT-Umgebung eines Unternehmens zugreifen.
PAM bietet vollständige Transparenz darüber, wer privilegierte Konten verwendet, und verfolgt die Aktivitäten dieser Benutzer, während sie angemeldet sind. In DevOps-Workflows können Sicherheitslücken, die Entwickler und IT-Ops hinterlassen, Sicherheitsschwachstellen in das System einführen und es Cyberbedrohungen aussetzen.
Softwareprojekte erfordern beispielsweise die Kommunikation mit verschiedenen unterstützenden Komponenten, wie Konfigurationsdateien, APIs, Datenbanken, Codedateien und Remote-Konten. Da für die Kommunikation mit diesen Einheiten eine Authentifizierung erforderlich ist, speichern Entwickler während der Entwicklungs- und Testphase manchmal sensible Anmeldedaten in Codedateien. Wenn sie jedoch vergessen, diese Konten nach dem Start der Anwendung zu entfernen, können Bedrohungsakteure diese böswillig infiltrieren.
Ebenso benötigen DevOps-Teams Zugriff auf Projekt-Builds, Codedateien, Test-Tools und Testserver. Um sofortigen Zugriff auf Projektressourcen zu erhalten, geben Teammitglieder möglicherweise Zugangsdaten und private Schlüssel über unsichere Kanäle an ihre Kollegen weiter. Wird vergessen, diese Konten nach dem Start zu entfernen, kann dies die Sicherheit der Anwendung gefährden. Die Verwendung von PAM kann diese Art von Sicherheitslücken entschärfen.
4. Erstellen und Durchsetzen von Sicherheitsrichtlinien
Durch die Erstellung und Durchsetzung von Sicherheitsrichtlinien wird sichergestellt, dass in der gesamten IT-Umgebung des Unternehmens Best Practices angewandt werden, um Sicherheitsrisiken zu minimieren.
Unternehmen sollten Sicherheitsrichtlinien für Zugriffskontrollen, Konfigurationsmanagement, Quellcodeprüfung und Kriterien für die Auswahl von Sicherheits-Tools festlegen. Beispielsweise könnte eine Organisation bestimmte Verfahren festlegen, die Entwickler befolgen müssen, um sicheren Code zu erstellen.
5. Regelmäßige Penetrationstests durchführen
Bei Penetrationstests werden dieselben Techniken angewandt, mit denen Bedrohungsakteure Schwachstellen in der IT-Infrastruktur und den Anwendungen des Zielunternehmens ausnutzen.
Da DevOps nicht von Natur aus auf Sicherheit ausgerichtet ist, sollten Unternehmen ein DevSecOps-Modell anwenden, um sicherzustellen, dass die Sicherheitsverfahren, die sie in ihrer DevOps-Pipeline implementieren, erfolgreich sind. Firmen sollten ihre Anwendungen und die zugrunde liegende IT-Infrastruktur regelmäßig Penetrationstests unterziehen, um festzustellen, ob Bedrohungsakteure Schwachstellen ausnutzen können, um in die IT-Umgebung des Unternehmens einzudringen.