Mozilla sta in questi giorni enfatizzando i risultati ottenuti, durante i mesi scorsi, per quanto riguarda il progetto Content Security Policy. Esso mira a ridurre l’impatto dei più comuni attacchi informatici, ad esempio quelli di tipo XSS (cross-site scripting).
Come illustrato in questa pagina, Mozilla mette a disposizione – a beneficio dei più esperti – una versione di anteprima del browser che integra proprio le specifiche Content Security Policy. L’obiettivo è quello di porre nelle mani degli sviluppatori web uno strumento efficace per proteggere le proprie applicazioni dai più comuni attacchi in grado di modificarne il comportamento, ad esempio “iniettando” del codice aggiuntivo.
Brandon Sterne, security program manager di Mozilla, ha voluto tuttavia sottolineare come il lavoro sia ben lungi dall’essersi concluso e continuerà nel corso dei prossimi mesi.
Non è ancora chiaro se l’utilizzo delle specifiche Content Security Policy debutterà con il rilascio di Firefox 3.7 (previsto entro la metà del prossimo anno) oppure se apparirà già in Firefox 3.6.
Coloro che intentano attacchi di tipo XSS sfruttano delle vulnerabilità presenti nelle pagine web dinamiche per modificare il codice della pagina web successivamente proposta al visitatore oppure per effettuare reindirizzamenti verso altri siti web, diversi da quello realmente richiesto. Vulnerabilità di questo tipo derivano da una imperfetta gestione del contenuto delle variabili utilizzate dalla pagina dinamica. In queste circostanze, un aggressore può “inettare” del codice JavaScript “maligno” all’interno di una pagina web. Precisiamo comunque che gli attacchi cross site scripting non agiscono assolutamente “lato server”: in altre parole, non è il server che ospita la pagina dinamica ad essere violato.
Supponiamo che un aggressore individui una pagina web dinamica che può essere oggetto di attacco. L’aggressore nota come tale pagina sembri elaborare numerosi parametri. Se, modificando il contenuto dei vari parametri elencati nella barra degli indirizzi del browser, la pagina web paia riutilizzarne uno o più di essi ripubblicandone il contenuto nella pagina generata dinamicamente, è possibile tentare un attacco cross site scripting. L’aggressore, allora, proverà ad inserire, in calce al contenuto di un parametro visualizzato nella barra degli indirizzi (i più “papabili” sono solitamente i valori che appaiono essere di tipo stringa), del codice JavaScript.
Qualora il programmatore della pagina dinamica non abbia opportunamente provveduto a scrivere una funzione che “depuri” i parametri in ingresso degli elementi potenzialmente nocivi (i.e. tag HTML, apici, simboli utilizzati dal linguaggio di programmazione,…) e provveda a riscrivere il contenuto del “parametro vulnerabile” sulla pagina successivamente proposta all’utente, può succedere che il codice maligno venga “iniettato” nel corpo della pagina.
Ovviamente, l’aggressore – una volta scoperta la vulnerabilità – dovrà indurre gli utenti del sito che ospita le pagine vulnerabili ad attacchi XSS, a cliccare su un link contenente lo script nocivo.
Anche Google si è da qualche tempo attivata per integrare nel browser “Chrome” un sistema di difesa contro gli attacchi XSS. Il meccanismo di protezione, al momento in fase di test nella versione 4.0 “dev” di Google Chrome, si fa carico di controllare ogni script prima della sua esecuzione verificando che esso appaia all’interno della richiesta che ha prodotto la generazione della pagina web. Se ne viene trovata traccia, l’esecuzione dello script viene immediatamente bloccata.
Per maggiori dettagli sul funzionamento degli attacchi XSS, suggeriamo di fare riferimento a questa pagina.