Introduzione
In passato, molti siti web popolari sono stati violati. Gli hacker sono attivi e cercano sempre di violare i siti web e perdere dati. Questo è il motivo per cui i test di sicurezza delle applicazioni web sono molto importanti. Ed è qui che entrano in gioco i web application security scanner.
Uno scanner di sicurezza per applicazioni web è un programma software che esegue test automatici black-box su un’applicazione web e identifica le vulnerabilità di sicurezza. Gli scanner non accedono al codice sorgente; eseguono solo test funzionali e cercano di trovare le vulnerabilità di sicurezza. Sono disponibili vari scanner di vulnerabilità delle applicazioni web, a pagamento e gratuiti.
In questo post, stiamo elencando i migliori scanner gratuiti open-source di vulnerabilità delle applicazioni web. Sto aggiungendo gli strumenti in ordine casuale, quindi per favore non pensate che sia una classifica di strumenti.
Sto aggiungendo solo strumenti open-source che possono essere utilizzati per trovare vulnerabilità di sicurezza nelle applicazioni web. Non sto aggiungendo strumenti per trovare vulnerabilità del server. E non confondete gli strumenti gratuiti con quelli open-source! Ci sono vari altri strumenti disponibili gratuitamente, ma non forniscono il codice sorgente ad altri sviluppatori. Gli strumenti open-source sono quelli che offrono il codice sorgente agli sviluppatori in modo che gli sviluppatori possano modificare lo strumento o aiutare in un ulteriore sviluppo.
Questi sono i migliori strumenti open-source di penetration testing delle applicazioni web.
Grabber
Grabber è uno scanner di applicazioni web che può rilevare molte vulnerabilità di sicurezza nelle applicazioni web. Esegue scansioni e dice dove esiste la vulnerabilità. Può rilevare le seguenti vulnerabilità:
- Cross-site scripting
- Iniezione SQL
- Test Ajax
- Inclusione file
- Analizzatore di codice sorgente JS
- Controllo file di backup
Non è veloce rispetto ad altri scanner di sicurezza, ma è semplice e portatile. Dovrebbe essere usato solo per testare piccole applicazioni web perché richiede troppo tempo per scansionare applicazioni di grandi dimensioni.
Questo strumento non offre alcuna interfaccia grafica. Inoltre non può creare alcun rapporto in PDF. Questo strumento è stato progettato per essere semplice e per uso personale. Se state pensando ad un uso professionale, non ve lo consiglio.
Questo strumento è stato sviluppato in Python ed è disponibile anche una versione eseguibile se volete. Il codice sorgente è disponibile, quindi potete modificarlo secondo le vostre esigenze. Lo script principale è grabber.py, che una volta eseguito chiama altri moduli come sql.py, xss.py o altri.
Scaricalo qui.
Codice sorgente su GitHub.
Vega
Vega è un altro scanner di vulnerabilità web open-source gratuito e piattaforma di test. Con questo strumento, è possibile eseguire test di sicurezza di un’applicazione web. Questo strumento è scritto in Java e offre un ambiente basato su GUI. È disponibile per OS X, Linux e Windows.
Può essere usato per trovare SQL injection, header injection, directory listing, shell injection, cross-site scripting, file inclusion e altre vulnerabilità delle applicazioni web. Questo strumento può anche essere esteso utilizzando una potente API scritta in JavaScript.
Quando si lavora con lo strumento, permette di impostare alcune preferenze come il numero totale di discendenti del percorso, il numero di percorsi figli di un nodo e la profondità e il numero massimo di richieste al secondo. È possibile utilizzare Vega Scanner, Vega Proxy e Proxy Scanner, e anche la scansione con credenziali. Se hai bisogno di aiuto, puoi trovare risorse nella sezione della documentazione:
La documentazione è qui.
Scarica Vega qui.
Zed Attack Proxy
Zed Attack Proxy è anche conosciuto come ZAP. Questo strumento è open-source ed è sviluppato da OWASP. È disponibile per le piattaforme Windows, Unix/Linux e Macintosh.
A me personalmente piace questo strumento. Può essere usato per trovare una vasta gamma di vulnerabilità nelle applicazioni web. Lo strumento è molto semplice e facile da usare. Anche se siete nuovi al penetration testing, potete facilmente utilizzare questo strumento per iniziare a imparare il penetration testing delle applicazioni web.
Queste sono le funzionalità chiave di ZAP:
- Proxy di intercettazione
- Scanner automatico
- Tradizionale ma potenti spider
- Fuzzer
- Supporto web socket
- Plug-n-hack
- Supporto autenticazione
- REST-based API
- Certificati SSL dinamici
- Smartcard e supporto certificati digitali client
È possibile utilizzare questo strumento come uno scanner inserendo l’URL per eseguire la scansione, oppure è possibile utilizzare questo strumento come un proxy di intercettazione per eseguire manualmente i test su pagine specifiche.
Scaricate ZAP qui.
Wapiti
Wapiti è uno scanner di vulnerabilità web che permette di verificare la sicurezza delle vostre applicazioni web. Esegue test black-box scansionando le pagine web e iniettando dati. Cerca di iniettare payloads e vedere se uno script è vulnerabile. Supporta entrambi gli attacchi GET e POSTHTTP e rileva vulnerabilità multiple.
Può rilevare le seguenti vulnerabilità:
- File disclosure
- File inclusion
- Cross-site scripting (XSS)
- Rilevamento dell’esecuzione di comandi
- Iniezione CRLF
- Iniezione SEL e iniezione XPath
- Configurazione .htaccess
- Rivelazione di file di backup
- Molti altri
Wapiti è un’applicazione a riga di comando, quindi potrebbe non essere facile per i principianti. Ma per gli esperti, funzionerà bene. Per utilizzare questo strumento è necessario imparare molti comandi, che possono essere trovati nella documentazione ufficiale.
Scaricate Wapiti con il codice sorgente qui.
W3af
W3af è un popolare framework per l’attacco e la verifica delle applicazioni web. Questo framework mira a fornire una migliore piattaforma di test di penetrazione delle applicazioni web. È stato sviluppato utilizzando Python. Utilizzando questo strumento, sarete in grado di identificare più di 200 tipi di vulnerabilità delle applicazioni web tra cui SQL injection, cross-site scripting e molti altri.
È dotato di un’interfaccia grafica e console. Puoi usarlo facilmente, grazie alla sua semplice interfaccia.
Se lo stai usando con un’interfaccia grafica, non credo che incontrerai alcun problema con lo strumento. Basta selezionare le opzioni e poi avviare lo scanner. Se un sito web ha bisogno di autenticazione, è anche possibile utilizzare i moduli di autenticazione per scansionare le pagine protette dalla sessione.
Abbiamo già coperto questo strumento in dettaglio nella nostra precedente serie W3af walkthrough. Puoi leggere quegli articoli per saperne di più su questo strumento.
Puoi accedere al codice sorgente nel repository GitHub qui.
Scaricalo dal sito ufficiale qui.
WebScarab
WebScarab è un framework di sicurezza basato su Java per analizzare le applicazioni web utilizzando il protocollo HTTP o HTTPS. Con i plugin disponibili, è possibile estendere la funzionalità dello strumento.
Questo strumento funziona come un proxy di intercettazione; potete esaminare le richieste e le risposte che arrivano al vostro browser e vanno al server. Potete anche modificare la richiesta o la risposta prima che siano ricevute dal server o dal browser.
Se siete principianti, questo strumento non fa per voi. Questo strumento è stato progettato per coloro che hanno una buona comprensione del protocollo HTTP e possono scrivere codici.
WebScarab fornisce molte caratteristiche che aiutano i penetration tester a lavorare da vicino su un’applicazione web e trovare vulnerabilità di sicurezza. Ha uno spider che può trovare automaticamente nuovi URL del sito web di destinazione. Può facilmente estrarre gli script e l’HTML della pagina. Il proxy osserva il traffico tra il server e il browser, e si può prendere il controllo della richiesta e della risposta utilizzando i plugin disponibili. I moduli disponibili possono facilmente rilevare le vulnerabilità più comuni come SQL injection, XSS, CRLF e molte altre vulnerabilità.
Il codice sorgente dello strumento è disponibile su GitHub qui.
Scarica WebScarab qui.
Skipfish
Skipfish è un altro bello strumento per la sicurezza delle applicazioni web. Scansiona il sito web e poi controlla ogni pagina per varie minacce alla sicurezza. Alla fine, prepara il rapporto finale.
Questo strumento è stato scritto in C. È altamente ottimizzato per la gestione HTTP e utilizza una CPU minima. Sostiene che può facilmente gestire 2.000 richieste al secondo senza aggiungere un carico sulla CPU. Utilizza un approccio euristico durante la scansione e il test delle pagine web, e sostiene di offrire alta qualità e meno falsi positivi.
Questo strumento è disponibile per Linux, FreeBSD, MacOS X e Windows.
Scarica Skipfish o il codice da Google Codes qui.
Ratproxy
Ratproxy è uno strumento open-source di verifica della sicurezza delle applicazioni web che può essere utilizzato per trovare vulnerabilità di sicurezza nelle applicazioni web. Supporta gli ambienti Linux, FreeBSD, MacOS X e Windows (Cygwin).
Questo strumento è progettato per superare i problemi che gli utenti di solito affrontano quando usano altri strumenti proxy per i controlli di sicurezza. È in grado di distinguere tra fogli di stile CSS e codici JavaScript. Supporta anche l’attacco SSL man-in-the-middle, il che significa che puoi anche vedere i dati che passano attraverso SSL.
Puoi leggere di più su questo strumento qui.
Scaricalo qui.
SQLMap
SQLMap è un altro popolare strumento open-source di penetration testing. Automatizza il processo di trovare e sfruttare le vulnerabilità di SQL injection nel database di un sito web. Ha un potente motore di rilevamento e molte caratteristiche utili. In questo modo, un penetration tester può facilmente eseguire un controllo di SQL injection su un sito web.
Supporta una serie di server di database tra cui MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase e SAP MaxDB. Offre supporto completo per sei tipi di tecniche di SQL injection: time-based blind, Boolean-based blind, error-based, UNION query, stacked query e out-of-band.
Accede al codice sorgente su GitHub qui.
Scarica SQLMap qui.
Wfuzz
Wfuzz è un altro strumento open-source disponibile gratuitamente per i test di penetrazione delle applicazioni web. Può essere usato per forzare brutalmente i parametri GET e POST per i test contro vari tipi di iniezioni come SQL, XSS, LDAP e molti altri. Supporta anche cookie fuzzing, multi-threading, SOCK, proxy, autenticazione, brute-forcing dei parametri, proxy multipli e molte altre cose.
Questo strumento non offre un’interfaccia grafica, quindi dovrete lavorare sull’interfaccia a riga di comando.
Potete leggere di più sulle caratteristiche dello strumento qui.
Scaricate Wfuzz da code.google.com qui.
Grendel-Scan
Grendel-Scan è un altro bello strumento open-source per la sicurezza delle applicazioni web. È uno strumento automatico per trovare vulnerabilità di sicurezza nelle applicazioni web. Molte caratteristiche sono disponibili anche per il test di penetrazione manuale. Questo strumento è disponibile per Windows, Linux e Macintosh ed è stato sviluppato in Java.
Scaricate lo strumento e il codice sorgente qui.
Watcher
Watcher è uno scanner di sicurezza web passivo. Non attacca con carichi di richieste o striscia il sito web di destinazione. Non è uno strumento separato ma un add-on di Fiddler, quindi è necessario installare prima Fiddler e poi Watcher per usarlo.
Analizza silenziosamente le richieste e le risposte dall’interazione dell’utente e poi fa un rapporto sull’applicazione. Essendo uno scanner passivo, non influenzerà l’hosting del sito web o l’infrastruttura cloud.
Scaricate Watcher e il suo codice sorgente qui.
X5S
X5S è anche un add-on di Fiddler destinato a fornire un modo per trovare vulnerabilità di cross-site scripting. Questo non è uno strumento automatico, quindi è necessario capire come i problemi di codifica possono portare a XSS prima di usarlo. Dovete trovare manualmente il punto di iniezione e poi controllare dove XSS potrebbe essere nell’applicazione.
Abbiamo coperto X5S in un post precedente. Puoi fare riferimento a quell’articolo per saperne di più su X5S e XSS.
Scarica X5S e il codice sorgente da Codeplex qui.
Puoi anche fare riferimento a questa guida ufficiale per sapere come usare X5S.
Arachni
Arachni è uno strumento open-source sviluppato per fornire un ambiente di penetration testing. Questo strumento può rilevare varie vulnerabilità di sicurezza delle applicazioni web. Può rilevare varie vulnerabilità come SQL injection, XSS, inclusione di file locali, inclusione di file remoti, reindirizzamento non convalidato e molte altre.
Scarica questo strumento qui.
Parola finale
Questi sono i migliori strumenti open-source di test di sicurezza delle applicazioni web. Ho fatto del mio meglio per elencare tutti gli strumenti disponibili online. Se uno strumento non è stato aggiornato per molti anni, non l’ho menzionato qui; questo perché se uno strumento ha più di 10 anni, può creare problemi di compatibilità nell’ambiente recente.
Se sei uno sviluppatore, puoi anche unirti alla comunità di sviluppatori di questi strumenti e aiutarli a crescere. Aiutando questi strumenti, aumenterete anche la vostra conoscenza ed esperienza.
Se volete iniziare il penetration testing, vi raccomando di usare le distribuzioni Linux che sono state create per il penetration testing. Questi ambienti sono Backtrack, Gnacktrack, Backbox e BlackBuntu. Tutti questi strumenti sono dotati di vari strumenti gratuiti e open-source per il test di penetrazione dei siti web.