Proteggere l'applicazione utilizzando WAF

Quando l'applicazione viene instradata tramite Web Application Firewall (WAF), proteggere l'applicazione utilizzando le varie funzioni di sicurezza offerte da WAF.

È possibile proteggere l'applicazione effettuando le operazioni riportate di seguito.

  • Configurazione delle regole di protezione
  • Uso della gestione dei bot
  • Aggiunta di regole di accesso

Configura regole di protezione

È possibile proteggere l'applicazione con regole per bloccare gli attacchi XSS (Cross Site Scripting) e SQLi (SQL Injection).

Per configurare le regole di protezione:
  1. Collegarsi alla console di Oracle Cloud Infrastructure.
  2. Aprire il menu di navigazione. In Governance and Administration andare a Security e fare clic su WAF Policies.
  3. Fare clic su Regole di protezione.
    Viene visualizzata una tabella con regole di protezione predefinite.
  4. Utilizzare il filtro ID RULE e selezionare le regole 941140 e 981300.
    I dettagli della regola vengono visualizzati a destra.
  5. Selezionare ogni regola e fare clic su Blocca nel menu a discesa Azioni.
  6. Fare clic su Pubblica tutto.
    La pubblicazione delle modifiche apportate al criterio WAF può richiedere alcuni minuti.

Verifica regole di protezione

Per verificare se le regole di protezione funzionano:
  1. Aprire la scheda Rete dalla pagina Strumenti sviluppatore del browser.
  2. Accedere all'applicazione dipendente di esempio, http://employee.<example.com>/public/, dal browser.
  3. Fare clic su Nuovo dipendente e compilare il form con eventuali informazioni di esempio.
  4. Immettere il seguente inserimento SQL nel campo Nome:
    SomeUser; DROP TABLE users
  5. Con la scheda Rete del browser aperta, fare clic su Salva nel form Nuovo dipendente.
    POST in /employees è bloccato con 403 Forbidden.
  6. Eseguire il comando cURL seguente:
    curl -X POST http://${WAF_TARGET}/employees \ 
    -H 'host: employee.example.com' \ 
    -d '{"firstName":"Name; DROP TABLE users"}'
    Il comando restituisce un errore 403.
  7. Eseguire una richiesta GET digitando XSS (Cross Site Scripting) nei parametri della query sulla barra degli indirizzi del browser:
    http://employee.<example.com>/employees/?id=%3Cscript%3Ealert(%27bad%27)%3C/script%3Ein

    Il browser restituisce quanto segue:


    Segue una descrizione di waf-forbidden.png
    Descrizione dell'immagine waf-forbidden.png

I passi precedenti attivano più volte l'azione Block WAF. A questo punto, tornare ai dettagli dei criteri WAF nella console di Oracle Cloud Infrastructure per esaminare i log.
  1. Aprire il criterio demo dipendente.
  2. Fare clic su Log.
  3. Selezionare un intervallo di data/ora che si estende nel momento in cui si è tentato di eseguire gli attacchi SQLi e XSS.
  4. Identificare gli elementi con Action: Block, espandere i dettagli della riga in una richiesta bloccata, quindi fare clic su Visualizza JSON.
  5. Visualizzare i messaggi elencati come protectionRuleDetections e altri dettagli della richiesta.

Usa gestione bot

Un'altra funzionalità del servizio WAF (Web Application Firewall) di Oracle Cloud Infrastructure è costituita dalle funzionalità di gestione Bot.

In molti casi, il traffico non umano costituisce la più grande percentuale di traffico verso un sito. Anche se è favorevole "buono", altri bot "non validi" possono provare l'estrazione di contenuto, la spamming, gli attacchi brute force o gli attacchi DDoS a livello di applicazione.

Ad esempio, è possibile che si desideri inserire nella lista di inclusione alcuni bot noti per l'ottimizzazione del motore di ricerca (SEO, Search Engine Optimization) e le funzioni di classificazione del contenuto, ma limitare la verifica di un utente umano per determinate interazioni. Questo tipo di scenario è facilmente realizzato con le impostazioni di gestione dei criteri WAF Bot.

Aggiungere una richiesta di verifica CAPTCHA

Una delle funzioni salienti di gestione dei bot è CAPTCHA. L'uso di CAPTCHA offre un mezzo semplice per la verifica dell'utente che garantisce l'interazione umana, senza che sia necessario apportare modifiche all'applicazione di base.

Per aggiungere una richiesta di verifica CAPTCHA:
  1. Console Oracle Cloud Infrastructure.
  2. Aprire il menu di navigazione. In Governance and Administration andare a Security e fare clic su WAF Policies.
  3. Aprire Criteri demo dipendente e fare clic su Gestione bot.
  4. Fare clic sulla scheda Richiesta di verifica CAPTCHA e quindi su Aggiungi richiesta di verifica CAPTCHA.
  5. Immettere /public/index.html come valore nel campo Percorso URL CAPTCHA.
  6. Lasciare invariate le impostazioni predefinite nei campi rimanenti.
  7. Fare clic su Aggiungi, quindi su Pubblica tutto.
  8. Dopo che le modifiche sono state pubblicate e il criterio WAF riprende dallo stato ACTIVE, caricare la pagina http://employee.<example.com>/public/index.html dal browser.
    Il browser visualizza la richiesta di verifica CAPTCHA seguente:

Dopo aver immesso il codice corretto, è possibile accedere al sito Web senza ulteriori problemi per un periodo corrispondente al valore Session Duration nella configurazione della richiesta di verifica.

Aggiungere una regola di controllo dell'accesso

Il controllo dell'accesso WAF fornisce un ulteriore livello di sicurezza limitando o bloccando l'accesso ai dati e ai servizi disponibili nell'ambito di un'applicazione.

Con il controllo dell'accesso è possibile definire regole basate su condizioni di richiesta, tra cui:
  • Intestazioni HTTP
  • Pattern di URL
  • Indirizzi IP
  • Geolocalizzazione

Nell'applicazione Dipendente di esempio è possibile eliminare i dettagli del dipendente dal database. Potrebbe essere necessario limitare l'utilizzo della funzione Delete per motivi di sicurezza. È possibile creare e applicare una regola di accesso per bloccare le richieste di eliminazione.

Per aggiungere una regola di controllo dell'accesso, procedere come segue.
  1. Console Oracle Cloud Infrastructure.
  2. Aprire il menu di navigazione. In Governance and Administration andare a Security e fare clic su WAF Policies.
  3. Aprire Criteri demo dipendente e fare clic su Controllo accesso.
  4. Fare clic su Aggiungi regola di accesso.
  5. Immettere un nome di regola, ad esempio Prevent Delete.
  6. Aggiungere le seguenti condizioni di regola:
    • Metodo HTTP: DELETE
    • L'URL inizia con: /employees
  7. Selezionare l'azione di blocco della regola, quindi selezionare 403 Vietato (opzione predefinita) come Imposta codice risposta (azione blocco).
  8. Fare clic su Aggiungi regola di accesso per creare la regola, quindi fare clic su Pubblica tutto.

Dopo che le modifiche sono state pubblicate e il criterio WAF riprende dallo stato ACTIVE:

  1. Aprire la scheda Rete dalla pagina Strumenti sviluppatore del browser.
  2. Accedere all'applicazione dipendente di esempio, http://employee.<example.com>/public/, dal browser.
  3. Selezionare un record dipendente, quindi fare clic sul pulsante Elimina.

Nella scheda Rete della sezione Strumenti sviluppatore broswer si noterà che WAF ha intercettato questa richiesta e la ha bloccata con una risposta 403 Forbidden.

Le funzionalità di Oracle Cloud Infrastructure WAF descritte in questa soluzione si concentrano sulla protezione di un'applicazione di esempio di base. Gli scenari di utilizzo saranno univoci per ciascuna applicazione ed è possibile configurare WAF di conseguenza.