Qual è il modo migliore per prevenire gli attacchi XSS?

Le vulnerabilità di cross-site scripting sono state sfruttate dagli aggressori fin dai primi anni 2000, e XSS è stato nella lista OWASP Top 10 dei rischi critici per la sicurezza per le applicazioni web a partire dal 2004. Tuttavia, molti sviluppatori, amministratori di sistema e anche alcuni penetration tester ancora non prendono sul serio. Per diventare un efficace hacker o difensore di applicazioni Web, è necessario comprendere le basi di come prevenire gli attacchi XSS.

Gli attacchi XSS sono ancora un problema

Il cross-site scripting è un tipo di vulnerabilità delle applicazioni Web che consente agli aggressori di iniettare ed eseguire codice dannoso lato client nel browser della vittima all’interno di un’applicazione Web legittima.

L’impatto e la gravità degli attacchi XSS riusciti possono variare. Gli attacchi XSS potrebbero causare dirottamento di sessione, token rubati, cookie di sessione rubati e attacchi di falsificazione di richieste cross-site. Questi attacchi possono portare alla compromissione degli account utente.

Un attacco XSS riuscito può anche consentire a un utente malintenzionato di utilizzare cookie rubati o falsificati per impersonare utenti validi. Nei casi in cui l’utente valido dispone di diritti amministrativi all’interno dell’applicazione, l’utente malintenzionato può quindi utilizzare tali privilegi per modificare le pagine o eseguire l’esecuzione di codice remoto sul lato server dell’applicazione.

Tipi di attacchi XSS

Esistono tre tipi di attacchi XSS: memorizzati, riflessi e basati su Document Object Model (DOM).

  1. Un attacco XSS memorizzato consente a un utente malintenzionato di incorporare uno script dannoso in una pagina vulnerabile, che viene quindi eseguito quando una vittima visualizza la pagina. XSS memorizzato è considerato il tipo più dannoso di attacco XSS. Ad esempio, quando un utente malintenzionato inietta un payload JavaScript dannoso direttamente in un’applicazione Web vulnerabile, il browser Web salva il payload JavaScript iniettato. Quindi, ogni volta che la vittima visita quel sito Web o applicazione Web, viene eseguito il codice dannoso.
  2. Un attacco XSS riflesso si verifica quando il payload dannoso è incorporato in un collegamento e attivato solo quando l’utente fa clic sul collegamento. Qui, il payload dannoso non viene memorizzato, ma viene visualizzato solo sulla pagina Web sotto forma di un URL o di dati POST.
  3. Una vulnerabilità XSS basata su DOM si verifica quando il DOM viene utilizzato per generare contenuti dinamici contenenti input dell’utente che possono essere elaborati senza controllo. Questo tipo di attacco viene eseguito con JavaScript nel browser della vittima

Prevenzione degli attacchi XSS

Per prevenire gli attacchi XSS, gli sviluppatori devono convalidare l’input dell’utente filtrando correttamente o sfuggendo i caratteri speciali e quindi codificando l’output per prevenire gli attacchi XSS memorizzati e gli attacchi XSS riflessi. I seguenti caratteri speciali devono sempre essere filtrati o sfuggiti per evitare che vengano sfruttati maliziosamente:

<

>

)

(

&

gli Sviluppatori devono convalidare l’input dell’utente, fonti — e la codifica di output — lavandini-per evitare DOM basato su attacchi di tipo XSS. La proprietà sorgente di input è dove il DOM legge da, e la fonte è dove l’utente malintenzionato può iniettare codice dannoso per sfruttare la vulnerabilità XSS. Le seguenti proprietà origine dovrebbe essere evitato:

  • URL
  • documentURI
  • posizione
  • href
  • ricerca
  • hash

Lavelli sono i punti dove il DOM esegue il malware caratteri o il codice da ingresso-fonte-che, a sua volta, viene riprodotto alla pagina web. Questi sink dovrebbero essere evitati per prevenire attacchi XSS basati su denial-of-service:

  • innerHTML
  • outerHTML
  • scrivi

Se desideri migliorare la comprensione e la prevenzione degli attacchi XSS, Google ha creato un sito web di giochi XSS per imparare come funzionano questi attacchi e come prevenirli meglio. Il progetto Mutillidae 2 di OWASP offre anche un obiettivo di apprendimento per i professionisti della sicurezza Web per affinare le loro difese di attacco XSS.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.