Introduzione
Nel mondo della sicurezza informatica, gli attacchi XSS (Cross-Site Scripting) e CSRF (Cross-Site Request Forgery) sono tra le vulnerabilità più comuni e insidiose. Sebbene molti li confondano, questi due attacchi sfruttano punti deboli diversi nelle applicazioni web. In questo articolo, esploreremo come funzionano entrambi, come identificarli e, soprattutto, come prevenirli utilizzando strumenti come Kali Linux e applicando best practice di sviluppo sicuro.
Cos’è un attacco XSS?
L’attacco XSS consente a un malintenzionato di iniettare script dannosi all’interno di una pagina web visualizzata da altri utenti. Questi script possono rubare informazioni sensibili, come cookie o credenziali di accesso, o modificare il comportamento del sito.
Esempio:
Un attaccante inietta un particolare codice JavaScript in un modulo di commento vulnerabile. Quando altri utenti visualizzano il commento, il codice viene eseguito nei loro browser, questa esecuzione permetterebbe di sottrarre per esempio illecitamente le credenziali di autenticazione ma anche altro..
Tipologie di XSS
Reflected XSS: Lo script viene eseguito immediatamente con la richiesta HTTP, senza essere salvato nel database.
Stored XSS: Lo script malevolo viene salvato nel database e viene eseguito ogni volta che una pagina viene caricata da qualsiasi utente.
DOM-based XSS: Lo script viene eseguito direttamente nel contesto del DOM della pagina e quindi nel browser.
Cos’è un attacco CSRF?
Il CSRF è un tipo di attacco che induce l’utente autenticato a eseguire un’azione non intenzionale su un’applicazione web in cui è già loggato. L’attaccante forza l’utente a compiere operazioni come trasferimenti di denaro o modifiche a impostazioni di sicurezza, senza il suo consenso.
Esempio:
Un utente è autenticato in un’applicazione di e-banking online. L’attaccante invia un link malevolo che, una volta cliccato dalla vittima, invia una richiesta per trasferire fondi dal conto della vittima a quello dell’attaccante.
Identificazione delle vulnerabilità con Kali Linux
Strumenti utili in Kali Linux:
- OWASP ZAP o Burp Suite per rilevare vulnerabilità XSS e CSRF.
- XSSer per testare automaticamente gli endpoint XSS vulnerabili.
- Csrf-tool per testare vulnerabilità CSRF.
Passaggi per rilevare XSS:
1. Carica Kali Linux e avvia un proxy come Burp Suite.
2. Naviga sul sito web target attraverso il proxy 127.0.0.1:8080
3. Inietta script JavaScript malevolo in campi di input, come moduli di login o commenti.
Esempio di codice XSS da inniettare:
<script>alert(‘XSS’);</script>
4. Osserva la risposta nel browser o nel proxy per vedere se il codice viene eseguito, in caso visualizzi un popup co. Scritto “XSS” significa che il modulo è vulnerabile ad una xss reflected.
5. Se viene eseguito, segnala la vulnerabilità al responsabile e suggerisci di sanare il sito.
Passaggi per rilevare CSRF:
1. Utilizza OWASP ZAP per scansionare i moduli del sito web e analizzare se le richieste includono token CSRF.
2. Prova a creare una richiesta dannosa in un’altra sessione per vedere se la vulnerabilità può essere sfruttata.
Se la richiesta va a buon fine senza un token di protezione, allora il sito è vulnerabile a CSRF.
Prevenzione di attacchi XSS
- Validazione e sanitizzazione dell’input
- Escaping: Assicurati che qualsiasi dato inserito dall’utente venga “escaped” prima di essere processato o visualizzato. Questo impedisce che caratteri speciali vengano interpretati come codice.
- Librerie di escaping: Usa librerie sicure come OWASP ESAPI per evitare XSS.
- Content Security Policy (CSP): Implementa una CSP per limitare le fonti di script eseguibili sul sito. Esempio di implementazione di CSP nel file di configurazione di un server: Content-Security-Policy: script-src ‘self’ https://trusted-scripts.example.com;
- HTTPOnly e Secure Flag sui cookie: Assicurati che i cookie di sessione abbiano l’attributo HTTPOnly, per impedire l’accesso tramite JavaScript.
—
Prevenzione di attacchi CSRF
- Token CSRF: Genera un token univoco per ogni richiesta sensibile. Questo token dovrebbe essere incluso nel corpo della richiesta o come intestazione e mai salvato nella pagina, Verifica il token su ogni richiesta per autenticare l’utente e prevenire attacchi.
- Verifica dell’origine delle richieste
- Controlla gli header HTTP Referer e Origin per garantire che le richieste provengano dalla tua applicazione e non da un sito esterno.
- Metodi HTTP sicuri: Limita le operazioni sensibili come modifiche o cancellazioni ai metodi HTTP POST (anziché GET) e usa token CSRF per convalidare le richieste.
—
Conclusioni
Gli attacchi XSS e CSRF rappresentano ancor’ oggi nonostante tutti gli sforzi per sviluppare tool di scansione efficienti, standard ed intelligenza artificiale una delle minacce reali per la sicurezza delle applicazioni web, ma con le giuste best pratice e strumenti è possibile prevenirli efficacemente. Utilizzando Kali Linux e strumenti come Burp Suite o OWASP ZAP, i professionisti della sicurezza possono individuare e correggere vulnerabilità prima che vengano sfruttate dagli attaccanti.
Mettere in atto misure come la sanitizzazione dell’input, l’implementazione di CSP, e l’uso di token CSRF sono essenziali per la protezione delle applicazioni moderne.
—
Seguici anche su:
@INSTAGRAM https://lnkd.in/gEcsqzqq
@LINKEDIN https://lnkd.in/dqCDRKzM
@FACEBOOK https://lnkd.in/d6wc_4xf
@EBOOK
https://amzn.to/48exAdf
@EBOOK (English version)
https://amzn.to/4fflbbv
@YOUTUBE https://lnkd.in/grJRpGSp
