Sicurezza delle estensioni
Questo articolo descrive i concetti fondamentali delle Estensioni di macchine virtuali per i server abilitati per Azure Arc e mostra in dettaglio come personalizzare le impostazioni estensione.
Nozioni di base sulle estensioni
Le estensioni di machine virtuali per i server abilitati per Azure Arc sono componenti aggiuntivi facoltativi che consentono altre funzionalità, come il monitoraggio, la gestione delle patch e l'esecuzione di script. Le estensioni vengono pubblicate da Microsoft, selezionate da terze parti in Azure Marketplace e archiviate negli account di archiviazione gestiti da Microsoft. Tutte le estensioni vengono analizzate per l’individuazione di malware come parte del processo di pubblicazione. Le estensioni per i server abilitati per Azure Arc sono identiche a quelle disponibili per le macchine virtuali di Azure, garantendo la coerenza tra gli ambienti operativi.
Le estensioni vengono scaricate direttamente da Archiviazione di Azure (*.blob.core.windows.net
) al momento dell'installazione o dell'aggiornamento, a meno che non siano stati configurati endpoint privati. Gli account di archiviazione cambiano regolarmente e non possono essere stimati in anticipo. Quando vengono usati endpoint privati, invece, le estensioni vengono trasmesse tramite URL locale per il servizio Azure Arc.
Un file di catalogo con firma digitale viene scaricato separatamente dal pacchetto di estensione e usato per verificare l'integrità di ogni estensione prima che il gestore estensioni venga aperto ed esegua il pacchetto di estensione. Se il file ZIP scaricato per l'estensione non corrisponde al contenuto nel file di catalogo, l'operazione di estensione verrà interrotta.
È possibile personalizzare o configurare l'installazione delle estensioni, ad esempio impostando un URL proxy o chiavi API per connettere un agente di monitoraggio al servizio cloud. Le impostazioni di estensione sono disponibili in due versioni: impostazioni normali e impostazioni protette. Le impostazioni protette rimangono in stato non permanente in Azure e vengono crittografate in stato di inattività nel computer locale.
Tutte le operazioni di estensione provengono da Azure tramite chiamata API, Interfaccia della riga di comando, PowerShell o portale. Questa progettazione garantisce che qualsiasi azione per installare o aggiornare un'estensione in un server venga registrata nel log attività di Azure. L'agente di Azure Connected Machine consente la rimozione locale delle estensioni per la risoluzione dei problemi e per la pulizia. Tuttavia, se l'estensione viene rimossa in locale e il servizio prevede che il computer abbia ancora l'estensione installata, questa verrà reinstallata alla successiva sincronizzazione di Gestione estensioni con Azure.
Esecuzione degli script
Il gestore estensioni può essere usato per eseguire script nei computer usando l'estensione per script personalizzata o esegui comando. Per impostazione predefinita questi script verranno eseguiti nel contesto utente del gestore estensioni - sistema locale in Windows o radice in Linux - ovvero questi script avranno accesso illimitato al computer. Se non si intende usare queste funzionalità, è possibile bloccarle usando un elenco elementi consentiti o elenco elementi bloccati. Nella sezione successiva viene fornito un esempio.
Controlli di sicurezza dell'agente locale
A partire dalla versione dell'agente 1.16, è possibile limitare facoltativamente le estensioni che possono essere installate nel server e disabilitare la configurazione guest. Questi controlli possono essere utili quando ad Azure si connettono server per un singolo scopo, ad esempio la raccolta di log eventi, senza consentire l'uso di altre funzionalità di gestione nel server.
Questi controlli di sicurezza possono essere configurati solo eseguendo un comando nel server stesso e non possono essere modificati da Azure. Questo approccio mantiene la finalità dell'amministratore del server quando si abilitano scenari di gestione remota con Azure Arc, ma significa anche che sarà più difficile modificare le impostazioni successivamente. Questa funzionalità è destinata ai server sensibili (ad esempio, controller di dominio di Active Directory, server che gestiscono i dati di pagamento e server soggetti a severe misure di controllo delle modifiche). Nella maggior parte degli altri casi, non è necessario modificare queste impostazioni.
Elenchi elementi consentiti ed elenchi elementi bloccati
L'agente di Azure Connected Machine supporta un elenco elementi consentiti e un elenco elementi bloccati per limitare le estensioni che è possibile installare nel computer. Gli elenchi elementi consentiti sono esclusivi, cioè è possibile installare solo le estensioni specifiche incluse nell'elenco. Gli elenchi elementi bloccati sono esclusivi, cioè tutte tranne quelle estensioni specifiche possono essere installate. Gli elenchi elementi consentiti sono preferibili agli elenchi elementi bloccati perché bloccano implicitamente tutte le nuove estensioni disponibili in futuro. Gli elenchi elementi consentiti e gli elenchi elementi bloccati vengono configurati in locale in base al server. In questo modo nessuno, nemmeno un utente con autorizzazioni di proprietario o di amministratore globale in Azure, può sostituire le regole di sicurezza provando a installare un'estensione non autorizzata. Se un utente tenta di installare un'estensione non autorizzata, il gestore estensioni rifiuterà di installarla e contrassegnerà l'installazione dell'estensione segnalando un errore in Azure. Gli elenchi elementi consentiti e gli elenchi elementi bloccati possono essere configurati in qualsiasi momento dopo l'installazione dell'agente, anche prima che l'agente sia connesso ad Azure.
Se nell'agente non è configurato alcun elenco elementi consentiti o elenco elementi bloccati, tutte le estensioni sono consentite.
L'opzione più sicura consiste nell'autorizzare in modo esplicito le estensioni che si prevede di installare. Qualsiasi estensione non presente nell'elenco elementi consentiti viene bloccata automaticamente. Per configurare l'agente di Azure Connected Machine ad autorizzare solo l'agente di Monitoraggio di Azure per Linux, eseguire il comando seguente in ogni server:
azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
Ecco un esempio di elenco elementi bloccati che blocca tutte le estensioni con la capacità di eseguire script arbitrari:
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"
Specificare le estensioni con il relativo server di pubblicazione e il tipo, separate da una barra /
. Vedere l'elenco delle estensioni più comuni nella documentazione o elencare le estensioni di macchine virtuali già installate nel server nel portale , in Azure PowerShell o nell’ Interfaccia della riga di comando di Azure.
La tabella descrive il comportamento durante l'esecuzione di un'operazione di estensione su un agente con l'elenco elementi consentiti o l’elenco elementi bloccati configurato.
Operazione | Nell'elenco elementi consentiti | Nell'elenco elementi bloccati | Sia nell'elenco elementi consentiti che nell'elenco elementi bloccati | In nessun elenco, anche se è configurato un elenco elementi consentiti |
---|---|---|---|---|
Installare l'estensione | Consentito | Bloccati | Bloccato | Bloccati |
Aggiornare (riconfigurare) l'estensione | Consentito | Bloccati | Bloccato | Bloccati |
Aggiornare l'estensione | Consentito | Bloccati | Bloccato | Bloccati |
Eliminare l'estensione | Consentito | Consentito | Consentito | Consentito |
Importante
Se un'estensione è già installata nel server prima di configurare un elenco elementi consentiti o un elenco elementi bloccati, non verrà rimossa automaticamente. È responsabilità dell'utente eliminare l'estensione da Azure per rimuoverla completamente dal computer. Le richieste di eliminazione vengono sempre accettate per soddisfare questo scenario. Dopo l'eliminazione, l'elenco elementi consentiti e l’elenco elementi bloccati determinano se consentire o meno tentativi di installazione futuri.
A partire dalla versione dell'agente 1.35, è disponibile il valore speciale Allow/None
nell’elenco elementi consentiti, che consente al gestore estensioni di eseguire le estensioni, ma non di installarle. Questa è la configurazione consigliata quando si usa Azure Arc per distribuire gli aggiornamenti di sicurezza estesa (ESU) di Windows Server 2012, se non si intende usare altre estensioni.
azcmagent config set extensions.allowlist "Allow/None"
È anche possibile usare i criteri di Azure per limitare le estensioni che è possibile installare. I criteri di Azure hanno il vantaggio di essere configurabili nel cloud e di non richiedere la modifica in ogni singolo server per modificare l'elenco delle estensioni approvate. Tuttavia, chiunque disponga dell'autorizzazione per modificare le assegnazioni di criteri può sostituire o rimuovere questa protezione. Se si sceglie di usare Criteri di Azure per limitare le estensioni, assicurarsi di verificare quali account dell'organizzazione dispongono dell'autorizzazione per modificare le assegnazioni di criteri e che siano presenti misure di controllo delle modifiche appropriate.
Procedure consigliate per i computer bloccati
Quando si configura l'agente di Azure Connected Machine con un set ridotto di funzionalità, è importante considerare i meccanismi che un utente potrebbe usare per rimuovere tali restrizioni e implementare i controlli appropriati. Chiunque sia in grado di eseguire comandi come amministratore o utente radice nel server può modificare la configurazione dell'agente di Azure Connected Machine. Le estensioni e i criteri di configurazione guest vengono eseguiti in contesti con privilegi nel server e, di conseguenza, possono modificare la configurazione dell'agente. Se si applicano i controlli di sicurezza dell’agente locale per bloccare l'agente, Microsoft consiglia le procedure seguenti per garantire che solo gli amministratori del server locale possano aggiornare la configurazione dell'agente:
- Usare gli elenchi elementi consentiti per le estensioni al posto degli elenchi elementi bloccati quando possibile.
- Non includere l'estensione per script personalizzati nell'elenco elementi consentiti dell'estensione per impedire l'esecuzione di script arbitrari che potrebbero modificare la configurazione dell'agente.
- Disabilitare la configurazione guest per impedire l'uso dei criteri di configurazione guest personalizzati che potrebbero modificare la configurazione dell'agente.
Configurazione di esempio per scenari di monitoraggio e di sicurezza
È comune usare Azure Arc per monitorare i server con Monitoraggio di Azure e Microsoft Sentinel e proteggerli con Microsoft Defender per il cloud. Questa sezione contiene esempi su come bloccare l'agente a supportare solo scenari di monitoraggio e sicurezza.
Solo agente di Monitoraggio di Azure
Nei server Windows eseguire i comandi seguenti in una console dei comandi con privilegi elevati:
azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false
Nei server Linux eseguire i comandi seguenti:
sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false
Solo Log Analytics e Dependency (Informazioni dettagliate macchina virtuale di Monitoraggio di Azure)
Questa configurazione riguarda gli agenti di Log Analytics legacy e Dependency Agent.
Nei server Windows eseguire i comandi seguenti in una console con privilegi elevati:
azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentWindows"
azcmagent config set guestconfiguration.enabled false
Nei server Linux eseguire i comandi seguenti:
sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentLinux"
sudo azcmagent config set guestconfiguration.enabled false
Monitoraggio e sicurezza
Microsoft Defender per il cloud distribuisce le estensioni nel server per identificare software vulnerabile nel server e abilitare Microsoft Defender per endpoint (se configurato). Microsoft Defender per il cloud usa anche la configurazione guest per la relativa funzionalità di conformità alle normative. Poiché l'assegnazione di una configurazione guest personalizzata può essere usata per annullare le limitazioni dell'agente, è necessario valutare attentamente se la funzionalità di conformità alle normative è necessaria o meno e, di conseguenza, valutare se abilitare la configurazione guest nel computer.
Nei server Windows eseguire i comandi seguenti in una console dei comandi con privilegi elevati:
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
Nei server Linux eseguire i comandi seguenti:
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
Modalità dell’agente
Un modo più semplice per configurare i controlli di sicurezza locali per gli scenari di monitoraggio e di sicurezza consiste nell'usare la modalità di monitoraggio, disponibile con la versione dell'agente1.18 e successive. Le modalità sono configurazioni predefinite dell'elenco elementi consentiti dell’estensione e dell'agente di configurazione guest gestite da Microsoft. Con la disponibilità di nuove estensioni che consentono scenari di monitoraggio, Microsoft aggiornerà l’elenco elementi consentiti e la configurazione dell’agente per includere o escludere la nuova funzionalità, in base alle esigenze.
Esistono due modalità tra cui scegliere:
- Modalità predefinita completa. Questa modalità consente di eseguire tutte le funzionalità dell'agente.
- Modalità monitoraggio: modalità con restrizioni che disabilita l'agente dei criteri di configurazione guest e consente solo l'uso di estensioni correlate al monitoraggio e alla sicurezza.
Per abilitare la modalità di monitoraggio, eseguire il comando seguente:
azcmagent config set config.mode monitor
È possibile controllare la modalità corrente dell'agente e le estensioni consentite con il comando seguente:
azcmagent config list
In modalità di monitoraggio non è possibile modificare l'elenco elementi consentiti o l’elenco elementi bloccati dell'estensione. Se è necessario modificare uno degli elenchi, tornare alla modalità estesa dell'agente e specificare l'elenco elementi consentiti e l’elenco elementi bloccati personalizzati.
Per ripristinare la modalità estesa dell'agente, eseguire il comando seguente:
azcmagent config set config.mode full
Disabilitazione del gestore estensioni
Se non è necessario usare le estensioni con Azure Arc, è anche possibile disabilitare completamente il gestore estensioni. È possibile disabilitare il gestore estensioni con il comando seguente (eseguito localmente in ogni computer):
azcmagent config set extensions.enabled false
La disabilitazione del gestore estensioni non rimuove le estensioni già installate nel server. Le estensioni ospitate nei rispettivi servizi Windows o Linux, come l'agente di Log Analytics, continuano a essere eseguite anche se il gestore estensioni è disabilitato. Le altre estensioni ospitate dal gestore estensioni stesso, come l'agente di Monitoraggio di Azure, non vengono eseguite se il gestore estensioni è disabilitato. Si consiglia di rimuovere tutte le estensioni prima di disabilitare il gestore estensioni per essere sicuri che non continuino a essere eseguite estensioni nel server.