Aktualisiert am: 16. Dezember 2024

7 Minuten Lesezeit

Mit GitLab Aufgabentrennung und Compliance sicherstellen

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) Entwickler(in) ist für die Entwicklung neuer Funktionen verantwortlich.

-Ein(e) Beauftragte(r) für Compliance ist für die Erstellung und Durchsetzung der Nutzung einer Pipeline zuständig.

  • Ein(e) Anwendungssicherheitsingenieur(in) ist für die Genehmigung von Merge Requests mit Sicherheitslücken verantwortlich.

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.

Sicherheitsrichtlinien

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.

Compliance-Framework-Label (nur in englischer Sprache verfügbar)

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.

Scan-Ausführung

  1. Gehe zu Sicherheit & Compliance > Richtlinien.

  2. Erstelle eine neue Richtlinie, indem du auf die Schaltfläche Neue Richtlinie klickst.

  3. Wähle Scan-Ausführung aus.

  4. 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

  1. Reiche die Richtlinie ein, indem du einen Merge Request erstellst und dann den Merge ausführst.

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.

  1. Versuche, eine Pipeline auszuführen. Sie wird nur ausgeführt, wenn SAST in der YAML definiert ist.

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.

Merge-Request-Approval

  1. Gehe zu Sichern > Richtlinien.

  2. Erstelle eine neue Richtlinie, indem du auf die Schaltfläche Neue Richtlinie klickst.

  3. Wähle Merge-Request-Approvalrichtlinien aus.

  4. Definiere den Geltungsbereich der Richtlinie.

  5. Erstelle die Regel.

Aktualisierung der Aufgabentrennung – Bild 1 (nur in englischer Sprache verfügbar)

  1. Füge die auszuführende Aktion hinzu.

Aktualisierung der Aufgabentrennung – Bild 2 (nur in englischer Sprache verfügbar)

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.

Aktualisierung der Aufgabentrennung – Bild 3 (nur in englischer Sprache verfügbar)

  1. Reiche die Richtlinie ein, indem du einen Merge Request erstellst und dann den Merge ausführst.

  2. 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.

  1. Überprüfe, ob die Merge-Request-Approvalrichtlinien angewendet werden, indem du den Merge Request anzeigst.

Pipeline-Ausführungsrichtlinie

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.

  1. Gehe zu Sichern > Richtlinien.

  2. Erstelle eine neue Richtlinie, indem du auf die Schaltfläche Neue Richtlinie klickst.

  3. Wähle Pipeline-Ausführungsrichtlinie aus.

  4. Definiere den Geltungsbereich der Richtlinie.

  5. Füge die auszuführende Aktion hinzu.

Aktualisierung der Aufgabentrennung – Bild 4 (nur in englischer Sprache verfügbar)

  1. Füge Bedingungen hinzu.

  2. Reiche die Richtlinie ein, indem du einen Merge Request erstellst und dann den Merge ausführst.

  3. Versuche, eine Pipeline auszuführen. Du siehst die richtlinienspezifischen Jobs und Phasen in deiner Pipeline.

Auditmanagement und Compliance-Dashboard

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 (nur in englischer Sprache verfügbar)

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.

Aktualisierung der Aufgabentrennung – Bild 5 (nur in englischer Sprache verfügbar)

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

Wir möchten gern von dir hören

Hat dir dieser Blogbeitrag gefallen oder hast du Fragen oder Feedback? Erstelle ein neues Diskussionsthema im GitLab-Community-Forum und tausche deine Eindrücke aus.
Share your feedback

Mehr als 50 % der Fortune-100-Unternehmen vertrauen GitLab

Stelle jetzt bessere Software schneller bereit

Erlebe, was dein Team mit der intelligenten

DevSecOps-Plattform erreichen kann.