Come posso usare AWS WAF con AWS Global Accelerator per proteggere la mia applicazione da attacchi dannosi?

4 minuti di lettura
0

Desidero proteggere la mia applicazione dagli attacchi DDoS di livello 7 utilizzando la regola di limitazione della frequenza di AWS WAF con Application Load Balancer dietro Global Accelerator.

Breve descrizione

Puoi sfruttare AWS Global Accelerator, Application Load Balancer e AWS WAF per difenderti dagli attacchi DDoS (Distributed Denial of Service) al livello applicazione.

**Nota:**La limitazione della frequenza dei client tramite Application Load Balancer e WAF richiede l'impostazione di source IP preserved=TRUE sull'acceleratore. Per ulteriori informazioni, consulta Preservare gli indirizzi IP dei client in AWS Global Accelerator.

Risoluzione

La regola di limitazione della frequenza WAF di AWS ti consente di bloccare automaticamente i client associati a indirizzi IP specifici che inviano un'enorme quantità di richieste alla tua applicazione. La regola basata sulla frequenza tiene traccia del numero di richieste inviate da ciascun indirizzo IP, in base a una finestra temporale scorrevole. Quando le richieste superano il limite di frequenza, la regola blocca immediatamente le richieste dall'indirizzo IP di origine, finché l'indirizzo non riduce il numero di richieste.

**Nota:**Puoi anche configurare la regola per ispezionare e bloccare molti componenti di una richiesta, incluso il Paese da cui proviene la richiesta.

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 WAF --> EC2 instance
    **Nota:**In questa configurazione, l'utente accede all'applicazione effettuando una richiesta all'acceleratore. L'acceleratore indirizza il traffico degli utenti verso i servizi Application Load Balancer e WAF ad esso associati. WAF valuta e blocca o consente la richiesta dell'utente utilizzando la regola di limitazione della frequenza che hai creato.
  • Installa uno strumento di test del carico, come loadtest di GitHub. Oppure, utilizza uno strumento di test di carico di tua scelta che ti offra la visibilità di cui hai bisogno.

Crea un ACL Web basato su regole

Crea una regola basata sulla frequenza nella lista di controllo degli accessi (ACL) Web, con un limite di frequenza restrittivo di 100. Quindi, usa i casi di test per verificare se la tua regola funziona.

  1. Accedi alla console AWS WAF per creare una regola ACL Web.
  2. Aggiungi una regola personalizzata alla tua ACL Web.
  3. Assegnale un nome e imposta la regola basata sulla frequenza comeTipo.
  4. Imposta 100 come Limite di frequenza.
  5. Lascia tutte le altre impostazioni così come sono. Quindi, fai clic su Aggiungi regola.
  6. Salva l’ACL Web.

Test dei risultati

Il test simula un attacco HTTP flood. Lo strumento di test di carico mostra l'avanzamento delle richieste ricevute. A un certo punto le richieste iniziano a non essere soddisfatte, perché vengono bloccate dalla regola di limitazione della frequenza che hai impostato.

  1. Esegui lo strumento loadtest sul tuo computer.
    **Nota:**Oppure apri AWS CloudShell sulla tua console (potresti ricevere un messaggio che ti chiede di passare alla regione in cui è supportato).

    # Install globally as root:
    npm install -g loadtest
    # On AWS CloudShell, Ubuntu or Mac OS X systems install using sudo:
    sudo npm install -g loadtest
  2. Inserisci l'URL di Global Accelerator, come mostrato di seguito:

    # Global Accelerator url
    GA_URL=http://your_Global_Acclerator_URL

    **Nota:**Sostituisci your_Global_Accelerator_URL con il tuo URL di Global Accelerator.

  3. Esegui il comando sul tuo terminale per avviare il flood di richieste per il test di simulazione di carico.

    **Nota:**L'esecuzione dovrebbe richiedere 45 secondi, occorre quindi fare attenzione al flusso.

    loadtest -n 1000 -c 1 --rps 25 $GA_URL

    Il comando invia un totale di 1000 richieste, tra 1 e 25 richieste simultanee al secondo. Con questo numero di richieste al secondo il limite impostato viene raggiunto entro il quarto secondo.

  4. Analizza il flusso di output. Nota che a un certo punto le richieste hanno iniziato a non essere soddisfatte. Gli errori indicano che la regola WAF ha bloccato tutte le richieste provenienti dall'indirizzo IP di origine.

    [Fri Apr 21 2023 20:26:45 GMT+0000 ] INFO Requests: 0 (0%), requests per second: 0, mean latency: 0 ms
    [Fri Apr 21 2023 20:26:50 GMT+0000 ] INFO Requests: 106 (11%), requests per second: 21, mean latency: 22.9 ms
    [Fri Apr 21 2023 20:26:50 GMT+0000 ] INFO Errors: 106, accumulated errors: 106, 100% of total requests
AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa