Bearbeiten

Teilen über


Quarantänemuster

Azure Container Registry

Nutzen Sie Softwareartefakte von Drittanbietern in Ihrer Lieferkette nur, wenn sie durch gut definierte Prozesse überprüft und als sicher für die Verwendung gekennzeichnet sind. Dieses Muster ist ein operatives Sidecar zum Entwicklungsprozess. Der Verbraucher dieses Musters ruft diesen Prozess auf, um die Verwendung von Software zu überprüfen und zu blockieren, die potenziell Sicherheitsrisiken auslösen könnte.

Kontext und Problem

Cloudlösungen verwenden häufig Software von Drittanbietern, die aus externen Quellen abgerufen werden. Open-Source-Binärdateien, öffentliche Containerimages, Anbieterbetriebssystemimages sind einige Beispiele für diese Art von Artefakten. Alle solchen externen Artefakte müssen als nicht vertrauenswürdigebehandelt werden.

In einem typischen Workflow wird das Artefakt aus einem Speicher außerhalb des Lösungsbereichs abgerufen und dann in die Bereitstellungspipeline integriert. Es gibt einige mögliche Probleme in diesem Ansatz. Die Quelle ist möglicherweise nicht vertrauenswürdig, das Artefakt enthält Möglicherweise Sicherheitsrisiken, oder es ist für die Entwicklerumgebung nicht auf andere Weise geeignet.

Wenn diese Probleme nicht behoben werden, können Datenintegritäts- und Vertraulichkeitsgarantien der Lösung kompromittiert werden oder aufgrund der Inkompatibilität mit anderen Komponenten zu Instabilität führen.

Einige dieser Sicherheitsprobleme können vermieden werden, indem Sie jedem Artefakt Überprüfungen hinzufügen.

Lösung

Führen Sie einen Prozess aus, der die Software auf Sicherheit überprüft, bevor Sie sie in Ihre Workload einführen. Während des Prozesses durchläuft jedes Artefakt gründliche betriebstechnische Rigor, die es anhand bestimmter Bedingungen überprüft. Erst nachdem das Artefakt diese Bedingungen erfüllt, kennzeichnet der Prozess ihn als vertrauenswürdigen.

Der Prozess der Quarantäne ist eine Sicherheitsmaßnahme, die aus einer Reihe von Prüfpunkten besteht, die verwendet werden, bevor ein Artefakt verbraucht wird. Diese Sicherheitsprüfpunkte stellen sicher, dass ein Artefakt von einem nicht vertrauenswürdigen Status zu einem vertrauenswürdigen Status wechselt.

Es ist wichtig zu beachten, dass der Quarantäneprozess die Zusammensetzung des Artefakts nicht ändert. Der Prozess ist unabhängig vom Softwareentwicklungszyklus und wird bei Bedarf von Verbrauchern aufgerufen. Blockieren Sie als Verbraucher des Artefakts die Verwendung von Artefakten, bis sie die Quarantäne bestanden haben.

Hier ist ein typischer Quarantäneworkflow:

Dieses Diagramm zeigt den allgemeinen Workflow für Quarantänemuster.

  1. Der Verbraucher signalisiert seine Absicht, gibt die Eingabequelle des Artefakts an und blockiert seine Verwendung.

  2. Der Quarantäneprozess überprüft den Ursprung der Anforderung und ruft die Artefakte aus dem angegebenen Speicher ab.

  3. Ein benutzerdefinierter Überprüfungsprozess wird als Teil der Quarantäne durchgeführt, einschließlich der Überprüfung der Eingabeeinschränkungen und der Überprüfung der Attribute, Der Quelle und des Typs anhand etablierter Standards.

    Einige dieser Sicherheitsüberprüfungen können sicherheitsrelevante Überprüfungen, Schadsoftwareerkennung usw. für jedes übermittelte Artefakt sein.

    Die tatsächlichen Prüfungen hängen vom Artefakt ab. Die Auswertung eines Betriebssystemimages unterscheidet sich beispielsweise von der Auswertung eines NuGet-Pakets.

  4. Wenn der Überprüfungsprozess erfolgreich ist, wird das Artefakt in einem sicheren Speicher mit klaren Anmerkungen veröffentlicht. Andernfalls bleibt sie für den Verbraucher nicht verfügbar.

    Der Veröffentlichungsprozess kann einen kumulativen Bericht enthalten, der den Nachweis der Überprüfung und die Kritischität jeder Prüfung zeigt. Fügen Sie den Ablauf in den Bericht ein, über den der Bericht ungültig sein soll, und das Artefakt gilt als unsicher.

  5. Der Prozess markiert das Ende der Quarantäne, indem ein Ereignis mit Statusinformationen mit einem Bericht signalisiert wird.

    Basierend auf den Informationen können die Verbraucher Maßnahmen ergreifen, um das vertrauenswürdige Artefakt zu verwenden. Diese Aktionen liegen außerhalb des Quarantänemusters.

Probleme und Überlegungen

  • Stellen Sie als Team, das Artefakte von Drittanbietern nutzt, sicher, dass es von einer vertrauenswürdigen Quelle abgerufen wird. Ihre Wahl muss an von der Organisation genehmigten Standards für Artefakte ausgerichtet werden, die von Drittanbietern bezogen werden. Die Anbieter müssen in der Lage sein, die Sicherheitsanforderungen Ihrer Workload (und Ihrer Organisation) zu erfüllen. Stellen Sie beispielsweise sicher, dass der verantwortliche Offenlegungsplan des Anbieters die Sicherheitsanforderungen Ihrer Organisation erfüllt.

  • Erstellen Sie eine Segmentierung zwischen Ressourcen, die vertrauenswürdige und nicht vertrauenswürdige Artefakte speichern. Verwenden Sie Identitäts- und Netzwerksteuerelemente, um den Zugriff auf autorisierte Benutzer einzuschränken.

  • Sie können den Quarantäneprozess zuverlässig aufrufen. Stellen Sie sicher, dass das Artefakt nicht versehentlich verwendet wird, bis es als vertrauenswürdig gekennzeichnet wurde. Die Signalisierung sollte automatisiert werden. Beispielsweise aufgaben im Zusammenhang mit der Benachrichtigung der verantwortlichen Parteien, wenn ein Artefakt in die Entwicklerumgebung aufgenommen wird, Commit von Änderungen an einem GitHub-Repository, Hinzufügen eines Bilds zu einer privaten Registrierung usw.

  • Eine Alternative zur Implementierung eines Quarantänemusters besteht darin, es auszulagern. Es gibt Quarantänepraktiker, die sich auf die Validierung öffentlicher Objekte als ihr Geschäftsmodell spezialisiert haben. Bewerten Sie sowohl die finanziellen als auch die Betriebskosten der Implementierung des Musters im Vergleich zum Outsourcing der Verantwortung. Wenn Ihre Sicherheitsanforderungen mehr Kontrolle benötigen, wird die Implementierung Ihres eigenen Prozesses empfohlen.

  • Automatisieren Sie den Artefaktaufnahmeprozess und den Prozess der Veröffentlichung des Artefakts. Da Validierungsaufgaben Zeit in Anspruch nehmen können, muss der Automatisierungsprozess bis zum Abschluss aller Aufgaben in der Lage sein.

  • Das Muster dient als erste gelegenheitsmomente Überprüfung. Beim erfolgreichen Übergeben der Quarantäne wird nicht sichergestellt, dass das Artefakt unbegrenzt vertrauenswürdig bleibt. Das Artefakt muss sich weiterhin kontinuierlichen Überprüfungen, Pipelineüberprüfungen und anderen Routinesicherheitsprüfungen unterziehen, die als letzte Gelegenheitsüberprüfung dienen, bevor die Freigabe gefördert wird.

  • Das Muster kann von zentralen Teams einer Organisation oder einem einzelnen Arbeitsauslastungsteam implementiert werden. Wenn es viele Instanzen oder Variationen des Quarantäneprozesses gibt, sollten diese Vorgänge von der Organisation standardisiert und zentralisiert werden. In diesem Fall teilen Arbeitsauslastungsteams den Prozess und profitieren von der Offloading-Prozessverwaltung.

Wann dieses Muster verwendet werden soll

Verwenden Sie dieses Muster in folgenden Fällen:

  • Die Workload integriert ein Artefakt, das außerhalb des Workloadteams entwickelt wurde. Zu den gängigen Beispielen gehören:

    • Ein Open Container Initiative (OCI)-Artefakt aus öffentlichen Registrierungen wie DockerHub, GitHub-Containerregistrierung, Microsoft-Containerregistrierung

    • Eine Softwarebibliothek oder ein Paket aus öffentlichen Quellen, z. B. nuGet Gallery, Python Package Index, Apache Maven Repository

    • Ein externes Infrastructure-as-Code(IaC)-Paket wie Terraform-Module, Community Chef Cookbooks, Azure Verified Modules

    • Ein vom Hersteller bereitgestelltes Betriebssystemimage oder Softwareinstallationsprogramm

  • Das Arbeitsauslastungsteam betrachtet das Artefakt als Risiko, das ein milderndes Risiko darstellt. Das Team versteht die negativen Folgen der Integration kompromittierter Artefakte und des Werts der Quarantäne bei der Sicherstellung einer vertrauenswürdigen Umgebung.

  • Das Team verfügt über ein klares und gemeinsames Verständnis der Gültigkeitsprüfungsregeln, die auf einen Artefakt angewendet werden sollen. Ohne Konsens ist das Muster möglicherweise nicht wirksam.

    Wenn beispielsweise jedes Mal, wenn ein Betriebssystemimage in Quarantäne aufgenommen wird, eine andere Gruppe von Überprüfungen angewendet wird, wird der allgemeine Überprüfungsprozess für Betriebssystemimages inkonsistent.

Dieses Muster ist möglicherweise nicht hilfreich, wenn:

  • Das Softwareartefakt wird vom Workloadteam oder einem vertrauenswürdigen Partnerteam erstellt.

  • Das Risiko, das Artefakt nicht zu überprüfen, ist weniger teuer als die Kosten für das Erstellen und Warten des Quarantäneprozesses.

Workload-Design

Ein Architekt und das Workloadteam sollten bewerten, wie das Quarantänemuster als Teil der DevSecOps-Praktiken der Workload verwendet werden kann. Die zugrunde liegenden Prinzipien werden in den Azure Well-Architected Framework-Säulenbehandelt.

Säule Wie dieses Muster Pfeilerziele unterstützt
Sicherheits- Designentscheidungen tragen dazu bei, die Vertraulichkeit, Integritätund Verfügbarkeit der Daten und Systeme Ihrer Workload sicherzustellen. Die erste Verantwortung für die Sicherheitsüberprüfung wird vom Quarantänemuster bereitgestellt. Die Überprüfung eines externen Artefakts wird in einer segmentierten Umgebung durchgeführt, bevor sie vom Entwicklungsprozess genutzt wird.

- SE:02 Gesicherter Entwicklungslebenszyklus
- SE:11 Test- und Validierungs-
Operational Excellence hilft, Arbeitsauslastungsqualität durch standardisierte Prozesse und Teamzusammenhalt zu liefern. Das Quarantänemuster unterstützt sichere Bereitstellungsmethoden (SDP), indem sichergestellt wird, dass kompromittierte Artefakte nicht von der Workload verbraucht werden, was zu Sicherheitsverletzungen bei progressiven Expositionsbereitstellungen führen kann.

- OE:03 Softwareentwicklungspraktiken
- OE:11 Test- und Validierungs-

Berücksichtigen Sie wie bei jeder Entwurfsentscheidung alle Gegensätze gegen die Ziele der anderen Säulen, die mit diesem Muster eingeführt werden können.

Beispiel

In diesem Beispiel wird der Lösungsworkflow auf ein Szenario angewendet, in dem das Workloadteam OCI-Artefakte aus öffentlichen Registrierungen in eine Azure Container Registry (ACR)-Instanz integrieren möchte, die dem Workloadteam gehört. Das Team behandelt diese Instanz als vertrauenswürdigen Artefaktspeicher.

Die Workloadumgebung verwendet Azure-Richtlinie für Kubernetes, um Governance zu erzwingen. Sie schränkt container-Pulls nur von ihrer vertrauenswürdigen Registrierungsinstanz ein. Darüber hinaus sind Azure Monitor-Warnungen so eingerichtet, dass importe in diese Registrierung aus unerwarteten Quellen erkannt werden.

Dieses Diagramm zeigt die Azure Container Registry-Implementierung des Quarantänemusters.

  1. Eine Anforderung für ein externes Image wird vom Workloadteam über eine benutzerdefinierte Anwendung erstellt, die in Azure Web Apps gehostet wird. Die Anwendung sammelt die erforderlichen Informationen nur von autorisierten Benutzern.

    Sicherheitsprüfpunkt: Die Identität des Anforderers, die Zielcontainerregistrierung und die angeforderte Imagequelle werden überprüft.

  2. Die Anforderung wird in Azure Cosmos DB gespeichert.

    Sicherheitsprüfpunkt: Ein Überwachungspfad wird in der Datenbank verwaltet, wobei die Linien und Überprüfungen des Bilds nachverfolgt werden. Dieser Weg wird auch für historische Berichte verwendet.

  3. Die Anforderung wird von einem Workflow-Orchestrator verarbeitet, bei dem es sich um eine dauerhafte Azure-Funktion handelt. Der Orchestrator verwendet einen Punkt-Gather-Ansatz zum Ausführen aller Überprüfungen.

    Sicherheitsprüfpunkt: Der Orchestrator verfügt über eine verwaltete Identität mit nur genügend Zugriff, um die Überprüfungsaufgaben auszuführen.

  4. Der Orchestrator sendet eine Anforderung, das Image in die Azure Container Registry (ACR) in Quarantäne zu importieren, die als nicht vertrauenswürdiger Speicher gilt.

  5. Der Importvorgang in der Quarantäneregistrierung ruft das Bild aus dem nicht vertrauenswürdigen externen Repository ab. Wenn der Import erfolgreich ist, verfügt die Quarantäneregistrierung über eine lokale Kopie des Bilds, um Überprüfungen auszuführen.

    Sicherheitsprüfpunkt: Die Quarantäneregistrierung schützt vor Manipulationen und Arbeitsauslastungsverbrauch während des Überprüfungsprozesses.

  6. Der Orchestrator führt alle Überprüfungsaufgaben für die lokale Kopie des Images aus. Zu den Aufgaben gehören Prüfungen wie allgemeine Sicherheitsrisiken und Sicherheitsrisiken (CVE) Erkennung, Bewertung von Material (Software Bill of Material, SBOM), Schadsoftwareerkennung, Bildsignatur und andere.

    Der Orchestrator entscheidet über die Art der Prüfungen, die Reihenfolge der Ausführung und den Zeitpunkt der Ausführung. In diesem Beispiel wird Azure Container Instance als Aufgabenläufer verwendet, und die Ergebnisse befinden sich in der Cosmos DB-Überwachungsdatenbank. Alle Vorgänge können erhebliche Zeit in Anspruch nehmen.

    Sicherheitsprüfpunkt: Dieser Schritt ist der Kern des Quarantäneprozesses, der alle Überprüfungen durchführt. Die Art der Überprüfungen kann benutzerdefinierte, open sourced oder vom Hersteller erworbene Lösungen sein.

  7. Der Orchestrator trifft eine Entscheidung. Wenn das Bild alle Überprüfungen übergibt, wird das Ereignis in der Überwachungsdatenbank angegeben, das Bild wird an die vertrauenswürdige Registrierung gesendet, und die lokale Kopie wird aus der Quarantäneregistrierung gelöscht. Andernfalls wird das Bild aus der Quarantäneregistrierung gelöscht, um die unbeabsichtigte Verwendung zu verhindern.

    Sicherheitsprüfpunkt: Der Orchestrator verwaltet die Segmentierung zwischen vertrauenswürdigen und nicht vertrauenswürdigen Ressourcenspeicherorten.

    Anmerkung

    Anstatt die Entscheidung des Orchestrators zu treffen, kann das Workload-Team diese Verantwortung übernehmen. In dieser Alternative veröffentlicht der Orchestrator die Validierungsergebnisse über eine API und behält das Bild in der Quarantäneregistrierung für einen bestimmten Zeitraum bei.

    Das Workloadteam trifft die Entscheidung nach der Überprüfung der Ergebnisse. Wenn die Ergebnisse ihrer Risikotoleranz entsprechen, rufen sie das Image aus dem Quarantäne-Repository in ihre Containerinstanz ab. Dieses Pullmodell ist praktischer, wenn dieses Muster verwendet wird, um mehrere Arbeitsauslastungsteams mit unterschiedlichen Sicherheitsrisikotoleranzen zu unterstützen.

Alle Containerregistrierungen werden von Microsoft Defender für Container abgedeckt, die kontinuierlich nach neu gefundenen Problemen sucht. Diese Probleme werden in der Microsoft Defender-Sicherheitsrisikoverwaltung angezeigt.

Nächste Schritte

Die folgenden Anleitungen können bei der Implementierung dieses Musters relevant sein: