Aktualisiert am: 16. Dezember 2024
7 Minuten Lesezeit
Nutze deine DevSecOps-Plattform, um die Compliance aufrechtzuerhalten, ohne die Entwicklungsgeschwindigkeit zu beeinträchtigen.
In diesem Artikel erfährst du, wie du mit der DevSecOps-Plattform von GitLab die Aufgabentrennung und
die kontinuierliche Compliance sicherstellen kannst. Zunächst möchten wir jedoch zwei Schlüsselkonzepte klären:
Compliance bedeutet, dass du die Richtlinien und Spezifikationen einhältst,
die entweder von deinem Unternehmen oder von einer Aufsichtsbehörde festgelegt wurden. Compliance trägt dazu bei, die
Unternehmensethik, angemessene Benutzerrichtlinien, Sicherheitsstandards und vieles mehr für
die Sicherheit der Verbraucher(innen) aufrechtzuerhalten.
Die Nichteinhaltung kann zu einer Reihe von Gerichts- und Anwaltskosten sowie Geldstrafen führen, daher ist es sehr wichtig, die Compliance aufrechtzuerhalten. DevSecOps-Teams müssen nicht nur die Compliance gewährleisten, sondern auch eine nachhaltige Entwicklungsgeschwindigkeit sicherstellen und die notwendige Einfachheit, Transparenz und Kontrolle bieten.
Die Aufgabentrennung erfordert, dass mehrere Personen eine Aufgabe ausführen, um den Schutz vor Fehlern zu erhöhen und böswillige Aktivitäten zu verhindern. Die Aufgabentrennung stellt sicher, dass nur die Rollen, die für die Aufgabe am besten geeignet sind, diese auch ausführen können. Als Beispiel werden einige der folgenden
Akteure und Akteurinnen betrachtet, die jeweils einen bestimmten Zweck erfüllen:
-Ein(e) Beauftragte(r) für Compliance ist für die Erstellung und Durchsetzung der Nutzung einer Pipeline zuständig.
Unter Berücksichtigung der oben genannten Rollen können wir sicherstellen, dass ein(e) Entwickler(in) eine laufende Pipeline nicht ändern kann.
Diese Aufgabe kann nur von Beauftragten für Compliance durchgeführt werden, um sicherzustellen, dass nur konformer Code ohne Genehmigung gepusht werden kann.
Ein(e) Anwendungssicherheitsingenieur(in) ist dafür zuständig, Code mit Sicherheitslücken zu überprüfen und zu genehmigen, um sicherzustellen, dass eine ordnungsgemäße Risikominderung durchgeführt werden kann und in Zukunft keine Überraschungen mehr auftreten. In diesem Szenario können Entwickler(innen) Code erst dann zusammenführen, wenn die Compliance-
und Sicherheitsanforderungen erfüllt sind.
GitLab bietet Sicherheitsrichtlinien, die es Sicherheitsteams ermöglichen, die Ausführung von Sicherheitsscans gemäß einer Konfiguration zu fordern. So können Sicherheitsteams darauf vertrauen, dass die konfigurierten Scans nicht geändert oder deaktiviert wurden.
Sicherheitsrichtlinien können so festgelegt werden, dass sie bestimmte Compliance Frameworks erfüllen. Dies bedeutet, dass dein Projekt bestimmte Compliance-Anforderungen hat und zusätzliche Überwachung benötigt. Dieses Label kann unter Sichern > Compliance Center > Frameworks in deiner Hauptgruppe erstellt werden.
Hinweis: Compliance-Label können nur Projekten innerhalb der Hauptgruppe zugewiesen werden, in der das Label erstellt wird.
Es gibt drei Arten von Richtlinien (nur in englischer Sprache verfügbar): Scan-Ausführungsrichtlinien, Merge-Request-Approvalrichtlinien und Pipeline-Ausführungsrichtlinien.
Scan-Ausführungsrichtlinien: Hier kannst du festlegen, dass Sicherheitsscans nach einem bestimmten Zeitplan oder zusammen mit der Projektpipeline ausgeführt werden.
Merge-Request-Approvalrichtlinien: Ergreife Maßnahmen auf der Grundlage von Scan-Ergebnissen, z. B. die Genehmigung durch das Sicherheitsteam, bevor ein Merge durchgeführt werden kann.
Pipeline-Ausführungsrichtlinien: Erzwinge CI/CD-Jobs für entsprechende Projekte.
Diese Richtlinien können über den Richtlinien-Editor in wenigen einfachen Schritten konfiguriert werden.
Gehe zu Sicherheit & Compliance > Richtlinien.
Erstelle eine neue Richtlinie, indem du auf die Schaltfläche Neue Richtlinie klickst.
Wähle Scan-Ausführung aus.
Erstelle die Regel. Ich erstelle eine Regel, die erfordert, dass SAST (nur in englischer Sprache verfügbar) konfiguriert ist, damit eine Pipeline ausgeführt werden kann.
name: force_sast
description: 'require sast to run'
enabled: true
rules:
- type: pipeline branches: - main actions:
- scan: sast
Alle Änderungen der Scan-Ausführungsrichtlinie werden über einen Hintergrundjob angewendet, der alle 10 Minuten ausgeführt wird.
Warte bis zu 10 Minuten, bis alle für dieses Projekt festgelegten Richtlinienänderungen wirksam werden.
Hinweis: Du kannst SAST auch so einstellen, dass es nach einem Timer ausgeführt wird. Weitere Informationen findest du in der Dokumentation (nur in englischer Sprache verfügbar) zu den
Scan-Ausführungsrichtlinien.
Gehe zu Sichern > Richtlinien.
Erstelle eine neue Richtlinie, indem du auf die Schaltfläche Neue Richtlinie klickst.
Wähle Merge-Request-Approvalrichtlinien aus.
Definiere den Geltungsbereich der Richtlinie.
Erstelle die Regel.
Hinweis: Die Richtlinie wird gemäß den von dir festgelegten Regeln ausgewertet. Das bedeutet, dass eine Genehmigung erforderlich ist, wenn die Regeln ungültig sind oder nicht ausgewertet werden können. Um dies zu verhindern, kann das Feld für das Standard-Fallback-Verhalten auf offen
geändert werden.
Reiche die Richtlinie ein, indem du einen Merge Request erstellst und dann den Merge ausführst.
Erstelle einen separaten Merge Request mit Sicherheitslücken.
Wie du Sicherheitslücken hinzufügen kannst, erfährst du im Abschnitt „Entwickler-Workflow“ des DevSecOps-Workshops von GitLab.
Um eine Pipeline-Ausführungsrichtlinie einzurichten, musst du zunächst ein Projekt erstellen, das die CI-Dateien enthält, die du ausführen möchtest. Stelle sicher, dass nur das Sicherheitsteam und/oder der bzw. die Administrator(in) Zugriff haben, um die Aufgabentrennung zu gewährleisten. Ich habe das Projekt „Compliance und Bereitstellung“ erstellt, das die YAML enthält, die ich durchsetzen möchte.
Gehe zu Sichern > Richtlinien.
Erstelle eine neue Richtlinie, indem du auf die Schaltfläche Neue Richtlinie klickst.
Wähle Pipeline-Ausführungsrichtlinie aus.
Definiere den Geltungsbereich der Richtlinie.
Füge die auszuführende Aktion hinzu.
Füge Bedingungen hinzu.
Reiche die Richtlinie ein, indem du einen Merge Request erstellst und dann den Merge ausführst.
Versuche, eine Pipeline auszuführen. Du siehst die richtlinienspezifischen Jobs und Phasen in deiner Pipeline.
Ein weiterer wichtiger Teil der Compliance ist das Wissen, dass sie in deinen Gruppen/Projekten tatsächlich stattfindet. GitLab verfügt über Audit-Ereignisse und Konformitätsberichte, die dich bei Audits unterstützen.
Mit Audit Events können GitLab-Eigentümer(innen) und -Administrator(innen) wichtige Ereignisse nachverfolgen, wie z. B. wer bestimmte Aktionen durchgeführt hat und wann sie stattgefunden haben.
Audit Events zeichnen verschiedene Ereignisse pro Gruppe und pro Projekt auf, die
in der Dokumentation zu Audit Events (nur in englischer Sprache verfügbar) eingesehen werden können.
Du kannst über Sicherheit & Compliance > Audit Events auf Audit Events zugreifen.
Einige Beispiele sind:
Benutzer(in) wurde mit seinen oder ihren Berechtigungen dem Projekt hinzugefügt
Änderung der Berechtigungen einer Benutzerin bzw. eines Benutzers, der/die einem Projekt zugewiesen ist
Projekt-CI/CD-Variable wurde hinzugefügt, entfernt oder ihr geschützter Status geändert
Benutzer(in) wurde mit seinen oder ihren Berechtigungen der Gruppe hinzugefügt
Gruppenname oder -pfad wurde geändert
Audit Events können auch mittels Audit-Event-Streaming an einen HTTP-Endpunkt gesendet werden. In diesem Video (nur in englischer Sprache verfügbar erfährst du, wie
du das Streaming von Audit Events implementierst.
Die Einhaltung von Standards gibt dir die Möglichkeit, die Merge-Request-Aktivität einer Gruppe anzuzeigen. Sie bietet eine allgemeine Ansicht für alle Projekte in der Gruppe.
Du kannst den Bericht verwenden, um:
einen Überblick über die neuesten Merge Requests für jedes Projekt zu erhalten
zu sehen, ob und von wem Merge Requests genehmigt wurden
die Autor(inn)en von Merge Requests zu sehen
das neueste CI/CD-Pipeline-Ergebnis für jeden Merge Request zu sehen
Der Bericht zur Einhaltung von Standards kann in der Hauptgruppe aufgerufen werden, indem du zu Sichern > Compliance Center gehst und die Registerkarte Einhaltung von Standards auswählst.
Vielen Dank für deine Aufmerksamkeit! Weitere Informationen zur Aufgabentrennung in GitLab findest du unter Kontinuierliche Software-Konformität mit GitLab