Einleitung

Abgeschlossen

DevOps-Methoden ermöglichen Es Entwicklungsteams, Anwendungen schneller und häufiger bereitzustellen. Geschwindigkeit ohne Sicherheit schafft jedoch Risiken. Der schnelle Wechsel zu einer Sicherheitslücke hilft Ihrem Unternehmen nicht. Die Herausforderung besteht darin, die Geschwindigkeit aufrechtzuerhalten und gleichzeitig sicherzustellen, dass Anwendungen während ihres gesamten Lebenszyklus sicher bleiben.

Die Sicherheits-Herausforderung in der modernen Entwicklung

DevOps-Teams haben Zugriff auf beispiellose Infrastruktur und Skalierung über Cloudplattformen. Diese Barrierefreiheit bietet Chancen, macht Organisationen aber auch komplexen Sicherheitsbedrohungen zugänglich. Jede Anwendungsbereitstellung riskiert potenziell die Geschäftliche Sicherheit, Kundendaten und den Ruf der Organisation.

Herkömmliche Sicherheitsansätze schlagen in modernen Umgebungen fehl: Umkreisbasierte Sicherheitsmodelle, die Rechenzentren mit Firewalls und Netzwerksteuerelementen geschützt haben, werden nicht in verteilte Cloudumgebungen übersetzt. Anwendungen umfassen mehrere Dienste, Regionen und Cloudanbieter. Datenflüsse zwischen Mikroservices, APIs und externen Integrationen. Der traditionelle Burg-und-Moat-Ansatz bietet keinen angemessenen Schutz mehr.

Moderne Sicherheit erfordert mehrere Verteidigungsebenen: Organisationen müssen Sicherheit auf mehreren Ebenen einführen, einschließlich Anwendungscode, Infrastruktur, Netzwerk, Daten und Identität. Sicherheit kann nicht als einzelner Prüfpunkt vorhanden sein. Um Bedrohungen zu erkennen und zu verhindern, muss es im gesamten Technologie-Stack integriert sein, mit mehreren Möglichkeiten.

Der DevSecOps-Ansatz

Wie stellen Sie sicher, dass Anwendungen sicher sind und mit kontinuierlicher Integration und kontinuierlicher Bereitstellung sicher bleiben? Wie können Sie Sicherheitsprobleme frühzeitig im Entwicklungsprozess finden und beheben? Die Antwort liegt in Praktiken, die allgemein als DevSecOps bezeichnet werden.

Sicherheit als gemeinsame Verantwortung: DevSecOps umfasst Sicherheitsteams und deren Funktionen in Ihre DevOps-Praktiken, wodurch die Sicherheit für alle Teammitglieder und nicht für eine separate Funktion verantwortlich ist. Entwickler, Betriebsingenieure und Sicherheitsspezialisten arbeiten während des gesamten Entwicklungslebenszyklus zusammen.

Sicherheit nach links verschieben: Die Sicherheit muss sich von einer Nachwertung am Ende der Entwicklung zu einer Überlegung bei jedem Prozessschritt verlagern. Dieser Ansatz "Shift Left" fängt Sicherheitsprobleme frühzeitig ab, wenn sie einfacher und kostengünstiger zu beheben sind. Eine Sicherheitsanfälligkeit, die während der Codeüberprüfung festgestellt wurde, kostet viel weniger als eine in der Produktion ermittelte Sicherheitsanfälligkeit.

Sicherheit als fortlaufender Prozess

Das Sichern von Anwendungen ist ein fortlaufender Prozess, der mehrere Bereiche umfasst:

Sichere Infrastruktur: Bauen Sie auf sicheren Grundlagen auf, einschließlich gehärteter Betriebssysteme, ordnungsgemäß konfigurierter Netzwerke, verschlüsselter Speicher und sicherer Identitätsverwaltung.

Architektur mit mehrstufiger Sicherheit: Entwerfen Sie Anwendungen mit integrierter Sicherheit in der Architektur. Implementieren Sie die Verteidigung im Detail mit mehreren Sicherheitsebenen. Wenn ein Steuerelement fehlschlägt, bleiben andere effektiv.

Kontinuierliche Sicherheitsüberprüfung: Automatisieren Sie Sicherheitstests in der gesamten Pipeline. Führen Sie Sicherheitsüberprüfungen, Sicherheitsrisikobewertungen und Complianceprüfungen als Teil der kontinuierlichen Integration und Bereitstellung aus.

Überwachung und Reaktion: Überwachen Sie Anwendungen in der Produktion auf Sicherheitsbedrohungen und anomaliele Verhaltensweisen. Reagieren Sie schnell auf erkannte Probleme mit der automatisierten Behebung, wenn möglich.

Vierteiliges Kreisdiagramm mit Infrastruktur, Anwendungsarchitektur, Überwachung und fortlaufender Validierung als miteinander verbundene Sicherheitskomponenten.

Ganzheitlicher Sicherheitsansatz: Sicherheit ist jedermanns Verantwortung und muss im gesamten Anwendungslebenszyklus vom ersten Entwurf über den Produktionsbetrieb bis hin zur eventuellen Außerbetriebnahme ganzheitlich behandelt werden.

Inhalt dieses Moduls

In diesem Modul werden DevSecOps-Konzepte und -Methoden vorgestellt, die Sicherheit während des gesamten Entwicklungslebenszyklus integrieren:

Häufige Sicherheitsrisiken: Sie erfahren mehr über SQL-Einfügungsangriffe, eine der häufigsten und gefährlichsten Sicherheitsrisiken. Wenn Sie verstehen, wie diese Angriffe funktionieren, können Sie sie in Ihren Anwendungen verhindern.

DevSecOps-Prinzipien: Sie werden verstehen, wie DevSecOps sich von herkömmlichen Sicherheitsansätzen unterscheidet und wie Sie Sicherheitspraktiken in Ihre vorhandenen DevOps-Workflows integrieren können, ohne die Entwicklungsgeschwindigkeit zu beeinträchtigen.

Pipelinesicherheit: Sie werden kritische Überprüfungspunkte in Ihrer CI/CD-Pipeline feststellen, an denen Sicherheitsprüfungen durchgeführt werden sollen. Erfahren Sie, wie Sie automatisierte Sicherheitstests implementieren, die Sicherheitsrisiken abfangen, bevor sie die Produktion erreichen.

Bedrohungsmodellierung: Sie lernen systematische Ansätze zur Identifizierung, Bewertung und Priorisierung von Sicherheitsbedrohungen kennen. Die Bedrohungsmodellierung hilft Ihnen, die Sicherheitsbemühungen auf die wichtigsten Risiken für Ihre Anwendungen und Ihr Unternehmen zu konzentrieren.

Automatisierte Sicherheitsanalyse: Sie werden Tools wie GitHub CodeQL erkunden, die automatisierte Sicherheitsanalyse bereitstellen. Diese Tools scannen Code auf Sicherheitsrisiken und Sicherheitsmuster, sodass Sie Probleme frühzeitig ohne manuelle Sicherheitsüberprüfungen für jede Codeänderung finden können.

Beschleunigen von Sicherheitsteams: Kontinuierliche Integrations- und Bereitstellungspipelines können die Arbeit von Sicherheitsteams tatsächlich beschleunigen, indem sie sich wiederholende Sicherheitsprüfungen automatisieren und die Zusammenarbeit mit Softwareentwicklungsteams verbessern. Sicherheitsteams können sich nicht auf manuelle Überprüfung von Routineänderungen, sondern auf komplexe Bedrohungen konzentrieren.

Lernziele

Nach Abschluss dieses Moduls werden Sie zu Folgendem in der Lage sein:

  • Identifizieren und verstehen Sie SQL-Einfügungsangriffe und deren Auswirkungen auf die Anwendungssicherheit.
  • Erläutern der DevSecOps-Prinzipien und der Integration von Sicherheit während des gesamten Entwicklungslebenszyklus.
  • Implementieren Sie die Sicherheitsüberprüfung an wichtigen Punkten in Ihrer DevOps-Pipeline.
  • Führen Sie die Bedrohungsmodellierung durch, um Sicherheitsrisiken zu identifizieren und zu priorisieren.
  • Verwenden Sie GitHub CodeQL für automatisierte Sicherheitsanalyse und Sicherheitsrisikoerkennung.

Voraussetzungen

  • Grundlegendes zu DevOps-Konzepten und -Praktiken.
  • Vertrautheit mit kontinuierlicher Integration und kontinuierlichen Bereitstellungspipelines.
  • Grundkenntnisse zur Anwendungsentwicklung und gängigen Sicherheitskonzepten.
  • Erfahrung mit Versionssteuerungssystemen wie Git.
  • Vorteilhaft, Erfahrung in einer Organisation zu haben, die Software bereitstellt.