6 febbraio 2009  0

Javascript injection e libreria prototype.js

ASP.NET 2.0 / Sicurezza 

cyberlover-dati-malware-sensibili-virus-webNon sono riuscito a trovare un titolo che riuscisse a descrivere in maniera opportuna quanto accaduto nei giorni scorsi, tranne che indicare chiaramente il file incriminato nonché oggetto del problema. Molto sinteticamente, alcuni giorni fa, dopo essere rientrato dall’ufficio, ho controllato come di consueto il corretto funzionamento di questo blog (avendo Aruba come fornitore di hosting, ho da tempo imparato che i controlli devono essere costanti e frequenti).

Stranamente l’interprete ASP.NET generava un errore, ma solo in fase di visualizzazione della home page, mentre le altre pagine venivano caricate correttamente dal browser. Anche forzando la ricompilazione dell’intera web application, l’errore continuava ad essere presente e, soprattutto, in maniera del tutto inspiegabile, non avendo effettuato negli ultimi tempi alcuna modifica al codice.

Mi è sorto il dubbio di essere in presenza di un tentativo di violazione del sito. Per questo motivo ho immediatamente sovrascritto, usando le copie che conservo in locale, tutti i file presenti nella root del mio spazio web. L’operazione ha avuto successo ma, mentre l’errore ASP.NET non si è più verificato, l’antivirus del pc con cui effettuavo la navigazione di controllo sulle pagine (nello specifico Avast) ha immediatamente segnalato un’anomalia interrompendo le operazioni di browsing:

Sign of “HTML:IFrame-BW [Trj]” has been found in
“http://www.cristianofino.net/LightBox/js/prototype.js” file

In pratica, non solo era stata violata la home page (ovvero il file default.aspx), ma anche la libreria prototype.js che utilizzo tramite LightBox 2.0 per la visualizzazione delle immagini. Infatti il file remoto risultava più grande di quello ospitato in locale, segno di un’operazione di javascript injection nel sorgente della libreria.

Non ho approfondito sul contenuto del sorgente iniettato nel file, anche se, a spanne, dovrebbe corrispondere o a qualche tecnica di clickjackingW o, addirittura, al redirect per il download silente di spywareW o adwareW, il tutto tramite la ben nota tecnica dell’inserimento di un IframeW nascosto mediante codice javascriptW.

A scanso di equivoci ho ricontrollato tutti i file presenti in remoto e ho nuovamente cambiato le credenziali di accesso al mio spazio web. Per quanto riguarda l’aspetto sicurezza, Aruba, dovrebbe cominciare ad introdurre la possibilità di inserire livelli di complessità maggiori sulle password, dato che, al momento non è possibile introdurre maiuscole (oltre che minuscole e numeri) e la lunghezza massima impostabile è, a mio avviso, ormai insufficiente.

Sotto certi aspetti, utilizzare ASP.NET, porta dei vantaggi, in quanto modifiche arbitrarie, e quindi non opportunamente studiate, a pagine scritte con tale tecnologia, il più delle volte causano errori e quindi consentono più facilmente l’individuazione di eventuali anomalie “maliziose”.

Mi ha causato invece maggiore perplessità la destinazione della successiva modifica, ovvero il file protoype.js, colpito probabilmente proprio in virtù del fatto che è ormai universalmente utilizzato nei framework più diffusi.

Al momento, quindi la situazione è completamente sotto controllo e la violazione non credo che possa avere causato danno alcuno ai visitatori di questo sito (me ne sono accorto praticamente in tempo reale).

La mia unica raccomandazione, è quella di verificare spesso, nel caso si utilizzi la libreria protoype.js, la correttezza delle dimensioni del file (confrontandola con un copia che si dovrebbe avere sempre su una macchina locale) e, nel caso di anomalie durante la navigazione sulle pagine del proprio sito, di disattivare immediatamente l’inclusione di tutte le librerie javascript utilizzate. Questo caso potrebbe essere stato del tutto isolato, ma la prudenza non è mai troppa.

Esprimi il tuo giudizio

Pingbacks and trackbacks (1)+

Aggiungi Commento

biucitecode
  • Commento
  • Anteprima
Loading


| |   |  

Codice QR

Codice QR - cristianofino.net

Ultimi Commenti