Infrastructure as Code (IaC) hat sich schnell zu einem Wegbereiter der modernen Technologielandschaft entwickelt. Durch die Übersetzung von Infrastrukturbereitstellungs- und Verwaltungsprozessen in Code erhalten Entwickler Versionskontrolle und Wiederholbarkeit, und potenzielle Schwachstellen werden reduziert, doch mit seiner Verbreitung gehen auch potenzielle Schwachstellenprobleme einher.
GitLab IaC Scanning zeichnet sich als effektives und effizientes Mittel aus, um Fehlkonfigurationen und Sicherheitslücken in IaC-Setups aufzudecken und gleichzeitig vor ihnen zu schützen. Dieser Leitfaden befasst sich eingehend mit seinem Wert, dem Einrichtungsprozess und den Best Practices zur Stärkung von IaC-Konfigurationen.
Was ist Infrastructure as Code (IaC)?
Infrastructure as Code (IaC) ist ein Ansatz, bei dem die Bereitstellung, Verwaltung und Konfiguration von Infrastruktur nicht durch manuelle Prozesse oder benutzerdefinierte Skripte, sondern als Code festgelegt wird. Anstatt sich bei der Bereitstellung von Servern, Datenbanken oder Netzwerkkomponenten auf manuelle Prozesse zu verlassen, verwendet IaC Standard-Codevorlagen.
Die Beliebtheit von IaC lässt sich durch den ständig steigenden Bedarf an Agilität bei der Bereitstellung und Skalierung von Anwendungen erklären. Das traditionelle Infrastrukturmanagement erforderte eine zeitaufwändige Einrichtung, die oft mit menschlichen Fehlern verbunden war. IaC bietet Konsistenz, Wiederholbarkeit und schnelle Aktualisierungsprozesse, indem es die Infrastruktur genau wie Softwarecode versioniert, sodass versionierte, wiederholbare Infrastruktur-Builds ohne menschliche Aufsicht oder Fehler kontinuierlich ausgeführt werden können.lt;/p>
DevOps-Praktiken lassen sich ebenfalls gut mit IaC-Praktiken kombinieren und helfen Unternehmen dabei, die Kluft zwischen Entwicklung und Betrieb zu überbrücken. Mit IaC können Infrastrukturänderungen gleichzeitig mit der Anwendungsentwicklung implementiert werden, was zu schnelleren Bereitstellungszeiten und einem reibungsloseren Pipeline-Management führt. Durch ihre kombinierten Bemühungen erzielen Unternehmen eine höhere Effizienz und Zuverlässigkeit bei Bereitstellungsprozessen.
Warum ist IaC-Scanning so wichtig?
Infrastructure as Code hat neue Möglichkeiten für potenzielle Schwachstellen eröffnet. Entwickler, die Skripte zur Automatisierung der Infrastrukturbereitstellung schreiben, können unbeabsichtigt erhebliche Sicherheitslücken in einen Infrastrukturbereitstellungsprozess einführen. IaC-Scanning ist unerlässlich, um solche Sicherheitslücken zu erkennen, bevor sie in Produktionsumgebungen gelangen.
Moderne Cloud-native Infrastrukturen können sehr dynamische und komplexe Umgebungen sein. Selbst den aufmerksamsten Entwicklern können Fehlkonfigurationen entgehen, auch wenn keine IaC-Scan-Tools vorhanden sind, die Code-Definitionen durchsuchen, um Fehlkonfigurationen zu erkennen, die gegen bewährte Sicherheitsverfahren verstoßen und Datenverletzungen und Systemkompromittierungen aufgrund von Schwachstellen in der Infrastruktur reduzieren. IaC-Scan-Tools verwenden Artificial Intelligence-as-a-Consumption-Technologie (AIC). Auf diese Weise senken sie das Risiko von Datenverletzungen oder Systemkompromittierungen aufgrund von Schwachstellen in der Infrastruktur erheblich.
Da die Compliance- und Datenschutzstandards verschärft wurden, müssen Unternehmen von Anfang an eine sichere Infrastruktur implementieren, um rechtliche oder rufschädigende Folgen zu vermeiden. IaC-Scans helfen Unternehmen dabei, diese Norm einzuhalten, indem sie sicherstellen, dass ihre Infrastruktur den Branchenvorschriften entspricht, und sie so vor rechtlichen Konsequenzen schützen.
GitLab IaC-Scanning verstehen
Die IaC-Scan-Funktion (Infrastructure as Code) von GitLab bietet einen systematischen Ansatz zur Überprüfung von IaC-Konfigurationsdateien auf potenzielle Schwachstellen. Dadurch wird sichergestellt, dass die Konfigurationen für die Bereitstellung und Verwaltung der Infrastruktur robust, sicher und konform sind. Die Unterstützung erstreckt sich auf verschiedene IaC-Konfigurationsdateien, darunter beliebte Dateien wie Terraform, Ansible, AWS CloudFormation und Kubernetes.
- Anforderungen und Kompatibilität
- Unterstützte Dateien und Anpassung
- Konfiguration und Anpassung von Regeln
- Automatische Behebung von Schwachstellen
1. Anforderungen und Kompatibilität
Effektives IaC-Scanning erfordert die Arbeit innerhalb der Testphase, da es in die Datei .gitlab-ci.yml dieser Phase aufgenommen werden muss.
- Die Mindestanforderungen an den Arbeitsspeicher sollten 4 GB betragen, um die Leistung zu maximieren.
- Standardmäßig ist GitLab Runner mit Docker- oder Kubernetes-Executor obligatorisch (und für GitLab.com-Benutzer automatisch aktiviert). IaC-Scanning-Analysatoren sind jedoch möglicherweise nicht mit Nicht-amd64-CPU-Architekturen kompatibel. Es wird daher empfohlen, Docker Version 19.03.0 für diese Aufgaben zu vermeiden.
2. Unterstützte Dateien und Anpassungen
GitLab IaC Scanning bietet umfassende Unterstützung, die durch das KICS-Tool ermöglicht wird. Unterstützt werden unter anderem Konfigurationsdateien von Ansible, AWS CloudFormation, Azure Resource Manager Dockerfile, Google Deployment Manager Kubernetes OpenAPI Terraform. Spezifische Anforderungen wie JSON-formatierte Azure Resource Manager-Vorlagen und die Nichtunterstützung von benutzerdefinierten Terraform-Modulen sollten bei der Überprüfung der Ergebnisse ebenfalls berücksichtigt werden.
GitLab setzt sein Engagement für Offenheit mit dieser Funktion fort, indem es alle Open-Source-Analysatoren (OSS)-Analysatoren über die kostenlose Version von GitLab verfügbar macht. Durch Manipulieren der Variable SAST_IMAGE_SUFFIX können Sie zwischen Standard- und FIPS-Versionen von Images umschalten.
3. Konfiguration und Anpassung von Regeln
Die Einrichtung von IaC-Scans in Ihrem Projekt ist relativ einfach. Sie können es entweder manuell einrichten, indem Sie die Vorlage SAST-IaC.gitlab-ci.yml einbinden, die nach dem Einbinden IaC-Scan-Jobs innerhalb Ihrer CI/CD-Pipeline generiert, oder automatisch über Merge-Anfragen – die Ergebnisse der IaC-Scan-Jobs werden nach Abschluss des Scans als SAST-Bericht-Artefakte gespeichert.
Teams, die den Scan-Prozess verbessern möchten, haben die Möglichkeit, die Standardregeln anzupassen. Diese Funktion umfasst folgende Möglichkeiten:
- Vordefinierte Regeln deaktivieren.
- Bestehende Regeln durch benutzerdefinierte Definitionen überschreiben, die sich auf Aspekte wie Schweregrad oder direkte Verknüpfung mit persönlicher Dokumentation auswirken.
Es ist auch möglich, Scanprozesse mit bestimmten Analysatorversionen zu verknüpfen, um sich vor Regressionen oder unerwünschten Änderungen durch Updates zu schützen.
4. Automatische Behebung von Schwachstellen
GitLab IaC Scanning legt Wert darauf, unnötige Störfaktoren in Berichten zu eliminieren. Um die Relevanz zu gewährleisten und den Fokus auf aktuelle Schwachstellen zu legen, führt das System bestimmte automatische Aktionen durch:
1. Regeln deaktivieren: Sobald Sie entscheiden, dass eine oder mehrere Regeln für Ihr Projekt nicht mehr relevant sind, und diese explizit deaktiviert haben, werden die bisherigen Berichte über Schwachstellen automatisch behoben.
2. Entfernen von Regeln: Sollte GitLab entscheiden, dass eine oder mehrere Standardregeln veraltet sind oder zu viele Fehlalarme verursachen, werden sie wahrscheinlich entfernt, und alle durch solche Regeln gemeldeten Schwachstellen werden automatisch behoben.
3. Historische Aufzeichnungen: Die Führung eines Prüfprotokolls ist von entscheidender Bedeutung. Das Schwachstellenmanagementsystem von GitLab fügt Kommentare hinzu, damit Sie über vergangene Schwachstellen, die automatisiert und behoben wurden, auf dem Laufenden bleiben.
4. Reaktivierung von Regeln: Durch die erneute Aktivierung zuvor deaktivierter Regeln werden alle automatisch behobenen Ergebnisse erneut zur Triage geöffnet, um sicherzustellen, dass vergangene Schwachstellen nicht unentdeckt bleiben.
Berichterstellung: Das JSON-Format verstehen
Das IaC-Scanning-Tool von GitLab gibt seine Ergebnisse als strukturierte JSON-Berichte aus, die den SAST-Berichtsformaten entsprechen und den Benutzern umfassende Ergebnisse liefern:
1. Standardisierung: Dieses Format erleichtert die Integration und den Vergleich verschiedener Projekte oder Scans.
2. Zugänglichkeit: Benutzer können Berichte schnell und einfach direkt von CI-Pipeline-Seiten oder Merge-Request-Pipelines herunterladen, indem sie die Anweisung "artifacts: paths" auf "gl-sast-report.json" setzen. Um dies zu ermöglichen, setzen Sie Ihre artifacts: paths-Direktive auf "gl-sast-report.json".
3. Schema-Referenz: GitLab bietet eine detaillierte Schema-Dokumentation, damit diejenigen, die sich näher damit befassen oder diesen Bericht in andere Systeme integrieren möchten, einfach und umfassend auf alle Teile davon zugreifen können.
Einrichten von GitLab IaC Scanning
Sehen wir uns an, wie Sie GitLab IaC Scanning für Ihre Projekte einrichten können.
Die Schritte zum Einrichten von GitLab IaC Scanning sind –
- Voraussetzungen
- Integration von GitLab CI/CD
- Benutzerdefinierte Konfiguration (optional)
- Ausführen des Scans
- Überprüfen der Ergebnisse
1. Voraussetzungen
- GitLab-Version: Sie sollten sicherstellen, dass Sie Version 12.10 oder höher von GitLab verwenden.
- Einrichtung des Repositorys: Ihre Infrastructure-as-Code-Dateien (z. B. Terraform-, CloudFormation- und Kubernetes-Konfigurationsdateien) sollten Teil Ihres Repositorys sein.
2. Integration von GitLab CI/CD
Um das IaC-Scannen einzurichten, müssen Sie es in die GitLab CI/CD-Pipeline integrieren.
Erstellen oder aktualisieren Sie die Datei .gitlab-ci.yml im Stammverzeichnis Ihres Repositorys.
Fügen Sie die folgende Konfiguration hinzu:
Include:
template: Security/Infrastructure-Scanning.gitlab-ci.yml
Durch diese Einbindung wird der IaC-Scan-Job in Ihrer CI/CD-Pipeline aktiviert.
3. Benutzerdefinierte Konfiguration (Optional)
Für Projekte mit besonderen Anforderungen kann der Scanvorgang angepasst werden:
- Benutzerdefinierte Regeln: Mit GitLab IaC Scanning können Benutzer benutzerdefinierte Regeln definieren oder bestehende Regeln ändern. Diese können zu einem Verzeichnis .iac-custom-rules im Stammverzeichnis Ihres Repositorys hinzugefügt werden.
- Verzeichnisse ignorieren: Wenn Sie möchten, dass der Scanner bestimmte Verzeichnisse überspringt, können Sie diese in der CI/CD-Konfiguration unter "Variablen" definieren:
Variablen:
IAC_PATHS: "infrastructure/*,!infrastructure/legacy/"
Im obigen Beispiel analysiert der Scanner nur Dateien im Verzeichnis "infrastructure" und schließt das Unterverzeichnis "legacy" aus.
4. Ausführen des Scans
Sobald die Konfiguration festgelegt ist, starten Sie einen CI/CD-Pipeline-Lauf. Der IaC-Scan-Job analysiert Ihre Infrastructure-as-Code-Dateien und liefert Erkenntnisse über potenzielle Schwachstellen.
5. Überprüfen der Ergebnisse
Nach der Analyse werden die Schwachstellen (falls vorhanden) angezeigt:
- Innerhalb der Merge-Anfrage (falls der Scan durch eine solche ausgelöst wurde).
- Im Abschnitt "Sicherheit und Compliance" Ihres Projekts.
Hier können Sie:
- Details zur Sicherheitslücke anzeigen.
- sie als behoben markieren oder ein Ticket erstellen, um sie zu verfolgen.
- Optional können Sie automatisierte Aktionen basierend auf der Schwere oder Art der Sicherheitslücke einrichten.
Bewährte Verfahren für eine sichere IaC-Konfiguration (Infrastructure as Code)
Bewährte Verfahren für eine sichere IaC-Konfiguration (Infrastructure as Code) sind –
- PoLP-Prinzip (Prinzip der geringsten Privilegien)
- Versionskontrolle und Änderungsverfolgung aufrechterhalten
- Regelmäßiges Scannen und Aktualisieren von Abhängigkeiten
- Schützen Sie Geheimnisse
- Effiziente Validierung und Bewertung von Konfigurationen
1. PoLP-Prinzip (Prinzip der geringsten Privilegien)
Das Prinzip der geringsten Privilegien ist ein wesentliches Sicherheitskonzept, das sicherstellen soll, dass Entitäten (seien es Benutzer, Systeme oder Prozesse) nur die für die Ausführung ihrer Aufgaben erforderlichen Berechtigungen erhalten und nicht mehr. Dieses Prinzip wird in IaC-Umgebungen mit programmgesteuerten Berechtigungen noch wichtiger, da falsch oder zu weit gefasste Berechtigungen Ressourcen unnötigen Risiken aussetzen können.
Die Einhaltung der PoLP-Anforderungen innerhalb von IaC erfordert eine sorgfältige Skripterstellung für Berechtigungen, damit jeder Dienst oder jede Funktion nur auf die Ressourcen zugreift, die sie benötigt. Für Cloud-Infrastrukturen wie AWS könnte dies bedeuten, dass für S3-Buckets nur Lesezugriffsrechte statt pauschaler Berechtigungen für alle Speicherressourcen vergeben werden. Außerdem müssen IaC-Skripte kontinuierlich überprüft werden, um sicherzustellen, dass die Berechtigungen auch bei Weiterentwicklungen der Infrastruktur streng bleiben.
2. Versionskontrolle und Änderungsverfolgung aufrechterhalten
Versionskontrolle ist nicht nur in der traditionellen Softwareentwicklung notwendig, sondern spielt auch eine wesentliche Rolle beim Infrastrukturmanagement in einer IaC-Umgebung. Die Verfolgung von Änderungen, das Zurücksetzen von Konfigurationen und das Verständnis von Infrastrukturanpassungen sind für die Aufrechterhaltung einer sicheren und stabilen Umgebung für das IaC-Infrastrukturmanagement von entscheidender Bedeutung.
Die Plattformen GitLab und GitHub für die IaC-Konfiguration bieten nicht nur Tools zur Änderungsverfolgung, sondern auch Funktionen für die Zusammenarbeit, um vorgeschlagene Änderungen mit Teammitgliedern zu überprüfen, bevor sie in Produktionsumgebungen bereitgestellt werden. Dieser Peer-Review-Prozess stellt sicher, dass Sicherheitsbedenken berücksichtigt und Best Practices eingehalten werden, bevor wesentliche Änderungen in IaC-Umgebungen eingeführt werden.
3. Regelmäßiges Scannen und Aktualisieren von Abhängigkeiten
Wie bei der Softwareentwicklung basieren auch Infrastructure-as-Code-Konfigurationen (IaC) häufig auf Vorlagen und Modulen von Drittanbietern, um die Bereitstellung der Infrastruktur zu optimieren. Solche Abhängigkeiten können zwar die Bereitstellung vereinfachen, stellen jedoch auch potenzielle Schwachstellen dar, wenn sie veraltet oder kompromittiert sind.
Durch das ständige Scannen von Abhängigkeiten wird sichergestellt, dass keine bekannten Sicherheitslücken in die Infrastruktur gelangen. Spezielle Tools, die für diese Aufgabe entwickelt wurden, markieren automatisch veraltete oder anfällige Module und fordern die Teams auf, diese bei Bedarf zu aktualisieren – ähnlich wie beim Patch-Management für Software Patch-Management, jedoch speziell auf Infrastrukturmodule angewendet, um maximalen Schutz und maximale Ausfallsicherheit zu erreichen.
4. Geheimnisse schützen
Die digitale Landschaft ist übersät mit warnenden Beispielen, in denen Geheimnisse offengelegt wurden, was zu schwerwiegenden Verstößen führte. Die programmatische Natur von IaC verleitet Programmierer dazu, sensible Informationen direkt in Skripte zu codieren – eine unverantwortliche Praxis, die stets vermieden werden sollte.
Unternehmen sollten es vermeiden, Geheimnisse direkt in IaC-Skripte einzubetten, und stattdessen spezielle Lösungen zur Geheimnisverwaltung wie HashiCorp Vault oder AWS Secrets Manager einsetzen, um Geheimnisse zu schützen und gleichzeitig verschlüsselt zu halten, wodurch ihr Schutz auch dann gewährleistet ist, wenn Konfigurationsdateien öffentlich zugänglich werden.
5. Konfigurationen effizient validieren und bewerten
Die Sicherstellung, dass IaC-Skripte sowohl funktional als auch sicher sind, ist eine ständige Aufgabe, die regelmäßige Bewertungen erfordert. Wenn sich Konfigurationen ändern oder die IT-Landschaft sich wandelt, entstehen neue Schwachstellen, die zuvor funktionale Skripte unbrauchbar machen oder dazu führen können, dass sie überhaupt nicht mehr funktionieren.
Um dies zu vermeiden, sollten Unternehmen sicherstellen, dass ihre IaC-Konfigurationen regelmäßig den Branchenstandards und Best Practices entsprechen, indem sie automatisierte Testtools für regelmäßige Überprüfungen ohne manuelle Eingriffe einsetzen. Bevor Änderungen in Produktionsumgebungen eingeführt werden, sind Staging- oder Testumgebungen von unschätzbarem Wert, um frühzeitig vor unerwarteten Problemen zu warnen und so eine sichere und dennoch funktionsfähige Infrastruktur in Produktionsumgebungen zu gewährleisten.
Häufige Fallstricke bei IaC und wie man sie vermeidet
Häufige Fallstricke beim GitLab IaC-Scannen und wie man sie vermeidet?
- Behandlung von Infrastrukturcode als einmaliges Skript
- Vernachlässigung von Tests
- Hardcoding von Geheimnissen und Anmeldedaten
- Übermäßig komplizierte IaC-Skripte
- Umgehen veralteter Tools oder Bibliotheken
1. Infrastrukturcode als einmaliges Skript behandeln
Eine häufige Fehlannahme in Bezug auf Infrastrukturcode (IaC) ist, ihn wie ein einmaliges Skript zu behandeln, das einmal geschrieben und selten wieder aufgerufen wird. Im Gegensatz zu einmaligen Skripten erfordert IaC jedoch regelmäßige Wartungsupdates, Überarbeitungen und Revisionen wie jeder andere Softwarecode auch.
So beugen Sie vor: Führen Sie regelmäßige Codeüberprüfungen und -aktualisierungen mit Tools wie GitLab IaC Scanning durch, um IaC-Konfigurationen kontinuierlich zu scannen – so stellen Sie sicher, dass Ihr Code aktuell, relevant und frei von potenziellen Schwachstellen bleibt.
2. Vernachlässigung von Tests
Einige Teams, die sich mit der Bereitstellung beeilen, überspringen möglicherweise gründliche IaC-Skripttests, um schnell voranzukommen – in der Annahme, dass alles in Ordnung ist, wenn etwas läuft alles in Ordnung ist – was zu unerwartetem Verhalten oder Sicherheitslücken in der bereitgestellten Infrastruktur führen kann. Diese Nachlässigkeit kann dazu führen, dass unerwartete Verhaltensweisen unberücksichtigt bleiben oder Sicherheitslücken entstehen, die sofort nach der Bereitstellung gepatcht werden müssen.
So beugen Sie vor: Wie bei Anwendungscode ist das Testen von IaC-Konfigurationen in Nicht-Produktionsumgebungen wie Staging unerlässlich, um Fehlkonfigurationen und potenzielle Fallstricke in der Produktionsumgebung zu vermeiden. GitLab IaC Scanning bietet hier einen unverzichtbaren Service, mit dem Teams Fehlkonfigurationen identifizieren können, bevor sie sich direkt auf Produktionsumgebungen auswirken.
3. Hardcoding von Geheimnissen und Anmeldedaten
Hardcoding kann eine offensichtliche Gefahr in IaC-Skripten darstellen und sollte zum Schutz der Datensicherheit stets vermieden werden. Durch die direkte Einbettung von Geheimnissen oder Anmeldedaten in den Code können fest codierte Geheimnisse oder Anmeldedaten erhebliche Sicherheitsrisiken darstellen, die nicht vernachlässigt werden sollten.
So verhindern Sie dies: Anstatt Geheimnisse direkt in Skripte einzufügen, verwenden Sie spezielle Tools zur Verwaltung von Geheimnissen. GitLab IaC-Scanning-Tools können solche Praktiken im Rahmen ihres Scanvorgangs erkennen, indem sie Entwickler beispielsweise auf fest codierte Anmeldedaten in ihren Konfigurationsdateien hinweisen.
4. Übermäßig komplizierte IaC-Skripte
Bei dem Versuch, eine Lösung zu entwickeln, die alle möglichen Szenarien abdeckt, werden einige Ingenieure beim Schreiben von IaC-Skripten übermäßig kompliziert. Dies mag zwar verschiedene Situationen effizienter abdecken, führt aber auch zu unnötigen Komplikationen und potenziellen Fehlerquellen in ihren IaC-Lösungen.
So beugen Sie dem vor: Priorisieren Sie Einfachheit und Klarheit, indem Sie komplexe Konfigurationen mit GitLab IaC Scanning in überschaubare Module aufteilen. Überprüfen Sie diese Module regelmäßig mit GitLab IaC Scanning, damit sie effektiv, sicher und funktionsfähig bleiben.
5. Umgehen Sie veraltete Tools oder Bibliotheken
IaC stützt sich häufig auf Tools oder Bibliotheken von Drittanbietern. mit der Weiterentwicklung dieser externen Ressourcen können jedoch bestimmte Features oder Funktionen veraltet sein. Die Verwendung veralteter Methoden kann sowohl funktionale als auch Sicherheitslücken mit sich bringen.
So beugen Sie vor: Behalten Sie alle Tools oder Bibliotheken von Drittanbietern, auf denen Ihre IaC-Konfigurationen basieren, aktiv im Auge, aktualisieren Sie Skripte regelmäßig, um aktualisierte Versionen und Empfehlungen zu berücksichtigen, und verwenden Sie Scan-Tools wie GitLab IaC Scanning, die veraltete Funktionen oder Abhängigkeiten aufzeigen.
SentinelOne in Aktion sehen
Entdecken Sie in einer persönlichen Demo mit einem SentinelOne-Produktexperten, wie KI-gestützte Cloud-Sicherheit Ihr Unternehmen schützen kann.
Demo anfordernFazit
Das IaC-Scanning von GitLab kann Sicherheitslücken erkennen und Abhängigkeiten verwalten. Sie können Fehlalarme eliminieren, benutzerdefinierte Regeln festlegen und Prüfpfade pflegen. Außerdem wird die Berichterstellung wesentlich vereinfacht, und Sie können GitLab IaC Scanning ganz einfach in Ihre CI/CD-Pipeline integrieren, um optimale Ergebnisse zu erzielen. Schützen Sie Geheimnisse, führen Sie Versionskontrolle und Änderungsverfolgung durch und wenden Sie das Prinzip der geringsten Zugriffsrechte mit dem GitLab IaC Scanner an. So können Sie Ihre Konfigurationen effizient bewerten und verwalten und eine reibungslose Infrastrukturverwaltung gewährleisten.
"GitLab IaC Scanning FAQs
GitLab IaC Scanning ist eine integrierte CI/CD-Funktion, die Ihre Infrastructure-as-Code-Dateien – wie Terraform, CloudFormation, Ansible, Dockerfiles und Kubernetes-Manifeste – auf Fehlkonfigurationen und bekannte Schwachstellen überprüft. Es wird während der Testphase Ihrer Pipeline ausgeführt, erstellt SAST-Berichte im JSON-Format und hebt Probleme in Merge-Anfragen hervor, sodass Sie riskante Einstellungen vor der Bereitstellung beheben können.
IaC-Scans wurden in GitLab 14.5 eingeführt, das im Juni 2021 veröffentlicht wurde. Ab dieser Version lösen alle unterstützten IaC-Konfigurationsdateien in einem Projekt automatisch die entsprechenden KICS-basierten Analysatoren während der CI-Pipelines aus, vorausgesetzt, Sie fügen die IaC-Vorlage in Ihre .gitlab-ci.yml
Das IaC-Scanning von GitLab unterstützt eine Vielzahl von Konfigurationsdateien, die alle auf KICS basieren:
- Ansible-Playbooks
- AWS CloudFormation (YAML/JSON)
- Azure Resource Manager (JSON)
- Dockerfiles
- Google Deployment Manager
- Kubernetes-Manifeste
- OpenAPI-Definitionen
Terraform HCL Wenn Sie Bicep verwenden, kompilieren Sie vor dem Scannen zu JSON und beachten Sie, dass benutzerdefinierte Terraform-Module noch nicht gescannt werden.
Alle IaC-Scan-Analysatoren in GitLab basieren auf KICS (Keep It Configuration Scanner), einer Open-Source-Engine, die Ihre IaC-Dateien anhand eines umfangreichen Regelsatzes überprüft. KICS erkennt automatisch unterstützte Formate und wendet die entsprechenden Prüfungen an. Sie können Regelversionen über CI-Variablen oder benutzerdefinierte Regelverzeichnisse anpassen, deaktivieren oder fixieren.
Um IaC-Scans zu aktivieren, fügen Sie die offizielle Vorlage oben in die Datei .gitlab-ci.yml Ihres Projekts ein:
Fügen Sie die folgende Zeile hinzu:
- template: Jobs/SAST-IaC.gitlab-ci.yml
Dadurch wird ein iacs-Job in die Testphase eingefügt. Auf GitLab.com oder selbstverwaltet mit gemeinsam genutzten Runners ist keine zusätzliche Runner-Einrichtung erforderlich. Nach dem Ausführen einer Pipeline werden die Scan-Ergebnisse als Job-Artefakte, in Merge-Anfragen und unter "Sicherheit und Compliance" angezeigt.
