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/

Assistenza e Consulenza

Configurazione Firewall Linux IPCop

Per Configurazioni Firewall UTM GNU/Linux IPCop e Assistenza e/o Consulenza,

invia un’email a: antonello.rotolo@gmail.com


Caratteristiche e Servizi Firewall UTM:

- Diversificazione delle reti.
- Amministrazione di VPN Illimitate, su protocolli IPsec e OpenVPN, con l’utilizzo di certificazioni CA.
- Sistema di consultazione di Logs Accurato.
- Servizio Firewall con Gestione e amministrazione tramite regole. (Port forwarding, Block Out Traffic, Accesso Esterno, DMZ Pinholes)
- Servizi di DNS dinamici.
- Servizio Proxy Avanzato, a livello trasparent e application. Con Sistema di Autorizzazione utente e CRE.
- Server DHCP.
- Servizio Hosts.
- Aggiunta di Alias IP.
- Gestione Grafica del Traffico.
- Time Server.
- Gestione Banda.

Servizi Aggiuntivi:

- Servizio anti-virus, anti-spam, anti-malware.
- Servizio di Rilevamento Intrusioni IDS.
- Filtraggio dei contenuti (URLs, ecc…)
- HotSpot


 

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.

Cos’è un Firewall?

E’ entrato nel linguaggio comune, ma a cosa serve realmente? Com’è composto un firewall?

Firewall, ovvero un muro tagliafuoco. Un termine che rende benissimo l’idea del suo scopo reale.

Il firewall è quel dispositivo (hardware+software), che è posto a protezione di uno o più segmenti di rete. L’uso più classico del firewall è quello di proteggere una rete dalle connessioni non autorizzate provenienti da internet, ma questa è solo una delle innumerevoli funzionalità che offre un qualsiasi firewall, ma procediamo con ordine:

Internet è un mondo aperto e per questo anche molto pericoloso, chiunque si affaccia su internet si espone a connessioni non autorizzate, sia che si tratti di un home user sia che si tratti di una grande azienda. Come possiamo difenderci da queste connessioni? La risposta è utilizzare un firewall, ovvero un dispositivo che, seguendo delle regole specificate da chi lo amministra, filtra tutte le connessioni entranti ed uscenti, permettendo il transito solamente delle sessioni esplicitamente dichiarate come “autorizzate”.

E’ possibile ad esempio configurare il firewall per permettere la navigazione web dall’interno della rete verso internet ma evitare altre connessioni potenzialmente dannose come il file sharing, escludendo quindi tutte le applicazioni come eMule o uTorrent.

Il firewall è uno strumento di protezione, è la sentinella che regola il traffico da e verso la nostra rete interna, ma deve garantire anche una serie di funzioni aggiuntive come ad esempio l’autoprotezione (essendo un dispositivo di sicurezza a sua volta è soggetto ad attacchi), la possibilità di stabilire le VPN (Virtual Private Network), la possibilità di autenticare gli utenti e i client laddove necessario.

Amministrare un firewall è tutt’altro che semplice, scrivere quella che in gergo si chiama “rulebase”, ovvero l’insieme delle policy che regolano il comportamento del firewall è considerata una vera e propria arte in quanto la rulebase dev’essere ottimizzata e non deve conenere punti deboli.

Esistono innumerevoli firewall, sia open source sia commerciali, che rispondono alle più svariate esigenze.

Riassumere tutte le problematiche relative ai firewall in un unico intervento è umanamente impossibile!

 

(fonte: http://guide.supereva.it/hacker/interventi/2004/04/157459.shtml)