Dettagli dei risultati della scansione

Questa pagina descrive i dettagli dei risultati della scansione per Cloud Security Scanner.

Classi di vulnerabilità

Cloud Security Scanner rileva le seguenti classi di vulnerabilità: XSS, Flash injection, contenuti misti, password in chiaro e utilizzo di librerie JavaScript non sicure. Se viene rilevata una qualsiasi di queste vulnerabilità, il risultato viene evidenziato per consentirti di esaminarlo nel dettaglio.

Cross-site scripting (XSS)

Il test di injection di Cross-site scripting (XSS) di Cloud Security Scanner simula un attacco inserendo una stringa di test innocua in campi modificabili dall'utente ed eseguendo una serie di azioni 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.

Di seguito è riportato un esempio di avviso XSS nel parametro vulnerabile q=

Dal momento che la stringa di testo è stata eseguita senza ostacoli, ora sappiamo che è possibile l'injection e l'esecuzione di codice JavaScript su questa pagina. Se un malintenzionato individuasse il problema, potrebbe eseguire qualsiasi codice JavaScript impersonando l'utente (vittima) che fa clic su un link dannoso.

In alcuni casi, l'applicazione sottoposta a test potrebbe modificare la stringa di test prima che venga analizzata dal browser. Ad esempio, l'applicazione potrebbe convalidare l'input o limitare la dimensione di un campo. Quando il browser tenterà di eseguire la stringa di test modificata, probabilmente si interromperà e restituirà un errore di esecuzione di codice JavaScript. Questo indica la presenza di un problema di injection. Tuttavia, la vulnerabilità potrebbe non essere sfruttabile. Dovrai controllare manualmente se le modifiche alla stringa di testo possono essere evitate e verificare che il problema sia effettivamente una vulnerabilità XSS.

Di seguito è riportato un esempio di avviso di interruzione JavaScript che indica che il parametro q= potrebbe avere un problema di injection.

Esistono diversi modi per risolvere questo problema. Il metodo consigliato consiste nell'applicare l'escape a tutto l'output e utilizzare un sistema di modelli che supporti l'applicazione automatica contestuale dell'escape.

Angular Cross-site scripting

Una vulnerabilità XSS nei moduli AngularJS può verificarsi quando in una stringa inserita dall'utente viene interpolato codice Angular. L'injection di 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 malintenzionato può eseguire azioni per conto del browser della vittima nell'origine della pagina.

Di seguito è riportato un esempio di avviso di interruzione che indica un problema di injection Angular XSS.

Per riprodurre questa potenziale vulnerabilità, segui l'URL di riproduzione nella console di Google Cloud Platform dopo aver eseguito la scansione. Questo link apre direttamente una finestra di avviso o inserisce la stringa "XSSDETECTED" per dimostrare che l'attacco è in grado di eseguire codice. In caso di injection, puoi aprire gli strumenti per sviluppatori del browser e cercare "XSSDETECTED" per trovare l'esatta posizione dell'injection.

Flash injection

Cloud Security Scanner può trovare un parametro riflesso all'inizio di una risposta. Questa vulnerabilità è nota anche come Rosetta Flash. In determinate circostanze, un malintenzionato potrebbe fare in modo che il browser esegua la risposta come se fosse un file Flash fornito dall'applicazione web vulnerabile.

Di seguito è riportato un esempio di avviso di Flash injection nel parametro callback=

Per risolvere questo problema, non includere dati controllabili dall'utente all'inizio di una risposta HTTP.

Contenuti misti

Cloud Security Scanner osserva in modo passivo il traffico HTTP e rileva quando la richiesta di un file CSS o JavaScript viene eseguita tramite HTTP mentre si trova nel contesto di una pagina HTTPS.

Di seguito è riportato un esempio di avviso di contenuti misti in una pagina HTTPS attribute_script, che include una risorsa HTTP da http://irrelevant.google.com

Per risolvere questo problema, utilizza link HTTP relativi, ad esempio, sostituisci http:// con //.

Libreria obsoleta

Cloud Security Scanner può riscontrare che la versione di una libreria è nota per avere un problema di sicurezza. Si tratta di uno scanner basato sulla firma che tenta di identificare la versione della libreria in uso e la controlla a fronte di un elenco noto di librerie vulnerabili. Sono possibili falsi positivi se il rilevamento della versione non riesce o se alla libreria sono state applicate patch manualmente.

Di seguito è riportato un esempio di avviso di libreria obsoleta dovuto all'uso di jquery-1.8.1.js.

Per risolvere questo problema esegui l'aggiornamento a una versione sicura della libreria inclusa.

Password in chiaro

Cloud Security Scanner può rilevare che l'applicazione sembra trasmettere un campo password in chiaro.

Di seguito è riportato un esempio di avviso di password in chiaro.

Per proteggere i dati sensibili passati 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.

Intestazione Content-Type non valida

Cloud Security Scanner potrebbe rilevare risorse caricate che non corrispondono all'intestazione HTTP Content-Type della risposta.

Di seguito è riportato un esempio di avviso di intestazione Content-Type non valida.

Per correggere questa vulnerabilità, assicurati che:

  • Le risposte JSON vengano fornite con l'intestazione Content-Type application/json
  • Altre risposte sensibili vengano fornite con i tipi MIME appropriati
  • I contenuti vengano forniti con l'intestazione HTTP X-Content-Type-Options: nosniff

Intestazione di sicurezza non valida

Cloud Security Scanner potrebbe rilevare che un'intestazione di sicurezza contiene un errore di sintassi. Di conseguenza, l'intestazione verrà ignorata dai browser.

Di seguito è riportato un esempio di intestazione di sicurezza non valida rilevata.

Intestazione Referrer-Policy

Un'intestazione Referrer-Policy valida contiene uno dei seguenti valori: la stringa vuota, no-referrer, no-referrer-when-downgrade, same-origin, origin, strict-origin, origin-when-cross-origin, strict-origin-when-cross-origin o unsafe-url.

Intestazione X-Frame-Options

Un'intestazione X-Frame-Options valida può avere solo i valori DENY (nessun utilizzo di frame consentito), SAMEORIGIN (frame consentiti se l'URL di primo livello ha la stessa origine) o ALLOW-FROM URL. Tieni presente che il valore ALLOW-FROM URL non è supportato da Chrome. Tieni inoltre presente che non sono consentite intestazioni X-Frame-Options multiple.

Intestazione X-Content-Type-Options

Un'intestazione X-Content-Type-Options valida può avere solo un valore: nosniff.

Intestazione X-XSS-Protection

Un'intestazione X-XSS-Protection valida deve iniziare con 0 ("disattivata") o 1 ("attivata"). Quindi, solo se attivi la protezione, puoi aggiungere fino a due opzioni: mode=block mostrerà una pagina vuota invece di filtrare l'XSS e report=URL invierà i rapporti a URL. Le opzioni devono essere separate da punti e virgola in questo modo: 1; mode=block; report=URI. Assicurati che non ci sia un punto e virgola finale.

Errore ortografico nel nome dell'intestazione di sicurezza

Cloud Security Scanner potrebbe trovare un errore ortografico nell'intestazione di sicurezza. Se errata, l'intestazione di sicurezza è inefficace e deve essere corretta.

Di seguito è riportato un esempio di intestazione di sicurezza con errori ortografici rilevata.

Per riprodurre questa vulnerabilità, controlla la presenza di errori ortografici nella scheda Rete degli strumenti per sviluppatori del browser.

Valori delle intestazioni di sicurezza non corrispondenti

Cloud Security Scanner potrebbe rilevare che la risposta contiene intestazioni di risposta relative alla sicurezza duplicate con valori in conflitto. Alcune intestazioni HTTP relative alla sicurezza si comportano in modo indefinito se vengono dichiarate due volte in una risposta con valori non corrispondenti.

Di seguito è riportato un esempio di valori non corrispondenti dell'intestazione di sicurezza rilevati.

Per correggere questa vulnerabilità, mantieni solo una di queste intestazioni non corrispondenti.

Repository accessibili

Cloud Security Scanner potrebbe trovare un repository Git o SVN accessibile nell'applicazione. Ciò può causare perdite di configurazione e del codice sorgente.

Di seguito è riportato un esempio di repository Git accessibile trovato.

Per riprodurre la vulnerabilità, fai clic sull'URL di riproduzione nel rapporto dei risultati.

Verificare il problema

Quando Cloud Security Scanner segnala un problema, devi verificarne la posizione. Esegui questa operazione con un browser con la protezione XSS disattivata. È preferibile utilizzare un'istanza di test separata di Chrome, ma puoi utilizzare la maggior parte dei browser attuali che consentono di disattivare la protezione XSS.

Per disattivare la protezione XSS in Chrome:

  • Se utilizzi Linux, richiama il comando Linux per Chrome come segue:

    chrome --user-data-dir=~/.chrometest --allow-running-insecure-content \ --disable-xss-auditor --disable-sync --bwsi

  • Se utilizzi Mac OSX, richiama il comando per Chrome come segue:

    open -n /Applications/Google\ Chrome.app/ --args --disable-xss-auditor \ --user-data-dir=/tmp/xssrepro

Tieni presente che l'applicazione dei criteri di sicurezza dei contenuti (CSP) potrebbe comunque impedire l'esecuzione di codice JavaScript. Questo può rendere più difficile riprodurre la vulnerabilità XSS. Se riscontri questo problema, controlla la console di log del browser per informazioni dettagliate sulla violazione CSP che si è verificata.

Hai trovato utile questa pagina? Facci sapere cosa ne pensi:

Invia feedback per...

Cloud Security Scanner Documentation