Che cosa è il Cross-Site Scripting (XSS)?

Gli attacchi cross-site scripting (XSS) iniettano script dannosi nei siti web affidabili per mirare ai visitatori e influenzare le interazioni future. Sebbene gli attacchi XSS esistano da molto tempo (identificati per la prima volta nel 1999), rimangono una forma popolare di attacco informatico. In effetti, XSS è stato il più scoperto cloud vulnerabilità nel Cloud Threat Landscape Report di IBM 2024.

Gli attacchi XSS sfruttano le discrepanze di sicurezza all'interno dell'applicazione web per iniettare codice dannoso, il più delle volte un codice JavaScript lato client, senza che il proprietario del sito o il visitatore ne siano a conoscenza. I siti attendibili con le credenziali appropriate, verificate dal browser della vittima, agiscono inconsapevolmente come meccanismo di distribuzione di script dannosi provenienti da fonti non attendibili.

Questi script vengono poi eseguiti sui browser delle vittime, compromettendo il modo in cui interagiscono con l'applicazione web. Questo può avvenire tramite diversi metodi, tra cui deturpare il sito web, dirottare la sessione, iniettare malware e phishing.

Read 2025 WAF Comparison Results SCARICA IL REPORT

Che cosa è il Cross-Site Scripting (XSS)?

Come funzionano gli attacchi XSS

Un processo semplificato di attacco XSS in 3 fasi si presenta così:

  1. L'attaccante identifica siti web vulnerabili da prendere di mira e iniettare codice malevolo. Ad esempio, se un sito non valida tutti i suoi input.
  2. Una volta che il codice dannoso è sul sito web, l'aggressore attende passivamente che visitatori ignari lo eseguano oppure invia proattivamente il link del sito compromesso alle potenziali vittime. Ciò può essere fatto tramite messaggi sui social media o e-mail, inducendoli con l'inganno a visitare la pagina.
  3. Infine, una volta che i visitatori del sito esegueno il codice e diventano vittime, l'attaccante può manipolare le interazioni future in diversi modi a seconda del proprio obiettivo.

Gli attacchi XSS bypassano la politica di origine del browser e nascondono i loro script dannosi all'interno di un sito affidabile. I browser verificano se i siti web sono sicuri e hanno le credenziali appropriate. Tuttavia, non possono verificare ulteriori script che potrebbero essere stati inseriti nel sito. Pertanto, una scarsa sicurezza web delle applicazioni può esporre gli utenti a script dannosi con conseguenze gravi.

L'impatto degli attacchi XSS

A seconda del tipo di attacco e degli obiettivi dell'hacker, XSS può causare una serie di conseguenze sia per l'applicazione web che per i suoi utenti. Per chi visita il sito o utilizza l'applicazione web, gli attacchi XSS possono portare a:

  • Deturpazione del sito web: Manipolare l'immagine del sito web o aggiungere nuovi elementi tramite modifiche HTML o CSS per modificare ciò che il visitatore vede. Gli aggressori potrebbero mostrare loro qualcosa di completamente diverso dal sito originale per farli fare qualcosa che normalmente non farebbero.
  • Session Hijacking: eseguendo il codice dannoso sul browser della vittima, l'aggressore potrebbe accedere cookies per dirottare la sessione. Ciò consente loro di assumere il controllo del proprio account sull'applicazione web, eseguire azioni non autorizzate e accedere a informazioni sensibili memorizzate nel browser.
  • Malware Iniezione: Gli script dannosi dell'attaccante iniettano malware nel browser del visitatore, che può poi scappare per essere eseguito nativamente sul loro sistema. Questo malware può avere diversi obiettivi, tra cui keylogger che catturano le credenziali di accesso, software di mining di criptovalute o il controllo del sistema come parte di una botnet più ampia da utilizzare in un attacco DDoS diverso.
  • phishing: reindirizzamento dei visitatori a siti di phishing con campi di input falsi per catturare le credenziali degli utenti e prendere il controllo dei loro account.

Sebbene i visitatori siano in genere il bersaglio principale degli attacchi XSS, questi hanno un impatto anche sull'applicazione web. Le violazioni dei dati creano problemi di conformità che comportano potenziali sanzioni, conseguenze legali e danni alla reputazione. La deturpazione di un sito web può indurre gli aggressori a visualizzare contenuti offensivi o dannosi, causando anche danni alla reputazione.

Inoltre, se l'attacco XSS compromette le vittime con accesso privilegiato, può portare gli hacker a controllare le funzionalità web dell'applicazione e a violazioni di dati più significative.

Tipi di attacchi XSS

Riflesso tra Sceneggiature Cross-Site

L'XSS riflesso si verifica quando l'applicazione web "riflette" codice dannoso all'utente, più spesso attraverso campi di input vulnerabili. Ad esempio, se un sito web non sanifica gli input forniti dal parametro URL, gli attaccanti possono iniettare script dannosi incorporandoli nel link. Gli utenti che cliccano su questo link esegueno inconsapevolmente lo script, esponendo il loro browser all'attaccante. L'XSS riflesso si verifica solo quando il link viene cliccato. È una forma non persistente di cross-site scripting.

Scripting cross-sito memorizzato

L'XSS memorizzato è una forma persistente di cross-site scripting che continua a infettare nuovi utenti finché il proprietario del sito web non rileva e risponde alla minaccia. In questi attacchi, fonti non affidabili nascondono il loro codice sul sito usando campi di input memorizzati permanentemente come le sezioni dei commenti. Se il sito non convalida gli input dalla sezione commenti, gli attaccanti possono incorporare tag HTML che si attivano quando nuovi visitatori caricano la pagina.

Scripting cross-site basato su DOM

XSS basato su DOM modifica e inietta codice nel modello di oggetti di dominio (DOM) nel browser del visitatore. Riguarda solo il lato client, la risposta sul server rimane la stessa. Esempi includono siti web che scrivono dati non strutturati dall'URL nella pagina web.

Migliori pratiche per identificare vulnerabilità XSS e prevenire attacchi

Seguendo le migliori pratiche di sicurezza web, puoi proteggere i visitatori del tuo sito web e mantenere intatta la tua reputazione.

Identify application web vulnerabilità

Il primo passo è controllare la tua applicazione web per eventuali vulnerabilità agli attacchi XSS. Puoi farlo manualmente o tramite strumenti dedicati:

  • Revisione manuale del codice: Effettua un'analisi del codice per identificare i punti deboli in cui i malintenzionati potrebbero iniettare script dannosi nel tuo sito. Inoltre, puoi utilizzare payload di test attack per determinare se è possibile eseguire script benigni sui browser che visitano il tuo sito.
  • Scanner automatizzati di vulnerabilità web: Sono disponibili strumenti per scansionare applicazioni web e identificare le vulnerabilità XSS. Questi tipicamente utilizzano analisi JavaScript statica e dinamica.

Convalida input

La tua applicazione web richiede procedure robuste di validazione degli input per sanificare tutti gli input degli utenti. Esempi includono:

  • Gli URL di validazione hanno un protocollo sicuro.
  • Verificare che i valori numerici forniti dall'utente contengano solo interi.
  • Assicurarsi che gli input abbiano il set di caratteri atteso.

Bloccando gli input non validi, puoi fare molto per impedire a fonti non attendibili di iniettare codice nel tuo sito web.

Codifica output

Il passo successivo è codificare tutti i dati controllati dall'utente scritti sul sito web. La codifica richiesta dipende dal contesto e può richiedere più combinazioni, come i livelli di codifica sia Javascript che HTML.

Applicare la Politica di Sicurezza dei Contenuti

Se entrambe queste tecniche preventive falliscono, le policy di sicurezza dei contenuti (CSP) aiutano a mitigare l'impatto di un attacco XSS. Limitano il caricamento degli script esterni, consentendo di specificare che vengano caricati solo dalla stessa origine. Con un'adeguata applicazione del CSP, è possibile ridurre il successo degli attacchi XSS anche se l'aggressore è riuscito a iniettare il codice dannoso.

Imposta cookie solo HTTP

Contrassegnando cookies HTTP-only, cookies di sessione possono essere acquisiti solo dagli script lato client. Ciò blocca l'accesso al codice JavaScript, riducendo significativamente le possibilità di dirottamento della sessione da parte di XSS.

Implementa un Web Application Firewall

Infine, l'implementazione di un Web Application Firewall (WAF) monitora e filtra il traffico, consentendo di sviluppare e applicare policy di sicurezza mirate agli attacchi XSS. Questo include la scansione di URL e altri campi di input per identificare e bloccare il codice malevolo riflesso agli utenti. Molti WAF ora includono anche tecnologie IA e Machine Learning per analizzare le informazioni contestuali e individuare i tentativi di aggirare le policy di sicurezza utilizzando varianti sconosciute di attacchi XSS.

Proteggi il sito della tua applicazione con Check Point WAF da Check Point

Check Point WAF di Check Point è la principale Web Application Firewall preventiva che incorpora contextual AI per proteggere le tue app da minacce note e sconosciute. Scopri di più su Check Point WAF, incluso come implementarlo in pochi minuti con WAF as a Service (WAFaaS).