Search:

Twitter:

Ultimi commenti:

Tags:

Archivi:

Febbraio 2010 ( 6 )
Gennaio 2010 ( 12 )
Dicembre 2009 ( 10 )
Novembre 2009 ( 8 )
Ottobre 2009 ( 15 )
Settembre 2009 ( 12 )
Agosto 2009 ( 7 )
Luglio 2009 ( 23 )
Giugno 2009 ( 20 )
Maggio 2009 ( 17 )
Aprile 2009 ( 23 )
Marzo 2009 ( 20 )
Febbraio 2009 ( 15 )
Gennaio 2009 ( 15 )
Dicembre 2008 ( 24 )
Novembre 2008 ( 25 )
Ottobre 2008 ( 23 )
Settembre 2008 ( 13 )
Agosto 2008 ( 18 )
Luglio 2008 ( 16 )
Giugno 2008 ( 18 )
Maggio 2008 ( 18 )
Aprile 2008 ( 20 )
Marzo 2008 ( 10 )
Febbraio 2008 ( 20 )
Gennaio 2008 ( 20 )
Dicembre 2007 ( 27 )
Novembre 2007 ( 19 )
Ottobre 2007 ( 19 )
Settembre 2007 ( 22 )
Agosto 2007 ( 7 )
Luglio 2007 ( 35 )
Giugno 2007 ( 30 )
Maggio 2007 ( 33 )
Aprile 2007 ( 37 )
Marzo 2007 ( 34 )
Febbraio 2007 ( 32 )
Gennaio 2007 ( 22 )
Dicembre 2006 ( 9 )
Novembre 2006 ( 17 )
Ottobre 2006 ( 14 )
Settembre 2006 ( 13 )
Agosto 2006 ( 22 )
Luglio 2006 ( 3 )
Giugno 2006 ( 10 )
Maggio 2006 ( 11 )
Aprile 2006 ( 24 )
Marzo 2006 ( 15 )
Febbraio 2006 ( 41 )
Gennaio 2006 ( 19 )

Sequelite acuta

SQL È notizia di questi giorni che i "cinesi" ne hanno combinata un'altra delle loro: hanno infettato qualcosa come 510 mila server tramite SQL injection sparando javascript pericoloso a destra e a manca. L'attacco ha colpito soprattutto server Microsoft (con ASP e ASP.Net) e per questo motivo qualcuno si è sentito autorizzato a mettere in relazione l'attacco con un'altra vulnerabilità segnalata la scorsa settimana (una Elevation of Priviledges): legame che non esiste assolutamente, come si può leggere sul blog del Microsoft Security Response Center. Confermata anche da un'indagine di BetaNews:

But a BetaNews check this morning of infected sites whose injected code is visible via Google query (where, ironically, the hidden script code becomes un-hidden) revealed at least one site -- that of publisher Harcourt Brace, a frequent Oracle partner -- where the injected code was also present.

Di SQL Injection comincio a vederne in giro davvero tante (qualcuna assume anche caratteristiche grottesche), basta fare un giro su milw0rm.com per rendersene conto di persona: Joomla, ODFaq, FluentCMS, RunCMS, PHP Forge e non ultimo Wordpress (che sull'argomento è piuttosto recidivo). Prevenire l'attacco è molto più semplice che scrivere codice che faccia la pulizia a mano. Basta sostituire ad esempio questo:

$wpdb->query("SELECT row FROM table WHERE column = '$parameter'")

con questo:

$wpdb->query("SELECT row FROM table WHERE column = '%s'", $parameter)

Insomma come le Sexually transmitted disease la sequelite è facilissima da evitare, ma nonostante ciò la sua diffusione è un fenomeno di dimensioni planetarie. Il consiglio per difendersi da questo tipo di incoscienza puerile è sempre lo stesso: usare plugin specifici per FireFox o IE7 in protected mode.

-quack

Technorati Tags:

UPDATE: questo post spiega perché ad essere colpito è stato lo stack MS.

Commenti (7):
1. Edward
lunedì 28 aprile 2008 alle 11:07 PM - unknown unknown unknown
   

Da quel poco che ho capito, gli attaccanti hanno sfruttato un comando di MS-SQL che permette di sovrascrivere un database senza conoscerne le dimensioni: un comando simile a UpperBound / LowerBound per gli array in VB?

I "plugin specifici" di Firefox sono NoScript e AdBlock+, per filtrare tutto cio' che non e' attinente alla pagina, vero?

Edward

   
2. Paperino
lunedì 28 aprile 2008 alle 11:17 PM - unknown unknown unknown
   

Da quel poco che ho capito, gli attaccanti hanno sfruttato un comando di MS-SQL che permette di sovrascrivere un database senza conoscerne le dimensioni: un comando simile a UpperBound / LowerBound per gli array in VB?

No, hanno fatto una eseguire una query che enumera tutte le colonne di testo di tutte le tabelle e per ciascuna di queste viene eseguito uno script UPDATE che 'appende' il javascript malefico. Se il sito usa una di quelle colonne per popolare la pagina il gioco è fatto.

I "plugin specifici" di Firefox sono NoScript e AdBlock+, per filtrare tutto cio' che non e' attinente alla pagina

In uno dei link si parlava della capacità di NoScript di bloccare JavaScript proveniente da un dominio diverso. Questo dovrebbe bastare.

   
3. Shance
martedì 29 aprile 2008 alle 10:44 AM - unknown unknown unknown
   

Ciao,

ma se è stato un attacco *SQL* perchè sono stati presi di mira solo web server IIS? Me lo spieghi tu? Non sono andato a leggere il tuo link.

   
4. EnricoG
martedì 29 aprile 2008 alle 5:21 PM - unknown unknown unknown
   

Shance, e' stato usato un tipo di SQL injection che funziona solo su SQLServer di Microsoft che tipicamente viene usato in combinazione con IIS e non con altri web server.

Se andavi a leggere il link trovavi la risposta... viva la pigrizia!

   
5. Shance
venerdì 2 maggio 2008 alle 4:11 PM - unknown unknown unknown
   

Uffa, io volevo la spiegazione da Paperino.

Continuo a capire poco... sembra che ci si continui ad arrampicare sui vetri. Tecnicamente era attaccabili anche Oracle o MySQL?

Ci sono modi per lanciare una SQL Injection senza una connessione aperta da una pagina (.asp o .php) senza la porta sql aperta? No vero?

   
6. Paperino
venerdì 2 maggio 2008 alle 8:03 PM - unknown unknown unknown
   

@Shance:

una SQL injection non è un problema del DB. Il DB fa semplicemente il suo lavoro: eseguire codice SQL. Una SQL injection pertanto è un problema della applicazione (ASP, PHP, quello che vuoi) che "perde il controllo" di quello che passa al server SQL.

Tornando alla tua domanda: tecnicamente erano attaccabili anche Oracle o MySQL? Sì e no.

Sì perché non c'era niente "di speciale" nella parte "finale" del codice SQL da eseguire (l'INSERT). No perché le librerie di accesso di MySQL per PHP/ecc. non permettono l'esecuzione di più di un comando alla volta: e l'attacco, per funzionare in maniera così "generica" e quindi infettare un numero così alto di server, aveva bisogno di eseguire due comandi di seguito. Volendo è possibile tentare un attacco del genere sfruttando i bachi di altre piattaforme ma non sarebbe stato scalabile come quello del post in quanto ogni piattaforma diversa avrebbe richiesto un exploit diverso. Questa in fondo era la "virtù" di questo attacco: un exploit generico che si autoadattava alla piattaforma sottostante.

   
7. Shance
giovedì 3 luglio 2008 alle 3:49 PM - unknown unknown unknown
   

Date un'occhietto qua, può servire: www.sandeisacher.net/.../sql-injection-u

Ciau!

   
Lascia un commento:
Commento: (clicca su questo link per gli smiley supportati; regole di ingaggio per i commenti)
(opzionale, per il Gravatar)