Questa pagina spiega come interpretare, riprodurre e correggere Web Security Scanner i risultati.
I ruoli IAM per Security Command Center possono essere concessi a livello di organizzazione, a livello di cartella o di progetto. Puoi 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.
Classi di vulnerabilità
Web Security Scanner rileva le seguenti classi di vulnerabilità:
- Cross-site scripting (XSS)
- Falsa richiesta lato server
- Flash injection
- Contenuto misto
- Librerie obsolete o vulnerabili
- Password in chiaro
- Convalida dell'origine non sicura
- Intestazioni non valide
- Intestazioni con errori ortografici
- Repository accessibili
- SQL injection
- Iniezione XML
- Prototipazione dell'inquinamento
Se viene rilevata una di queste vulnerabilità, il risultato è evidenziato per di esplorare in dettaglio.
Impatto sui log
Le tracce delle scansioni di Web Security Scanner vengono visualizzate nei file di log. Ad esempio:
Web Security Scanner genera richieste per stringhe insolite come ~sfi9876
e /sfi9876
. Questo processo consente alla scansione di esaminare
pagine di errore. Queste richieste di pagina intenzionalmente non valide vengono visualizzate nei tuoi log.
Disattivazione dei risultati dopo la correzione
Dopo aver corretto una vulnerabilità,
Web Security Scanner non imposta automaticamente lo stato del
risultato di Security Command Center corrispondente a INACTIVE
.
A meno che non modifichi lo stato manualmente, lo stato dei risultati
generate da Web Security Scanner in Security Command Center rimangono ACTIVE
.
Se utilizzi la versione autonoma di Web Security Scanner, dopo aver corretto una vulnerabilità e Web Security Scanner non può più rilevare vulnerabilità, i successivi report sulle vulnerabilità non includono la vulnerabilità. Resta un record della vulnerabilità nei rapporti sulle vulnerabilità precedenti.
Web Security Scanner esegue ogni settimana scansioni gestite.
Per ulteriori informazioni sulle scansioni di Web Security Scanner, vedi Tipi di analisi.
Correzione dei risultati di Web Security Scanner
Questa sezione spiega come risolvere diversi tipi di Web Security Scanner i risultati. Per le strategie che proteggono dai comuni attacchi a livello di applicazione sono descritti nella sezione OWASP Top 10, consulta le 10 principali opzioni di mitigazione di OWASP su Google Cloud.
XSS
Nome categoria nell'API: XSS
Il test di iniezione cross-site scripting (XSS) di Web Security Scanner simula un di un attacco di tipo injection inserendo una stringa di test benigna in campi modificabili dall'utente e eseguire varie azioni dell'utente. I rilevatori personalizzati osservano browser e DOM durante il test per determinare se un'injection è riuscita e valutarne il potenziale di sfruttamento.
Se la stringa JavaScript contenuta nel test viene eseguita correttamente, viene avviato il debugger di Chrome. Quando una stringa di test può essere eseguita, è possibile inserire ed eseguire JavaScript nella pagina. Se un malintenzionato trovasse questo problema, potrebbe eseguire codice JavaScript di sua scelta come utente (vittima) che fa clic su un o dannoso.
In alcuni casi, l'applicazione sottoposta a test potrebbe modificare la stringa di test prima che venga analizzato dal browser. Ad esempio, l'applicazione potrebbe convalidare l'input o limitare le dimensioni di un campo. Quando il browser prova a eseguire questo stringa di test modificata, è probabile che si interrompa e restituisca un'esecuzione JavaScript . L'errore indica un problema di iniezione, ma potrebbe non essere possibile sfruttarlo.
Per risolvere il problema, devi verificare se si tratta di una vulnerabilità XSS. verificando manualmente se le modifiche alla stringa di prova possono essere aggirate. Per informazioni dettagliate su come verificare questa vulnerabilità, consulta Cross-site di scripting.
Esistono diversi modi per risolvere il problema. La soluzione consigliata è di eseguire l'escape di tutti e utilizzare un sistema di modelli che supporti l'escape automatico contestuale.
XSS angular callback
Nome categoria nell'API: XSS_ANGULAR_CALLBACK
Una vulnerabilità cross-site scripting (XSS) nei moduli AngularJS può verificarsi quando Angular interpola una stringa fornita dall'utente. Inserisci i valori forniti dall'utente in un'interpolazione AngularJS può consentire i seguenti attacchi:
- Un malintenzionato può inserire codice arbitrario nella pagina visualizzata dai browser.
- Un aggressore può eseguire azioni per conto del browser vittima nel l'origine della pagina.
Per riprodurre questa potenziale vulnerabilità, segui il link dell'URL di riproduzione nella
nella console Google Cloud
dopo l'esecuzione della scansione. Questo link apre direttamente un avviso
o inserisce la stringa XSSDETECTED
per dimostrare che l'attacco può essere eseguito
le API nel tuo codice. Se la stringa viene inserita, puoi aprire gli strumenti per sviluppatori del tuo
browser e cerca XSSDETECTED
per trovare la posizione esatta
iniezione di codice.
XSS error
Nome categoria nell'API: XSS_ERROR
Un risultato XSS_ERROR
è un potenziale bug XSS dovuto a un'interruzione di JavaScript. Nella
In alcune circostanze, l'applicazione sottoposta a test potrebbe modificare la stringa di test
prima che il browser lo analizzi. Quando il browser tenta di eseguire questo test modificato
è probabile che si rompa e riproduca un errore di esecuzione JavaScript. Questo errore
indica un problema di iniezione, ma potrebbe non essere possibile sfruttarlo.
Per risolvere il problema, devi verificare se si tratta di una vulnerabilità XSS. verificando manualmente se le modifiche alla stringa di prova possono essere aggirate. Per informazioni dettagliate su come verificare questa vulnerabilità, consulta Cross-site di scripting.
Server side request forgery
Nome categoria nell'API: SERVER_SIDE_REQUEST_FORGERY
Una vulnerabilità SERVER_SIDE_REQUEST_FORGERY
consente all'utente di un'applicazione web di ottenere
ai dati interni costringendo un server a effettuare una richiesta (come una richiesta
richiesta) a un endpoint di servizio con restrizioni. Ad esempio, un utente malintenzionato può
sfruttare questa vulnerabilità per recuperare i dati dai metadati Google Cloud
completamente gestito di Google Cloud.
Per risolvere il problema, utilizza una lista consentita per limitare i domini e gli indirizzi IP a cui l'applicazione web può inviare richieste.
Rosetta flash
Nome categoria nell'API: ROSETTA_FLASH
Web Security Scanner potrebbe rilevare che il valore di un parametro di richiesta riflessa all'inizio di una risposta, ad esempio nelle richieste utilizzando JSONP. Questa vulnerabilità è nota anche come Flash injection. Sotto certi circostanze, un utente malintenzionato può indurre il browser a eseguire la risposta come se si trattava di un file Flash fornito dall'applicazione web vulnerabile.
Per risolvere il problema, non includere dati controllabili dall'utente all'inizio di un messaggio HTTP la risposta corretta.
Mixed content
Nome categoria nell'API: MIXED_CONTENT
Web Security Scanner osserva passivamente il traffico HTTP e rileva quando un una richiesta di un file JavaScript o CSS viene eseguita su HTTP, mentre nel contesto di una pagina HTTPS. In questo scenario, un aggressore man in the middle potrebbe manomettere con la risorsa HTTP e ottenere l'accesso completo al sito web che carica risorsa o il monitoraggio delle azioni compiute dagli utenti.
Per risolvere questo problema, utilizza link HTTP relativi, ad esempio sostituisci http://
con
//
.
Outdated library
Nome categoria nell'API: OUTDATED_LIBRARY
Web Security Scanner potrebbe rilevare che la versione di una libreria inclusa che contengono un problema di sicurezza. Web Security Scanner è un servizio di scanner che tenta di identificare la versione della libreria in uso e controlla la versione a fronte di un elenco noto di librerie vulnerabili. I falsi positivi sono possibile se il rilevamento della versione ha esito negativo o se la libreria è stata manualmente con la patch applicata.
Per risolvere il problema, esegui l'aggiornamento a una versione sicura nota della libreria inclusa.
Struts insecure deserialization
Nome categoria nell'API: STRUTS_INSECURE_DESERIALIZATION
Web Security Scanner potrebbe rilevare che la tua applicazione web utilizza un Versione Apache Struts vulnerabile agli attacchi di Remote Command injection. I Struts colpiti sono in grado di analizzare in modo errato l'intestazione HTTP Content-Type non valida di un utente malintenzionato. Questa vulnerabilità consente di eseguire comandi dannosi privilegi del server web.
Di seguito sono riportate le versioni vulnerabili di Apache Struts:
- Versioni 2.3.x precedenti alla 2.3.32
- Versioni 2.5.x precedenti alla 2.5.10.1
Per risolvere il problema, esegui l'upgrade di Apache Struts alla versione più recente.
Per ulteriori informazioni sulla vulnerabilità Apache Struts, vedi CVE-2017-5638.
Cacheable password input
Nome categoria nell'API: CACHEABLE_PASSWORD_INPUT
Web Security Scanner potrebbe rilevare che, per l'inserimento di una password, l'applicazione web
utilizza un elemento <input>
per il quale l'attributo type
non è impostato su password
.
Di conseguenza, i browser potrebbero memorizzare nella cache la password inserita dall'utente nel browser normale.
anziché all'archiviazione sicura delle password.
Per risolvere il problema, aggiungi l'attributo type
nell'elemento <input>
e impostalo
a password
, ad esempio <input type="password">
.
Questo attributo nasconde i caratteri inseriti nella password dall'utente
.
Clear text password
Nome categoria nell'API: CLEAR_TEXT_PASSWORD
Web Security Scanner potrebbe rilevare che l'applicazione sembra essere un campo password in chiaro. Un aggressore può intercettare la rete traffico e annusare il campo della password.
Per proteggere le informazioni sensibili trasmesse tra client e server, prendi le seguenti precauzioni:
- Utilizza certificati TLS/SSL.
- Utilizza sempre HTTPS per le pagine che includono campi per la password.
- Assicurati che gli attributi di azione modulo puntino sempre a un URL HTTPS.
Insecure allow origin ends with validation
Nome categoria nell'API: INSECURE_ALLOW_ORIGIN_ENDS_WITH_VALIDATION
Web Security Scanner potrebbe rilevare che un endpoint HTTP o HTTPS tra siti
convalida solo un suffisso dell'intestazione della richiesta Origin
prima di rifletterlo
nell'intestazione della risposta Access-Control-Allow-Origin
. Se la convalida è
configurato in modo errato, l'endpoint potrebbe concedere l'accesso a un dominio dannoso che ha
di un dominio incluso nella lista consentita. Ad esempio, se lo strumento di convalida dell'endpoint
corrisponde a domini come *google.com
, potrebbe concedere erroneamente l'accesso a
maliciousdomaingoogle.com
.
Per risolvere il problema, verifica che il dominio principale previsto faccia parte di Origin
il valore dell'intestazione prima di rifletterlo nella risposta Access-Control-Allow-Origin
intestazione. Per i caratteri jolly del sottodominio, anteponi il punto al dominio principale, per
ad esempio .endsWith(".google.com")
.
Insecure allow origin starts with validation
Nome categoria nell'API: INSECURE_ALLOW_ORIGIN_STARTS_WITH_VALIDATION
Web Security Scanner potrebbe rilevare che un endpoint HTTP o HTTPS tra siti
convalida solo un prefisso dell'intestazione della richiesta Origin
prima di rifletterlo
nell'intestazione della risposta Access-Control-Allow-Origin
. Se la convalida è
configurato in modo errato, l'endpoint potrebbe concedere l'accesso a un dominio dannoso che ha
lo stesso prefisso di un dominio incluso nella lista consentita. Ad esempio, se lo strumento di convalida dell'endpoint
controlla solo se il dominio richiedente contiene google.com
, potrebbe verificarsi un errore
concedi l'accesso a google.com.maliciousdomain.com
.
Per correggere questo risultato, verifica che il dominio previsto corrisponda completamente a Origin
il valore dell'intestazione prima di rifletterlo nella risposta Access-Control-Allow-Origin
ad esempio .equals(".google.com")
.
Session ID leak
Nome categoria nell'API: SESSION_ID_LEAK
Web Security Scanner potrebbe trovare un identificatore di sessione nella
Intestazione delle richieste interdominio Referer
delle richieste interdominio della tua applicazione web.
I domini che ricevono l'Referer
possono utilizzare l'identificatore di sessione per impersonare un
l'utente (utilizzando il suo token) o identificarlo in modo univoco.
Per correggere questo risultato, memorizza gli identificatori di sessione nei cookie anziché nell'URL. Inoltre, proteggi i cookie con i seguenti attributi:
- HTTPOnly: un attributo che rende i cookie inaccessibili agli script lato client
- Sicuro: un attributo che rende i cookie trasmissibili solo tramite HTTPS
Invalid content type
Nome categoria nell'API: INVALID_CONTENT_TYPE
Web Security Scanner potrebbe rilevare il caricamento di una risorsa non corrispondente
l'intestazione HTTP Content-Type della risposta. In questo scenario,
restituisce contenuti sensibili con un tipo di contenuto non valido o senza un
Intestazione X-Content-Type-Options: nosniff
.
Per risolvere il problema, verifica quanto segue:
- Le risposte JSON vengono fornite con l'intestazione Content-Type
application/json
- Altre risposte sensibili vengano fornite con i tipi MIME appropriati
- Pubblica i contenuti con l'intestazione HTTP
X-Content-Type-Options: nosniff
Invalid header
Nome categoria nell'API: INVALID_HEADER
Web Security Scanner potrebbe rilevare che un'intestazione di sicurezza contiene un errore di sintassi, generando un'intestazione con valori non valida o non valida. Di conseguenza, il browser ignora queste intestazioni.
Le intestazioni valide sono descritte nelle sezioni seguenti.
Intestazione Referrer-Policy
Un criterio relativo al referrer valido contiene uno dei seguenti valori:
- Una stringa vuota
no-referrer
no-referrer-when-downgrade
same-origin
origin
strict-origin
origin-when-cross-origin
strict-origin-when-cross-origin
unsafe-url
Intestazione X-Frame-Options
Un'intestazione X-Frame-Options valida può avere solo i seguenti valori:
DENY
: non consentire nessuna inquadraturaSAMEORIGIN
: consente l'inquadratura se l'URL di primo livello ha la stessa origineALLOW-FROM URL
Chrome non supporta ALLOW-FROM URL
. Più X-Frame-Options non sono
consentito.
Intestazione X-Content-Type-Options
Un'intestazione X-Content-Type-Options valida può avere un solo valore: nosniff
.
Intestazione X-XSS-Protection
Un'intestazione X-XSS-Protection valida deve iniziare con 0
("disattivata") oppure
1
("attiva"). Quindi, solo se attivi la protezione, puoi aggiungere fino a due
opzioni:
mode=block
mostra una pagina vuota invece di filtrare l'XSSreport=URL
invia segnalazioni aURL
Separa le opzioni con il punto e virgola, ad esempio 1; mode=block; report=URI
. Marca
accertati che non sia presente un punto e virgola finale.
Misspelled security header name
Nome categoria nell'API: MISSPELLED_SECURITY_HEADER_NAME
Web Security Scanner potrebbe trovare il nome dell'intestazione di sicurezza con errori ortografici. Se errata, l'intestazione di sicurezza è inefficace e deve essere corretta.
Per riprodurre questa vulnerabilità, controlla la presenza di errori ortografici nella scheda Rete degli strumenti per sviluppatori del browser.
Mismatching security header values
Nome categoria nell'API: MISMATCHING_SECURITY_HEADER_VALUES
Web Security Scanner potrebbe rilevare che la risposta è duplicata, intestazioni delle risposte relative alla sicurezza con valori in conflitto. Alcuni aspetti correlati alla sicurezza Le intestazioni HTTP si comportano in modo indefinito se dichiarate due volte nella risposta con valori non corrispondenti.
Per risolvere il problema, mantieni solo una di queste intestazioni non corrispondenti.
Repository accessibile
Web Security Scanner potrebbe trovare un repository GIT o SVN accessibile un'applicazione. Questa condizione può causare fughe di configurazione e del codice sorgente.
Per riprodurre la vulnerabilità, fai clic sull'URL di riproduzione nel rapporto dei risultati.
XXE reflected file leakage
Nome categoria nell'API: XXE_REFLECTED_FILE_LEAKAGE
Web Security Scanner potrebbe rilevare una vulnerabilità di tipo XML External Entity (XXE) su un'applicazione web che analizza il codice XML degli input degli utenti. Un aggressore può fornire un XML contenente un'entità esterna. Questa entità esterna può fare riferimento contenuti a cui l'applicazione ha accesso, ad esempio i file nel della macchina host dell'applicazione. Quando l'analizzatore sintattico XML dell'applicazione elabora XML dannoso, può far trapelare i contenuti dei file sul suo host.
Per correggere questo risultato, configura i parser XML in modo da non consentire le entità esterne.
Per ulteriori informazioni su questa vulnerabilità, consulta Elaborazione di entità esterne XML (XXE).
SQL injection
Nome categoria nell'API: SQL_INJECTION
Web Security Scanner potrebbe rilevare una vulnerabilità di SQL injection. Gli aggressori possono creano input che manipolano la struttura delle query dell'elemento sottostante Query SQL in esecuzione sul server. Questi input consentono loro di esfiltrare i dati e, in alcuni casi, modificare i dati. Per risolvere questo risultato, utilizza query con parametri per impedire all'input utente di influenzare la struttura la query SQL.
Per ulteriori informazioni su questa vulnerabilità, consulta SQL injection.
Prototype pollution
Nome categoria nell'API: PROTOTYPE_POLLUTION
Web Security Scanner potrebbe trovare un prototipo di vulnerabilità dell'inquinamento in un'applicazione web alle cui proprietà degli oggetti sono assegnati valori controllabili da utenti malintenzionati. Gli aggressori possono creare input che rendono l'applicazione vulnerabile al cross-site scripting o ad altre vulnerabilità lato client.
Per correggere questo risultato, elimina la proprietà proto
deprecata e rendi immutabile l'oggetto Object.prototype
.
Se questa mitigazione è incompatibile con il tuo codice, modifica la parte di codice vulnerabile in modo da copiare solo i valori previsti dagli input controllabili da utenti malintenzionati.
Verificare il problema
Quando Web Security Scanner segnala un problema, devi verificarne il in ogni località. Questa sezione spiega come utilizzare i report sui risultati per riprodurre e per verificare le vulnerabilità.
Vai alla pagina di Web Security Scanner nella console Google Cloud.
Seleziona un progetto. Viene visualizzata una pagina con l'elenco delle tue risorse gestite e personalizzate scansioni.
In Configurazioni di scansione, seleziona la scansione contenente il risultato che ti interessa. da verificare. Si apre una pagina con i dettagli della scansione.
Vai alla scheda Risultati, espandi una categoria e seleziona un risultato per vederne i dettagli.
Il metodo di verifica varia in base alla categoria dei risultati. Utilizzare un test browser e segui le istruzioni riportate di seguito.
- Cross-site scripting. Seguendo l'URL di riproduzione viene generato uno script popup vuoto nel browser, a indicare che la scansione è stata inserita correttamente in uno script.
- Libreria obsoleta: seguendo l'URL vulnerabile viene restituita una pagina. con il testo "Sfruttata", che indica che l'analisi è stata inserita in uno script.
- Contenuto misto L'URL della pagina HTTPS restituisce un elemento avviso relativo a una vulnerabilità di contenuti misti. Il report sui risultati identifica la risorsa vulnerabile in URL della risorsa gestita tramite HTTP.
- Flash injection: Web Security Scanner potrebbe restituire risultati in questo ma la maggior parte dei browser moderni è protetta da Flash injection. È improbabile che questi risultati possano essere sfruttati.
- Prototype pollution: segui l'URL nel campo URL di riproduzione
all'oggetto
Object.prototype
introdotto dal payload, con i seguenti snippet JavaScript.({}).__secret_injected_property
({}).__defineGetter__.__secret_injected_property
({}).hasOwnProperty.__secret_injected_property
L'applicazione del criterio di sicurezza del contenuto (CSP) potrebbe comunque impedire che JavaScript l'esecuzione del codice. Questa condizione può rendere più difficile la riproduzione del XSS (cross-site scripting). Se riscontri questo problema, controlla la console dei log del browser per avere informazioni dettagliate. in merito alla violazione CSP che si è verificata.