Thursday, July 24, 2008

Template pericolosi, nuovi mass defacement?

Stavo giusto cercando un template per questo blog. Non conoscendo molto i template per blogger, ho dato un'occhiata in giro e ho notato per puro caso che l'xml di un template che avevo scaricato conteneva non solo collegamenti a immagini su server remoti ma anche link a file javascript!



Ora, per quanto riguarda le immagini non fidate, non ci sarebbe da discutere, a meno che non si conosca il vecchio trucchetto di Internet explorer che permette di lanciare codice javascript anche se questo è inserito in un file con estensione .jpg. Il problema sta nel fatto che Internet explorer processa come contenuto attivo anche il MIME type image/jpeg.

Apri questo link con IE per credere

Il suddetto è limitato a internet explorer e comunque solo se è una singola immagine inviata al client come image/jpeg (mentre un'intera pagina viene inviata con tipo text/html)

Chiusa parentesi immagini. Aperta parentesi javascript.

Una cosa del genere potrebbe essere estremamente pericolosa se l'amministratore del server su cui risieda il javascript non presti molta attenzione alla sicurezza del server stesso. Oppure se deliberatamente il creatore del template, che credo sia anche creatore del javascript, voglia creare un cross site scripting di massa per cavalcare le sessioni aperte (cookie stealing) di blogger.
Non ho verificato se blogger faccia o meno controllo dell'ip prima di accettare l'authenticator del cookie, ma di sicuro un defacement del blog sarebbe possibile, o qualsivoglia altra attività fattibile con javascript, incluso un portscan della rete locale. (si con javascript, se non lo sapete, leggete solo siti italiani)

Non farei molto allarmismo su tutto ciò. In fondo c'è sempre un certo livello di trust (risk acceptance in gergo) quando si accetta di utilizzare codice altrui, ma di sicuro consiglio di evitare di usare questi template o quanto meno di scaricare in locale tali javascript per evitare qualsiasi problema.

PS. Facendo una verifica dei vari template disponibili online gratuitamente solo alcuni di questi utilizzano javascript esterni, quindi il problema pare limitato, ma una "greppata" all'xml non fa mai male