Quarantänemuster

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 derartigen externen Artefakte müssen als nicht vertrauenswürdig behandelt 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 könnte möglicherweise Sicherheitslücken enthalten, oder es ist für die Entwicklerumgebung auf andere Weise nicht geeignet.

Wenn diese Probleme nicht behoben werden, könnten die Datenintegrität und Vertraulichkeit der Lösung beeinträchtigt werden, oder die Lösung könnte aufgrund der Inkompatibilität mit anderen Komponenten instabil werden.

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 wird jedes Artefakt einer gründlichen operativen Prüfung unterzogen, bei der es auf bestimmte Bedingungen hin überprüft wird. Erst nachdem das Artefakt diese Bedingungen erfüllt, kennzeichnet der Prozess es als vertrauenswürdig.

Der Quarantäneprozess 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.

Der Quarantäneprozess ändert die Zusammensetzung des Artefakts nicht. Der Prozess ist unabhängig vom Softwareentwicklungszyklus und wird bei Bedarf von Clients aufgerufen. Als Verbraucher des Artefakts blockieren Sie die Verwendung von Artefakten, bis sie die Quarantäne passiert haben.

Hier ist ein typischer Quarantäneworkflow:

Dieses Diagramm zeigt den allgemeinen Workflow des Quarantänemusters.

  1. Der Consumer 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 Sicherheitsrisikoüberprüfungen, Schadsoftwareerkennung und andere Überprüfungen sein, die auf jedem übermittelten Artefakt ausgeführt werden.

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

  4. Wenn der Überprüfungsprozess erfolgreich abgeschlossen wird, 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 Kritikalität jeder Prüfung zeigt. Fügen Sie in den Bericht eine Gültigkeitsdauer ein, nach der der Bericht ungültig sein sollte und das Artefakt als unsicher gilt.

  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 Trusted Artifact zu verwenden. Diese Aktionen liegen außerhalb des Quarantänemusters.

Probleme und Überlegungen

  • Stellen Sie als Team, das Artefakte von Drittanbietern nutzt, sicher, dass diese von einer vertrauenswürdigen Quelle abgerufen werden. Ihre Wahl muss an von der Organisation genehmigten Standards für Artefakte, die von Drittanbietern bezogen werden, ausgerichtet 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 Plan zur verantwortungsvollen Offenlegung 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 zuständigen Parteien, wenn ein Artefakt in die Entwicklerumgebung aufgenommen wird, Übertragung von Änderungen an einem GitHub-Repository und Hinzufügen eines Images zu einer privaten Registrierung.

  • Eine Alternative zur Implementierung eines Quarantine Patterns besteht darin, es auszulagern. Es gibt Quarantänepraktiker, die sich auf die Validierung öffentlicher Vermögenswerte als Geschäftsmodell spezialisiert haben. Bewerten Sie sowohl die finanziellen als auch die Betriebskosten der Musterimplementierung im Vergleich zum Outsourcing der Zuständigkeiten. Wenn Ihre Sicherheitsanforderungen mehr Kontrolle benötigen, wird die Implementierung Ihres eigenen Prozesses empfohlen.

  • Automatisieren Sie den Artefaktimportprozess und den Prozess der Veröffentlichung des Artefakts. Da Validierungsaufgaben Zeit in Anspruch nehmen können, muss der Automatisierungsprozess weiterlaufen können, bis alle Aufgaben abgeschlossen sind.

  • Das Muster dient als erste vorläufige Gelegenheitsüberprüfung. Das erfolgreiche Durchlaufen der Quarantäne stellt nicht sicher, dass das Artefakt auf unbestimmte Zeit vertrauenswürdig bleibt. Das Artefakt muss weiterhin einer kontinuierlichen Überprüfung, Pipeline-Validierung und anderen routinemäßigen Sicherheitsprüfungen unterzogen werden, die als letzte Möglichkeit zur Validierung vor der Freigabe dienen.

  • Das Muster kann von zentralen Teams einer Organisation oder einem einzelnen Workload-Team 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 Workload-Teams den Prozess und profitieren von der Entlastung bei der Prozessverwaltung.

Wann dieses Muster verwenden

Verwenden Sie dieses Muster in folgenden Fällen:

  • Die Workload integriert ein Artefakt, das außerhalb des Workloadteams entwickelt wurde. Häufige Beispiele sind:

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

    • 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 Workload-Team betrachtet das Artefakt als ein Risiko, das es zu mindern gilt. 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 ein Artefakt angewendet werden sollen. Ohne Konsens ist das Pattern 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 in folgenden Fällen möglicherweise nicht geeignet:

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

Arbeitslastgestaltung

Ein Architekt und das Workloadteam sollten bewerten, wie das Quarantine pattern 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 So unterstützt dieses Muster die Säulenziele
Sicherheitsdesignentscheidungen tragen dazu bei, die Vertraulichkeit, Integrität und Verfügbarkeit der Daten und Systeme Ihrer Workload sicherzustellen. Die erste Aufgabe der Sicherheitsvalidierung wird durch das Quarantänemuster erfüllt. Die Überprüfung eines externen Artefakts wird in einer segmentierten Umgebung durchgeführt, bevor es vom Entwicklungsprozess genutzt wird.

- SE:02 Gesicherter Entwicklungslebenszyklus
- SE:11 Tests und Validierung
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 Prüfung und Validierung

Berücksichtigen Sie wie bei jeder Designentscheidung alle Kompromisse im Hinblick auf die Ziele der anderen Säulen, die mit diesem Muster eingeführt werden könnten.

Example

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 Policy for Kubernetes, um Governance zu erzwingen. Sie schränkt ein, dass Container nur von ihrer vertrauenswürdigen Registry-Instanz abgerufen werden. Darüber hinaus sind Azure Monitor-Warnungen so eingerichtet, dass Importe in diese Registry 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 gestellt, 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 Ziel-Container-Registry und die angeforderte Imagequelle werden überprüft.

  2. Die Anforderung wird in Azure Cosmos DB gespeichert.

    Sicherheitsprüfpunkt: Ein Audit-Trail wird in der Datenbank verwaltet, wobei die Herkunft 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 Scatter-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 Image aus dem nicht vertrauenswürdigen externen Repository ab. Wenn der Import erfolgreich ist, verfügt die Quarantäne-Registry über eine lokale Kopie des Images, um Überprüfungen auszuführen.

    Sicherheitsprüfpunkt: Die Quarantäne-Registrierung schützt vor Manipulationen und Ressourcenverbrauch während des Überprüfungsprozesses.

  6. Der Orchestrator führt alle Überprüfungsaufgaben auf der lokalen Kopie des Images aus. Zu den Aufgaben gehören Prüfungen wie die Erkennung von Common Vulnerabilities and Exposures (CVE), die Bewertung der Software Bill of Materials (SBOM), Schadsoftwareerkennung, Image-Signierung 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 Task Runner 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, bei dem alle Validierungsprüfungen durchgeführt werden. Bei den Überprüfungen kann es sich um benutzerdefinierte, Open-Source- oder vom Hersteller erworbene Lösungen handeln.

  7. Der Orchestrator trifft eine Entscheidung. Wenn das Image alle Überprüfungen besteht, wird das Ereignis in der Überwachungsdatenbank angegeben, das Image wird an die vertrauenswürdige Registry 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.

    Note

    Anstatt dass der Orchestrator die Entscheidung trifft, 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 Workload-Teams mit unterschiedlichen Sicherheitsrisikotoleranzen zu unterstützen.

Alle Containerregistrierungen werden von Microsoft Defender for Containers abgedeckt, der kontinuierlich nach neu gefundenen Problemen sucht. Diese Probleme werden in Microsoft Defender Vulnerability Management angezeigt.

Nächste Schritte

Die folgenden Informationen sind unter Umständen bei der Implementierung dieses Musters relevant: