Skip to content

Quello che gli hackers non dicono…

by Pietrapania Studio on July 6th, 2010


Nella mia recente di attività di webdesigner, mi sono trovato a far fronte, sempre in maggior quantità, a una serie di attacchi informatici ai siti web che gestisco, provenienti da hacker che lavorano a livello globale e che in assenza di protezioni specifiche purtroppo vanno a successo, e comportano vari problemi, tra cui istallare virus sui computer di chi naviga  ed essere considerato virus dai motori di ricerca, che arrivano ad identificare e segnalare i malevoli dopo nemmeno una settimana, e a impedire l’accesso a chi prova a entrare sui siti esibendo la nota e poco piacevole scritta “attenzione, navigando su questo sito il tuo computer potrebbe essere esposto a rischi.

Nulla di così grave in realtà, dovendo altresì affermare però che se non si è assistiti da programmatori esperti ed in grado di conoscere le contromisure, difficile arrivare a una soluzione.
Il programmatore, parlando la stessa lingua dell’hacker,  è l’unica figura in grado di rispondere colpo su colpo, “dialogare” con gli attacchi, sedersi dall’altra parte del fiume e vedere se questi hackers il fiume riescono ancora ad oltrepassarlo. Una partita che si gioca colpo su colpo, e più il sito ha prestigio, più alta la posta in gioco, e più cercheranno di attaccare e superare le barriere imposte.
Un sito programmato artigianalmente con poche nozioni di base, nel web attuale, per l’esperienza che ho avuto soprattutto nell’ultimo anno, dove i siti della mia scuderia sono stati attaccati su più fronti, ha poca speranza di sopravvivere e di rimanere inviolato.

Visto che il tema secondo me è molto importante, vi cercherò di illustrare insieme al programmatore che collabora con me Andrea Infusino, che ha avuto il merito di rendere i siti che gravitano intorno al mio studio molto più sicuri di quanto non lo fossero prima, quali sono i tipi di attacchi che ultimamente si verificano più spesso, in modo da capire meglio di cosa si sta parlando indentificarli meglio e passare poi alle contromisure.

SQL Injection
L’SQL Injection è una “iniezione” di codice SQL che avviene attraverso canali non filtrati dell’applicazione. In particolare si tratta di punti di un programma dove è possibile inviare del codice SQL (codice destinato alla gestione e aggiornamento delle basi di dati) dall’esterno scavalcando operazioni di login e/o autenticazione.
Questa tecnica si attua somministrando delle particolari stringhe di codice SQL che contengono condizioni sempre vere (secondo la logica booleana) per cui permettono di pilotare l’output e l’input dell’applicazione.
Per mezzo di questa tecnica è infatti possibile scoprire username, password e in generale tutti i dati presenti nella base di dati SQL-based, allo stesso modo è anche possibile inserire delle credenziali fittizie che l’hacker può sfruttare per entrare nel back office dell’applicazione (di un sito web amministrabile, ad esempio).
XSS – Cross-Site Scripting
Il Cross-Site Scripting è una tecnica di hacker aggio che consente la somministrazione di script esterni, che più semplicemente possiamo definire “programmi”, ad un’applicazione. In particolare per mezzo di questa tecnica è possibile far eseguire programmi remoti, di terze parti, per cui per definizione non sicuri e malevoli.
Grazie a questa tecnica è possibile infatti caricare sul server (upload) files di ogni tipo e che svolgono funzioni di ogni tipo. Sono noti infatti tipi di intrusione che installano dei programmi malevoli che in autonomia sono in grado di scoprire i link in uscita del sito e auto diffondersi in rete, tentando delle sistematiche intrusioni nelle applicazioni correlate alla corrente, con tecniche brute force, denial of service o di flooding.

Il caso di un attacco.
Se a un sito X non vengono adottate sin dalla sua prima stesura adeguate contromisure è suscettibile di entrambi i tipi di attacchi appena brevemente descritti.

In questi casi gli hacker hanno la possibilità di poter installare file e leggere liberamente il database e gli archivi privati del sito, nonché scoprire i dati di accesso del server. In sostanza poter scoprire ogni informazione e anche modificarla.

Questi accessi sono tecnicamente dovuti ad un errato o, come nel nostro caso, un assente filtraggio delle variabili di input GET e POST. Queste variabili non sono altro che dei contenitori dei dati che immette l’utente, ad esempio, compilando un form, iscrivendosi ad una newsletter o scegliendo la lingua del sito.

Per questa ragione bisogna approntare e mettere in esercizio uno script php che filtri tutti i tipi di input, siano essi GET, POST che eventuali url di ingresso. Grazie all’istallazione di questo script non solo sarà possibile bloccare i tentativi di intrusione, bloccando l’esecuzione delle pagine su cui è stato tentato l’attacco in modo da evitare qualsiasi fuga di informazioni come qualsiasi immissione arbitraria di dati, ma anche poter tracciare l’attività dell’hacker. Più in dettaglio l’attività verrà tracciata per mezzo di parametri inequivocabili come la data di attacco e l’indirizzo IP della macchina, così come della stringa di input usata per tentare l’intrusione.

aricolo a cura di:
Andrea Infusino, programmatore php e seo

From → Web Design