Panoramica della gestione dei bot di Cloud Armor

Google Cloud Armor e reCAPTCHA forniscono strumenti per aiutarti a valutare e gestire le richieste in entrata che potrebbero provenire da client automatici.

reCAPTCHA utilizza tecniche avanzate di analisi del rischio per distinguere tra utenti umani e client automatizzati. reCAPTCHA valuta l'utente in base alla configurazione delle chiavi di sito WAF reCAPTCHA. Quindi, emette un token criptato con attributi che rappresentano il rischio associato. Cloud Armor decifra questo token in linea, senza una richiesta o una risposta aggiuntiva al servizio reCAPTCHA. In base agli attributi del token, Cloud Armor ti consente di consentire, negare, limitare la frequenza o reindirizzare le richieste in entrata. Per ulteriori informazioni, consulta la panoramica dell'integrazione di Cloud Armor e reCAPTCHA.

La gestione dei bot di Cloud Armor include le seguenti funzionalità integrate.

  • Verifica manuale (pagina di verifica reCAPTCHA)

    • Devi configurare una regola dei criteri di sicurezza per reindirizzare una richiesta di test reCAPTCHAA.
    • Puoi creare la tua chiave di sito reCAPTCHA WAF e associarla al tuo criterio di sicurezza. Ti consigliamo vivamente di farlo. Per ulteriori informazioni, consulta Implementare un test reCAPTCHA.
    • Puoi consentire solo agli utenti finali che superano la verifica manuale reCAPTCHA reindirizzando gli utenti finali per la valutazione reCAPTCHA.
  • Applica la valutazione senza interruzioni di reCAPTCHA

    • Puoi intraprendere azioni diverse sulle richieste in entrata in base alla valutazione di reCAPTCHA del rischio che la richiesta provenga da un bot. Puoi scrivere regole di policy di sicurezza per valutare e filtrare il traffico in base al punteggio del token e ad altri attributi del token.
    • Devi implementare token di azione, token di sessione reCAPTCHA o entrambi. I token di azione reCAPTCHA sono supportati nelle applicazioni in esecuzione su siti web, iOS e Android. I token di sessione reCAPTCHA sono supportati solo sui siti web. Per ulteriori informazioni sui token reCAPTCHA, consulta token di azione reCAPTCHA e token di sessione reCAPTCHA.
    • Devi configurare una regola dei criteri di sicurezza che valuti i token reCAPTCHA.
    • Per impedire il furto di token, ti consigliamo di associare le tue chiavi reCAPTCHA per WAF alla regola del criterio di sicurezza.

La gestione dei bot di Cloud Armor include anche le seguenti funzionalità.

  • Reindirizzamento (302)
    • Puoi reindirizzare le richieste all'URL alternativo configurato configurando Cloud Armor in modo che restituisca una risposta HTTP 302 al client.
  • Decorate request
    • Puoi inserire intestazioni personalizzate nelle richieste e valori statici in queste intestazioni prima di eseguire il proxy di una richiesta ai tuoi backend.

Casi d'uso

Questa sezione descrive come utilizzare le funzionalità di gestione dei bot di Cloud Armor per mitigare il rischio dei bot e controllare l'accesso da client automatizzati.

Utilizzare una verifica manuale per distinguere gli utenti legittimi dai client automatici

Puoi reindirizzare una richiesta a reCAPTCHA per valutare il client finale e pubblicare sfide manuali, se necessario, senza alcuna implementazione aggiuntiva di reCAPTCHA. Quando gli utenti umani condividono la stessa firma (ad esempio percorsi URL o altre firme L7) di un bot o di un sistema abusivo, questa azione consente loro di dimostrare di essere umani. Solo gli utenti che superano la valutazione possono accedere al tuo servizio.

Il seguente diagramma mostra come una verifica manuale distingue se una richiesta proviene da una persona o da un client automatico:

Esempio di reindirizzamento a reCAPTCHA.
Esempio di reindirizzamento a reCAPTCHA (fai clic per ingrandire).

Supponiamo che un utente Maya e un bot stiano navigando nella pagina di accesso (/login.html) del tuo sito. Per consentire l'accesso a Maya senza concedere l'accesso al bot, puoi configurare una regola della policy di sicurezza con l'espressione di corrispondenza avanzata request.path.matches("/login.html"), con un'azione redirect di tipo GOOGLE_RECAPTCHA. L'esperienza utente end-to-end è la seguente:

  1. Un utente finale visita il tuo sito per la prima volta.
  2. Cloud Armor valuta la richiesta e decide di reindirizzarla a reCAPTCHA.
  3. reCAPTCHA risponde con una pagina HTML con il codice JavaScript di reCAPTCHA incorporato.
  4. Quando la risposta viene visualizzata, lo script JavaScript incorporato viene eseguito per valutare l'utente e, se necessario, vengono presentate sfide manuali.
    • Se l'utente supera il test, reCAPTCHA rilascia un cookie di esenzione, che viene allegato automaticamente dal browser a ogni richiesta successiva allo stesso sito fino alla scadenza del cookie.
    • In caso contrario, reCAPTCHA non rilascia un cookie di esenzione.

In questo esempio, solo Maya supera il test reCAPTCHA e riceve un cookie di esenzione, ottenendo l'accesso al tuo sito.

Quando utilizzi le sfide manuali, ti consigliamo di creare una tua chiave sito WAF reCAPTCHA e associarla al criterio di sicurezza. In questo modo puoi visualizzare le metriche reCAPTCHA associate alla chiave del sito e addestrare un modello di sicurezza specifico per la chiave del sito. Per ulteriori informazioni, consulta Crea una chiave di sito di verifica WAF reCAPTCHA.

Se non crei e associ una chiave di sito, reCAPTCHA utilizza una chiave di sito gestita da Google durante la valutazione. Non puoi visualizzare le metriche reCAPTCHA associate alle chiavi sito che non ti appartengono, incluse le chiavi sito gestite da Google.

Applica il test reCAPTCHA

Quando a una richiesta in entrata è allegato un token reCAPTCHA, Cloud Armor valuta la richiesta e applica l'azione configurata in base ai singoli attributi del token. La valutazione dei criteri di sicurezza di Cloud Armor avviene al perimetro della rete di Google, quindi i tuoi backend non sono coinvolti nella decrittografia del token.

Token reCAPTCHA

reCAPTCHA emette due tipi di token: token di azione e token di sessione. Entrambi i tipi di token restituiscono un punteggio per ogni richiesta in base alle interazioni con il tuo sito o la tua app. Entrambi i tipi di token contengono attributi, incluso un punteggio che rappresenta il rischio associato all'utente. Contengono anche informazioni sulla chiave reCAPTCHA che hai utilizzato quando è stato generato il token.

Prima di configurare le regole dei criteri di sicurezza, devi decidere se utilizzare token di azione, token di sessione o entrambi. Ti consigliamo di leggere la documentazione di reCAPTCHA per prendere una decisione informata. Per ulteriori informazioni, consulta il confronto dei casi d'uso di reCAPTCHA.

Dopo aver determinato il tipo di token che vuoi utilizzare, implementa reCAPTCHA in modo che il token venga allegato a una richiesta. Per informazioni sull'implementazione dei token in reCAPTCHA, consulta le seguenti pagine:

Infine, utilizza il linguaggio delle regole di Cloud Armor per configurare le regole dei criteri di sicurezza per valutare i token reCAPTCHA allegati alla richiesta. Per evitare il furto di token, ti consigliamo vivamente di associare le chiavi reCAPTCHA alle regole dei criteri di sicurezza. Quando associ le chiavi reCAPTCHA a una regola di policy di sicurezza, Cloud Armor esegue una convalida aggiuntiva del token confrontando la chiave reCAPTCHA nel token con le chiavi reCAPTCHA associate alla regola. Cloud Armor considera non valido un token con una chiave reCAPTCHA sconosciuta. Per ulteriori informazioni, consulta la sezione Imporre la valutazione senza attrito di reCAPTCHA.

La figura seguente mostra il flusso di applicazione del token reCAPTCHA.

Flusso di applicazione forzata del token reCAPTCHA.
Flusso di applicazione forzata del token reCAPTCHA (fai clic per ingrandire).

Reindirizzamento (risposta 302)

Puoi utilizzare un'azione di reindirizzamento basata su URL per reindirizzare esternamente le richieste a un endpoint diverso. Fornisci una destinazione di reindirizzamento sotto forma di URL e Cloud Armor reindirizza la richiesta inviando una risposta HTTP 302 al client.

Decorate request

Cloud Armor può inserire intestazioni delle richieste personalizzate con valori statici definiti dall'utente prima di eseguire il proxy delle richieste alla tua applicazione. Questa opzione ti consente di taggare le richieste sospette per l'elaborazione downstream alternativa, ad esempio per pubblicare un honey pot o per analisi e monitoraggio aggiuntivi. Tieni presente che questo parametro deve essere aggiunto a un'azione allow esistente.

Intestazioni personalizzate

Se hai configurato Cloud Armor per inserire un'intestazione o un valore personalizzato con lo stesso nome di una delle intestazioni personalizzate per il bilanciatore del carico delle applicazioni esterno globale o il bilanciatore del carico delle applicazioni classico, il valore dell'intestazione viene sovrascritto dal bilanciatore del carico. Per saperne di più, vedi Creazione di intestazioni personalizzate nei servizi di backend.

Inoltre, se scegli un nome di intestazione già esistente nella richiesta, incluse le intestazioni HTTP standard, il valore originale nell'intestazione viene sovrascritto dal valore definito dall'utente fornito alla regola Cloud Armor.

Integrazione con la limitazione di frequenza

Le regole di limitazione di frequenza di Cloud Armor sono compatibili con le funzionalità di gestione dei bot. Ad esempio, puoi reindirizzare una richiesta di valutazione reCAPTCHA o reindirizzare a un URL diverso quando il numero di richieste supera la soglia configurata. Inoltre, puoi identificare i client per la limitazione della frequenza in base ai cookie o ai token di esenzione reCAPTCHA, per limitare le richieste o vietare i client che riutilizzano o abusano dello stesso cookie o token a una velocità superiore alla soglia configurata dall'utente.

Limita la frequenza dei cookie o dei token di esenzione reCAPTCHA

Per motivi di sicurezza, ti consigliamo di configurare regole di limitazione di frequenza per impedire l'abuso di token tramite più utilizzi per token di azione reCAPTCHA, token di sessione o cookie di esenzione unici. La seguente tabella mostra come puoi identificare un cookie o un token di esenzione reCAPTCHA come chiave in una regola limitazione di frequenzaza.

Risorsa enforce_on_key enforce_on_key_name
Cookie di esenzione HTTP-COOKIE recaptcha-ca-e
Token di azione HTTP-HEADER X-Recaptcha-Token
Token di sessione HTTP-COOKIE recaptcha-ca-t

Puoi limitare le richieste o bloccare i client che dipendono dallo stesso cookie o token di esenzione e che superano la soglia configurata. Per ulteriori informazioni sui parametri di limitazione di frequenza, consulta Applicare la limitazione della frequenza.

Esempi di limitazione di frequenza

Supponiamo innanzitutto di utilizzare solo le sfide manuali su URL selezionati (ad esempio /login.html) del tuo sito. Per farlo, configura le regole del criterio di sicurezza nel seguente modo:

  • Regola 1: se alla richiesta è allegato un cookie di esenzione valido e il numero di utilizzi del cookie di esenzione è inferiore alla soglia definita, consenti la richiesta.
  • Regola 2: reindirizza la richiesta di test reCAPTCHA.
Applica le verifiche manuali.
Imponi le sfide manuali (fai clic per ingrandire).

In secondo luogo, supponiamo che sul tuo sito utilizzi solo token di azione o token di sessione. Ad esempio, puoi utilizzare i token di azione per proteggere le azioni degli utenti di alto profilo, come /login.html. Per farlo, esegui le azioni in base al punteggio del token di azione nel seguente modo:

  • Regola 1: quando il punteggio del token di azione è superiore a una soglia predefinita (ad esempio 0.8), consenti la richiesta se il numero di utilizzi del token di azione è inferiore alla soglia definita.
  • Regola 2: rifiuta la richiesta.
Applica la valutazione dei token di azione reCAPTCHA.
Imponi la valutazione del token di azione reCAPTCHA (fai clic per ingrandire).

Puoi configurare regole di policy di sicurezza simili per applicare la valutazione del token di sessione reCAPTCHA.

Terzo, supponiamo che tu combini action token o session token con sfide manuali su URL selezionati (come /login.html) del tuo sito e che tu voglia intraprendere azioni in base al punteggio dell'action token. e vuoi dare all'utente una seconda possibilità risolvendo le sfide se il punteggio non è abbastanza soddisfacente. Per farlo, configura le regole dei criteri di sicurezza come segue:

  • Regola 1: quando il punteggio del token di azione è superiore a una soglia predefinita (ad esempio 0.8), consenti la richiesta se il numero di utilizzi del token di azione è inferiore alla soglia definita.
  • Regole 2 e 3: quando il punteggio del token di azione è superiore a una soglia predefinita diversa (ad esempio 0.5), reindirizza la richiesta di test reCAPTCHA a meno che non sia presente un cookie di esenzione valido allegato alla richiesta e il numero di utilizzi del cookie di esenzione sia inferiore alla soglia definita.
  • Regola 4: rifiuta la richiesta.
Applica la valutazione dei token di azione reCAPTCHA con verifiche manuali.
Applica la valutazione dei token di azione reCAPTCHA con verifiche manuali (fai clic per ingrandire).

Puoi configurare regole di policy di sicurezza simili per applicare la valutazione del token di sessione reCAPTCHA con le sfide manuali.

Se non regoli le regole di limitazione di frequenza, Cloud Armor non impone limiti al numero di utilizzi per ogni cookie di esenzione reCAPTCHA, token di azione e token di sessione. Per i token di azione, ti consigliamo di utilizzare una soglia bassa (ad esempio 1) e un intervallo di tempo elevato (ad esempio 30 minuti, poiché i token di azione sono validi per 30 minuti). Ti consigliamo di derivare la soglia in base alle statistiche sul traffico.

Passaggi successivi