Compartir a través de


Protección de las API hospedadas en API Management mediante Azure Web Application Firewall

Hay un número cada vez mayor de empresas que se adhieren al enfoque de API first para sus aplicaciones internas, y el número y la complejidad de los ataques de seguridad contra las aplicaciones web evolucionan constantemente. Esta situación requiere que las empresas adopten una estrategia de seguridad sólida para proteger las API de varios ataques a aplicaciones web.

Azure Web Application Firewall (WAF) es un producto de Azure Networking que protege las API de varios ataques web de los 10 principales de OWASP , CVE y ataques de bots malintencionados.

En este artículo se describe cómo usar Azure Web Application Firewall en Azure Front Door para proteger las API hospedadas en Azure API Management

Cree una instancia de APIM y publique una API en APIM que genere una respuesta de API ficticia

  1. Cree una instancia de APIM. Para más información, consulte Inicio rápido: Creación de una nueva instancia de servicio de Azure API Management mediante Azure Portal.

    En la captura de pantalla siguiente se muestra que se ha creado una instancia de APIM denominada contoso-afd-apim-resource . La creación y activación de un servicio de API Management puede tardar entre 30 y 40 minutos.

    Captura de pantalla que muestra la instancia de APIM creada.

  2. Cree una API y genere respuestas de API simuladas. Para obtener más información, consulte Tutorial: Respuestas de API simuladas.

    Reemplace el nombre de la API de API de prueba dado en el tutorial anterior por API de libros.

    La API de libros realiza una operación GET para _/test_ como la ruta URL de la API. Puede ver que la respuesta de la API se establece como 200 OK con el tipo de contenido como application/json con texto como {“Book”:” $100”}.

  3. Desactive la casilla de suscripción requerida en la pestaña de configuración del API y seleccione Guardar.

  4. Pruebe las respuestas simuladas desde la interfaz APIM. Debería recibir una respuesta de 200 OK .

Ahora, se ha creado la API Book. Una llamada correcta a esta URL devuelve una respuesta 200 OK y devuelve el precio de un libro como $100.

Creación de una instancia de Azure Front Door Premium con la API hospedada en APIM como origen

El conjunto de reglas predeterminadas administrado por Microsoft se basa en el conjunto de reglas principales de OWASP e incluye reglas de inteligencia sobre amenazas de Microsoft.

Nota:

El conjunto de reglas administradas no está disponible para la SKU estándar de Azure Front Door. Para obtener más información sobre las distintas SKU, consulte Comparación de niveles de Azure Front Door.

Use los pasos descritos en la opción de creación rápida para crear un perfil de Azure Front Door Premium con una directiva de seguridad de WAF asociada en el mismo grupo de recursos:

Inicio rápido: Creación de un perfil de Azure Front Door con Azure Portal

Use la siguiente configuración al crear el perfil de Azure Front Door:

  • Nombre: myAzureFrontDoor
  • Nombre del punto de conexión: bookfrontdoor
  • Tipo de origen: API Management
  • Nombre de host de origen: contoso-afd-apim-resource.azure-api.net(contoso-afd-apim-resource)
  • Política de WAF: cree una nueva política de WAF con el nombre bookwafpolicy.

Todos los demás ajustes permanecen en los valores predeterminados.

Habilitación de Azure Web Application Firewall en modo de prevención

Seleccione la directiva de Azure WAF "bookwafpolicy" y asegúrese de que el modo de directiva esté establecido en "Prevención" en la pestaña de información general de la directiva

El modo de detección de Azure WAF se usa para probar y validar la directiva. La detección no bloquea la llamada, sino que registra todas las amenazas detectadas, mientras que el modo de prevención bloquea la llamada si se detecta un ataque. Normalmente, se prueba el escenario antes de cambiar al modo de prevención. En este ejercicio, cambiamos al modo de prevención.
Azure Web Application Firewall en Azure Front Door tiene más información sobre los diversos modos de política de WAF.

Restrinja el acceso a APIM solo a través de Azure Front Door

Las solicitudes enrutadas mediante Front Door incluyen encabezados específicos de la configuración de Front Door. Puede configurar la directiva de encabezado de comprobación como una política de APIM entrante para filtrar las solicitudes entrantes en función del valor único del encabezado de solicitud HTTP X-Azure-FDID que se envía a API Management. Este valor de encabezado es el identificador de Azure Front Door, que está disponible en la página Información general de AFD.

  1. Copie el identificador de Front Door de la página Información general de AFD.

  2. Acceda a la página API de APIM, seleccione la API de libros, seleccione Diseño y Todas las operaciones. En la directiva de entrada, seleccione + Agregar directiva.

    Una captura de pantalla que muestra cómo agregar una política de entrada.

  3. Seleccione Otras políticas

  4. Selecciona "Mostrar fragmentos" y selecciona Comprobar encabezado HTTP.

    Agregue el siguiente código a la directiva de entrada para el encabezado HTTP X-Azure-FDID. Reemplácelo {FrontDoorId} por el ID de AFD copiado en el primer paso de esta sección.

    <check-header name="X-Azure-FDID" failed-check-httpcode="403" failed-check-error-message="Invalid request" ignore-case="false">
         <value>{FrontDoorId}</value>
    </check-header>
    
    
  5. Haga clic en Guardar.

    En este momento, el acceso a APIM solo está restringido al punto de conexión de Azure Front Door.

Compruebe que la llamada a la API se enruta a través de Azure Front Door y está protegida por Azure Web Application Firewall

  1. Obtenga el punto de conexión de Azure Front Door recién creado desde Front Door Manager.

    Una captura de pantalla que muestra el punto de conexión AFD seleccionado.

  2. Examine los grupos de origen y confirme que el nombre de host de origen es contoso-afd-apim-resource.azure-api.net. En este paso se comprueba que la instancia de APIM es un origen en la versión premium de Azure Front Door recién configurada.

  3. En la sección Directivas de seguridad , compruebe que la política de WAF bookwafpolicy esté aprovisionada.

  4. Seleccione bookwafpolicy y compruebe que bookwafpolicy tiene aprovisionadas las reglas administradas. Se aprovisionan las últimas versiones de Microsoft_DefaultRueSet y Microsoft_BotManagerRuleSet que protegen el origen contra las 10 principales vulnerabilidades de OWASP y los ataques de bots maliciosos.

En este punto, se configura la llamada de un extremo a otro y la API está protegida por Azure Web Application Firewall.

Verificación de la configuración

  1. Acceda a la API a través del punto de conexión de Azure Front Door desde el explorador. La API debe devolver la siguiente respuesta:

    Una captura de pantalla que muestra el acceso a la API a través del punto de conexión AFD.

  2. Compruebe que no se puede acceder a APIM directamente a través de Internet y que solo se puede acceder a través de AFD:

    Una captura de pantalla que muestra APIM inaccesible a través de Internet.

  3. Ahora intente invocar la dirección URL del punto de conexión AFD a través de cualquier ataque OWASP Top 10 o ataque bot y debería recibir un mensaje REQUEST IS BLOCKED y se bloquea la solicitud. La API se ha protegido de ataques web mediante Azure Web Application Firewall.