Partekatu honen bidez:


Extensiones de seguridad

En este artículo se describen los aspectos básicos de las extensiones de máquina virtual para servidores habilitados para Azure Arc y se detalla cómo se puede personalizar la configuración de la extensión.

Básicos de la extensión

Las extensiones de máquina virtual para servidores habilitados para Azure Arc son complementos opcionales que habilitan otras funcionalidades, como la supervisión, la administración de revisiones y la ejecución de scripts. Microsoft publica extensiones y selecciona terceros de Azure Marketplace y se almacenan en cuentas de almacenamiento administradas por Microsoft. Todas las extensiones se examinan para malware como parte del proceso de publicación. Las extensiones de los servidores habilitados para Azure Arc son idénticas a las disponibles para las máquinas virtuales de Azure, lo que garantiza la coherencia en los entornos operativos.

Las extensiones se descargan directamente desde Azure Storage (*.blob.core.windows.net) en el momento en que se instalan o actualizan, a menos que haya configurado puntos de conexión privados. Las cuentas de almacenamiento cambian periódicamente y no se pueden predecir con antelación. Cuando se usan puntos de conexión privados, las extensiones se conectan en proxy a través de la dirección URL regional del servicio Azure Arc en su lugar.

Un archivo de catálogo firmado digitalmente se descarga por separado del paquete de extensión y se usa para comprobar la integridad de cada extensión antes de que el administrador de extensiones se abra o ejecute el paquete de extensión. Si el archivo ZIP descargado de la extensión no coincide con el contenido del archivo de catálogo, se anulará la operación de extensión.

Las extensiones pueden tomar la configuración para personalizar o configurar la instalación, como direcciones URL de proxy o claves de API para conectar un agente de supervisión a su servicio en la nube. La configuración de extensión viene en dos tipos: la configuración normal y la configuración protegida. La configuración protegida no se conserva en Azure y se cifra en reposo en el equipo local.

Todas las operaciones de extensión se originan desde Azure a través de una llamada API, una CLI, PowerShell o una acción del portal. Este diseño garantiza que cualquier acción para instalar o actualizar una extensión en un servidor se incluya en el registro de actividad de Azure. El agente de Azure Connected Machine permite que las extensiones se quiten localmente con fines de solución de problemas y limpieza. Sin embargo, si la extensión se quita localmente y el servicio espera que la máquina tenga instalada la extensión, se volverá a instalar la próxima vez que el administrador de extensiones se sincronice con Azure.

Ejecución de script

El administrador de extensiones puede ejecutar scripts en máquinas mediante Extensión de script personalizado o Ejecutar comando. De forma predeterminada, estos scripts se ejecutarán en el contexto de usuario del administrador de extensiones (sistema local en Windows o raíz en Linux) lo que significa que estos scripts tendrán acceso sin restricciones a la máquina. Si no quiere usar estas características, puede bloquearlas mediante una lista de permitidos o una lista de bloqueados. En la sección siguiente se proporciona un ejemplo.

Controles de seguridad del agente local

A partir de la versión 1.16 del agente, tiene la opción de limitar las extensiones que se pueden instalar en el servidor y deshabilitar la Configuración de invitado. Estos controles pueden ser útiles cuando se conectan servidores a Azure con un único propósito, como recopilar registros de eventos, sin permitir que se utilicen otras capacidades de administración en el servidor.

Estos controles de seguridad solo se pueden configurar mediante la ejecución de un comando en el propio servidor y no se pueden modificar desde Azure. Este enfoque conserva la intención del administrador del servidor al habilitar escenarios de administración remota con Azure Arc, pero también significa que es más difícil cambiar la configuración si más adelante decide cambiarlos. Esta función está pensada para servidores confidenciales (por ejemplo, controladores de Dominio de Active Directory, servidores que manejan datos de pago y servidores sujetos a estrictas medidas de control de cambios). En la mayoría de los demás casos, no es necesario modificar estos ajustes.

Listas de permitidos y listas de bloqueados

El agente de Azure Connected Machine admite una lista de permitidos y una lista de bloqueados para determinar qué extensiones se pueden instalar en el equipo. Las listas de permitidos son exclusivas (solo se pueden instalar las extensiones específicas que incluya en la lista). Las listas de bloqueados son exclusivas (se puede instalar cualquier extensión salvo las incluidas en ellas). Las listas de permitidos son preferibles a las listas de bloqueados porque bloquean inherentemente las nuevas extensiones que están disponibles en el futuro. Las listas de permitidos y las listas de bloqueados se configuran localmente, servidor por servidor. Esto garantiza que nadie, ni siquiera un usuario con permisos de propietario o administrador global en Azure, pueda reemplazar las reglas de seguridad al instalar una extensión no autorizada. Si alguien intenta instalar una extensión no autorizada, el administrador de extensiones se negará a instalarla y marcará que la instalación de la extensión notifica un error en Azure. Las listas de permitidos y las listas de bloqueados se pueden configurar en cualquier momento después de instalar el agente, incluido antes de que el agente esté conectado a Azure.

Si no se configura ninguna lista de permitidos o lista de bloqueados en el agente, se permiten todas las extensiones.

La opción más segura es permitir explícitamente las extensiones que espera se instalen. Toda extensión que no esté en la lista de permitidos se bloquea automáticamente. Para configurar el agente Azure Connected Machine de modo que solo permita el agente Azure Monitor para Linux, ejecute el siguiente comando en cada servidor:

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

Esta es una lista de bloqueados de ejemplo que bloquea todas las extensiones con la capacidad de ejecutar scripts arbitrarios:

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”

Especifique las extensiones con su editor y tipo, separados por una barra oblicua /. Consulte la lista de extensiones más comunes en los documentos o enumere las extensiones de VM ya instaladas en el servidor en el portal, Azure PowerShell o la CLI de Azure.

La tabla describe el comportamiento al realizar una operación de extensión contra un agente que tiene configurada la lista de permitidos o la lista de bloqueados.

Operación En la lista de permitidos En la lista de bloqueados Tanto en la lista de permitidos como en la lista de bloqueados En ninguna lista, pero hay configurada una lista de permitidos
Instalación de la extensión Permitida Bloqueado Bloqueado Bloqueado
Actualizar (reconfigurar) extensión Permitida Bloqueado Bloqueado Bloqueado
Actualizar extensión Permitida Bloqueado Bloqueado Bloqueado
Eliminar extensión Permitido Permitida Permitida Permitido

Importante

Si una extensión ya está instalada en su servidor antes de configurar una lista de permitidos o una lista de bloqueados, no se eliminará automáticamente. Es su responsabilidad eliminar la extensión de Azure para eliminarla completamente de la máquina. Las solicitudes de eliminación se aceptan siempre para permitir este escenario. Una vez eliminados, la lista de permitidos y la lista de bloqueados determinan si se permiten o no futuros intentos de instalación.

A partir de la versión 1.35 del agente, existe un valor especial lista de permitidos Allow/None, que indica al administrador de extensiones que se ejecute, pero que no permita la instalación de ninguna extensión. Esta es la configuración recomendada cuando se utiliza Azure Arc para entregar actualizaciones de seguridad ampliadas (ESU) de Windows Server 2012 sin intención de utilizar ninguna otra extensión.

azcmagent config set extensions.allowlist "Allow/None"

Las directivas de Azure también se pueden usar para restringir qué extensiones se pueden instalar. Las directivas de Azure tienen la ventaja de ser configurables en la nube y no requieren un cambio en cada servidor individual si necesita cambiar la lista de extensiones aprobadas. Sin embargo, cualquier persona con permiso para modificar las asignaciones de directiva podría invalidar o quitar esta protección. Si decide usar directivas de Azure para restringir las extensiones, asegúrese de revisar qué cuentas de su organización tienen permiso para editar las asignaciones de directivas y de que se apliquen las medidas de control de cambios adecuadas.

Procedimientos recomendados para máquinas bloqueadas

Al configurar el agente Azure Connected Machine con un conjunto reducido de capacidades, es importante tener en cuenta los mecanismos que alguien podría utilizar para eliminar esas restricciones e implementar los controles adecuados. Cualquier persona capaz de ejecutar comandos como administrador o usuario raíz en el servidor puede cambiar la configuración del agente de Azure Connected Machine. Las extensiones y las directivas de configuración de invitados se ejecutan en contextos privilegiados en su servidor y, como tales, podrían ser capaces de cambiar la configuración del agente. Si aplica controles de seguridad locales del agente para bloquearlo, Microsoft recomienda las siguientes prácticas recomendadas para garantizar que solo los administradores locales del servidor puedan actualizar la configuración del agente:

  • Siempre que sea posible, use listas de permitidos para extensiones en lugar de listas de bloqueados.
  • No incluya la extensión de script personalizado en la lista de permitidos de extensiones para evitar la ejecución de scripts arbitrarios que puedan cambiar la configuración del agente.
  • Deshabilite la Configuración de invitado para evitar el uso de directivas de Configuración de invitado personalizadas que podrían cambiar la configuración del agente.

Ejemplo de configuración para escenarios de supervisión y seguridad

Es habitual usar Azure Arc para supervisar los servidores con Azure Monitor y Microsoft Sentinel, y protegerlos con Microsoft Defender for Cloud. Esta sección contiene ejemplos de cómo bloquear el agente para que solo admita escenarios de monitorización y seguridad.

Agente de Azure Monitor únicamente

En los servidores Windows, ejecute los siguientes comandos en una consola de comandos con privilegios elevados:

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

En todos los servidores Linux, ejecute los comandos siguientes:

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

Log Analytics y dependencia (Azure Monitor VM Insights) únicamente

Esta configuración corresponde a los agentes heredados de Log Analytics y al agente de dependencias.

En los servidores Windows, ejecute los siguientes comandos en una consola con privilegios elevados:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentWindows"
azcmagent config set guestconfiguration.enabled false

En todos los servidores Linux, ejecute los comandos siguientes:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentLinux"
sudo azcmagent config set guestconfiguration.enabled false

Supervisión y seguridad

Microsoft Defender for Cloud despliega extensiones en su servidor para identificar software vulnerable en su servidor y habilitar Microsoft Defender para punto de conexión (si está configurado). Microsoft Defender for Cloud también usa la Configuración de invitado para su característica de cumplimiento normativo. Dado que se podría usar una asignación personalizada de Configuración de invitado para deshacer las limitaciones del agente, debe evaluar cuidadosamente si necesita o no la característica de cumplimiento normativo y, como consecuencia, si la Configuración de invitado debe habilitarse en el equipo.

En los servidores Windows, ejecute los siguientes comandos en una consola de comandos con privilegios elevados:

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

En todos los servidores Linux, ejecute los comandos siguientes:

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

Modos de agente

Una manera más sencilla de configurar controles de seguridad locales para escenarios de supervisión y seguridad es usar el modo de supervisión, disponible con la versión 1.18 del agente y versiones posteriores. Los modos son configuraciones predefinidas de la lista de permitidos de extensión y el agente de configuración de invitado mantenidos por Microsoft. A medida que las nuevas extensiones estén disponibles para habilitar escenarios de supervisión, Microsoft actualizará la configuración de la lista de permitidos y el agente para incluir o excluir la nueva funcionalidad, según corresponda.

Hay dos modos para elegir:

  1. completo - el modo default. Esto permite toda la funcionalidad del agente.
  2. monitor : un modo restringido que deshabilita el agente de directiva de configuración de invitado y solo permite el uso de extensiones relacionadas con la supervisión y la seguridad.

Para ejecutar el modo comando para habilitar la supervisión:

azcmagent config set config.mode monitor

Puede comprobar el modo actual del agente y las extensiones permitidas con el siguiente comando:

azcmagent config list

Mientras está en modo de supervisión, no se puede modificar la lista de permitidos o la lista de bloqueos de la extensión. Si necesita cambiar cualquiera de las listas, vuelva a cambiar el agente al modo completo y especifique su propia lista de permitidos y listas de bloqueados.

Para volver al modo completo, ejecute el siguiente comando:

azcmagent config set config.mode full

Deshabilitar el administrador de extensiones

Si no necesita usar extensiones con Azure Arc, también puede deshabilitar completamente el administrador de extensiones. Puede deshabilitar el administrador de extensiones con el siguiente comando (ejecute localmente en cada equipo):

azcmagent config set extensions.enabled false

Deshabilitar el administrador de extensiones no eliminará ninguna extensión ya instalada en su servidor. Las extensiones que se alojan en sus propios servicios de Windows o Linux, como el Log Analytics Agent, pueden seguir ejecutándose aunque se deshabilite el administrador de extensiones. Otras extensiones alojadas por el propio administrador de extensiones, como Azure Monitor Agent, no se ejecutan si el administrador de extensiones está deshabilitado. Debe quitar las extensiones antes de deshabilitar el administrador de extensiones para asegurarse de que no se sigan ejecutando en el servidor.