Pianifica ed esegui scansioni personalizzate su un'applicazione di cui è stato eseguito il deployment utilizzando Web Security Scanner nella console Google Cloud . Web Security Scanner supporta le scansioni per IP e URL pubblici che non sono protetti da un firewall.
Prima di iniziare
Per configurare le scansioni personalizzate utilizzando Web Security Scanner:
- Devi avere un'applicazione di cui è stato eseguito il deployment su un URL o un IP pubblico. Web Security Scanner supporta solo i siti web che utilizzano IPv4. I siti web che utilizzano IPv6 non vengono analizzati.
- Devi aver abilitato Security Command Center.
Prima di eseguire la scansione, esamina attentamente l'applicazione per verificare la presenza di funzionalità che potrebbero influire su dati, utenti o sistemi al di fuori dell'ambito scelto per la scansione.
Poiché Web Security Scanner compila i campi, preme i pulsanti, fa clic sui link e altre interazioni, devi utilizzarlo con cautela. Web Security Scanner potrebbe attivare funzionalità che modificano lo stato dei dati o del sistema, con risultati indesiderati. Ad esempio:
- In un'applicazione di blog che consente commenti pubblici, Web Security Scanner potrebbe pubblicare stringhe di test come commenti su tutti gli articoli del blog.
- In una pagina di registrazione via email, Web Security Scanner potrebbe generare un numero elevato di email di test.
Per suggerimenti su come ridurre al minimo i rischi, consulta le best practice per evitare conseguenze indesiderate.
Abilitare Web Security Scanner
Abilita Web Security Scanner in Security Command Center per creare ed eseguire scansioni personalizzate.
Se Security Command Center è attivo, puoi abilitare Web Security Scanner nella console Google Cloud nella pagina Impostazioni di Security Command Center.
Passaggio 1: esegui il deployment di un'applicazione di test
Per completare la configurazione di Web Security Scanner per le scansioni personalizzate, devi disporre dell'URL di un'applicazione Compute Engine, Google Kubernetes Engine (GKE) o App Engine già sottoposta a deployment. Se non hai un'applicazione di cui è stato eseguito il deployment o se vuoi provare Web Security Scanner con un'applicazione di test, esegui il deployment dell'applicazione App Engine di test. Utilizza la lingua che preferisci:
Passaggio 2: assegna i ruoli IAM
Per eseguire una scansione di Web Security Scanner, devi disporre di uno dei seguenti ruoli Identity and Access Management (IAM) per il progetto che vuoi analizzare:
- Editor
- Proprietario
Per aggiungere uno di questi ruoli:
Vai alla pagina IAM e amministrazione nella Google Cloud console.
Fai clic sull'elenco a discesa del selettore progetti.
Nella finestra di dialogo Seleziona da visualizzata, seleziona il progetto che vuoi analizzare utilizzando Web Security Scanner.
Nella pagina IAM, fai clic su Modifica accanto al tuo nome utente.
Nel riquadro Modifica autorizzazioni visualizzato, fai clic su Aggiungi un altro ruolo, quindi seleziona uno dei seguenti ruoli:
- Progetto > Proprietario
- Progetto > Editor
Quando avrai finito di aggiungere ruoli, fai clic su Salva.
Scopri di più sui ruoli di Web Security Scanner.
Passaggio 3: esegui una scansione
Quando configuri una scansione, questa viene messa in coda per essere eseguita in un secondo momento. A seconda del carico attuale, potrebbero essere necessarie diverse ore prima dell'esecuzione di una scansione. Per creare, salvare ed eseguire una scansione:
Vai alla pagina Web Security Scanner nella console Google Cloud .
Seleziona il progetto che contiene l'applicazione di cui vuoi eseguire la scansione.
Per configurare una nuova scansione, fai clic su Nuova scansione:
Nella pagina Crea una nuova scansione che si carica, imposta i seguenti valori:
- In URL di partenza, inserisci l'URL dell'applicazione che vuoi scansionare.
- Nella sezione Programma, seleziona Settimanale.
- In Prossima esecuzione il giorno, seleziona una data.
La casella Esporta in Security Command Center è selezionata automaticamente. Se hai attivato Web Security Scanner come origine di sicurezza di Security Command Center, i risultati della scansione vengono visualizzati nella pagina Risultati della console Google Cloud .
Per questa prima scansione, utilizza la scansione predefinita senza modificare altri valori nella pagina Crea una nuova scansione. Per maggiori informazioni sulle impostazioni di scansione, vedi Scansione di un'app.
Per creare la scansione, fai clic su Salva.
Nella pagina Web Security Scanner, fai clic sul nome della scansione per caricare la pagina di panoramica, quindi fai clic su Esegui scansione.
L'analisi verrà messa in coda e poi eseguita in un secondo momento. Potrebbero essere necessarie diverse ore prima che venga eseguita la scansione.
Al termine della scansione, la pagina di panoramica della scansione mostra una sezione dei risultati. La seguente immagine mostra un esempio di risultati della scansione quando non vengono rilevate vulnerabilità:
Se hai attivato Web Security Scanner come origine di sicurezza di Web Security Scanner, i risultati della scansione vengono visualizzati anche nella console Google Cloud .
Per visualizzare i dettagli di un risultato specifico, fai clic sul nome del risultato nei risultati dell'analisi.
Ora hai completato una scansione di base di Web Security Scanner. Se hai eseguito la scansione della tua applicazione, scopri come personalizzarla nella sezione Eseguire la scansione di un'app di questa pagina.
Se hai eseguito il deployment di un'applicazione di test per eseguire la scansione, completa il seguente passaggio di pulizia in questa pagina per evitare di incorrere in addebiti di App Engine per l'applicazione.
Passaggio 4: pulizia
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Analizzare un'app
Configura una scansione personalizzata per la tua app utilizzando un account di prova.
Passaggio 1: crea un account di prova
Quando esegui la scansione dell'app, è consigliabile utilizzare un account di prova che non abbia accesso a dati sensibili o operazioni dannose. Crea un account di test che possa accedere alla tua app. Prendi nota delle credenziali di accesso da fornire per l'autenticazione durante la creazione di una scansione. Le credenziali ti consentono di utilizzare l'account di test per eseguire la scansione dei dati.
Passaggio 2: crea una scansione
Vai alla pagina Web Security Scanner nella console Google Cloud .
Fai clic su Seleziona e poi seleziona un progetto in cui è già stato eseguito il deployment di un'applicazione App Engine, Compute Engine o GKE.
Per visualizzare il nuovo modulo di scansione, fai clic su Crea scansione o Nuova scansione.
Per aggiungere valori al nuovo modulo di scansione, utilizza la seguente tabella come guida:
Campo Descrizione URL di avvio Un sito di base in genere richiede un solo URL iniziale, ad esempio la home page, la pagina principale o la pagina di destinazione del sito, da cui Web Security Scanner può trovare tutte le altre pagine del sito. Tuttavia, Web Security Scanner potrebbe non trovare tutte le pagine se un sito presenta:
- Molte pagine
- Isole di pagine non collegate
- Navigazione che richiede JavaScript complessi, ad esempio un menu multilivello basato sul passaggio del mouse
In questi casi, specifica più URL di avvio per aumentare la copertura della scansione.
URL esclusi Per ridurre la complessità, le esclusioni vengono definite utilizzando un proto-linguaggio semplificato che utilizza uno o più caratteri jolly *, anziché richiedere un'espressione regolare valida. Per dettagli ed esempi di pattern validi, vedi Esclusione di URL più avanti in questa pagina. Autenticazione > Account Google Puoi creare un account di prova in Gmail e poi utilizzarlo per scansionare il tuo prodotto. Se sei un cliente Google Workspace, puoi creare account di test all'interno del tuo dominio, ad esempio
[email protected]
. In Web Security Scanner, questi account funzionano come gli account Gmail. L'autenticazione a due fattori non è supportata.Google applica norme relative ai nomi reali sugli Account Google. Se il nome sul tuo account di test non sembra reale, l'account potrebbe essere bloccato.
Autenticazione > Identity-Aware Proxy alpha Per proteggere le risorse con Identity-Aware Proxy, consulta la guida IAP.
Per utilizzare Web Security Scanner con una risorsa protetta da IAP, concedi prima l'accesso al service account di Web Security Scanner:
- Vai alla pagina IAP nella console Google Cloud .
- Seleziona il progetto che vuoi utilizzare con Web Security Scanner.
- Seleziona la risorsa dell'applicazione da scansionare, quindi fai clic su Aggiungi entità nel riquadro Informazioni.
- Nella casella Nuove entità del riquadro Aggiungi entità, inserisci l'account di servizio Web Security Scanner nel formato
service-project-number@gcp-sa-websecurityscanner.iam.gserviceaccount.com
. - Nell'elenco a discesa Seleziona un ruolo, seleziona Cloud IAP > Utente applicazione web con protezione IAP.
- Quando avrai finito di aggiungere ruoli, fai clic su Salva.
Successivamente, aggiungi l'ID client OAuth alla scansione. Web Security Scanner può eseguire la scansione solo delle applicazioni protette da un singolo ID client OAuth. Per aggiungere l'ID client OAuth:
- Vai alla pagina IAP nella console Google Cloud .
- Seleziona il progetto che vuoi utilizzare con Web Security Scanner.
- Nel menu extra, seleziona Modifica client OAuth.
- Nella finestra ID client per l'applicazione web visualizzata, copia l'ID client.
- Vai alla pagina Web Security Scanner nella console Google Cloud .
- In Autenticazione, seleziona Identity-Aware Proxy alpha.
- Nella casella ID client OAuth2, incolla l'ID client OAuth che hai copiato, quindi fai clic su Salva.
Autenticazione > Account non Google Seleziona questa opzione se hai creato un sistema di autenticazione personalizzato e non utilizzi i servizi dell'Account Google. Specifica l'URL del modulo di accesso, il nome utente e la password. Queste credenziali vengono utilizzate per accedere alla tua applicazione ed eseguirne la scansione.
Web Security Scanner tenta di utilizzare l'euristica per accedere alla tua applicazione ed eseguirne la scansione. Nello specifico, questo metodo cerca un modulo di accesso a due campi che includa un campo
username
e un campopassword
. L'azione di accesso deve generare un cookie di autenticazione per consentire allo scanner di continuare la scansione.I problemi comuni che possono causare l'errore di accesso personalizzato includono:
- Utilizzo di campi del modulo HTML non standard, ad esempio non utilizzo di un tipo
password
. - Utilizzo di un modulo di accesso complesso, ad esempio un modulo con più di un campo
username
epassword
. - Non salvare un cookie di autenticazione in caso di accesso riuscito.
- In alcune situazioni, lo scanner viene negato da contromisure che hanno lo scopo di proteggere da bot, attacchi DDoS e altri attacchi.
Consigliamo di utilizzare l'integrazione di Identity-Aware Proxy per un'esperienza più coerente con la scansione autenticata delle applicazioni.
Pianificazione Puoi impostare l'esecuzione della scansione ogni giorno, ogni settimana, ogni due settimane o ogni quattro settimane. È consigliabile creare una scansione pianificata per assicurarsi che le versioni future dell'applicazione vengano testate. Inoltre, poiché rilasciamo occasionalmente nuovi scanner che rilevano nuovi tipi di bug, l'esecuzione di una scansione pianificata offre una copertura maggiore senza intervento manuale. Esegui scansioni da un set predefinito di IP di origine (anteprima) Seleziona questa opzione per limitare il traffico di scansione a un insieme predefinito di indirizzi IP. In questo modo puoi consentire allo scanner di accedere alle applicazioni dietro un firewall, ma l'ambito della scansione può risultare limitato. Per modificare le regole firewall per consentire il traffico di Web Security Scanner, consulta la sezione Configurazione del firewall più avanti in questa pagina. Opzioni di esportazione Seleziona questa opzione per esportare automaticamente le configurazioni e i risultati delle scansioni in Security Command Center. Ignora gli errori di stato HTTP Questa opzione controlla se un numero elevato di errori di stato HTTP, ad esempio **400 Bad Request**, durante una scansione causerà la segnalazione della scansione come non riuscita. Se l'opzione è selezionata, gli errori di stato vengono ignorati. Se l'opzione non è selezionata e la percentuale di errori di stato supera una soglia predeterminata, la scansione viene segnalata come non riuscita. Al termine dell'aggiunta dei valori, fai clic su Salva. Ora puoi eseguire la nuova scansione.
Per impostazione predefinita, Web Security Scanner utilizza indirizzi IP assegnati in modo casuale durante ogni esecuzione. Per rendere prevedibili gli indirizzi IP di Web Security Scanner, completa i passaggi per abilitare le scansioni da IP statici più avanti in questa pagina.
Passaggio 3: esecuzione di una scansione
Per eseguire una scansione:
- Accedi all'account di test che hai utilizzato per creare la scansione.
Vai alla pagina Web Security Scanner nella console Google Cloud .
Fai clic su Seleziona e poi seleziona il progetto in cui hai creato la scansione.
In Configurazioni di scansione, fai clic sul nome della scansione che vuoi eseguire.
Nella pagina dei dettagli della scansione, fai clic su Esegui.
La scansione viene inserita in una coda e potrebbe essere eseguita in ritardo. L'esecuzione può richiedere diversi minuti o molte ore, a seconda del carico del sistema e di funzionalità come:
- Complessità del sito
- Numero di elementi interattivi per pagina
- Numero di link
- La quantità di JavaScript sul sito, inclusa la navigazione
Puoi configurare ed eseguire fino a 10 scansioni diverse prima di dover eliminare o pulire i risultati salvati in precedenza.
Visualizzare i risultati dell'analisi personalizzata
Lo stato e i risultati di una scansione personalizzata vengono visualizzati nella pagina dei dettagli della scansione nella console Google Cloud . Per visualizzare i risultati della scansione:
- Accedi all'account di test che hai utilizzato per creare la scansione.
Vai alla pagina Web Security Scanner nella console Google Cloud .
Fai clic su Seleziona, quindi seleziona il progetto che contiene la scansione che vuoi esaminare.
In Configurazioni di scansione, fai clic sul nome della scansione che vuoi esaminare.
Viene caricata la pagina dei dettagli della scansione e vengono visualizzati i risultati dell'ultima scansione. Se una scansione è in corso, la scheda Risultati mostra la percentuale di completamento attuale. Per visualizzare i risultati delle scansioni precedenti, seleziona la data e l'ora della scansione dall'elenco a discesa.
I dettagli delle scansioni personalizzate completate includono:
- La scheda Risultati mostra un elenco delle vulnerabilità rilevate dalla scansione, se presenti.
- La scheda URL sottoposti a scansione mostra un elenco degli URL controllati dalla scansione.
La scheda Dettagli include:
- URL di avvio
- Autenticazione
- User agent
- Velocità di scansione massima in query al secondo (QPS)
Puoi trovare ulteriori informazioni sulla scansione nella pagina dei log del progetto.
Modificare una scansione personalizzata
Per modificare una scansione personalizzata:
- Accedi all'account di test che hai utilizzato per creare la scansione.
Vai alla pagina Web Security Scanner nella console Google Cloud .
Fai clic su Seleziona, poi seleziona il progetto che contiene la scansione da modificare.
In Configurazioni di scansione, fai clic sul nome della scansione che vuoi modificare.
Nella pagina dei dettagli della scansione visualizzata, fai clic su Modifica.
Nella pagina Modifica [nome scansione] visualizzata, apporta le modifiche che vuoi e poi fai clic su Salva.
L'analisi personalizzata modificata viene eseguita alla successiva pianificazione oppure puoi eseguirla manualmente per ottenere risultati aggiornati.
Eliminazione di una scansione personalizzata
Per eliminare una o più scansioni personalizzate:
- Accedi all'account di test che hai utilizzato per creare la scansione.
Vai alla pagina Web Security Scanner nella console Google Cloud .
Fai clic su Seleziona, poi seleziona il progetto che contiene la scansione da modificare.
In Configurazioni scansione, seleziona la casella di controllo accanto a una o più scansioni che vuoi eliminare.
Fai clic su Elimina e poi su Ok.
Tutte le scansioni selezionate vengono eliminate.
Configurazione di una scansione da IP statici
Questa sezione descrive come attivare le scansioni personalizzate di Web Security Scanner da indirizzi IP statici. Quando abiliti questa funzionalità, Web Security Scanner utilizza indirizzi IP prevedibili per analizzare le tue applicazioni pubbliche Compute Engine e Google Kubernetes Engine. Questa funzionalità è in anteprima e gli indirizzi IP di Web Security Scanner potrebbero cambiare in una versione futura.
Prima di iniziare
Per utilizzare la funzionalità di scansioni personalizzate di Web Security Scanner da IP statici, devi:
- Un'applicazione Compute Engine o GKE pubblica. Questa funzionalità non supporta le applicazioni App Engine.
- Una scansione creata senza autenticazione o con l'autenticazione dell'Account Google. Questa funzionalità non supporta le scansioni che utilizzano l'autenticazione di account non Google.
Passaggio 1: configura il firewall
Vai alla pagina Regole firewall nella console Google Cloud .
Fai clic su Seleziona, quindi seleziona il tuo progetto.
Nella pagina Regole firewall visualizzata, fai clic su Crea regola firewall.
Nella pagina Crea una regola firewall, imposta i seguenti valori:
- Name (Nome): inserisci
web-security-scanner
o un nome simile. - Priorità: seleziona una priorità più alta (valore numerico inferiore) rispetto a tutte le regole che negano il traffico in uscita alla tua applicazione.
- Intervalli IP di origine: inserisci
34.66.18.0/26
e34.66.114.64/26
. - Protocolli e porte: seleziona Consenti tutto o specifica i protocolli e le porte per la tua applicazione. In genere, puoi selezionare la casella di controllo tcp e poi inserire
80
e443
per le porte.
- Name (Nome): inserisci
Al termine dell'impostazione dei valori, fai clic su Crea.
Passaggio 2: configura la scansione
Dopo aver configurato il firewall in modo da consentire gli indirizzi IP prevedibili di Web Security Scanner, configura la scansione in modo che utilizzi gli IP predefiniti:
Vai alla pagina Web Security Scanner nella console Google Cloud .
Fai clic su Seleziona, quindi seleziona il tuo progetto.
Crea una nuova scansione o modificane una esistente.
Seleziona la casella di controllo Esegui scansioni da un set predefinito di IP di origine.
Salva la scansione.
La volta successiva che viene eseguita la scansione, verranno analizzate le applicazioni Compute Engine e GKE pubbliche che si trovano dietro il firewall.
Esclusione degli URL
Puoi specificare fino a 100 pattern URL esclusi per evitare di testare sezioni di un sito durante una scansione personalizzata. Web Security Scanner non richiede risorse che corrispondono a una delle esclusioni. Le sezioni seguenti descrivono la corrispondenza dei pattern utilizzata da Web Security Scanner.
Corrispondenza dei pattern URL
La corrispondenza degli URL esclusi si basa su un insieme di URL definiti da pattern di corrispondenza. Un pattern di corrispondenza è un URL con cinque segmenti:
scheme
: ad esempio,http
o*
host
: ad esempio,www.google.com
o*.google.com
o*
path
: ad esempio,/*
,/foo*
o/foo/bar. *
query
: ad esempio,?*
,?*foo=bar*
fragment
: ad esempio,#*
,#access
Di seguito è riportata la sintassi di base:
<exclude-pattern> := <scheme>://<host><path><query><fragment> <scheme> := '*' | 'http' | 'https' <host> := '*' | '*.' <any char except '/' and '*'>+ <path> := '/' <any chars except '?' or '#'> <query> := '?' <any chars except '#'> <fragment> := '#' <any chars>
Il *
in ogni parte ha la seguente funzione:
scheme
:*
corrisponde a HTTP o HTTPS.host
:*
corrisponde a qualsiasi host*.hostname
corrisponde all'host specificato e a uno qualsiasi dei suoi sottodomini.
path
:*
corrisponde a 0 o più caratteri.
Tutti i segmenti non sono obbligatori in un pattern escluso.
- Se il segmento
scheme
non è specificato, il valore predefinito è*://
. - Il segmento
host
deve essere sempre specificato. Se il segmento
path
non è specificato, il valore predefinito è:/*
, se non vengono specificati i segmentiquery
efragment
. Questo valore corrisponde a qualsiasipath
o a nessunpath
./
o unpath
vuoto, se è specificato il segmentoquery
ofragment
.
Se il segmento
query
non è specificato, il valore predefinito è:?*
, se il segmentofragment
non è specificato. Questo valore corrisponde a qualsiasiquery
o a nessunquery
.?
o unquery
vuoto, se è specificatofragment
.
Se il segmento
fragment
non è specificato, il valore predefinito è#*
, che corrisponde a qualsiasifragment
o a nessunfragment
.
Corrispondenze di pattern valide
La seguente tabella fornisce esempi di pattern validi:
Pattern | Comportamento | URL con corrispondenza di esempio |
---|---|---|
http://*/* | Corrisponde a qualsiasi URL che utilizza lo schema HTTP. |
|
http://*/foo* | Corrisponde a qualsiasi URL che utilizza lo schema HTTP, su qualsiasi host, se il percorso inizia con /foo . |
|
https://*.google.com/foo*bar | Corrisponde a qualsiasi URL che utilizza lo schema HTTPS e si trova su un host google.com , ad esempio www.google.com , docs.google.com o google.com , se il percorso inizia con /foo e termina con bar . |
|
http://example.org/foo/bar.html | Corrisponde all'URL specificato. | http://example.org/foo/bar.html |
http://127.0.0.1/* | Corrisponde a qualsiasi URL che utilizza lo schema HTTP e si trova sull'host 127.0.0.1 . |
|
*://mail.google.com/* | Corrisponde a qualsiasi URL che inizia con http://mail.google.com o https://mail.google.com . |
|
*://*/foo*?*bar=baz* | Corrisponde a qualsiasi URL in cui il percorso inizia con /foo e ha il parametro di query bar=baz . | https://www.google.com/foo/example?bar=baz |
google.com/app#*open* | Corrisponde a qualsiasi URL con un host google.com in cui il percorso inizia con /app e ha il frammento open . | https://www.google.com/app/example#open |
Corrispondenze di pattern non valide
La seguente tabella fornisce esempi di pattern non validi:
Pattern | Motivo |
---|---|
http://www.google.com | L'URL non include un percorso. |
http://*foo/bar | * nell'host deve essere seguito da . o / . |
http://foo.*.bar/baz | Se * è presente nell'host, deve essere il primo carattere. |
http:/bar | Il separatore dello schema dell'URL non è formato correttamente. "/" deve essere "//" . |
foo://* | Lo schema dell'URL non è valido. |
Passaggi successivi
- Scopri come correggere i risultati di Web Security Scanner.