Solución de incidencias de seguridad de red
Determinar por qué el firewall de aplicaciones web (WAF) está bloqueando el tráfico deseado
En ocasiones, se bloquean las solicitudes que deben pasar a través del firewall de aplicaciones web (WAF).
Para ajustar las estrictas regulaciones de Open Web Application Security Project (OWASP) para las necesidades de una aplicación u organización, WAF le ayuda a personalizar, o deshabilitar las reglas, o crear exclusiones, que pueden estar causando problemas o falsos positivos. Esto se realiza por sitio y por URI. Es decir, los cambios en las directivas solo afectarán a sitios o URI específicos y no se preocuparían por otros sitios que podrían no tener los mismos problemas.
Los artículos siguientes le ayudarán a comprender cómo funcionan las funciones de WAF y cómo funcionan sus reglas y registros:
Descripción de los registros de WAF
Los registros de WAF funcionan como un resumen de todas las solicitudes evaluadas que coinciden o se bloquean. Si observa un falso positivo, cuando WAF bloquea una solicitud que no debería, puede realizar estos pasos:
Busque la solicitud específica.
Examine los registros para buscar el identificador URI, la marca de tiempo o el identificador de transacción específicos de la solicitud.
Corrija los falsos positivos.
Visualización de registros de WAF
Para ver los registros de WAF, complete los pasos siguientes:
En el portal de Azure, seleccione Todos los recursos y seleccione la Directiva WAF de Application Gateway.
Seleccione Registro de actividad.
Seleccione operaciones individuales para obtener más información.
Para descargar el registro de actividad, seleccione Descargar como CSV.
Para transmitir los eventos del registro de actividad a otro servicio, seleccione Exportar registros de actividad.
En los registros de actividad de exportación:
Seleccione Agregar configuración de diagnóstico.
Escriba un nombre de configuración de diagnóstico.
Seleccione las categorías de registro pertinentes que se van a transmitir en Categorías. Por ejemplo, seleccione Seguridad, Directiva y Alerta.
Seleccione el destino de streaming en Detalles de destino. Por ejemplo, seleccione Enviar al área de trabajo de Log Analytics.
Escriba detalles de destino adicionales. Por ejemplo, la Suscripción y el Área de trabajo de Log Analytics correspondientes.
Haga clic en Guardar.
Modo de puntuación de anomalías
OWASP usa el modo de puntuación de anomalías para decidir si se va a bloquear el tráfico. En el modo puntuación de anomalías, el tráfico que coincida con cualquier regla no se bloquea instantáneamente cuando el firewall está en modo de prevención. Las reglas tienen un criterio determinado: Crítico, Error, Advertencia o Aviso. Cada uno de ellos tiene un valor numérico asociado, denominado Puntuación de anomalías. El valor numérico indica la gravedad de una solicitud.
Para obtener más información, consulte Modo de puntuación de anomalías.
Corrección de falsos positivos
Para corregir falsos positivos y evitar los problemas del tráfico bloqueado, se puede usar una lista de exclusión. El uso de una lista de exclusión solo se aplica a una parte específica de una solicitud o a un conjunto de reglas que se está deshabilitando. Puede decidir excluir cualquier cuerpo, encabezado o cookies para una determinada condición en lugar de excluir toda la solicitud. En un entorno de configuración global, la exclusión específica se aplica a todo el tráfico que pasa por el WAF.
Consulte configuración de WAF para obtener más información sobre las listas de exclusión.
Para configurar listas de exclusión mediante Azure Portal
Vaya al portal de WAF.
Seleccione Administrar exclusiones en Reglas administradas.
Una lista de exclusión de ejemplo:
- Deshabilitar la regla: deshabilitar una regla permite tratar una condición determinada como una no amenaza que, de lo contrario, se marcaría como malintencionada y se bloquearía. En un entorno de configuración global, deshabilitar una regla para todo el WAF es un riesgo y puede debilitar la seguridad.
Para deshabilitar grupos de reglas o reglas específicas
Navegue hasta la puerta de enlace de aplicaciones y seleccione Firewall de aplicaciones web.
Seleccione su Directiva WAF.
Seleccione Reglas administradas.
Busque las reglas o los grupos de reglas que desea deshabilitar.
Active las casillas de las reglas que quiere deshabilitar.
Seleccione la acción en la parte superior de la página (Habilitar/deshabilitar) para las reglas seleccionadas.
Haga clic en Guardar.
Una herramienta de terceros denominada Fiddler puede proporcionar información adicional. Fiddler le ayudará a:
Buscar nombres de atributo de solicitud: revise las solicitudes individuales e identifique cómo se denominan los campos específicos de una página web. También ayuda a excluir determinados campos de la inspección mediante listas de exclusión.
Buscar nombres de cabecera de solicitud: examine las cabeceras de solicitud y respuesta en las herramientas de desarrolladores de Chrome, o visualice las cabeceras de la solicitud GET.
Buscar nombres de cookies de solicitud: para ver las cookies, seleccione la pestaña Cookies en Fiddler.
Restricción de parámetros globales para eliminar los falsos positivos
Deshabilitar la inspección del cuerpo de la solicitud: Se puede evitar que determinados cuerpos que no son una amenaza para la aplicación sean evaluados por su WAF configurando Inspeccionar el cuerpo de la solicitud en 'apagado'. De este modo, lo único que no se inspecciona es el cuerpo de la solicitud. Los encabezados y cookies se seguirán inspeccionando, a menos que estén en la lista de exclusión.
Límites de tamaño de archivo: la posibilidad de un ataque a servidores web y aplicaciones se puede reducir limitando el tamaño del archivo para su WAF. Permitir archivos grandes aumenta el riesgo de que se agote el back-end. Para evitar ataques, es aconsejable limitar el tamaño del archivo a un caso típico de la aplicación.
Nota:
Las métricas de firewall (solo WAF_v1) Para firewalls de aplicaciones web v1, las métricas siguientes ahora están disponibles en el portal:
- Recuento de solicitudes bloqueadas del firewall de aplicaciones web: el número de solicitudes bloqueadas.
- Recuento de reglas bloqueadas de Web Application Firewall: todas las reglas que coincidieron y la solicitud bloqueada.
- Distribución total de reglas del firewall de aplicaciones web: todas las reglas que se encontraron durante la evaluación
Para habilitar las métricas, seleccione la pestaña Métricas en el portal y seleccione una de las tres métricas.
Determinar qué versión de TLS ejecuta un cliente
Si el cliente usa una versión de Seguridad de la capa de transporte (TLS) inferior a la versión mínima necesaria, se producirá un error en todas las llamadas a Azure Storage. Por lo tanto, desde el punto de vista de seguridad, una cuenta de Azure Storage podría requerir que los clientes usen una versión mínima de TLS para enviar solicitudes. Por ejemplo, se producirá un error en una solicitud enviada por un cliente que use TLS 1.1, si una cuenta de almacenamiento requiere TLS 1.2.
En el artículo Configuración de la versión mínima necesaria de Seguridad de la capa de transporte (TLS) para una cuenta de almacenamiento se explica cómo configurar la versión mínima de TLS para una cuenta de Azure Storage que podría afectar a las aplicaciones cliente.
Configuración de la versión de TLS del cliente
Para el cliente, el envío de una solicitud con una versión determinada de TLS solo es posible si el sistema operativo y .NET Framework usado por el cliente admiten esa versión.
Para habilitar TLS 1.2 en un cliente de PowerShell:
# Set the TLS version used by the PowerShell client to TLS 1.2.
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
# Create a new container.
$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context
New-AzStorageContainer -Name "sample-container" -Context $ctx
Para habilitar TLS 1.2 en un cliente .NET mediante la versión 12 de la biblioteca cliente de Azure Storage:
public static async Task ConfigureTls12()
{
// Enable TLS 1.2 before connecting to Azure Storage
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
// Add your connection string here.
string connectionString = "";
// Create a new container with Shared Key authorization.
BlobContainerClient containerClient = new BlobContainerClient(connectionString, "sample-container");
await containerClient.CreateIfNotExistsAsync();
}
Para habilitar TLS 1.2 en un cliente .NET mediante la versión 11 de la biblioteca cliente de Azure Storage:
static void EnableTls12()
{
// Enable TLS 1.2 before connecting to Azure Storage
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
// Add your connection string here.
string connectionString = "";
// Connect to Azure Storage and create a new container.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("sample-container");
container.CreateIfNotExists();
}
Para más información, consulte Compatibilidad con TLS 1.2.
Nota:
Fiddler o una herramienta similar pueden ayudarle a comprobar que el cliente usó la versión especificada de TLS para enviar una solicitud.
Solución de problemas relacionados con el cifrado o el certificado para escenarios de punto a sitio
Una conexión VPN de punto a sitio (P2S) se inicia mediante un único punto de conexión y es útil cuando desea conectarse a la red virtual desde una ubicación remota. Punto a sitio es una opción mejor cuando solo tiene algunos clientes que necesitan conectarse a una red virtual. Las conexiones P2S no requieren un dispositivo VPN ni una red pública ni una dirección IP.
P2S VPN admite el protocolo de tunelización de sockets seguros (SSTP) y IKEv2. Puede conectar de forma segura diferentes clientes que ejecutan Windows, Linux o macOS a una red virtual de Azure a través de una conexión de punto a sitio.
Generación de certificados
Generación de un certificado raíz
En primer lugar, obtenga la clave pública (.cer archivo) para un certificado raíz. Después de crear el certificado raíz, exporte el certificado público (no la clave privada). A continuación, este archivo se carga en Azure. El certificado raíz actúa como origen de confianza de Azure para la conexión a través de P2S a la red virtual. Hay dos maneras de generar un certificado raíz, un certificado de empresa o un certificado autofirmado. Para crear un certificado raíz autofirmado, tenga en cuenta los pasos siguientes:
Abra una consola de Windows PowerShell.
En el ejemplo siguiente se crea un certificado raíz autofirmado denominado "P2SRootCert" que se instala automáticamente en "Certificates-Current User\Personal\Certificates". Puede ver el certificado si abre certmgr.msc, o bien Administrar certificados de usuario.
Puede modificar y ejecutar el siguiente comando:
$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature ` -Subject "CN=P2SRootCert" -KeyExportPolicy Exportable ` -HashAlgorithm sha256 -KeyLength 2048 ` -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSignDeje abierta la consola de PowerShell y continúe con los pasos siguientes para generar un certificado de cliente.
Generación de certificados de cliente
Un certificado de cliente se instala automáticamente en el equipo donde se genera a partir de un certificado raíz autofirmado. Para instalar un certificado de cliente en otro equipo cliente, debe exportarlo como un archivo .pfx, junto con toda la cadena de certificados. El archivo .pfx contendrá la información del certificado raíz necesaria para la autenticación de cliente. Hay dos métodos para crear certificados de cliente, certificados de empresa o certificados raíz autofirmados.
Se recomienda generar un certificado único para cada cliente en lugar de usar el mismo certificado. Esto se debe a que, si desea revocar un certificado de cliente determinado, no es necesario generar e instalar uno nuevo para cada cliente que use el mismo certificado. Para generar el certificado de cliente, tenga en cuenta los pasos siguientes:
Use el ejemplo siguiente si la sesión de consola de PowerShell sigue abierta:
New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature ` -Subject "CN=P2SChildCert" -KeyExportPolicy Exportable ` -HashAlgorithm sha256 -KeyLength 2048 ` -CertStoreLocation "Cert:\CurrentUser\My" ` -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")Si se trata de una nueva sesión de consola de PowerShell, tenga en cuenta los pasos siguientes:
- Identifique el certificado raíz autofirmado que se instaló en el equipo. Este cmdlet devuelve una lista de certificados que están instalados en el equipo.
Get-ChildItem -Path "Cert:\CurrentUser\My"Busque el nombre del firmante de la lista devuelta y, luego, copie la huella digital que se encuentra junto a él en un archivo de texto. En este caso, "P2SRootCert".
Thumbprint Subject ---------- ------- 7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655 CN=P2SRootCertDeclare una variable para el certificado raíz con la huella digital del paso anterior.
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My\<THUMBPRINT>"Reemplace la huella digital con la del certificado raíz a partir del que va a generar un certificado secundario.
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"En este ejemplo, se genera un certificado de cliente denominado "P2SChildCert". El certificado de cliente que genera se instala automáticamente en "Certificados - Usuario actual\Personal\Certificados" en el equipo.
Puede modificar y ejecutar el siguiente comando para generar un certificado de cliente:
New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
-Subject "CN=P2SChildCert" -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" `
-Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")
Para obtener información sobre cómo exportar el certificado raíz y el certificado de cliente, consulte Generación y exportación de certificados para conexiones VPN de usuario.
Para configurar una conexión de punto a sitio mediante el certificado de Azure, debe hacer lo siguiente:
Agregue el grupo de direcciones de cliente VPN.
Especifique el tipo de túnel y el tipo de autenticación.
Cargue la información de clave pública del certificado raíz.
Instale el certificado de cliente exportado.
Configure los valores de los clientes VPN.
Conéctese a Azure.
Para conocer los pasos detallados para configurar una conexión de punto a sitio mediante el certificado de Azure, consulte Conexión a una red virtual mediante la autenticación de vpn y certificados P2S: portal: Azure VPN Gateway.
Para comprobar que la conexión VPN está activa (clientes de Windows), abra una ventana de comandos con privilegios de administrador y ejecute ipconfig/all.
Para conectarse a una máquina virtual (clientes windows):
Busque la dirección IP privada.
Compruebe que está conectado a la red virtual.
Abra Conexión a Escritorio remoto escribiendo "RDP" o "Conexión a Escritorio remoto" en el cuadro de búsqueda de la barra de tareas y, a continuación, seleccione Conexión a Escritorio remoto. También puede abrir conexión a Escritorio remoto mediante el comando "mstsc" en PowerShell.
En Conexión a Escritorio remoto, escriba la dirección IP privada de la máquina virtual. Seleccione Mostrar opciones para ajustar la configuración adicional y, a continuación, conéctese.
Solución de problemas de una conexión
Si tiene problemas para conectarse a una máquina virtual a través de la conexión VPN, lea lo siguiente:
Compruebe que la conexión VPN se ha realizado correctamente.
Asegúrese de que se está conectando a la dirección IP privada de la máquina virtual.
Si puede conectarse a la máquina virtual mediante la dirección IP privada, pero no el nombre del equipo, compruebe la configuración de DNS.
Para más información acerca de las conexiones RDP, consulte Solución de problemas de conexiones del Escritorio remoto a una máquina virtual de Azure.
Compruebe que el paquete de configuración de cliente de VPN se generó después de que se especificaran las direcciones IP del servidor DNS para la red virtual. Si actualizó las direcciones IP de servidor DNS, genere un nuevo paquete de configuración de cliente de VPN e instálelo.
Asegúrese de que no haya espacio de direcciones superpuesto. Por ejemplo, si la dirección IP está dentro del intervalo de direcciones de la Red Virtual (VNet) a la que se conecta, o dentro del intervalo de direcciones de su grupo de direcciones de clientes VPN. Use "ipconfig" para comprobar la dirección IPv4 asignada al adaptador Ethernet en el equipo desde el que se conecta.
Para agregar un certificado raíz de confianza, consulte Carga de un certificado raíz de confianza.
Eliminación de un certificado raíz de confianza:
Vaya a la página de configuración de punto a sitio de la puerta de enlace de red virtual.
En la sección certificado raíz de la página, busque el certificado que desea quitar.
Seleccione los puntos suspensivos junto al certificado y, luego, Quitar.
Revocar un certificado de cliente
Revocar un certificado de cliente es diferente de quitar un certificado raíz de confianza. Al quitar un archivo de certificado raíz de confianza .cer de Azure, se revocan todos los certificados de cliente generados y/o autenticados por el certificado raíz. Revocar un certificado de cliente permite que otros certificados asociados al mismo certificado raíz sigan funcionando.
Para revocar un certificado de cliente, agregue la huella digital a la lista de revocación.
Recupere la huella digital del certificado de cliente. Consulte Cómo recuperar la huella digital de un certificado.
Copie la información en un editor de texto y quite todos los espacios para que sea una cadena continua.
Vaya a la página de configuración de punto a sitio de la puerta de enlace de red virtual. Se trata de la misma hoja que utilizó para cargar un certificado raíz de confianza.
En la sección Certificados revocados , escriba un nombre descriptivo para el certificado.
Copie y pegue la cadena de huella digital en el campo Huella digital.
Se valida la huella digital y se agrega automáticamente a la lista de revocación. Aparece un mensaje en la pantalla que indica que se está actualizando la lista.
Una vez finalizada la actualización, el certificado no se puede usar para conectarse. Los clientes que intenten conectarse con este certificado reciben un mensaje que indica que el certificado ya no es válido.
Solución de problemas de conectividad a puntos de conexión seguros
El punto de conexión privado de Azure es una interfaz de red que usa una dirección IP privada de una red virtual y le conecta de forma privada y segura a un servicio de vínculo privado.
A continuación se muestran los escenarios de conectividad disponibles con el punto de conexión privado:
Red virtual de la misma región.
Redes virtuales emparejadas regionalmente.
Redes virtuales emparejadas globalmente.
Cliente local a través de VPN o circuitos de Azure ExpressRoute.
Diagnóstico de problemas de conectividad
Los pasos siguientes le guiarán para asegurarse de que todas las configuraciones necesarias están en vigor para resolver problemas de conectividad con la configuración del punto de conexión privado. Para obtener pasos detallados, consulte Diagnóstico de problemas de conectividad.
Revise la configuración del punto de conexión privado examinando el recurso.
Use Azure Monitor para ver si los datos fluyen.
Use la solución de problemas de conexión de máquina virtual desde Azure Network Watcher.
La resolución de DNS de los resultados de la prueba debe tener la misma dirección IP privada asignada al punto de conexión privado.
La máquina virtual de origen debe tener la ruta a la dirección IP del punto de conexión privado del próximo salto como InterfaceEndpoints en las rutas efectivas de la NIC.
Si la conexión tiene resultados validados, el problema de conectividad puede estar relacionado con otros aspectos, como secretos, tokens o contraseñas en el nivel de aplicación.
Delimite el problema antes de generar la incidencia de soporte técnico.
Si el punto de conexión privado está vinculado a un servicio Private Link que está vinculado a un equilibrador de carga, compruebe si el grupo de back-end está informando de que el estado es correcto. La corrección del estado del equilibrador de carga resolverá el problema con la conexión al punto de conexión privado.
Póngase en contacto con el equipo de soporte técnico de Azure si el problema no está resuelto y sigue existiendo un problema de conectividad.
Solución de problemas relacionados con el cifrado o el certificado para escenarios de sitio a sitio
Parámetros de directiva de IPsec e IKE para puertas de enlace de VPN
El estándar de protocolo IPsec y IKE admite una amplia gama de algoritmos criptográficos en diversas combinaciones. En el artículo Parámetros IPsec/IKE se explica qué parámetros se admiten en Azure Stack Hub para cumplir los requisitos de cumplimiento o seguridad.
Tenga en cuenta las siguientes consideraciones importantes al usar estas directivas:
La directiva de IPsec o IKE solo funciona en los SKU de puerta de enlace Estándar y HighPerformance (basadas en rutas).
Solo puede especificar una combinación de directiva para una conexión determinada.
Debe especificar todos los algoritmos y parámetros para IKE (modo principal) e IPsec (modo rápido). No se permite la especificación parcial de la política.
Consulte las especificaciones del proveedor de dispositivos VPN si la directiva es compatible con los dispositivos VPN locales.
Los pasos siguientes muestran cómo crear y configurar una directiva de IPsec/IKE y aplicarla a una conexión nueva o existente. Para obtener instrucciones detalladas paso a paso, siga los pasos para configurar una directiva de IPsec o IKE para conexiones VPN de sitio a sitio (S2S) en Azure Stack Hub.
Cree y establezca la directiva IPsec/IKE.
Cree una nueva conexión VPN de sitio a sitio con la directiva IPsec/IKE:
Paso 1: Cree la red virtual, la puerta de enlace de VPN y la puerta de enlace de red local.
Paso 2: Creación de una conexión VPN de sitio a sitio con una directiva IPsec/IKE.
Actualice la directiva IPsec/IKE para una conexión.