Sql Injection Cross Site Scripting

Problem.

Ultimamente si stanno verificando attacchi massivi che bucano soprattutto i siti sviluppati con il vecchio ASP. Ma non solo, anche ASP.Net è vulnerabile ad attacchi che si verificano da qualche mese e che stanno causando grossi problemi a portali di aziende organizzazioni importanti di tutto il mondo.

Questo attacco prevede:

- la scansione dei parametri utilizzati nelle pagine (get e post)
- la valorizzazione di tali paramentri con comandi sql scritti in codice binario
- la conseguente esecuzione dei comandi sql che non fanno altro che appendere, in tutti i campi testuali, un tag html come ad esempio "<script src=http://www.pingbnr.com/b.js> </script>"

L'effetto è che quando gli utenti accedono al sito viene eseguita una chiamata cross site scripting al file js (sia che la pagina si veda sia che la pagina non si veda in quanto spaccata dal tag - pensate ad una drop down list che carica il valore dal db) , che non fa altro che scrivere un iframe. E' proprio la pagina richiamata dall'iframe che legge tutti i contenuti del cookie dell'utente. La conseguenza si può benissimo intuire: centinaia di migliaia di dati degli utenti salvati nel database degli hackers.

Per saperne di più http://www.bloombit.com/Articles/2008/05/ASCII-Encoded-Binary-String-Automated-SQL-Injection.aspx

Solutions.

1) La soluzione a questo tipo di attacco è proprio quella di proteggere e controllare i campi utili a costruire la sintassi sql (cosa che ho automatizzato già da un pò di tempo con una dll com+ per i siti asp e ultimamente con una dll .net per i siti asp.net) .
Microsoft, dopo aver notato la crescita di questo tipo di attacco mette a disposizione un tool che verifica l'intrusività del codice sviluppato http://blog.html.it/archivi/2008/06/27/un-tool-microsoft-contro-la-sql-injection.php

Ovviamente proteggere le applicazioni richiedono anche tempo e denaro. Il cliente non ha però scelta, deve investire in questo.

2) Chi gestisce i siti dei clienti si ritrovano però a far fronte ad azioni molto più immediate rispetto al lavoro di coprire le falle, proprio per evitare il down prolungato delle loro applicazioni.
Per questo motivo e per le vicissitudini vissute in prima persona vorrei condividere il mio intervento su un cliente.
Il problema principale è stato appunto quello di ripulire il codice maligno dalle tabelle.  Ripristinare un backup del database non è sempre la soluzione migliore anche perché:

- l'attacco può essere avvenuto in giorni diversi e quindi è difficile stabilire il backup opportuno
- il cliente può aver aggiornato contenuti durante i giorni di presenza dello script maligno
- finché non si implementa la sicurezza delle pagine il sito è a rischio quotidiano di nuovi attacchi
 
In questi casi rimane che ripulire il codice e monitorare l'applicazione. Ho pertanto implementato una procedura (riutilizzando proprio lo script di chi ha attaccato) che, sfruttando le tabelle di sistema, non fa altro che scandire tutti i campi testuali di tutte le tabelle e rimuovere gli script maligni. Tali script vengono enumerati a loro volta in una tabella degli script maligni e quindi eliminati attraverso l'esecuzione di una stored procedure.

Inoltre, attraverso un job schedulato di sql, è possibile automatizzare l'intervento quotidianamente, finchè non viene rilasciata la release sicura dell'applicazione.

Un'altra azione da fare è di negare all'utente di sql, utilizzato per interagire con le tabella della vostra applicazione,  l'accesso alle tabelle di sistema. In questa maniera non si dà la possibilità di scandire le tabelle del database.

A chi fosse interessato posso inviare l'intero script sql che ripulisce il database del codice maligno.

[OT][MI] Cerco sviluppatori asp.net

Per la mia azienda Drake (sito www.drake.it) sto cercando immediatamente 2 figure di sviluppatori per ampliamento organico.

Requisiti minimi:

- ottima conoscenza di ASP.Net  2.0 (C#)
- ottima conoscenza del framework 2.0
- ottima conoscenza di Sql Server 2000-2005

Avranno titolo preferenziale gli MCP.

La sede di lavoro è Milano centro. Residenza o domicilio nel raggio di 30 Km da Milano centro.

Si offre un contratto a tempo indeterminato e un compenso adeguato all'esperienza.

Contattatemi pure all'indirizzo dcampanella@drake.it allegado il cv in formato doc o pdf e dando l'autorizzazione al trattamento dei dati anagrafici.

Grazie!

Colloqui e lavoro

Concordo con Massimo sul fatto che esiste molta gente competente che non lascia traccia di sé.
Lo noto soprattutto quando leggo i vari cv dove è difficile trovare riferimenti a lavori fatti, vuoi perché sono applicazioni intranet vuoi perché c'è un'autenticazione vuoi perché non si ha motivazione a condividere le proprie gratificazioni con gli altri.

Rispetto al basso livello qualitativo cui si riferisce Stefano credo che non sia legato alla professionalità di chi lavora sul software ma al fatto che le aziende italiane purtroppo non viaggiano alla stessa velocità delle nuove tecnologie. Questo perché non sono orientate al cambiamento e restano legate a vecchi modelli di business (abbiamo visto tutti quante belle realtà hanno chiuso). L'effetto è appunto un prodotto fatto in poco tempo e si veda, se funziona tanto meglio.

C'è da dire che  per quanto sia facile trovare gente tecnicamente preparata risulta altresì difficile trovare mentalità aperte al cambiamento, cioè persone che si mettono in discussione, con umiltà, tutti i giorni. Questo per imparare ad essere sempre più bravi e competitivi con il mercato.

Queste sono le vere doti che le aziende devono salvaguardare con gelosia e coltivare nel tempo, a cui segue la preparazione tecnica, le certificazioni e quant'altro.

Certo, se il mercato italiano è fatto di consulenti che stanno "due mesi di lì e altri tre di là" è ovvio che è difficile trovare queste qualità nelle persone e continuità sui progetti (e quindi qualità).

E io faccio veramente fatica adirittura (perché oggi lo fanno in pochi)  proponendo contratti di assunzione a tempo indeterminato! Se conoscete qualcuno interessato... rimandatelo a questo link

Una gioia immensa: Forza Italia!!!!!

Milano ieri sera era un delirio!! Finalmente a quasi 30 anni riesco a rivivere le emozioni percepite (per quello che era possibile) a 5 anni in quel caldo luglio dell'82!

Grazie mille azzurri!! Avete dominato come dei LEONI!!

Sono fiero di essere italiano!

Microsof Certified Partner

Lo scorso febbraio la mia società ha perso il "titolo" di Certified Partner, che più che dare dei vantaggi di opportunità di business secondo me è un modo per avere uno sconto sulle licenze di sviluppo. Il motivo è stato una cattiva informazione secondo cui uno dei requisiti fondamentali è quello di possedere 2 persone certificate in azienda.

In realtà ho scoperto che, in alternativa, basta farsi certificare la propria applicazione con VeriTest (http://www.microsoft.com/italy/partner/partnering/isv/veritest.mspx). E pertanto pensavo di seguire questa strada visto che al momento nessuno avrebbe la possibilità di studiare da scolaro, dopo 10 ore di intenso lavoro quotidiano, e invece applicazioni da testare potremmo averne a sufficienza.

Qualcuno di voi ha mai intrapreso questa strada? Può darmi dei consigli?

Grazie.

D



 

Benvenuti

Ecco il mio primo post!
«aprile»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011