Come posso usare AWS WAF con AWS Global Accelerator per impedire a metodi e intestazioni HTTP di livello 7 di accedere alla mia applicazione?

4 minuti di lettura
0

Utilizzando l'Application Load Balancer abilitata per AWS WAF con AWS Global Accelerator, desidero bloccare le richieste alla mia applicazione qualora il metodo di richiesta sia POST o il valore dell'intestazione user-agent corrisponda a curl/7.79.

Breve descrizione

Puoi utilizzare AWS WAF e Application Load Balancer con Global Accelerator per bloccare l'accesso ai metodi e alle intestazioni HTTP di livello 7. In questa architettura, AWS WAF utilizza le regole della lista di controllo degli accessi web (ACL web) con Application Load Balancer. Il sistema di bilanciamento del carico diventa un endpoint di Global Accelerator.
**Nota:**AWS Global Accelerator in sé non supporta AWS WAF.

La regola ACL Web associata al sistema di bilanciamento del carico valuta il traffico in entrata e inoltra all'endpoint solo le richieste conformi alle regole.

Risoluzione

La regola ACL Web fornisce un controllo granulare su tutte le richieste Web HTTP e HTTPS di accesso alle risorse protette. Usa la regola per configurare una corrispondenza con un’espressione regolare o una stringa su uno o più attributi della richiesta, come l'Uniform Resource Identifier, la stringa di query, il metodo HTTP o la chiave di intestazione.

Prerequisiti

  • Assicurati di disporre della seguente configurazione del flusso di traffico per Global Accelerator, Application Load Balancer e AWS WAF:
    User --> Global Accelerator --> Application Load Balancer with AWS WAF --> EC2 instance
    **Nota:**In questa configurazione, l'utente accede all'applicazione effettuando una richiesta all'acceleratore. L'acceleratore indirizza il traffico degli utenti all'Application Load Balancer e all'AWS WAF ad esso associati. AWS WAF valuta e blocca o autorizza la richiesta utente che presenta il metodo HTTP di livello 7 o il valore dell’intestazione user-agent.

Crea un’ACL Web basato su regole

Utilizza la seguente procedura in 3 passaggi per creare un ACL Web basata su regole. Per ulteriori informazioni, consulta la pagina Creazione di un’ACL Web.

Crea un’ACL Web

  1. Accedi alla console AWS WAF per creare un’ACL Web.
  2. Scegli Crea ACL Web.
  3. Assegna un nome all'ACL Web. Seleziona la regione dell'Application Load Balancer.
  4. Associa l'Application Load Balancer all'ACL Web.
  5. Scegli Avanti.

Aggiungi una regola personalizzata all'ACL Web

Continua a configurare come segue:

  1. Scegli Aggiungi regole. Seleziona dal menu a discesa Aggiungi le mie regole e i miei gruppi di regole.
  2. Nel Generatore di regole, aggiungi una regola.
  3. Assegna un nome alla regola (ad esempio deny_User-Agent_with_POST).
  4. In Tipo, seleziona Regola regolare.

Configura i criteri di corrispondenza per la regola

Completa i passaggi rimanenti:

  1. Seleziona corrisponde ad almeno una delle istruzioni (OR).

  2. In istruzione1 completa nel modo seguente:
    Ispeziona: intestazione singola
    **Nome del campo dell'intestazione:**User-Agent
    **Tipo di corrispondenza:**Corrisponde esattamente alla stringa
    Stringa per la corrispondenza: curl/7.79.0

    In istruzione2 completa nel modo seguente:
    **Ispeziona:**Metodo HTTP
    **Tipo di corrispondenza:**Corrisponde esattamente alla stringa
    **Stringa per la corrispondenza:**POST

  3. Come Azione scegli Blocca.

Test dei risultati con il valore dell’intestazione user-agent

Accedi all'applicazione utilizzando l'URL di Global Accelerator e il valore dell’intestazione user-agent curl/7.79.0 con il metodo di richiesta GET.

curl http://<your Global Accelerator URL> -v -H "User-Agent:curl/7.79.0"
> GET / HTTP/1.1
> Host: <your Global Accelerator DNS>
> User-Agent:curl/7.79.0

< HTTP/1.1 403 Forbidden  
< Server: awselb/2.0
<
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
</body>
</html>

Nota: Sostituisci <your Global Accelerator URL> con il tuo URL di Global Accelerator. Sostituisci <your Global Accelerator DNS> con il tuo DNS.

Nota che AWS WAF ha bloccato la richiesta e Application Load Balancer ha risposto con il messaggio 403 Forbidden.

Test dei risultati con la richiesta POST

Accedi all'applicazione utilizzando l'URL di Global Accelerator e il valore dell'intestazione user-agent curl/7.79.1 con il metodo di richiesta POST.

curl -X POST http://<your Global Accelerator URL> --user "test-user:test-password" -v
> POST / HTTP/1.1
> Host: <your Global Accelerator DNS>
> Authorization: Basic dGVzdC11c2VyOnRlc3QtcGFzc3dvcmQ=
> User-Agent: curl/7.79.1
>
< HTTP/1.1 403 Forbidden
< Server: awselb/2.0
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
</body>
</html>

Nota: Sostituisci <your Global Accelerator URL> con il tuo URL di Global Accelerator. Sostituisci <your Global Accelerator DNS> con il tuo DNS.

Nota che AWS WAF ha bloccato la richiesta e Application Load Balancer ha risposto con un messaggio 403 Forbidden.

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa