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 URL e IP 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 indirizzo IP pubblico.
- Devi aver attivato Security Command Center.
Prima di eseguire la scansione, controlla attentamente l'applicazione per verificare la presenza di eventuali funzionalità che potrebbero colpire dati, utenti o sistemi oltre l'ambito scelto della scansione.
Poiché Web Security Scanner compila campi, preme pulsanti, fa clic su 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 tuo blog.
- In una pagina di registrazione 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.
Attivare Web Security Scanner
Abilita Web Security Scanner in Security Command Center per creare ed eseguire scansioni personalizzate.
Se Security Command Center è attivo, puoi attivare 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à di cui è stato eseguito il 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 IAM (Identity and Access Management) per il progetto che vuoi analizzare:
- Editor
- Proprietario
Per aggiungere uno di questi ruoli:
Vai alla pagina IAM e amministrazione nella console Google Cloud.
Fai clic sull'elenco a discesa Selettore progetti.
Nella finestra di dialogo Seleziona da visualizzata, seleziona il progetto da 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
Al termine dell'aggiunta dei ruoli, fai clic su Salva.
Scopri di più sui ruoli di Web Security Scanner.
Passaggio 3: esegui una scansione
Quando configuri una ricerca, questa viene messa in coda per essere eseguita in un secondo momento. A seconda del carico attuale, potrebbero essere necessarie diverse ore prima che venga eseguita una scansione. Per creare, salvare ed eseguire una ricerca:
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 da eseguire la scansione.
- In Pianificazione, seleziona Settimanale.
- In Esegui il prossimo report il giorno, seleziona una data.
La casella Esporta in Security Command Center viene selezionata automaticamente. Se hai attivato Web Security Scanner come origine di sicurezza di Security Command Center, i risultati della scansione possono essere visualizzati nella console Google Cloud.
Per questa prima scansione, utilizza la scansione predefinita senza modificare altri valori nella pagina Crea una nuova scansione. Per ulteriori informazioni sulle impostazioni di scansione, consulta Eseguire la scansione di un'app.
Per creare la scansione, fai clic su Salva.
Nella pagina di Web Security Scanner, fai clic sul nome della scansione per caricarne la pagina di panoramica, quindi fai clic su Esegui scansione.
L'analisi verrà messa in coda ed eseguita in un secondo momento. Potrebbero essere necessarie diverse ore prima che venga eseguita la scansione.
Al termine della scansione, nella pagina Panoramica della scansione viene visualizzata una sezione dei risultati. L'immagine seguente mostra un esempio di risultati dell'analisi quando non vengono rilevate vulnerabilità:
Se hai attivato Web Security Scanner come origine di sicurezza, i risultati della scansione vengono visualizzati anche nella console Google Cloud.
Per visualizzare i dettagli di un determinato rilevamento, fai clic sul nome del rilevamento nei risultati della scansione.
Hai completato una scansione di base di Web Security Scanner. Se hai eseguito la scansione della tua app, scopri come personalizzarla nella sezione sulla 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.
Scansione di un'app
Configura una ricerca personalizzata per la tua app utilizzando un account di test.
Passaggio 1: creazione di un account di prova
Quando esegui la scansione dell'app, è meglio utilizzare un account di prova che non abbia accesso a dati sensibili o operazioni dannose. Crea un account di prova che possa accedere alla tua app. Prendi nota delle credenziali di accesso da fornire per l'autenticazione quando crei una scansione. Le credenziali ti consentono di utilizzare l'account di test per eseguire la scansione dei dati.
Passaggio 2: creazione di una scansione
Vai alla pagina Web Security Scanner nella console Google Cloud.
Fai clic su Seleziona e poi su 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 pagina iniziale, principale o 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 ha:
- Molte pagine
- Isole di pagine non collegate
- Navigazione che richiede JavaScript complesso, ad esempio un menu a più livelli attivato dal 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 protolinguaggio semplificato con uno o più caratteri jolly *, anziché richiedere un'espressione regolare valida. Per maggiori dettagli e pattern validi di esempio, consulta Esclusione di URL più avanti in questa pagina. Autenticazione > Account Google Puoi creare un account di prova in Gmail e utilizzarlo per eseguire la scansione del prodotto. Se sei un cliente Google Workspace, puoi creare account di prova all'interno del tuo dominio, ad esempio
test-account@yourdomain.com
. In Web Security Scanner, questi account funzionano come account Gmail. L'autenticazione a due fattori non è supportata.Google applica norme relative al nome reale negli Account Google. Se il nome sul tuo account di prova non sembra reale, l'account potrebbe essere bloccato.
Autenticazione > Identity-Aware Proxy alpha Per proteggere le risorse con Identity-Aware Proxy, consulta la guida all'IAP.
Per utilizzare Web Security Scanner con una risorsa protetta da IAP, concedi prima l'accesso all'account servizio 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 eseguire la scansione e 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.
- Al termine dell'aggiunta dei ruoli, fai clic su Salva.
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 web 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 il tuo sistema di autenticazione 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 all'applicazione e scansionarla.
Web Security Scanner tenta di accedere alla tua applicazione ed eseguirne la scansione utilizzando l'euristica. Nello specifico, questo metodo cerca un form di accesso con due campi che includono 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 di modulo HTML non standard, ad esempio non utilizzare un tipo
password
. -
Utilizzo di un modulo di accesso complicato, ad esempio un modulo con più di un campo
username
epassword
. - Non viene salvato un cookie di autenticazione al termine dell'accesso.
- In alcune situazioni, lo scanner viene negato da contromisure volte a 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 giornaliera, settimanale, ogni due settimane o ogni quattro settimane. Ti consigliamo di creare una scansione pianificata per assicurarti che le versioni future della tua applicazione vengano testate. Inoltre, poiché di tanto in tanto rilasciamo nuovi scanner che rilevano nuovi tipi di bug, l'esecuzione di una scansione pianificata offre una maggiore copertura senza intervento manuale. Esegui scansioni da un set predefinito di IP di origine (Anteprima) Seleziona questa opzione per limitare il traffico delle scansioni 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 del firewall in modo da consentire il traffico di Web Security Scanner, consulta Configurazione del firewall di seguito 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 durante una scansione, ad esempio **400 Bad Request**, causerà il reporting della scansione come esito negativo. 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. Quando hai finito di aggiungere i 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 da eseguire.
Nella pagina dei dettagli della scansione, fai clic su Esegui.
La scansione viene inserita in una coda e potrebbe esserci un ritardo prima dell'esecuzione. 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 strategici per pagina
- Numero di maglie
- La quantità di codice 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.
Visualizzazione dei risultati di analisi personalizzate
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 e poi seleziona il progetto che contiene la scansione che vuoi esaminare.
In Scan configs (Configurazioni di scansione), fai clic sul nome della scansione che vuoi esaminare.
La pagina dei dettagli della scansione carica e mostra i risultati dell'ultima scansione. Se è in corso una scansione, la scheda Risultati mostra la percentuale di completamento corrente. 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 eventuali vulnerabilità rilevate durante la scansione.
- La scheda URL sottoposti a scansione mostra un elenco di 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 e poi seleziona il progetto che contiene la scansione da modificare.
In Configurazioni di scansione, fai clic sul nome della scansione da modificare.
Nella pagina dei dettagli della scansione visualizzata, fai clic su Modifica.
Nella pagina Modifica di [nome della scansione] visualizzata, apporta le modifiche che preferisci e poi fai clic su Salva.
La ricerca personalizzata modificata viene eseguita alla successiva pianificazione oppure puoi eseguirla manualmente per ottenere risultati aggiornati.
Eliminare una scansione personalizzata
Per eliminare una o più analisi 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 e poi seleziona il progetto che contiene la scansione da modificare.
In Configurazioni di 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 attivi questa funzionalità, Web Security Scanner utilizza indirizzi IP prevedibili per eseguire la scansione delle applicazioni pubbliche di 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, è necessario:
- Un'applicazione GKE o Compute Engine pubblica. Questa funzionalità non supporta le applicazioni App Engine.
- Una scansione creata senza autenticazione o con autenticazione dell'Account Google. Questa funzionalità non supporta le scansioni che utilizzano l'autenticazione di account non Google.
Passaggio 1: configurazione del firewall
Vai alla pagina Regole firewall nella console Google Cloud.
Fai clic su Seleziona e poi 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:
- 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, quindi inserire
80
e443
per le porte.
- Nome: inserisci
Al termine dell'impostazione dei valori, fai clic su Crea.
Passaggio 2: configurazione della scansione
Dopo aver configurato il firewall in modo da consentire a Web Security Scanner di utilizzare indirizzi IP prevedibili, configura la scansione in modo che utilizzi indirizzi IP predefiniti:
Vai alla pagina Web Security Scanner nella console Google Cloud.
Fai clic su Seleziona e poi 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 prossima volta che verrà 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 coincidono con nessuna 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 esempiohttp
o*
host
: ad esempiowww.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 simbolo *
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.
Non tutti i segmenti sono obbligatori in un pattern escluso.
- Se il segmento
scheme
non è specificato, il valore predefinito è*://
. - Il segmento
host
deve sempre essere specificato. Se il segmento
path
non è specificato, il valore predefinito è:/*
, se i segmentiquery
efragment
non sono specificati. Questo valore corrisponde a qualsiasipath
o 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 nessunquery
.?
o unquery
vuoto, se è specificatofragment
.
Se il segmento
fragment
non è specificato, il valore predefinito è#*
, che corrisponde a qualsiasifragment
o nessunfragment
.
Corrispondenze di pattern valide
La seguente tabella fornisce esempi di pattern validi:
Pattern | Comportamento | URL corrispondenti 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
google.com host, 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 contiene 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 contiene il frammento open .
|
https://www.google.com/app/example#open |
Corrispondenze con 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 * è nell'host, deve essere il primo carattere. |
http:/bar |
Il separatore di 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.