Freigeben über


Sicherheit von Erweiterungen für Azure Arc-fähige Server

In diesem Artikel werden die Grundlagen von VM-Erweiterungen für Azure Arc-fähige Server und details dazu beschrieben, wie Erweiterungseinstellungen angepasst werden können.

Grundlagen der Erweiterung

Vm-Erweiterungen für Azure Arc-fähige Server sind optionale Add-Ons, die andere Funktionen ermöglichen, z. B. Überwachung, Patchverwaltung und Skriptausführung. Erweiterungen werden von Microsoft und ausgewählten Drittanbietern auf dem Azure Marketplace veröffentlicht und in von Microsoft verwalteten Speicherkonten gespeichert. Alle Erweiterungen werden im Rahmen des Veröffentlichungsprozesses auf Schadsoftware gescannt. Erweiterungen, die für Azure Arc-fähige Server unterstützt werden, sind mit denen identisch, die für Azure-VMs verfügbar sind, und sorgen für Konsistenz in Ihren Betriebssystemumgebungen.

Erweiterungen werden direkt aus Azure Storage (*.blob.core.windows.net) heruntergeladen, wenn sie installiert oder aktualisiert werden, es sei denn, Sie haben private Endpunkte konfiguriert. Die Speicherkonten ändern sich regelmäßig und können im Voraus nicht vorhergesagt werden. Wenn private Endpunkte verwendet werden, werden Erweiterungen stattdessen über die regionale URL für den Azure Arc-Dienst vermittelt.

Eine digital signierte Katalogdatei wird separat vom Erweiterungspaket heruntergeladen und verwendet, um die Integrität jeder Erweiterung zu überprüfen, bevor der Erweiterungsmanager das Erweiterungspaket öffnet oder ausführt. Wenn die heruntergeladene ZIP-Datei für die Erweiterung nicht mit dem Inhalt in der Katalogdatei übereinstimmt, wird der Erweiterungsvorgang abgebrochen.

Erweiterungen können Einstellungen verwenden, um die Installation anzupassen oder zu konfigurieren, z. B. Proxy-URLs oder API-Schlüssel, die einen Überwachungs-Agent mit seinem Clouddienst verbinden. Erweiterungseinstellungen sind in zwei Kategorien unterteilt: normale Einstellungen und geschützte Einstellungen. Geschützte Einstellungen bleiben in Azure nicht erhalten und werden auf Ihrem lokalen Computer verschlüsselt.

Alle Erweiterungsvorgänge stammen aus Azure über einen API-Aufruf, eine CLI- oder PowerShell- oder Azure-Portalaktion. Dieser Entwurf stellt sicher, dass jede Aktion zum Installieren, Aktualisieren oder Aktualisieren einer Erweiterung auf einem Server im Azure Monitor-Aktivitätsprotokoll protokolliert wird. Der Azure Connected Machine-Agent ermöglicht das lokale Entfernen von Erweiterungen zur Fehlerbehebung und Bereinigung. Wenn die Erweiterung jedoch lokal entfernt wird und der Dienst weiterhin erwartet, dass der Computer diese Erweiterung hat, wird die Erweiterung erneut installiert, wenn der Erweiterungs-Manager das nächste Mal mit Azure synchronisiert wird.

Skriptausführung

Der Erweiterungsmanager kann verwendet werden, um Skripte auf Computern auszuführen, die die benutzerdefinierte Skripterweiterung oder den Ausführungsbefehl verwenden. Standardmäßig werden diese Skripts im Benutzerkontext des Erweiterungs-Managers ausgeführt – lokales System unter Windows oder Stamm unter Linux – d. h., diese Skripts haben uneingeschränkten Zugriff auf den Computer. Wenn Sie diese Features nicht verwenden möchten, können Sie sie mithilfe einer Zulassungsliste oder Blockliste blockieren. Es sei denn, Sie planen, die Erweiterung "Custom Script" für die Remotecodeausführung zu verwenden, sollten Sie sie nicht nutzen, da Angreifer sie verwenden können, um aus der Ferne Befehle auszuführen, die bösartigen Code bereitstellen.

Sicherheitskontrollen für lokale Agents

Sie können optional die Erweiterungen einschränken, die auf Ihrem Server installiert werden können, und die Gastkonfiguration deaktivieren. Diese Steuerelemente können nützlich sein, wenn Server zu einem einzigen Zweck mit Azure verbunden werden, z. B. zum Sammeln von Ereignisprotokollen, ohne dass andere Verwaltungsfunktionen auf dem Server genutzt werden können.

Diese Sicherheitssteuerelemente können nur durch Ausführen eines Befehls auf dem Server selbst konfiguriert werden, und sie können nicht aus Azure geändert werden. Dieser Ansatz behält die Absicht des Serveradministrators bei, wenn Remoteverwaltungsszenarien mit Azure Arc aktiviert werden, bedeutet aber auch, dass es später schwieriger ist, diese Optionen zu ändern. Diese Steuerelemente sind für vertrauliche Server wie Active Directory-Domänencontroller, Server mit Zahlungsdaten und Servern vorgesehen, die strengen Änderungskontrollmaßnahmen unterliegen). In den meisten anderen Fällen ist es nicht erforderlich, diese Einstellungen zu ändern.

Positivlisten und Sperrlisten

Der Azure Connected Machine-Agent unterstützt eine Positiv- und eine Sperrliste, um einzuschränken, welche Erweiterungen auf Ihrer Maschine installiert werden können. Positivlisten sind exklusiv, was bedeutet, dass nur die spezifischen Erweiterungen, die Sie in die Liste aufnehmen, installiert werden können. Sperrlisten sind exklusiv, d. h. alles außer diesen Erweiterungen kann installiert werden. Positivlisten sind Sperrlisten vorzuziehen, da sie von vornherein alle neuen Erweiterungen blockieren, die in Zukunft verfügbar werden.

Positivlisten und Sperrlisten werden lokal pro Server konfiguriert. Dadurch wird sichergestellt, dass keine benutzende Person, nicht einmal eine Person mit Eigentümer- oder globalen Administratorrechten in Azure, Ihre Sicherheitsregeln außer Kraft setzen kann, indem sie versucht, eine nicht genehmigte Erweiterung zu installieren. Wenn jemand versucht, eine nicht autorisierte Erweiterung zu installieren, lehnt der Erweiterungs-Manager die Installation ab und kennzeichnet den Erweiterungsinstallationsbericht als Fehler bei Azure.

Zulassungslisten und Blocklisten können jederzeit konfiguriert werden, nachdem der Agent installiert wurde, auch bevor der Agent mit Azure verbunden ist.

Wenn keine Positivliste oder Sperrliste auf dem Agenten konfiguriert ist, sind alle Erweiterungen erlaubt.

Die sicherste Option besteht darin, die Erweiterungen, die Sie voraussichtlich installieren, ausdrücklich zuzulassen. Alle Erweiterungen, die nicht in der Positivliste enthalten sind, werden automatisch blockiert. Um beispielsweise den Azure Connected Machine-Agent so zu konfigurieren, dass nur der Azure Monitor Agent für Linux zulässig ist, führen Sie den folgenden Befehl auf jedem Server aus:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"

Beispielsweise blockiert dieser Befehl Erweiterungen, die über die Funktion zum Ausführen beliebiger Skripts verfügen:

azcmagent config set extensions.blocklist "Microsoft.Cplat.Core/RunCommandHandlerWindows, Microsoft.Cplat.Core/RunCommandHandlerLinux,Microsoft.Compute/CustomScriptExtension,Microsoft.Azure.Extensions/CustomScript,Microsoft.Azure.Automation.HybridWorker/HybridWorkerForWindows,Microsoft.Azure.Automation/HybridWorkerForLinux,Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent, Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux"

Geben Sie Erweiterungen mit Herausgeber und Typ an, getrennt durch einen Schrägstrich /. Weitere Informationen zu den am häufigsten verwendeten Erweiterungen finden Sie in den Dokumenten.

Sie können die VM-Erweiterungen auflisten, die bereits auf Ihrem Server im Portal, azure PowerShell oder Azure CLI installiert sind.

In der Tabelle wird das Verhalten für Erweiterungsvorgänge beschrieben, die einen Agenten betreffen, bei dem die Zulassungsliste oder die Blockliste konfiguriert ist.

Operation In der Positivliste In der Sperrliste Sowohl in der Positivliste als auch der Sperrliste In keiner der Liste, Positivliste ist jedoch konfiguriert
Installieren der Erweiterung Allowed Blocked Blocked Blocked
Aktualisieren (Neukonfigurieren) der Erweiterung Allowed Blocked Blocked Blocked
Upgrade der Erweiterung Allowed Blocked Blocked Blocked
Erweiterung löschen Allowed Allowed Allowed Allowed

Important

Wenn eine Erweiterung bereits auf Ihrem Server installiert ist, bevor Sie eine Zulassungsliste oder Blockliste konfigurieren, wird sie nicht entfernt. Es liegt in Ihrer Verantwortung, die Erweiterung aus Azure zu löschen, um sie vollständig vom Computer zu entfernen. Löschanforderungen werden für dieses Szenario immer akzeptiert. Nach dem Löschen wird über die Positiv- oder Sperrliste festgelegt, ob zukünftige Installationsversuche zugelassen werden.

Der Allowlist-Wert Allow/None weist den Erweiterungs-Manager an, auszuführen, aber keine Erweiterungen zu installieren. Dieser Wert wird empfohlen, wenn Sie Azure Arc zum Bereitstellen von erweiterten Sicherheitsupdates (Extended Security Updates, ESU) von Windows Server 2012 verwenden, ohne andere Erweiterungen verwenden zu müssen.

azcmagent config set extensions.allowlist "Allow/None"

Azure-Richtlinie

Eine weitere Option zum Einschränken, welche Erweiterungen installiert werden können, ist die Verwendung von Azure Policy. Richtlinien haben den Vorteil, in der Cloud konfigurierbar zu sein, daher ist eine Änderung auf jedem einzelnen Server nicht erforderlich, wenn Sie die Liste der genehmigten Erweiterungen ändern müssen. Jede Person, die berechtigt ist, Richtlinienzuweisungen zu ändern, kann diesen Schutz jedoch außer Kraft setzen oder aufheben. Wenn Sie Azure-Richtlinie verwenden, um Erweiterungen einzuschränken, überprüfen Sie, welche Konten in Ihrer Organisation über die Berechtigung zum Bearbeiten von Richtlinienzuweisungen verfügen und dass entsprechende Änderungskontrollmaßnahmen vorhanden sind.

Agenten-Überwachungsmodus

Standardmäßig wird der Agent für verbundene Computer im vollständigen Modus ausgeführt, sodass alle Erweiterungen installiert und verwendet werden können (es sei denn, sie sind durch Zulassungslisten, Blocklisten oder Azure-Richtlinien eingeschränkt). Eine einfache Möglichkeit zum Konfigurieren lokaler Sicherheitskontrollen für Überwachungs- und Sicherheitsszenarien besteht darin, den Überwachungsmodus für den verbundenen Computer-Agent zu aktivieren.

Wenn sich der Agent im Überwachungsmodus befindet, können nur Erweiterungen bereitgestellt werden, die sich auf Überwachung und Sicherheit beziehen, z. B. der Azure Monitor Agent und Microsoft Defender für Cloud. Der Agent blockiert alle Erweiterungen, die die Systemkonfiguration ändern oder beliebige Skripts ausführen können, und deaktiviert den Gastkonfigurationsrichtlinien-Agent.

Wenn neue Erweiterungen verfügbar sind, aktualisiert Microsoft die Zulassungsliste für den Monitormodus. Sie können die aktuelle Liste der zulässigen Erweiterungen überprüfen, indem Sie diese ausführen azcmagent config list.

Führen Sie den folgenden Befehl aus, um den Überwachungsmodus zu aktivieren:

azcmagent config set config.mode monitor

Sie können den aktuellen Modus des Agent und zulässige Erweiterungen mit dem folgenden Befehl überprüfen:

azcmagent config list

Im Monitormodus können Sie die Erweiterungs-Zulassungsliste oder Die Sperrliste nicht ändern. Wenn Sie eine der beiden Listen ändern müssen, schalten Sie den Agenten wieder in den Vollmodus um, und geben Sie Ihre eigene Positivliste und Sperrliste an, anstatt den Überwachungsmodus zu verwenden.

Führen Sie den folgenden Befehl aus, um den Agent wieder in den vollständigen Modus zu ändern:

azcmagent config set config.mode full

Bewährte Methoden für gesperrte Computer

Beim Konfigurieren des Azure Connected Machine-Agents mit einem reduzierten Satz von Funktionen ist es wichtig, die Mechanismen zu berücksichtigen, die jemand verwenden könnte, um diese Einschränkungen zu entfernen, und entsprechende Kontrollen zu implementieren. Alle, die Befehle als Administrator oder Root-Benutzer auf dem Server ausführen können, können die Konfiguration des Azure Connected Machine-Agents ändern. Erweiterungen und Gastkonfigurationsrichtlinien werden in privilegierten Kontexten auf Ihrem Server ausgeführt und könnten daher möglicherweise die Agent-Konfiguration ändern. Wenn Sie die Sicherheitskontrollen des lokalen Agents anwenden, um den Agent zu sperren, empfiehlt Microsoft die folgenden bewährten Methoden, um sicherzustellen, dass ausschließlich lokale Serveradministratoren Änderungen an der Agentkonfiguration vornehmen können:

  • Verwenden Sie nach Möglichkeit für Erweiterungen Positivlisten anstelle von Sperrlisten.
  • Lassen Sie die benutzerdefinierte Skripterweiterung nur zu, wenn Sie sie für einen bestimmten Zweck benötigen.
  • Deaktivieren Sie die Gastkonfiguration, um die Verwendung von benutzerdefinierten Gastkonfigurationsrichtlinien zu verhindern, die die Agentkonfiguration ändern könnten.

Beispielkonfiguration für Überwachungs- und Sicherheitsszenarien

Es ist üblich, Azure Arc zu verwenden, um Ihre Server mit Azure Monitor und Microsoft Sentinel zu überwachen und mit Microsoft Defender für Cloud zu schützen. Dieser Abschnitt enthält Beispiele dafür, wie Sie den Agenten so sperren können, dass er nur Überwachungs- und Sicherheitsszenarien unterstützt.

Nur Azure Monitor Agent

Führen Sie auf Windows-Servern die folgenden Befehle in einer Konsole mit erhöhten Rechten aus:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false

Führen Sie auf Linux-Servern die folgenden Befehle aus:

sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false

Überwachung und Sicherheit

Microsoft Defender für Cloud stellt Erweiterungen auf Ihrem Server bereit, um anfällige Software auf Ihrem Server zu identifizieren und Microsoft Defender für Endpoint zu aktivieren (sofern konfiguriert). Microsoft Defender für Cloud verwendet im Rahmen seiner Funktion zur Einhaltung gesetzlicher Bestimmungen ebenfalls die Gastkonfiguration. Da eine benutzerdefinierte Gastkonfigurationszuweisung zum Rückgängigmachen der Agenteinschränkungen verwendet werden kann, sollten Sie sorgfältig auswerten, ob Sie das Feature zur Einhaltung gesetzlicher Vorschriften benötigen und daher die Gastkonfiguration auf dem Computer aktiviert werden soll.

Führen Sie auf Windows-Servern die folgenden Befehle in einer Konsole mit erhöhten Rechten aus:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Qualys/WindowsAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Windows,Microsoft.Azure.AzureDefenderForSQL/AdvancedThreatProtection.Windows"
azcmagent config set guestconfiguration.enabled true

Führen Sie auf Linux-Servern die folgenden Befehle aus:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Qualys/LinuxAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Linux"
sudo azcmagent config set guestconfiguration.enabled true

Deaktivieren des Erweiterungs-Managers

Wenn Sie keine Erweiterungen mit Azure Arc verwenden müssen, können Sie den Erweiterungsmanager auch ganz deaktivieren. Sie können den Erweiterungs-Manager mithilfe des azcmagent config set Befehls deaktivieren (lokal auf jedem Computer ausführen):

azcmagent config set extensions.enabled false

Durch das Deaktivieren des Erweiterungs-Managers werden keine Erweiterungen entfernt, die bereits auf Ihrem Server installiert sind. Erweiterungen, die in ihren eigenen Windows- oder Linux-Diensten gehostet werden, z. B. der ältere Log Analytics-Agent, können auch dann weiterhin ausgeführt werden, wenn der Erweiterungs-Manager deaktiviert ist. Andere Erweiterungen, die vom Erweiterungs-Manager selbst gehostet werden, z. B. der Azure Monitor-Agent, werden nicht ausgeführt, wenn der Erweiterungs-Manager deaktiviert ist. Um sicherzustellen, dass keine Erweiterungen weiterhin auf dem Server ausgeführt werden, entfernen Sie alle Erweiterungen , bevor Sie den Erweiterungs-Manager deaktivieren.