Panoramica di Web Security Scanner

Web Security Scanner identifica le vulnerabilità di sicurezza e le configurazioni errate nelle tue applicazioni web 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 attiva 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 processi di progettazione e sviluppo sicuri esistenti. Per evitare di distrarti con falsi positivi, Web Security Scanner tende a sottostimare i report e non mostra avvisi con un basso livello di confidenza. Non sostituisce una revisione manuale della sicurezza e non garantisce che la tua applicazione sia priva di vulnerabilità.

I risultati classificati come configurazioni errate rappresentano problemi che possono essere risolti tramite l'azione del cliente aggiornando le configurazioni. Sebbene questi risultati siano importanti per migliorare il livello di sicurezza, sono diversi dalle vulnerabilità, che rappresentano debolezze attivamente sfruttabili. Puoi visualizzare queste configurazioni errate nella pagina Risultati di Security Command Center. Per saperne di più, consulta Risultati della configurazione errata di Web Security Scanner.

Tipi di scansione

Web Security Scanner fornisce scansioni gestite e personalizzate delle vulnerabilità web per le applicazioni web pubbliche servite da App Engine, GKE e Compute Engine.

Scansioni gestite

Le scansioni gestite di Web Security Scanner sono configurate e gestite da Security Command Center. Le scansioni gestite vengono eseguite automaticamente una volta alla settimana per rilevare e scansionare gli endpoint web pubblici. Queste scansioni non utilizzano l'autenticazione e inviano solo richieste GET, pertanto non inviano moduli sui siti web live.

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 centralmente il rilevamento delle 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 abiliti 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 scansioni gestite di Web Security Scanner, consulta Configurare i servizi di Security Command Center.

Le scansioni 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 scansione personalizzata.

Scansioni personalizzate

Le scansioni personalizzate di Web Security Scanner forniscono informazioni granulari sui risultati delle vulnerabilità delle applicazioni, come librerie obsolete, cross-site scripting o utilizzo di contenuti misti.

Definisci le scansioni personalizzate a livello di progetto.

I risultati delle scansioni personalizzate sono disponibili in Security Command Center dopo aver completato la guida alla configurazione delle 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 a titolo di riferimento e non viene fornita o esaminata dalla OWASP Foundation. È destinato esclusivamente al monitoraggio delle violazioni dei controlli di conformità. Le mappature non vengono fornite per essere utilizzate come base o come sostituto dell'audit, della certificazione o del report di conformità dei tuoi prodotti o servizi a qualsiasi benchmark o standard normativo o di settore.

Per maggiori informazioni sulla conformità, vedi Valutare e segnalare la conformità al 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 Categoria di esiti OWASP 2017 Top 10 OWASP 2021 Top 10

Nome della categoria nell'API: ACCESSIBLE_GIT_REPOSITORY

Un repository Git è esposto pubblicamente. Per risolvere questo problema, rimuovi l'accesso pubblico involontario al repository GIT.

Livello di prezzo: Premium o Standard

Correggi questo risultato

Vulnerabilità A5 A01

Nome della categoria nell'API: ACCESSIBLE_SVN_REPOSITORY

Un repository SVN è esposto pubblicamente. Per risolvere questo problema, rimuovi l'accesso pubblico non intenzionale al repository SVN.

Livello di prezzo: Premium o Standard

Correggi questo risultato

Vulnerabilità A5 A01

Nome della categoria nell'API: ACCESSIBLE_ENV_FILE

Un file ENV è esposto pubblicamente. Per risolvere questo problema, rimuovi l'accesso pubblico involontario al file ENV.

Livello di prezzo: Premium o Standard

Correggi questo risultato

Vulnerabilità A5 A01

Nome della categoria nell'API: CACHEABLE_PASSWORD_INPUT

Le password inserite nell'applicazione web possono essere memorizzate nella cache in una normale cache del browser anziché in uno spazio di archiviazione sicuro delle password.

Livello di prezzo: Premium

Correggi questo risultato

Vulnerabilità A3 A04

Nome della categoria nell'API: CLEAR_TEXT_PASSWORD

Le password vengono trasmesse in testo normale e possono essere intercettate. Per risolvere questo problema, cripta la password trasmessa sulla rete.

Livello di prezzo: Premium o Standard

Correggi questo risultato

Vulnerabilità A3 A02

Nome della categoria nell'API: INSECURE_ALLOW_ORIGIN_ENDS_WITH_VALIDATION

Un endpoint HTTP o HTTPS tra siti convalida solo un suffisso dell'intestazione della richiesta Origin prima di rifletterlo all'interno dell'intestazione della risposta Access-Control-Allow-Origin. Per risolvere questo problema, verifica che il dominio principale previsto faccia parte del valore dell'intestazione Origin prima di rifletterlo nell'intestazione della risposta Access-Control-Allow-Origin. Per i caratteri jolly nel sottodominio, anteponi il punto al dominio principale, ad esempio .endsWith(".google.com").

Livello di prezzo: Premium

Correggi questo risultato

Vulnerabilità A5 A01

Nome della categoria nell'API: INSECURE_ALLOW_ORIGIN_STARTS_WITH_VALIDATION

Un endpoint HTTP o HTTPS tra siti convalida solo un prefisso dell'intestazione della richiesta Origin prima di rifletterlo all'interno dell'intestazione della risposta Access-Control-Allow-Origin. Per risolvere questo problema, verifica che il dominio previsto corrisponda completamente al valore dell'intestazione Origin prima di rifletterlo nell'intestazione della risposta Access-Control-Allow-Origin, ad esempio .equals(".google.com").

Livello di prezzo: Premium

Correggi questo risultato

Vulnerabilità A5 A01

Nome della categoria nell'API: INVALID_CONTENT_TYPE

È stata caricata una risorsa che non corrisponde all'intestazione HTTP Content-Type della risposta. Per risolvere questo problema, imposta l'intestazione HTTP X-Content-Type-Options con il valore corretto.

Livello di prezzo: Premium o Standard

Correggi questo risultato

Vulnerabilità A6 A05

Nome della categoria nell'API: INVALID_HEADER

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

Correggi questo risultato

Vulnerabilità A6 A05

Nome della categoria nell'API: MISMATCHING_SECURITY_HEADER_VALUES

Un'intestazione di sicurezza ha valori duplicati e non corrispondenti, il che comporta un comportamento indefinito. Per risolvere questo problema, imposta correttamente le intestazioni di sicurezza HTTP.

Livello di prezzo: Premium o Standard

Correggi questo risultato

Vulnerabilità A6 A05

Nome della categoria nell'API: MISSPELLED_SECURITY_HEADER_NAME

Un'intestazione di sicurezza presenta errori ortografici e viene ignorata. Per risolvere questo problema, imposta correttamente le intestazioni di sicurezza HTTP.

Livello di prezzo: Premium o Standard

Correggi questo risultato

Vulnerabilità A6 A05

Nome della categoria nell'API: MIXED_CONTENT

Le risorse vengono pubblicate tramite HTTP su una pagina HTTPS. Per risolvere questo problema, assicurati che tutte le risorse vengano pubblicate tramite HTTPS.

Livello di prezzo: Premium o Standard

Correggi questo risultato

Vulnerabilità A6 A05

Nome della categoria nell'API: OUTDATED_LIBRARY

È 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

Correggi questo risultato

Vulnerabilità A9 A06

Nome della categoria nell'API: SERVER_SIDE_REQUEST_FORGERY

È stata rilevata una vulnerabilità Falsificazione richiesta 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ò inviare richieste.

Livello di prezzo: Premium o Standard

Correggi questo risultato

Vulnerabilità Non applicabile A10

Nome della categoria nell'API: SESSION_ID_LEAK

Quando effettua una richiesta multiorigine, l'applicazione web include l'identificatore di sessione dell'utente nell'intestazione della richiesta Referer. Questa vulnerabilità consente al dominio ricevente di accedere all'identificatore di sessione, che può essere utilizzato per impersonare o identificare in modo univoco l'utente.

Livello di prezzo: Premium

Correggi questo risultato

Vulnerabilità A2 A07

Nome della categoria nell'API: SQL_INJECTION

È stata rilevata una potenziale vulnerabilità SQL injection. Per risolvere questo problema, utilizza query con parametri per impedire che gli input dell'utente influenzino la struttura della query SQL.

Livello di prezzo: Premium

Correggi questo risultato

Vulnerabilità A1 A03

Nome della categoria nell'API: STRUTS_INSECURE_DESERIALIZATION

È 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

Correggi questo risultato

Vulnerabilità A8 A08

Nome della categoria nell'API: XSS

Un campo di questa applicazione web è vulnerabile a un attacco di cross-site scripting (XSS). Per risolvere questo problema, convalida ed elimina i dati non attendibili forniti dall'utente.

Livello di prezzo: Premium o Standard

Correggi questo risultato

Vulnerabilità A7 A03

Nome della categoria nell'API: XSS_ANGULAR_CALLBACK

Una stringa fornita dall'utente non viene sottoposta a escape e AngularJS può interpolarla. Per risolvere questo problema, convalida ed elimina i dati non attendibili forniti dall'utente e gestiti dal framework Angular.

Livello di prezzo: Premium o Standard

Correggi questo risultato

Vulnerabilità A7 A03

Nome della categoria nell'API: XSS_ERROR

Un campo di 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

Correggi questo risultato

Vulnerabilità A7 A03

Nome della categoria nell'API: XXE_REFLECTED_FILE_LEAKAGE

È stata rilevata una vulnerabilità di tipo XXE (XML External Entity). Questa vulnerabilità può causare la perdita di un file nell'host da parte dell'applicazione web. Per risolvere questo problema, configura i parser XML in modo da non consentire entità esterne.

Livello di prezzo: Premium

Correggi questo risultato

Vulnerabilità A4 A05

Nome della categoria nell'API: PROTOTYPE_POLLUTION

L'applicazione è vulnerabile alla contaminazione del prototipo. Questa vulnerabilità si verifica quando alle proprietà dell'oggetto Object.prototype possono essere assegnati valori controllabili da un utente malintenzionato. Si presume che i valori inseriti in questi prototipi si traducano universalmente in cross-site scripting o vulnerabilità simili sul lato client, oltre a bug logici.

Livello di prezzo: Premium o Standard

Correggi questo risultato

Vulnerabilità A1 A03

Nome della categoria nell'API: HSTS_MISCONFIGURATION

È stata rilevata un'intestazione HTTP Strict Transport Security (HSTS) configurata in modo errato. Per ridurre in modo significativo il rischio di downgrade e attacchi di intercettazione sulle connessioni HTTP, risolvi l'intestazione HSTS configurata in modo errato. Le intestazioni HSTS forzano le connessioni tramite canali criptati (TLS) in modo che le connessioni HTTP in testo normale non vadano a buon fine. Scopri di più sulle intestazioni HSTS

Livello di prezzo: Premium

Correggi questo risultato

Configurazione errata Non applicabile Non applicabile

Nome della categoria nell'API: CSP_MISSING

È stata rilevata un'intestazione di risposta HTTP Content Security Policy (CSP) mancante. Le intestazioni CSP mitigano lo sfruttamento di vulnerabilità web comuni, in particolare il cross-site scripting XSS, impedendo il caricamento di script o plug-in non attendibili. È consigliabile un'intestazione CSP rigida. Scopri di più sulle intestazioni CSP

Livello di prezzo: Premium

Correggi questo risultato

Configurazione errata Non applicabile Non applicabile

Nome della categoria nell'API: CSP_MISCONFIGURATION

È stata rilevata un'intestazione di risposta HTTP Content Security Policy (CSP) non configurata correttamente. Le intestazioni CSP mitigano lo sfruttamento di vulnerabilità web comuni, in particolare il cross-site scripting XSS, impedendo il caricamento di script o plug-in non attendibili. È consigliata un'intestazione CSP rigida. Scopri di più sulle intestazioni CSP

Livello di prezzo: Premium

Correggi questo risultato

Configurazione errata Non applicabile Non applicabile

Nome della categoria nell'API: COOP_MISSING

È stata rilevata un'intestazione HTTP Cross-Origin-Opener-Policy (COOP) mancante. COOP è un meccanismo di sicurezza web che impedisce a una pagina aperta in una nuova finestra di accedere alle proprietà della pagina di origine. COOP offre un solido livello di protezione contro gli attacchi web comuni.

Livello di prezzo: Premium

Correggi questo risultato

Configurazione errata Non applicabile Non applicabile

Nome della categoria nell'API: CLICKJACKING_PROTECTION_MISSING

È stata rilevata un'intestazione della risposta mancante. Per impedire il clickjacking, implementa un'intestazione della risposta HTTP come X-Frame-Option (XFO) o Content-Security-Policy (CSP). Il clickjacking(chiamato anche UI Redress) è un attacco web in cui gli autori malintenzionati modificano l'interfaccia di un sito web di destinazione in modo che le vittime non si rendano conto di intraprendere un'azione importante. È consigliabile implementare un'intestazione della risposta HTTP: le intestazioni XFO sono facili da usare; le intestazioni CSP offrono maggiore flessibilità.
- Scopri di più sulle intestazioni XFO
- Scopri di più sulle intestazioni CSP

Livello di prezzo: Premium

Correggi questo risultato

Configurazione errata Non applicabile Non applicabile

Avvertenze sull'utilizzo

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 la sezione Controllo dell'accesso.

Altre cose importanti da sapere quando utilizzi Web Security Scanner:

  • Poiché Web Security Scanner è in continuo miglioramento, una scansione futura potrebbe segnalare problemi non segnalati dalla scansione attuale.
  • Alcune funzionalità o sezioni della tua applicazione potrebbero non essere testate.
  • Web Security Scanner tenta di attivare ogni controllo e inserire ogni input che trova.
  • Web Security Scanner supporta solo i siti web che utilizzano IPv4. I siti web che utilizzano IPv6 non vengono analizzati.
  • Se esponi azioni che modificano lo stato per le quali il tuo account di test dispone dell'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, agli utenti che raggiungono questo limite si consiglia di aggiungere più URL iniziali per scansione o di aggiungere scansioni a progetti diversi che non hanno ancora raggiunto il limite.

Chi può eseguire una scansione di sicurezza?

Per informazioni sui ruoli Identity and Access Management (IAM) disponibili per Web Security Scanner, consulta Controllo dell'accesso.

Quanto tempo è necessario per una scansione di sicurezza?

L'analisi della sicurezza non viene eseguita immediatamente. Viene messo in coda e poi eseguito in un secondo momento, anche ore dopo a seconda del carico del sistema. Una volta avviata l'esecuzione della 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 persino giorni. Se una scansione non viene completata entro 20 giorni, viene interrotta automaticamente e tutti i risultati di scansione e i risultati trovati durante la scansione saranno visibili come risultato della scansione.

Limitazioni dei target

Web Security Scanner dispone di filtri che limitano le destinazioni di scansione all'istanza App Engine specifica per cui viene creata la scansione. L'inserimento di URL per un progetto App Engine diverso o un dominio esterno genererà un messaggio di errore.

Le scansioni per Compute Engine e GKE sono limitate ai domini mappati a indirizzi IP esterni statici riservati per lo stesso progetto e agli indirizzi IP esterni statici appartenenti allo stesso progetto. Per istruzioni sulla prenotazione degli indirizzi IP per i progetti, consulta i seguenti link:

App Engine non fornisce un modo per mappare indirizzi IP statici a un'applicazione. Tuttavia, puoi utilizzare Cloud Load Balancing e i gruppi di endpoint di rete serverless per riservare un indirizzo IP statico per il bilanciatore del carico, che poi indirizza il traffico alla tua applicazione. Per informazioni sui prezzi, consulta la pagina Tutti i prezzi di networking.

All'interno del progetto, Web Security Scanner tenta automaticamente di evitare gli URL di disconnessione 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 possano accedere alla tua applicazione. Vengono controllati anche i parametri di configurazione, inclusa la velocità di scansione massima, per assicurarsi che rientrino negli intervalli supportati.

Devi risolvere gli errori prima che venga creata o aggiornata una scansione. Le applicazioni che vengono 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 scansionata e viene segnalato un errore nella pagina di configurazione della scansione.

Best practice

Poiché Web Security Scanner compila i campi, preme i pulsanti, fa clic sui link ed esegue altre azioni utente, devi utilizzarlo con cautela, soprattutto se esegui la scansione delle risorse di produzione. 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.

Di seguito sono riportate alcune tecniche che puoi utilizzare, separatamente o in combinazione, per evitare risultati indesiderati:

  1. Esegui scansioni in un ambiente di test. Configura un ambiente di test creando un progetto App Engine separato e caricando l'applicazione e i dati. Se utilizzi Google Cloud CLI, puoi specificare il progetto di destinazione come opzione della riga di comando quando carichi l'app.
  2. 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, come l'accettazione dei termini e la creazione di un profilo. A causa del diverso flusso di lavoro, un account di test per un utente iniziale può avere risultati di scansione diversi rispetto a un account utente consolidato. È consigliabile eseguire la scansione con un account nello stato utente normale, dopo aver completato il flusso iniziale.
  3. Blocca i singoli elementi dell'interfaccia utente che non vuoi attivare applicando la classe CSS inq-no-click. I gestori di eventi collegati a questo elemento non vengono attivati durante la scansione e il test, indipendentemente dal fatto che siano JavaScript incorporato o collegati utilizzando addEventListener oppure collegati impostando la proprietà del gestore di eventi appropriata.
  4. Utilizzare i dati di backup. Ti consigliamo di eseguire un backup dei dati prima della scansione.
  5. URL esclusi.Puoi specificare pattern URL che non verranno sottoposti a scansione o testati. Per informazioni sulla sintassi, vedi Esclusione degli URL.

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 della scansione.

Passaggi successivi