Le SQL Injections, dopo 15 anni sono ancora oggi il metodo di attacco più potente a disposizione dei black-hat

Che cosa sono le iniezioni SQL

Le iniezioni SQL sono l’attacco più a buon mercato, spesso molto semplice grazie ai tool che automatizzano il processo di ricerca delle vulnerabilità, cosa che rende l’uso della tecnica accessibile anche ai meno esperti. Che cos’è esattamente un’iniezione SQL?

Come suggerisce il termine stesso, l’iniezione SQL è un attacco che si basa sull’iniezione di istruzioni non desiderate all’interno di un’applicazione web. Un’applicazione PHP si interfaccia quasi sempre con un database relazionale. Chi visita un sito dinamico compie delle azioni attraverso il browser. Clicca per visitare le pagine del sito od inserisce dei prodotti in un carrello. Ogni azione del visitatore corrisponde ad una serie di richieste verso il database che vive sotto l’applicazione. Niente di pericoloso fino a quando si tratta di semplici visitatori o di clienti che stanno per acquistare un prodotto. Ma la musica cambia quando dall’altra parte del browser c’è un blackhat o uno script kiddie.

Considera questo esempio:

Una query come questa, passata nel browser, non fa altro che interrogare il database MySql per prelevare dalla tabella catalogo un valore che corrisponde all’idarticolo 88. Ma sicuramente c’è un problema. Sappiamo che l’applicazione può essere vulnerabile ad un’iniezione SQL perchè qualsiasi web app che accetta come input un parametro di query SQL può essere quasi sicuramente sfruttata.

Che cosa succede quindi se l’applicazione web è vulnerabile alle SQL Injections? Un attaccante può passare come parametro di query una qualsiasi istruzione SQL, che verrà interpretata dall’applicazione e passata al DB senza battere ciglio.

Le possibilità sono infinite. Un’applicazione vulnerabile alle iniezioni SQL può rivelare all’attaccante tutti i databases, le tabelle, le colonne, gli utenti e praticamente qualsiasi dato memorizzato all’interno dei DB. Soprattutto se il server non è configurato in modo da limitare i privilegi di ogni utente.

Difendersi dalle iniezioni SQL

La responsabilità più grande è principalmente nelle mani dei developer. Chi scrive il codice può scegliere se scriverlo tenendo a mente la sicurezza e considerando sempre il pericolo che può derivare da un’iniezione SQL andata a buon fine.

Le principali raccomandazioni che gli esperti consigliano per difendersi dalle iniezioni SQL sono:

  • Evitare i dati in chiaro

La principale conseguenza di un’iniezione SQL è l’esfiltrazione di dati. Username, password, indirizzi email, codici fiscali e numeri di carte di credito sono solo alcuni dei dati che possono essere estratti da un’applicazione vulnerabile. Per questo motivo un’applicazione web non dovrebbe mai memorizzare dati in chiaro all’interno del database. Questo vale soprattutto per le password. Inoltre i numeri delle carte di credito non dovrebbero essere affatto memorizzati all’interno di un database potenzialmente esposto all’esterno.

  • Sanitizzazione degli input

Un’applicazione web non dovrebbe accettare ed eseguire ad occhi chiusi qualsiasi istruzione SQL. Gli esperti raccomandano di sanitizzare gli input con tecniche che permettono di ripulire eventuali query anomale e di usare quando possibile i parameterized statement.

  • WAF e hardening del server DB

Lato server sono numerosi gli accorgimenti che possono essere adottati per rendere più sicura un’applicazione web. Primo tra tutti l’uso di un web application firewall come Mod Security. Anche se è importante essere consapevoli che un WAF non può tappare tutti i buchi di un applicativo, l’obiettivo è quello di rendere difficile la vita dell’attaccante. Più ostacoli vengono posti tra un blackhat e l’applicazione e più c’è la possibilità di rallentare, fermare e raccogliere importanti informazioni sull’attacco.
La chiave della difesa è anche nell’hardening del server di database.
I grant degli utenti di un database devono seguire il principio del minor privilegio possibile.
Il logging è fondamentale per registrare anomalie e tentativi di attacco. La crittografia dei dati è essenziale per prevenire esfiltrazioni di dati in chiaro. Inoltre accanto ai WAF esistono software che hanno la funzione di firewall per il database.
Chi difende un’applicazione web deve predisporre qualcosa di simile ad una fortezza, composta da strati concentrici ed irta di ostacoli posati per fermare o rallentare l’attaccante. L’atteggiamento migliore per fronteggiare i rischi di un’iniezione SQL è considerarsi già violati. È fondamentale il penetration testing continuo delle applicazioni e non ultimo è essenziale mettersi nei panni dell’attaccante per comprendere a fondo le tecniche di attacco più elaborate. E non dimentare che i WAF possono essere bypassati con poco sforzo dagli avversari più sofisticati.

fonte: http://www.servermanaged.it/sicurezza/sql-injections-attacco-iniezioni-sql/

Internet of Everything: quali sono le principali minacce alla sicurezza?

Secondo il rapporto dell’Osservatorio sull’Internet of Things (IoT), nel 2013 in Italia si contano sei milioni di oggetti interconnessi tramite rete mobile, con un aumento su base annua del 20%, ed aumenta la consapevolezza di dover garantire la sicurezza di questi oggetti.

Con il termine Internet of Things ci si riferisce ad un’ampia gamma di oggetti di uso quotidiano che dispongono di  capacità computazionale, dispositivi che si rendono riconoscibili attraverso la rete e che sono in grado di scambiare dati sul proprio stato ed acquisire informazioni fornite da altre entità in rete. E quando da questo contesto si passa a quello dell’Internet of Everything, nel quale si aggregano alle cose processi, persone, dati, lo scenario non può che diventare ancora più complesso.

La rapida diffusione dell’Internet of Things ha ovviamente attirato l’interesse del crimine organizzato e della comunità di hacking mondiale: per questo motivo gli esperti di sicurezza prevedono un sensibile aumento del numero di attacchi informatici dai quali, per sviluppare un ecosistema IoE realmente sostenibile, sarà necessario imparare a difendersi. È cruciale, infatti, valutare attentamente le principali minacce informatiche e il livello di esposizione delle informazioni gestite dai dispositivi connessi.

I principali fattori di minaccia? Sono:

  • Botnet e attacchi basati su malware – I codici malevoli sono tra le principali minacce all’Internet of Things, essi possono essere utilizzati per compromettere una qualsiasi componente delle architetture IoT. Un malware può essere utilizzato per infettare un computer per il controllo dei dispositivi intelligenti, o peggio potrebbe compromettere il software di ciascuno dei dispositivi per alterarne il comportamento. Di recente gli esperti della Symantec hanno individuato un nuovo Linux worm concepito per infettare specificamente i dispositivi dell’Internet of Things e utilizzarli per l’invio di email di spam, per inviare messaggi SMS a numeri a pagamento oppure per utilizzarli in attacchi DDoS.
  • Denial of service – Attacchi di tipo DoS possono colpire ciascuna delle component del IoT causando un interruzione temporanea di un servizio oppure la sua paralisi totale.
  • Ampliamento superficie di attacco – Non sempre chi sviluppa device da inserire in un contesto IoT/IoE lo fa con la dovuta attenzione per la sicurezza. Quei dispositivi per i quali sono stati ignorati i principi del “security by design”, ovvero dell’implementazione di requisiti di sicurezza in fase di progetto, rappresentano l’anello debole della catena di sicurezza. Compromettendo il termostato di un forno oppure un contatore intelligente, un hacker potrebbe avere accesso alla nostra rete di casa e causare anche seri danni. Contestualizzando il discorso a un qualunque ambito industriale ci si rende conto dell’importanza della sicurezza per ciascun dispositivo, e dell’impatto che la mancata osservanza dei principi di sicurezza potrebbero avere sull’interno processo produttivo.
  • Violazioni di dati – Aziende e privati devono essere consapevoli della possibilità che un attaccante possa avere accesso alle informazioni gestite da reti di dispositivi intelligenti.
  • Esposizione accidentale delle informazioni – Le informazioni gestite dalle componenti di un sistema IoT potrebbero essere accidentalmente perdute oppure esposte. Symantec in un interessante articolo sul tema fornì l’esempio dell’auto del proprio amministratore delegato che diffondeva informazioni sulla sua posizione, ma molte sono le informazioni sensibili che potrebbero essere rivelate da una rete di dispositivi intelligenti.
  • Hacking dei dispositivi – Hackers potrebbero trovare il modo di compromettere un dispositivo affinché possa eseguire compiti differenti da quelli per cui è stato progettato.

Gli esperti non hanno dubbi, il numero di attacchi contro i dispositivi “smart” è in rapido aumento e gli hacker affineranno nuove tecniche per compromettere queste architetture che in pochi anni saranno in ogni dove. La sicurezza è un aspetto fondamentale per lo sviluppo dell’IoE, l’utilizzo di dispositivi intelligenti offre un ventaglio di opportunità infinito alla nostra società. Ma l’IoE potrebbe nascondere anche numerose insidie, se non venisse sviluppato con la dovuta attenzione alle problematiche inerenti la sicurezza.

fonte: http://www.techeconomy.it/2014/02/11/internet-of-everything-quali-sono-le-principali-minacce-alla-sicurezza/

Le peggiori password del 2013 e come scegliere quella giusta!

Contrariamente a quanto si possa credere, la scelta  di una password “debole” è una delle principali cause delle violazione di dati, siamo infatti erroneamente portati a credere che la sicurezza delle infrastrutture informatiche dipenda da altri fattori di ben altre complessità. La scelta di una password debole equivale a lasciare le chiavi nella serratura del portone di una fortezza altrimenti inespugnabile, e gli hacker lo sanno bene.

Proprio la conoscenza delle password più utilizzate è alla base della creazione dei dizionari utilizzati in attacchi di tipo brute-force, in cui sono provate in maniera esaustiva tutte le possibili combinazioni di codici segreti. Il fattore umano rappresenta da sempre l’anello debole della catena di sicurezza, sempre più spesso clamorosi attacchi si scoprono possibili grazie a cattive abitudini delle vittime.

Discutendo sull’utilizzo scorretto delle password, consideriamo che la quasi totalità degli utenti utilizza password semplici da ricordare (e.g. Nome di familiari, informazioni personali), e cosa ancor più grave utilizza le medesime credenziali per accedere a più servizi in rete.

Quest’ultimo caso è molto frequente, un comportamento pericoloso da evitare, un hacker scoprendo la nostra password potrebbe avere accesso alla nostra esperienza digitale (e.g. Email, servizi web.)

Il documento cui si fa riferimento, 25 Worst Passwords of the Year, è in realtà uno studio condotto su base annua sulle password utilizzate dagli utenti e rese note a seguito di una violazione di dati, si ritiene quindi interessante condividere con voi qualche osservazione comparando i dati relativi alle password utilizzate nell’ultimo biennio.

Basta una rapida occhiata per rendersi conto della gravità del problema, proprio le password di una semplicità disarmante sono quelle più utilizzate degli utenti. Altra riflessione che va fatta è che i dati raccolti nel 2013 sono condizionati dalla presenza delle password trafugate in occasione della violazione dei server dell’azienda Adobe, avvenuta nell’Ottobre 2013, in cui furono esposti i dati di milioni di utenti.

La lista del 2013 include password come “adobe123″ e “photoshop”, perché utilizzate dagli utenti delle piattaforme Adobe; altro errore comune è utilizzare password semplici da ricordare che includano il nome dell’applicazione cui consentono l’accesso (e.g. Facebook123).

Nel 2012 le tre “peggiori” password furono “password”, “123456” and “12345678”, quest’anno il termine “password” ha perso la vetta della classifica a vantaggio di “123456.”, ma voi realmente pensate che sia cambiato molto dalla prospettiva dell’attaccante? Davvero troppo facile indovinare le password di milioni di utenti, cosa ne pensate? Se la vostra password è inclusa nell’elenco correte a cambiarla!

Come scegliere una password robusta?

Di seguito qualche  suggerimento utile per la scelta di password robuste:

  • Utilizzare password con una lunghezza superiori ai 7 caratteri;
  • Utilizzare password composte da caratteri maiuscoli, minuscoli, numeri e simboli (e.g. #, $, @);
  • Utilizzare almeno un carattere minuscolo ed uno maiuscolo, almeno un numero e possibilmente caratteri speciali. In questo modo aumenteremo quello che in gergo si definisce lo “spazio delle chiavi”, ovvero le possibili password che l’utente può scegliere;
  • Un suggerimento potrebbe essere quello di usare numeri in luogo di lettere, ad esempio cambiando la  “i” in “1”, “E” in “3”, “A” in “4” (oppure in @), “S” in “5”, “G” in “6”, “O” in “0. Anche così aumenteremo lo spazio delle chiavi.
  • Evitare l’uso di parole di senso compiuto usate comunemente, sono le prime parole a essere utilizzate dagli applicativi che basandosi su dizionari internazionali provano tutte le parole in essi inclusi;
  • Evitare i nomi dei familiari, le date di nascita dei parenti più stretti, e qualunque termine che sia legato ad informazioni personali facilmente ottenibili da un attaccante;
  • Mai usare password contenenti porzioni dell’ID utente o dell’indirizzo e-mail;
  • Non utilizzare la stessa password per numerosi servizi on-line;

E ora che avete scelto una password robusta, non vi resta che proteggerla seguendo qualche semplice regola:

  • Non condividere la propria password;
  • Non trascrivere la password su di un foglio di carta, potrete far peggio solo lasciandolo in prossimità del vostro PC;
  • Non digitare la password alla presenza di estranei;
  • Non archiviare le password in un file presente sul vostro pc;
  • Non memorizzare la password nel vostro browser;
  • Cambiare periodicamente le password;

Pochi accorgimenti possono sensibilmente aumentare la sicurezza delle vostre password.

(fonte: http://www.techeconomy.it/2014/01/22/le-peggiori-password-del-2013-e-come-scegliere-quella-giusta/)

Chi è Antonello Rotolo

Amministratore Firewall Linux IPCop

Antonello Rotolo, inconsapevole della sua naturale predisposizione per la Tecnologia, per l’Informatica e per la Sicurezza, nel lontano 2001 inizia a districarsi con il suo primo computer (CPU: Pentium 3; MB: Abit VH6; RAM: 128MB; HD 20GB) con sistema operativo Win98 per passare subito dopo qualche mese a WinXP .

Nell’estate 2009, ha inizio la sua collaborazione con la Epsoft® Italia (inizialmente come apprendista successivamente come partner) e che tutt’oggi continua. In questi anni ha appreso conoscenze di: Analisi Programmazione e Test del Software, Base di Dati, Reti Informatiche, Sistemi Operativi, Architettura degli Elaboratori, Macchine Virtuali, Backup e Sincronizzazione, Recupero Dati, Storage, Crittografia, Manutenzione e Aggiornamento dei Sistemi Informatici.

In Agosto del 2011, comincia la sua esperienza come Amministratore Firewall (o “Sistemista Firewall”) con l’ausilio della distribuzione Linux IPCop adatta a realizzare un Firewall UTM hardware/software di elevata sicurezza(per specifici dettagli sul Firewall IPCop, leggere gli articoli Cos’è un Firewall? e Cos’è IPCop?)

A maggio del 2012, entra a far parte della Community IPCop Italia e successivamente acquisisce la carica di vice-amministratore.

Attualmente iscritto e frequentante l’Università degli Studi di Bari presso il Dipartimento di Informatica al Corso di Laurea “Tecnologie per la Produzione del Software”.

“Sistemista Firewall”, perché?
Kevin Mitnick nel suo libro “L’arte dell’inganno” ha scritto “Un computer sicuro è un computer spento”. Da ciò si può dedurre che la Sicurezza Informatica si evolverà (e deve evolversi) sempre, continuamente!
…questo impegnerà ogni Security Administrator a continue sfide e stimoli!

Obbiettivi di Studio futuri: Penetration Testing, Approfondimento dell’ICT Security, Approfondimento degli Ambienti di Virtualizzazione, Approfondimento delle Reti.