Web Security Scanner identifica le vulnerabilità di sicurezza nelle tue applicazioni web di App Engine, Google Kubernetes Engine (GKE) e Compute Engine. Esegue la scansione dell'applicazione, seguendo tutti i link nell'ambito degli URL di partenza e tenta di utilizzare il maggior numero possibile di input utente e gestori di eventi. Web Security Scanner supporta solo URL e IP pubblici che non sono protetti da un firewall.
Web Security Scanner supporta l'ambiente standard App Engine e gli ambienti flessibili App Engine, le istanze Compute Engine e le risorse GKE.
Web Security Scanner è progettato per integrare i tuoi processi di progettazione e sviluppo sicuri esistenti. Per evitare di distrarti con falsi positivi, Web Security Scanner tende a sottostimare le segnalazioni e non mostra allerte con bassa affidabilità. Non sostituisce una revisione di sicurezza manuale e non garantisce che la tua applicazione sia priva di errori di sicurezza.
Tipi di scansione
Web Security Scanner fornisce analisi delle vulnerabilità web gestite e personalizzate per le applicazioni web pubbliche di App Engine, GKE e Compute Engine.
Scansioni gestite
Le scansioni gestite di Web Security Scanner vengono configurate e gestite da Security Command Center. Le scansioni gestite vengono eseguite automaticamente una volta alla settimana per rilevare e analizzare gli endpoint web pubblici. Queste scansioni non utilizzano l'autenticazione e inviano richieste solo GET, pertanto non inviano moduli sui siti web attivi.
Le scansioni gestite vengono eseguite separatamente dalle scansioni personalizzate.
Se Security Command Center è attivato a livello di organizzazione, puoi utilizzare le scansioni gestite per gestire in modo centralizzato il rilevamento di vulnerabilità di base delle applicazioni web per i progetti della tua organizzazione, senza dover coinvolgere i singoli team di progetto. Quando vengono rilevati risultati, puoi collaborare con questi team per configurare scansioni personalizzate più complete.
Quando attivi Web Security Scanner come servizio, i risultati delle scansioni gestite sono disponibili automaticamente nella pagina Vulnerabilità di Security Command Center e nei report correlati. Per informazioni su come attivare le analisi gestite di Web Security Scanner, consulta Configurare i servizi di Security Command Center.
Le analisi gestite supportano solo le applicazioni che utilizzano la porta predefinita, ovvero 80 per le connessioni HTTP e 443 per le connessioni HTTPS. Se la tua applicazione utilizza una porta non predefinita, esegui una ricerca personalizzata.
Scansioni personalizzate
Le scansioni personalizzate di Web Security Scanner forniscono informazioni granulari sui risultati relativi alle vulnerabilità delle applicazioni, come librerie obsolete, cross-site scripting o utilizzo di contenuti misti.
Le analisi personalizzate vengono definite a livello di progetto.
I risultati delle scansioni personalizzate sono disponibili in Security Command Center dopo aver completato la guida per configurare le scansioni personalizzate di Web Security Scanner.
Risultati della scansione
Questa sezione descrive i tipi di risultati di Web Security Scanner e gli standard di conformità pertinenti.
Rilevatori e conformità
Web Security Scanner supporta le categorie della OWASP Top Ten, un documento che classifica e fornisce indicazioni per la correzione dei 10 rischi per la sicurezza delle applicazioni web più critici, come stabilito dall'Open Web Application Security Project (OWASP).
La mappatura della conformità è inclusa come riferimento e non viene fornita o esaminata dalla OWASP Foundation. È destinata esclusivamente al monitoraggio delle violazioni dei controlli di conformità. Le mappature non sono fornite per essere utilizzate come base o come sostitutivo di audit, certificazioni o report sulla conformità dei tuoi prodotti o servizi a eventuali benchmark o standard normativi o di settore.
Per ulteriori informazioni sulla conformità, consulta Valutare e segnalare la conformità ai benchmark di sicurezza.
Tipi di risultati
Le scansioni personalizzate e gestite di Web Security Scanner identificano i seguenti tipi di risultati. Nel livello Standard, Web Security Scanner supporta le scansioni personalizzate per le applicazioni di cui è stato eseguito il deployment con URL e IP pubblici che non sono protetti da un firewall.
Categoria | Descrizione del risultato | Top 10 OWASP 2017 | OWASP Top 10 2021 |
---|---|---|---|
Nome della categoria nell'API: |
Un repository Git è esposto pubblicamente. Per risolvere il problema, rimuovi l'accesso pubblico non intenzionale al repository GIT. Livello di prezzo: Premium o Standard |
A5 | A01 |
Nome della categoria nell'API: |
Un repository SVN è esposto pubblicamente. Per risolvere questo problema, rimuovi l'accesso pubblico involontario al repository SVN. Livello di prezzo: Premium o Standard |
A5 | A01 |
Nome della categoria nell'API: |
Le password inserite nell'applicazione web possono essere memorizzate nella cache di un normale browser anziché in uno spazio di archiviazione sicuro delle password. Livello di prezzo: Premium |
A3 | A04 |
Nome della categoria nell'API: |
Le password vengono trasmesse in chiaro e possono essere intercettate. Per risolvere questo rilevamento, cripta la password trasmessa sulla rete. Livello di prezzo: Premium o Standard |
A3 | A02 |
Nome della categoria nell'API: |
Un endpoint HTTP o HTTPS tra siti convalida solo un suffisso dell'intestazione della richiesta Livello di prezzo: Premium |
A5 | A01 |
Nome della categoria nell'API: |
Un endpoint HTTP o HTTPS tra siti convalida solo un prefisso dell'intestazione della richiesta Livello di prezzo: Premium |
A5 | A01 |
Nome della categoria nell'API: |
È stata caricata una risorsa che non corrisponde all'intestazione HTTP Content-Type della risposta. Per risolvere questo problema, imposta l'intestazione HTTP Livello di prezzo: Premium o Standard |
A6 | A05 |
Nome della categoria nell'API: |
Un'intestazione di sicurezza contiene un errore di sintassi e viene ignorata dai browser. Per risolvere questo problema, imposta correttamente le intestazioni di sicurezza HTTP. Livello di prezzo: Premium o Standard |
A6 | A05 |
Nome della categoria nell'API: |
Un'intestazione di sicurezza ha valori duplicati e non corrispondenti, che comportano un comportamento indefinito. Per risolvere questo problema, imposta correttamente le intestazioni di sicurezza HTTP. Livello di prezzo: Premium o Standard |
A6 | A05 |
Nome della categoria nell'API: |
Un'intestazione di sicurezza contiene un errore ortografico e viene ignorata. Per risolvere questo problema, imposta correttamente le intestazioni di sicurezza HTTP. Livello di prezzo: Premium o Standard |
A6 | A05 |
Nome della categoria nell'API: |
Le risorse vengono pubblicate tramite HTTP in una pagina HTTPS. Per risolvere questo problema, assicurati che tutte le risorse vengano pubblicate tramite HTTPS. Livello di prezzo: Premium o Standard |
A6 | A05 |
Nome della categoria nell'API: |
È stata rilevata una libreria con vulnerabilità note. Per risolvere questo problema, esegui l'upgrade delle librerie a una versione più recente. Livello di prezzo: Premium o Standard |
A9 | A06 |
Nome della categoria nell'API: |
È stata rilevata una vulnerabilità di falsificazione delle richieste lato server (SSRF). Per risolvere questo problema, utilizza una lista consentita per limitare i domini e gli indirizzi IP a cui l'applicazione web può effettuare richieste. Livello di prezzo: Premium o Standard |
Non applicabile | A10 |
Nome della categoria nell'API: |
Quando effettua una richiesta tra domini, l'applicazione web include l'identificatore della sessione dell'utente nell'intestazione della richiesta Livello di prezzo: Premium |
A2 | A07 |
Nome della categoria nell'API: |
È stata rilevata una potenziale vulnerabilità SQL injection. Per risolvere questo problema, utilizza query con parametri per impedire che gli input degli utenti influenzino la struttura della query SQL. Livello di prezzo: Premium |
A1 | A03 |
Nome della categoria nell'API: |
È stato rilevato l'utilizzo di una versione vulnerabile di Apache Struts. Per risolvere questo problema, esegui l'upgrade di Apache Struts all'ultima versione. Livello di prezzo: Premium |
A8 | A08 |
Nome della categoria nell'API: |
Un campo in questa applicazione web è vulnerabile a un attacco di tipo cross-site scripting (XSS). Per risolvere questo problema, convalida ed elimina i dati non attendibili forniti dall'utente. Livello di prezzo: Premium o Standard |
A7 | A03 |
Nome della categoria nell'API: |
Una stringa fornita dall'utente non è codificata ed AngularJS può interpolare. Per risolvere questo rilevamento, convalida ed elimina i dati non attendibili forniti dall'utente e gestiti dal framework Angular. Livello di prezzo: Premium o Standard |
A7 | A03 |
Nome della categoria nell'API: |
Un campo in questa applicazione web è vulnerabile a un attacco di cross-site scripting. Per risolvere questo problema, convalida ed elimina i dati non attendibili forniti dall'utente. Livello di prezzo: Premium o Standard |
A7 | A03 |
Nome della categoria nell'API: |
È stata rilevata una vulnerabilità di tipo XXE (XML External Entity). Questa vulnerabilità può causare la fuga di un file sull'host da parte dell'applicazione web. Per risolvere questo problema, configura i tuoi analizzatori XML in modo da non consentire le entità esterne. Livello di prezzo: Premium |
A4 | A05 |
Nome della categoria nell'API: |
L'applicazione è vulnerabile all'inquinamento da prototipi. Questa vulnerabilità si verifica quando
alle proprietà dell'oggetto Livello di prezzo: Premium o Standard |
A1 | A03 |
Limitazioni d'uso
I ruoli IAM per Security Command Center possono essere concessi a livello di organizzazione, cartella o progetto. La possibilità di visualizzare, modificare, creare o aggiornare risultati, asset e origini di sicurezza dipende dal livello per cui ti è stato concesso l'accesso. Per scoprire di più sui ruoli di Security Command Center, consulta Controllo degli accessi.
Altri aspetti importanti da tenere presente quando utilizzi Web Security Scanner:
- Poiché Web Security Scanner è in continuo miglioramento, una scansione futura potrebbe segnalare problemi non rilevati dalla scansione corrente.
- Alcune funzionalità o sezioni della tua applicazione potrebbero non essere testate.
- Web Security Scanner tenta di attivare ogni controllo e input che trova.
- Se esponi azioni di modifica dello stato per le quali il tuo account di test ha l'autorizzazione, è probabile che Web Security Scanner le attivi. Ciò potrebbe portare a risultati indesiderati.
- Web Security Scanner ha un limite di 15 scansioni per progetto. Poiché le scansioni vengono eseguite contemporaneamente, gli utenti che raggiungono questo limite sono invitati ad aggiungere più URL iniziali per scansione o ad aggiungere le scansioni a progetti diversi che non hanno ancora raggiunto il limite.
Chi può eseguire una scansione di sicurezza?
Per informazioni sui ruoli di Identity and Access Management (IAM) disponibili per Web Security Scanner, consulta Controllo dell'accesso.
Quanto tempo è necessario per un controllo di sicurezza?
La scansione di sicurezza non viene eseguita immediatamente. Viene messo in coda ed eseguito più tardi, eventualmente dopo alcune ore, a seconda del carico del sistema. Una volta avviata la scansione, il tempo necessario dipenderà dalle dimensioni dell'applicazione. La scansione di un'applicazione di grandi dimensioni con molti URL può richiedere diverse ore o addirittura giorni. Se una scansione non è stata completata entro 20 giorni, viene interrotta automaticamente e tutti i risultati e i rilevamenti della scansione trovati durante la scansione saranno visibili come risultato della scansione.
Limitazioni del target
Web Security Scanner dispone di filtri che limitano i target di scansione all'istanza App Engine specifica per la quale viene creata la scansione. Se inserisci URL per un altro progetto App Engine o per un dominio esterno, verrà visualizzato un messaggio di errore.
Le scansioni per Compute Engine e GKE sono limitate ai domini che mappano a indirizzi IP esterni statici riservati per lo stesso progetto e agli indirizzi IP esterni statici che appartengono allo stesso progetto. Per istruzioni su come prenotare indirizzi IP per i progetti, consulta i seguenti link:
Compute Engine: Prenotazione di un indirizzo IP esterno statico
GKE: Configurazione dei nomi di dominio con indirizzi IP statici
App Engine non fornisce un modo per mappare gli indirizzi IP statici a un'applicazione. Tuttavia, puoi utilizzare Cloud Load Balancing e i gruppi di endpoint di rete serverless per prenotare un indirizzo IP statico per il bilanciatore del carico, che poi indirizza il traffico alla tua applicazione. Per informazioni sui prezzi, consulta Prezzi per indirizzi IP esterni.
All'interno del progetto, Web Security Scanner tenta automaticamente di evitare URL di logout e altre posizioni generiche che potrebbero influire negativamente su una scansione. Tuttavia, per sicurezza, puoi utilizzare le impostazioni di scansione per escludere manualmente gli URL.
Convalida
Le configurazioni di scansione vengono convalidate al momento della creazione e prima di ogni scansione. Web Security Scanner controlla le impostazioni di Security Command Center e le credenziali di autenticazione della tua applicazione per assicurarsi che le scansioni siano configurate correttamente e che sia possibile accedere alla tua applicazione. Vengono controllati anche i parametri di configurazione, inclusa la velocità massima di scansione, per verificare che rientrino negli intervalli supportati.
Devi risolvere gli errori prima di creare o aggiornare una scansione. Le applicazioni modificate dopo la configurazione iniziale potrebbero generare errori durante le scansioni. Ad esempio, se un dominio non punta più a un indirizzo IP di proprietà del progetto, la risorsa non viene sottoposta a scansione e viene segnalato un errore nella pagina di configurazione della scansione.
Best practice
Poiché Web Security Scanner compila campi, preme pulsanti, fa clic su link esegue altre azioni utente, devi utilizzarlo con cautela, in particolare se stai eseguendo la scansione delle risorse di produzione. Web Security Scanner potrebbe potenzialmente attivare funzionalità che modificano lo stato dei dati o del sistema, con risultati indesiderati.
Ad esempio:
- In un'applicazione di blog che consente i commenti pubblici, Web Security Scanner potrebbe pubblicare stringhe di test come commenti su tutti gli articoli del blog.
- In una pagina di registrazione email, Web Security Scanner potrebbe generare un numero elevato di email di prova.
Di seguito sono riportate alcune tecniche che puoi utilizzare, singolarmente o in combinazione, per evitare risultati indesiderati:
- Esegui le scansioni in un ambiente di test. Configura un ambiente di test creando un progetto App Engine distinto e caricando l'applicazione e i dati al suo interno. Se utilizzi Google Cloud CLI, puoi specificare il progetto di destinazione come opzione a riga di comando quando carichi l'app.
- Utilizza un account di prova. Crea un account utente che non abbia accesso a dati sensibili o operazioni dannose e utilizzalo durante la scansione dell'app. Molte applicazioni presentano un flusso di lavoro speciale durante il primo accesso di un utente, ad esempio l'accettazione dei termini e la creazione di un profilo. A causa del diverso flussi di lavoro, un account di prova per un utente iniziale può avere risultati di scansione diversi da un account utente consolidato. È preferibile eseguire la scansione con un account in stato utente normale, dopo il completamento del flusso di prima esecuzione.
- Bloccare singoli elementi dell'interfaccia utente che non vuoi che vengano attivati
applicando la classe CSS
inq-no-click
. I gestori eventi associati a questo elemento non vengono attivati durante la scansione e i test, indipendentemente dal fatto che siano JavaScript in linea, associati utilizzandoaddEventListener
o associati impostando la proprietà gestore eventi appropriata. - Utilizza i dati di backup. Ti consigliamo di eseguire il backup dei dati prima della scansione.
- URL esclusi.Puoi specificare pattern URL che non verranno sottoposti a scansione o test. Per informazioni sulla sintassi, consulta Esclusione degli URL.
Prima di eseguire la scansione, controlla attentamente l'applicazione per verificare la presenza di eventuali funzionalità che potrebbero colpire dati, utenti o sistemi al di fuori dell'ambito della scansione.
Passaggi successivi
- Inizia a utilizzare Web Security Scanner.