SQL Injection Strumenti per lo Scanner
Debole web app codice può consentire agli hacker di accedere al tuo database e rete
SQL Injection Panoramica
SQL injection è attualmente la più comune forma di sito web di attacchi, di moduli web sono molto comuni, spesso non sono codificati correttamente e l’hacking strumenti utilizzati per la ricerca di punti deboli e di approfittare di loro sono comunemente disponibili online. Questo tipo di exploit è abbastanza facile da realizzare che anche gli hacker inesperti possono realizzare malizia. Tuttavia, nelle mani dell’hacker molto abile, una debolezza del codice Web può rivelare l’accesso a livello di root dei server Web e da lì possono essere compiuti attacchi su altri server in rete.
Structured Query Language (SQL) è il linguaggio quasi universale dei database che consente l’archiviazione, la manipolazione e il recupero dei dati. I database che utilizzano SQL includono MS SQL Server, MySQL, Oracle, Access e Filemaker Pro e questi database sono ugualmente soggetti ad attacco SQL injection.
I moduli basati sul Web devono consentire l’accesso al database per consentire l’inserimento di dati e una risposta, quindi questo tipo di attacco ignora i firewall e le difese degli endpoint. Qualsiasi modulo web, anche un semplice modulo di accesso o una casella di ricerca, potrebbe fornire l’accesso ai dati tramite SQL injection se codificato in modo errato.
Come funziona SQL Injection
Prospettive, clienti, dipendenti e partner commerciali possono tutti avere il diritto di memorizzare o recuperare informazioni dal database. Il tuo sito probabilmente consente a qualsiasi visitatore del sito di inviare e recuperare i dati. L’accesso legittimo per i visitatori include la ricerca del sito, i moduli di iscrizione, i moduli di contatto, i moduli di accesso e tutti questi forniscono finestre nel database. Questi vari punti di accesso sono probabilmente incorporati in applicazioni “off-the-shelf” o possono essere applicazioni personalizzate impostate solo per il tuo sito. Queste forme e il loro codice di supporto sono probabilmente provenienti da molte fonti, sono stati acquisiti in tempi diversi e possibilmente installati da persone diverse.
SQL injection è l’uso di questi campi disponibili pubblicamente per ottenere l’ingresso nel database. Questo viene fatto inserendo comandi SQL nei campi del modulo invece dei dati previsti. I moduli codificati in modo improprio consentiranno a un hacker di usarli come punto di accesso al database, a quel punto i dati nel database potrebbero diventare visibili e l’accesso ad altri database sullo stesso server o su altri server nella rete potrebbe essere possibile.
Le funzionalità del sito Web come moduli di contatto, pagine di accesso, richieste di supporto, funzioni di ricerca, campi di feedback, carrelli della spesa e persino le funzioni che forniscono contenuti dinamici della pagina Web, sono tutte suscettibili all’attacco di SQL injection perché i campi presentati per l’uso dei visitatori DEVONO consentire ad almeno alcuni comandi SQL di passare
SQL Injection Risk
Poiché i database controllano molte funzioni del sito web, quasi tutti i siti Web invitano l’input dei visitatori e così tanti moduli web sono vulnerabili, SQL injection è diventata e per anni è rimasta la forma più comune di strumento di hacking del sito web utilizzato. Inoltre, così tanti criminali stanno ora utilizzando SQL injection che nuovo server, applicazione e codice di debolezza vengono scoperti quasi ogni giorno.
I nostri record indicano che la maggior parte (oltre la metà) dei siti Web che ci è stato chiesto di scansionare presentava rischi di SQL injection di livelli alti o medi. Un alto livello di rischio è uno che è effettivamente una porta aperta e non custodita. Un rischio medio è uno che quando combinato con uno o più altri fattori potrebbe significare problemi. Un numero ancora maggiore di siti ha avuto problemi a basso rischio. Quello che dovete sapere: La percentuale di siti che hanno almeno un rischio maggiore è in realtà in aumento.
Anche se SQL injection è stato un problema noto per anni, ci sono diversi fattori che causano il tasso di rischio per aumentare. In primo luogo è che più aziende stanno offrendo più interazione sito web con i visitatori e questa tendenza è in forte aumento. In secondo luogo, man mano che più hacker acquisiscono competenze in SQL injection, stanno scoprendo più applicazioni e servizi che sono suscettibili di attacco e stanno sviluppando nuovi attacchi su vecchie applicazioni. Il risultato è un aumento quasi esponenziale delle opportunità di utilizzare questo metodo di attacco.
Il rischio di essere attaccati con successo utilizzando SQL injection si basa su due fattori: la natura e le dimensioni del vostro business e l’età, lo stato di aggiornamenti e patch sulle applicazioni e la competenza e il numero del personale tecnico. Si riduce a se sei un obiettivo interessante e se il server web, le applicazioni su di esso e il codice del sito web sono ben progettati, ben integrati e hanno tutte le patch e gli aggiornamenti attuali.
Il tuo sito è in pericolo immediato se la tua azienda memorizza dati di alto valore, se la tua azienda o entità opera in un campo di attività altamente contestato o se il tuo sito ha un’importanza o un valore politico o sociale. Naturalmente se hai qualcosa di valore monetario allora sei un bersaglio. Ma sei anche un bersaglio se il tuo sito è un opinion leader in un ambiente controverso. Ci è stato chiesto aiuto dai blogger perché l’argomento trattato aveva attirato attacchi di SQL injection.
Gli attacchi SQL injection vengono ora sollecitati online. Un cliente sconvolto, concorrente, o anche ex coniuge può ora facilmente assumere un ‘script kiddie’ – o peggio, un hacker di talento-per attaccare un sito. La probabilità che l’hacker venga catturato è bassa. La possibilità che il partito sconvolto può causare danni al tuo sito senza essere dita come la parte responsabile è alta.
Tecnicamente si è a rischio di SQL injection se si dispone di apparecchiature o applicazioni che non sono state regolarmente aggiornate e patchate, o se si dispone di codice sul proprio sito che non è stato scritto correttamente. L’età delle attrezzature, le applicazioni e il codice è un indicatore approssimativo di rischio. Un altro è il numero di server coinvolti, il numero di applicazioni e il numero di punti di accesso al sito web. Se si utilizzano server ospitati o se si utilizzano risorse tecniche in outsourcing, è importante una revisione di terze parti della sicurezza del sito. E anche il personale interno può essere così pressato per tempo e a corto di risorse che gli aggiornamenti e le patch possono essere ritardati o il vecchio codice legacy viene utilizzato senza un’adeguata revisione.
Esempio di SQL Injection
Ogni volta che un visitatore del sito Web inserisce i dati in un modulo sul sito viene generata una query SQL e consegnata al database. Nel caso di un semplice modulo di accesso, il nome utente e la password vengono presentati al database e, se validi, il database risponde con una risposta e all’utente è consentito l’accesso (o meno). Quindi, non importa quanto sia semplice il modulo o il processo web, è richiesto l’accesso al database e si prevede una risposta.
Utilizzando SQL injection, un hacker cercherà di inserire un comando SQL appositamente predisposto in un campo modulo invece delle informazioni previste. L’intento è quello di garantire una risposta dal database che aiuterà l’hacker a capire la costruzione del database, come i nomi delle tabelle. Il passo successivo consiste nell’accedere e visualizzare i dati nelle tabelle importanti o nell’aggiungere dati alle tabelle, ad esempio l’aggiunta di nuovi account o nomi utente e password. Il terzo passo, grosso modo, sarebbe quello di utilizzare l’accesso al database per scoprire e modificare le impostazioni di sicurezza su un server che consentirebbe un accesso amministrativo hacker.
Qualsiasi linguaggio di script dinamico tra cui ASP, ASP.NET, PHP, JSP, e CGI è vulnerabile agli attacchi. L’unica attrezzatura necessaria è un browser web. Ci sono strumenti ampiamente disponibili on-line che semi-automatizzare il processo di ricerca di punti deboli, e ci sono molti forum in cui gli hacker condividono exploit e si aiutano a vicenda superare gli ostacoli.
Risultati di SQL Injection
Come puoi immaginare, un hacker che ottiene l’accesso amministrativo al tuo server significa che avrai effettivamente perso tutti i dati su quel server per l’invasore. Peggio ancora c’è ora una testa di ponte dietro il firewall da cui gli attacchi su altri server e servizi possono ora essere fatti. In questo modo SQL injection può fornire l’accesso a tutti i dati aziendali o personali.
Dal punto di vista di un hacker una parte componente dell’hack che è quasi importante quanto l’effrazione è il mantenimento della segretezza. Impostare un ‘allarme’ di qualche tipo è l’ultima cosa che vogliono fare. Il loro lavoro di infiltrazione richiede tempo e spesso il valore dei dati rubati scende se il furto viene scoperto (informazioni di valore nel furto di identità o furto di carta di credito per esempio). Così gli hack di SQL injection vengono spesso scoperti mesi e in alcuni casi anni dopo la loro iniziazione.
In alternativa, se il danno definitivo è l’intento, non mancano le cose cattive che possono essere fatte a un database una volta ottenuto l’accesso ai comandi in esecuzione. Un’intera tabella può essere eliminata in modo permanente utilizzando un singolo comando SQL. Tuttavia, un attacco SQL injection più sofisticato potrebbe comportare una massiccia corruzione di database di grandi dimensioni e persino la distruzione di copie di backup.
Difesa contro SQL Injection
Poiché i siti Web richiedono un accesso costante al database, i firewall forniscono poca o nessuna difesa contro gli attacchi SQL injection. Il tuo sito Web è pubblico e i firewall devono essere impostati per consentire a tutti i visitatori del sito di accedere al database, di solito sulla porta 80/443.
I programmi antivirus sono ugualmente inefficaci nel bloccare gli attacchi SQL injection. Essi sono destinati a individuare e fermare un tipo completamente diverso di dati in entrata.
La difesa SQL injection più comunemente utilizzata è costituita da due componenti. In primo luogo vi è l’aggiornamento di routine e patch di tutti i server, servizi e applicazioni che, naturalmente, ha molti vantaggi ed è pratica comune. Poi c’è la produzione e l’utilizzo di codice sito web ben scritto e ben testato che non consente comandi SQL inaspettati.
Queste due difese sono per definizione sufficienti a fermare qualsiasi attacco SQL injection. Quindi, perché le vulnerabilità e i rischi dei siti Web sono in aumento e perché gli attacchi di successo si verificano più spesso? Le risposte sono semplici e si combinano in una lista scoraggiante:
- Il numero di server, applicazioni e volume di codice su siti web è in aumento
- Questi server, applicazioni e linguaggi di codice interagire con gli altri, talvolta in modi imprevedibili
- Il numero e la frequenza degli aggiornamenti e delle patch è in aumento
- i reparti IT devono fare di più con meno personale e di alcune attività, quali aggiornamenti ottenere rinviata
- IL turnover del personale e i licenziamenti a volte lasciare mimetizzati buchi di sicurezza di routine
- Automaticamente l’installazione di tutte le patch e update che arriva spesso produce effetti collaterali indesiderati
- codice Legacy è spesso riutilizzato, quando i siti sono aggiornati, a volte talmente semplice mantenere aggiornati i codice scritto al vecchio standard in uso a lungo dopo che è stato obsoleti
- Il numero di persone che tentano di fare hack e il numero di strumenti a disposizione per semplificare l’hacking sono quasi esponenzialmente
Più e più aziende con enormi fattori di rischio e web di grandi dimensioni ‘impronte’ stanno arrivando a concludere che l’applicazione di patch di tutto e di assumere più personale per guardare il lavoro del personale esistente non è più valida.
Web Site SQL Injection Scanner Tool Solution
La nuova soluzione per gli attacchi SQL injection (e tutti gli altri attacchi basati sul web) consiste nel concentrare il tempo IT limitato e prezioso sui gravi rischi che sono effettivamente presenti, piuttosto che utilizzare un approccio shotgun e applicare ogni possibile correzione a ogni server, ogni applicazione e ogni pagina di codice, sia che fosse necessario o meno. Questo nuovo approccio è come avere un medico valutare un paziente e proscrivere l’unico farmaco che è necessario per produrre una cura, piuttosto che avere il paziente andare direttamente in farmacia per ottenere ogni possibile medicina e prenderli tutti in una volta.
Quindi una maggiore sicurezza viene ottenuta utilizzando strumenti di test delle applicazioni Web, come beSECURE, come strumento di scansione SQL injection per esaminare (scansionare) un sito Web utilizzando un elenco di migliaia di attacchi noti e quindi riferire sui relativamente pochi (di solito meno di una dozzina) problemi gravi.
La scansione del sito Web funziona sulla base dell’individuazione e della segnalazione dei rischi NOTI. L’hacking comune è un’attività molto “pubblica”. Gli strumenti sono ampiamente promossi. Le tecniche sono ampiamente diffuse nei forum pubblici. Anche i nuovi metodi diventano pubblici entro ore o giorni dal loro primo utilizzo, grazie a gruppi come SecuriTeam.com e altri che guardano e poi avvertono ampiamente gli altri.
BeSECURE, il sistema automatizzato di rilevamento delle vulnerabilità, è un servizio basato sul Web che utilizza una raccolta di tutti i rischi noti nelle famiglie e tutte le famiglie in un unico database che ha impiegato molti anni per compilare e molte ore al giorno per mantenere. Utilizzando questo database beSECURE può valutare qualsiasi sito web e produrre un rapporto di rischi reali e presenti valutati in base alla loro importanza relativa – spesso in poche ore e senza disturbare le attività del sito in corso.
Ora, puoi prendere le tue preziose ore di IT man e affrontare direttamente rischi reali come SQL injection piuttosto che dedicare centinaia di ore all’installazione di patch e aggiornamenti, la maggior parte dei quali non è necessario o che gestiscono rischi così piccoli da essere trascurabili.
Per ulteriori informazioni su beSECURE si prega di utilizzare il modulo in questa pagina o contattarci.