Identifizieren und Einschränken einer unsicheren Verwendung von Parametern und Variablen
In Azure-Pipelines können Parameter und Variablen verwendet werden, um Laufzeitwerte an Pipelineaufgaben und Skripts zu übergeben und Variablen zu definieren, die in verschiedenen Pipelinephasen verwendet werden können. Wenn sie jedoch nicht ordnungsgemäß gesichert sind, können Parameter und Variablen zu einer Sicherheitslücke werden, da sie vertrauliche Informationen wie Verbindungszeichenfolgen, API-Schlüssel und andere Anmeldeinformationen speichern können.
Identifizieren und einschränken Sie in dieser Einheit die unsichere Verwendung von Parametern und Variablen in Azure-Pipelines.
Warum ist die sichere Verwendung von Parametern und Variablen wichtig?
Die sichere Verwendung von Parametern und Variablen ist unerlässlich, um die Sicherheit Ihrer Pipeline und der unterstützten Projekte sicherzustellen. Unsichere Parameter und Variablen können zu Datenschutzverletzungen, unbefugtem Zugriff und anderen Sicherheitsrisiken führen. Sie können auch zu unerwartetem Verhalten oder Fehlern führen, die sich auf die Zuverlässigkeit und Stabilität Ihrer Pipeline auswirken können.
Erkennung unsicherer Verwendung von Parametern und Variablen
Im Folgenden finden Sie einige Schritte zum Identifizieren unsicherer Verwendung von Parametern und Variablen in Azure-Pipelines:
- Überprüfen Sie Die YaML-Pipelinedatei auf Parameter oder Variablen, die vertrauliche Informationen speichern, z. B. Verbindungszeichenfolgen oder Anmeldeinformationen.
- Überprüfen Sie, ob die Werte dieser Parameter oder Variablen in den Pipelineaufgaben oder Skripts, die von Ihren Aufgaben verwendet werden, z. B. Bash, PowerShell usw. nicht hartcodiert sind. Stattdessen sollten sie als sichere Pipelineeingaben definiert werden, z. B. eine sichere Datei oder variable Gruppe.
- Verwenden Sie das Prüfprotokoll der Azure DevOps-Pipeline, um die Verwendung von Parametern und Variablen in Ihrer Pipeline zu überwachen und potenzielle Sicherheitsrisiken oder Schwachstellen zu identifizieren.
- Überprüfen Sie Ihre Vorlagendateien auf Parameter oder Variablen, die vertrauliche Informationen speichern.
- Überprüfen Sie Ihr Repository auf Parameter oder Variablen, die vertrauliche Informationen speichern, z. B.
appconfig.json,appsettings.json,secrets.jsonusw.
Einschränken der unsicheren Verwendung von Parametern und Variablen
Hier sind einige Schritte zum Einschränken der unsicheren Verwendung von Parametern und Variablen in Azure Pipelines:
- Definieren Sie Ihre Parameter und Variablen als sichere Pipelineeingaben, z. B. eine sichere Datei, geheime Variablen oder Variablengruppe.
- Verwenden Sie Azure Key Vault, um vertrauliche Daten zu speichern, z. B. Verbindungszeichenfolgen, API-Schlüssel oder Zertifikate, und verweisen Sie dann in Ihrem Pipelineskript darauf.
- Verknüpfen Sie Ihren Azure Key Vault mit Ihrer Azure DevOps-Organisation, und verwenden Sie dann die Azure Key Vault-Aufgabe, um die geheimen Schlüssel aus Ihrem Azure Key Vault abzurufen und sie in Ihrer Pipeline zu verwenden.
- Verwenden Sie Dienstverbindungen mit dienstprinzipaler Authentifizierung.
- Beschränken Sie den Zugriff auf vertrauliche Daten, indem Sie geeignete Berechtigungen und Zugriffssteuerungsrichtlinien festlegen. Beschränken Sie beispielsweise den Zugriff auf Pipelinevariablen und Parameter auf bestimmte Benutzer oder Gruppen.
Sich selbst herausfordern
Erstellen Sie eine YAML-Pipeline, die eine Webanwendung für einen Azure App Service bereitstellt. Fügen Sie der Pipeline Parameter und Variablen hinzu, die die Zielumgebung, die Datenbankverbindungszeichenfolge und andere vertrauliche Daten definieren. Führen Sie die in dieser Einheit beschriebenen Schritte aus, um sicherzustellen, dass der Parameter und die variable Nutzung sicher sind und vertrauliche Daten sicher gespeichert und verwaltet werden. Testen Sie die Pipeline, und stellen Sie sicher, dass die Pipeline wie erwartet ausgeführt wird und dass die Sicherheit der vertraulichen Daten in Ihrem Protokoll gewährleistet ist und das Überwachungsprotokoll überprüft wird.
Weitere Informationen zu Variablen und Parametern finden Sie unter: