Panoramica di Web Security Scanner

Web Security Scanner identifica le vulnerabilità di sicurezza in App Engine, Google Kubernetes Engine (GKE) e le applicazioni web di Compute Engine. it esegue la scansione dell'applicazione, seguendo tutti i link nell'ambito della URL e tenta di utilizzare il numero di input dell'utente e di gestori di eventi possibile. Web Security Scanner supporta solo URL e IP pubblici che non sono dietro un firewall.

Web Security Scanner supporta l'ambiente standard di App Engine e gli ambienti flessibili di App Engine, le istanze di Compute Engine delle risorse GKE.

Web Security Scanner è progettato per integrare il tuo design sicuro esistente e i processi di sviluppo. Per evitare di distrarti con falsi positivi, Web Security Scanner fa errore a fianco del sistema di segnalazione e non visualizza avvisi di scarsa probabilità di corrispondenza. Non sostituisce un controllo manuale della sicurezza e non garantire che la tua applicazione sia priva di difetti di sicurezza.

Tipi di analisi

Web Security Scanner fornisce un'analisi delle vulnerabilità web gestita e personalizzata per i App Engine, GKE e Compute Engine servizio web diverse applicazioni.

Scansioni gestite

Le scansioni gestite di Web Security Scanner sono configurate e gestite tramite Security Command Center. Le scansioni gestite vengono eseguite automaticamente una volta alla settimana per rilevare per analizzare gli endpoint web pubblici. Queste analisi non utilizzano l'autenticazione e inviano Richieste solo GET in modo che non inviino moduli su siti web attivi.

Le scansioni gestite vengono eseguite separatamente dalle scansioni personalizzate.

Se Security Command Center è attivato a livello di organizzazione, è possibile utilizzare le scansioni gestite per gestire centralmente le applicazioni web di base il rilevamento delle vulnerabilità per i progetti dell'organizzazione, coinvolgano singoli team di progetto. Una volta scoperti i risultati, puoi lavorare con questi team per configurare scansioni personalizzate più complete.

Quando si abilita Web Security Scanner as a Service, i risultati della scansione gestita vengono automaticamente disponibili nella pagina Vulnerabilità di Security Command Center. report correlati. Per informazioni su come abilitare Web Security Scanner delle scansioni gestite, consulta Configura 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 su risultati relativi alle vulnerabilità delle applicazioni, come librerie obsolete, scripting o utilizzo di contenuti misti.

Le scansioni personalizzate vengono definite a livello di progetto.

I risultati della scansione personalizzata sono disponibili in Security Command Center dopo aver completato la guida configurare le scansioni personalizzate di Web Security Scanner.

Risultati della scansione

Questa sezione descrive i tipi di risultati di Web Security Scanner e i relativi standard di conformità.

Rilevatori e conformità

Web Security Scanner supporta le categorie del OWASP Top Ten, un documento che classifica e fornisce indicazioni per rimediare alla top 10 delle applicazioni web più critiche rischi per la sicurezza, in base a quanto stabilito dall'Open Web Application Security Project (OWASP).

La mappatura della conformità è inclusa come riferimento e non viene fornita né esaminata dalla OWASP Foundation. È destinata esclusivamente a un monitoraggio della conformità controlla le violazioni. Le mappature non sono fornite per essere utilizzate come base di, o In sostituzione, dell'audit, della certificazione o del rapporto di conformità del tuo prodotti o servizi con benchmark o standard normativi o di settore.

Per ulteriori informazioni sulla conformità, vedi Valuta e segnala la conformità ai benchmark di sicurezza.

Tipi di risultati

Le scansioni personalizzate e gestite di Web Security Scanner identificano i seguenti tipi di risultati. Nella Livello Standard, Web Security Scanner supporta le scansioni personalizzate delle applicazioni di cui è stato eseguito il deployment con URL e IP che non sono protetti da un firewall.

Categoria Descrizione del risultato OWASP 2017 - Top 10 Top 10 della classifica OWASP 2021

Accessible Git repository

Nome categoria nell'API: ACCESSIBLE_GIT_REPOSITORY

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

Livello di prezzo: Standard

Correggi questo risultato

A5 A01

Accessible SVN repository

Nome categoria nell'API: ACCESSIBLE_SVN_REPOSITORY

Un repository SVN è esposto pubblicamente. Per risolvere questo risultato, rimuovi pubblico l'accesso involontario al repository SVN.

Livello di prezzo: Standard

Correggi questo risultato

A5 A01

Cacheable password input

Nome categoria nell'API: CACHEABLE_PASSWORD_INPUT

Le password inserite nell'applicazione web possono essere invece memorizzate nella cache di una normale cache del browser. di archiviazione sicura delle password.

Livello di prezzo: Premium

Correggi questo risultato

A3 A04

Clear text password

Nome categoria nell'API: CLEAR_TEXT_PASSWORD

Le password vengono trasmesse in chiaro e possono essere intercettate. Per risolvere il problema ricerca, crittografare la password trasmessa sulla rete.

Livello di prezzo: Standard

Correggi questo risultato

A3 A02

Insecure allow origin ends with validation

Nome categoria nell'API: INSECURE_ALLOW_ORIGIN_ENDS_WITH_VALIDATION

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

Livello di prezzo: Premium

Correggi questo risultato

A5 A01

Insecure allow origin starts with validation

Nome categoria nell'API: INSECURE_ALLOW_ORIGIN_STARTS_WITH_VALIDATION

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

Livello di prezzo: Premium

Correggi questo risultato

A5 A01

Invalid content type

Nome categoria nell'API: INVALID_CONTENT_TYPE

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

Livello di prezzo: Standard

Correggi questo risultato

A6 A05

Invalid header

Nome categoria nell'API: INVALID_HEADER

Un'intestazione di sicurezza contiene un errore di sintassi e viene ignorata dai browser. Per risolvere questo risultato, impostare correttamente le intestazioni di sicurezza HTTP.

Livello di prezzo: Standard

Correggi questo risultato

A6 A05

Mismatching security header values

Nome categoria nell'API: MISMATCHING_SECURITY_HEADER_VALUES

Un'intestazione di sicurezza presenta valori duplicati e non corrispondenti, che generano un comportamento indefinito. Per risolvere questo risultato, imposta correttamente le intestazioni di sicurezza HTTP.

Livello di prezzo: Standard

Correggi questo risultato

A6 A05

Misspelled security header name

Nome categoria nell'API: MISSPELLED_SECURITY_HEADER_NAME

Un'intestazione di sicurezza contiene errori di ortografia e viene ignorata. Per risolvere questo risultato, imposta HTTP le intestazioni di sicurezza.

Livello di prezzo: Standard

Correggi questo risultato

A6 A05

Mixed content

Nome categoria nell'API: MIXED_CONTENT

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

Livello di prezzo: Standard

Correggi questo risultato

A6 A05

Outdated library

Nome categoria nell'API: OUTDATED_LIBRARY

È stata rilevata una libreria con vulnerabilità note. Per risolvere questo risultato, esegui l'upgrade a una versione più recente.

Livello di prezzo: Standard

Correggi questo risultato

A9 A06

Server side request forgery

Nome categoria nell'API: SERVER_SIDE_REQUEST_FORGERY

È stata rilevata una vulnerabilità di falsificazione delle richieste lato server (SSRF, Server-Side Request Forgery). Per risolvere questo risultato, utilizza una lista consentita per limitare i domini e gli indirizzi IP che l'applicazione web può rendere a cui inviare richieste.

Livello di prezzo: Standard

Correggi questo risultato

Non applicabile A10

Session ID leak

Nome categoria nell'API: SESSION_ID_LEAK

Quando effettui una richiesta interdominio, l'applicazione web include la sessione dell'utente identificatore nell'intestazione della richiesta Referer. Questa vulnerabilità fornisce riceve l'accesso del dominio all'identificatore di sessione, che può essere utilizzato per impersonare identificare in modo univoco l'utente.

Livello di prezzo: Premium

Correggi questo risultato

A2 A07

SQL injection

Nome categoria nell'API: SQL_INJECTION

È stata rilevata una potenziale vulnerabilità di SQL injection. Per risolvere questo risultato, utilizza query con parametri per impedire agli input dell'utente di influenzare la struttura dell'SQL query.

Livello di prezzo: Premium

Correggi questo risultato

A1 A03

Struts insecure deserialization

Nome categoria nell'API: STRUTS_INSECURE_DESERIALIZATION

L'utilizzo di una versione vulnerabile di Apache Struts è stato rilevato. Per risolvere questo risultato, esegui l'upgrade di Apache Struts alla versione più recente.

Livello di prezzo: Premium

Correggi questo risultato

A8 A08

XSS

Nome categoria nell'API: XSS

Un campo di questa applicazione web è vulnerabile a un attacco cross-site scripting (XSS). A risolvere questo risultato, convalidare e uscire dai dati non attendibili forniti dall'utente.

Livello di prezzo: Standard

Correggi questo risultato

A7 A03

XSS angular callback

Nome categoria nell'API: XSS_ANGULAR_CALLBACK

Una stringa fornita dall'utente non presenta caratteri di escape e AngularJS può interporla. Per risolvere il problema trovare, convalidare ed eseguire l'escape dei dati non attendibili forniti dall'utente e gestiti da Angular il modello di machine learning.

Livello di prezzo: Standard

Correggi questo risultato

A7 A03

XSS error

Nome categoria nell'API: XSS_ERROR

Un campo di questa applicazione web è vulnerabile a un attacco cross-site scripting. A risolvere questo risultato, convalidare e uscire dai dati non attendibili forniti dall'utente.

Livello di prezzo: Standard

Correggi questo risultato

A7 A03

XXE reflected file leakage

Nome categoria nell'API: XXE_REFLECTED_FILE_LEAKAGE

È stata rilevata una vulnerabilità di tipo XXE (XML External Entity). Questa vulnerabilità può causare un'applicazione web per far trapelare un file sull'host. Per risolvere questo risultato, configura il file XML per non consentire le entità esterne.

Livello di prezzo: Premium

Correggi questo risultato

A4 A05

Prototype pollution

Nome categoria nell'API: PROTOTYPE_POLLUTION

L'applicazione è vulnerabile all'inquinamento del prototipo. Questa vulnerabilità si verifica quando dell'oggetto Object.prototype possono essere assegnate i valori controllabili dai malintenzionati. I valori inseriti in questi prototipi sono universalmente considerati per tradursi in cross-site scripting (XSS) o vulnerabilità simili lato client, nonché e bug di logica.

Livello di prezzo: Standard

Correggi questo risultato

A1 A03

Avvertenze sull'utilizzo

I ruoli IAM per Security Command Center possono essere concessi a livello di organizzazione, a livello di cartella o di progetto. La tua possibilità di visualizzare, modificare, creare o aggiornare risultati, asset e le origini di sicurezza dipendono dal livello a cui ti viene concesso l'accesso. Per scoprire di più su Per i ruoli di Security Command Center, vedi Controllo dell'accesso.

Altri aspetti importanti da tenere presenti quando si utilizza Web Security Scanner:

  • Poiché Web Security Scanner è in continuo miglioramento, un futuro la scansione potrebbe segnalare problemi non segnalati 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 di stato per le quali il tuo account di prova ha è probabile che Web Security Scanner li attivi. Questo potrebbe comportare a risultati indesiderati.
  • Web Security Scanner ha un limite di 15 scansioni per progetto. Poiché le scansioni vengono eseguiti contemporaneamente, consigliamo agli utenti che raggiungono questo limite di aggiungere più URL iniziali per scansione o per aggiungere analisi a progetti diversi che non hanno ancora raggiunto il limite.

Chi può eseguire un'analisi della sicurezza?

Per informazioni sui ruoli IAM (Identity and Access Management) disponibile per Web Security Scanner, vedi 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 viene eseguito più tardi, anche dopo alcune ore, a seconda del carico del sistema. Dopo l'inizio della scansione l'esecuzione, 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 arrestata automaticamente. e tutti i risultati della scansione e quelli trovati durante la scansione saranno visibili risultato della scansione.

Limitazioni target

Web Security Scanner dispone di filtri che limitano le destinazioni delle scansioni ai un'istanza App Engine specifica per cui è stata creata la scansione. Inserimento di URL per un altro progetto App Engine o un dominio esterno, .

Le scansioni per Compute Engine e GKE sono limitate a domini mappati a indirizzi IP esterni statici prenotati per lo stesso progetto sia da indirizzi IP esterni statici che appartengono allo stesso progetto. Per istruzioni sulla prenotazione di indirizzi IP per i progetti, consulta i seguenti link:

App Engine non fornisce un modo per mappare gli indirizzi IP statici a un un'applicazione. Tuttavia, puoi usare Cloud Load Balancing e la rete serverless ai gruppi di endpoint 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 Prezzi degli indirizzi IP esterni.

All'interno del tuo progetto, Web Security Scanner tenta automaticamente di evitare URL di disconnessione e altre posizioni generiche che potrebbero influire negativamente sulla scansione. Tuttavia, per sicurezza, puoi usare le impostazioni di scansione per escludere 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 quelle dell'applicazione credenziali di autenticazione per garantire che le analisi siano configurate correttamente e possano registrare nella tua applicazione. Parametri di configurazione, incluso il numero massimo di scansione vengono controllate anche per verificare che rientrino negli intervalli supportati.

Devi risolvere gli errori prima che una scansione venga creata o aggiornata. Applicazioni che vengono modificate dopo la configurazione iniziale, possono generare errori durante le scansioni. Per Ad esempio, se un dominio non punta più a un indirizzo IP di proprietà del progetto, la risorsa non viene analizzata 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 degli utenti, ti consigliamo di usarla con cautela, in particolare se stai analizzando le risorse di produzione. Web Security Scanner potrebbe potenzialmente attivare funzionalità che modificano lo stato dei dati o del sistema, con che consentono di analizzare i dati e visualizzare i risultati.

Ad esempio:

  • In un'applicazione blog che consente i commenti pubblici, Web Security Scanner potrebbe pubblicare stringhe di test come commenti su tutti i tuoi articoli del blog.
  • In una pagina di registrazione via email, Web Security Scanner potrebbe generare grandi quantità di dati delle email di prova.

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

  1. Esegui scansioni in un ambiente di test. Configura un ambiente di test creando un un progetto App Engine separato e caricare lì applicazione e dati. Se Utilizza Google Cloud CLI, puoi specificare il target progetto come opzione a riga di comando quando carichi l'app.
  2. Usa un account di prova. Crea un account utente che non ha accesso a operazioni dannose o dati sensibili e di utilizzarli durante la scansione dell'app. Molti presentano un flusso di lavoro speciale al primo accesso dell'utente, come l'accettazione dei termini e la creazione di un profilo. A causa dei diversi un flusso di lavoro di prova, un account di prova per un utente iniziale può avere risultati di scansione diversi rispetto a un account utente consolidato. È meglio eseguire la scansione con un account che nello stato normale dell'utente, al termine del flusso per la prima volta.
  3. Bloccare i singoli elementi dell'interfaccia utente che non vuoi che vengano attivati applicando la classe CSS inq-no-click. I gestori di eventi collegati questo elemento non viene attivato durante la scansione e il test, a prescindere da se sono JavaScript incorporati o allegati utilizzando addEventListener, oppure per il collegamento impostando la proprietà di gestore eventi appropriata.
  4. Usa dati di backup. Valuta la possibilità di eseguire un backup dei dati prima della scansione.
  5. URL esclusi: puoi specificare pattern URL che non verranno sottoposti a scansione o viene testato. Per informazioni sulla sintassi, consulta Esclusione di URL.

Prima di eseguire la scansione, controlla attentamente l'applicazione per individuare eventuali funzionalità che potrebbero incidono su dati, utenti o sistemi al di fuori dell'ambito della scansione.

Passaggi successivi