Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Strumenti per l'auditing delle applicazioni web

Una rassegna dei principali software che consentono di scovare le vulnerabilità presenti nelel moderne applicazioni Web
Una rassegna dei principali software che consentono di scovare le vulnerabilità presenti nelel moderne applicazioni Web
Link copiato negli appunti

Dopo aver affrontato in un precedente articolo i principali problemi di sicurezza presenti nelle moderne applicazioni web, analizziamo ora brevemente i software che un esperto di sicurezza ha a disposizione per individuare, in modo semi-automatico, le vulnerabilità presenti in un'applicazione web.

La parola auditing identifica il processo attraverso il quale si verifica che certi requisiti e standard all'interno del software siano stati raggiunti, identificando eventualmente le aree che necessitano di modifiche e miglioramenti.

Il tema dell'individuazione di falle di sicurezza è attuale oltre che estremamente interessante per i risvolti economici di tale attività: determinare e correggere gli errori software prima che l'applicazione sia effettivamente in produzione, permette di evitare ulteriori costi, ritardi sullo sviluppo e disagi per gli utenti.

Il problema della ricerca di vulnerabilità nelle applicazioni web trova prevalentemente soluzione in ambito commerciale, anche se esistono tool open source e progetti di ricerca in ambito universitario.

È importare sottolineare come questi strumenti software sono solamente un tentativo di soluzione di un problema complesso e con forte mutabilità: molte di queste applicazioni lavorano in maniera automatica cercando casi noti di vulnerabilità, mettendo quindi in campo una vasta base di conoscenza piuttosto che un vero e proprio riconoscimento automatico.

Il limite intrinseco di questi strumenti deriva anche dall'approccio utilizzato che, nella maggioranza dei casi, è di tipo online sfruttando la connessione al server, inviando particolari richieste crafted e interpretando le risposte. 

Oltre a distinguere gli strumenti tra online-offline, gli esperti utilizzano spesso una categorizzazione basata sull'interazione umana necessaria allo svolgimento dell'attività: parliamo quindi di strumenti automatici, semi-automatici o manuali. Come in tutte le attività che richiedono una forte componente d'intuito, intelligenza ed astuzia, l'uomo supera brillantemente la macchina: l'auditing svolto da personale competente è un'attività insostituibile se si vuole garantire la sicurezza dei propri applicativi.

L'importanza di analizzare manualmente le applicazioni è riassunta in un motto che incita a ricercare nella propria testa i migliori strumenti per svolgere un auditing: "I've always said, your best pentest tool is in your head" ("Come ho sempre ripetuto: il miglior strumento di penetration test è nella tua testa", Jeff Williams, esperto di sicurezza).

Strumenti come quelli presentati di seguito possono però affiancare l'esperto nello svolgimento dell'auditing, oltre ad assistere gli sviluppatori nelle fasi iniziali del progetto al fine di determinare gli errori più banali.

Per correttezza nei confronti del lettore è importante sottolineare come gli strumenti elencati non sono gli unici a disposizioni degli sviluppatori e degli esperti di security ma solamente un campione esemplificativo dei diversi approcci al problema; inoltre, come intravisto all'interno della OWASP Top Ten, i problemi delle applicazioni non sono legati solamente al codice applicativo ma possono derivare da problemi dell'installazione e configurazione dei sistemi che eseguono l'applicazione stessa: alcuni di questi software analizzano dettagliatamente anche questi aspetti.

WebInspect

Sistema operativo: Windows
Tipologia prodotto: commerciale
Azienda: SPI Dynamics

Tool molto potente, controlla circa 1500 vulnerabilità note su web server e sulle applicazioni; permette anche la ricerca di casi triviali di vulnerabilità durante il passaggio di parametri, path manipulation, command execution, password guessing, SQL injection, ecc. Supporto completo per JavaScript, Macromedia Flash e Ajax.

Dispone inoltre di una serie di strumenti utili per interagire manualmente con l'applicazione (Cookie Cruncher, HTTP editor, Encoder e Decoder per differenti standard, SQL Injector per estrarre dati da eventuali punti in cui risulti possibile compiere SQL Injection).

N-Stealth Security Scanner

Sistema operativo: Windows
Tipologia prodotto: commerciale
Azienda: N-Stalker

Prodotto principalmente destinato all'analisi dei web server; dichiara di effettuare ricerche contro oltre 30000 casistiche di problemi su HTTP e HTTPS, oltre a permettere la scrittura di firme di vulnerabilità "personalizzate".

Attraverso un motore di aggiornamento compatibile con la notazione CVE (Common Vulnerabilities and Exposures) è possibile mantenersi al passo con le vulnerabilità scoperte. Permette inoltre dei security test veloci che vanno a verificare il web server secondo le vulnerabilità presenti nella nota Top20 SANS/FBI.

AppScan

Sistema operativo: Windows
Tipologia prodotto: commerciale
Azienda: Watchfire

Ricerca comuni vulnerabilità che affliggono i web server ed a livello applicativo simula situazioni di attacco alla ricerca di falle di sicurezza. Permette l'analisi delle dieci vulnerabilità critiche individuate da OWASP oltre a numerose altre; interessante il supporto legato alle nuove tecnologie del web (XML/SOAP Test, XPath Injection) e la buona capacità di riconoscimento di XSS (Cross site scripting).

Un eccellente report oltre ad una buona velocità nel caso di piccole applicazioni rendono questo prodotto abbastanza interessante.

Figura 1: l'intrefaccia di AppScan
(clic per l'ingrandimento)

L'intrefaccia di AppScan

Web Vulnerability Scanner

Sistema operativo: Windows
Tipologia prodotto: commerciale
Azienda: Acunetix

Web Vulnerability Scanner si presenta con un'interfaccia grafica estremamente intuitiva, la migliore tra i prodotti presentati. La capacità di riconoscimento dichiarata dal produttore spazia dal Cross-Site Scripting, SQL Injection, Code execution, File Inclusion all'interessante "Google hacking", che sicuramente affronteremo in uno dei prossimi articoli. Con questo termine si vuole identificare una tecnica tramite la quale eventuali aggressori possono trarre informazioni critiche utilizzando semplicemente un motore di ricerca. Questo prodotto indicizza i contenuti dell'applicazione analizzata tramite un crawler e poi esegue le query classiche utilizzate dagli aggressori. Interessante anche la funzione HTTP Fuzzer con cui è possibile creare delle regole personalizzate che generino degli attacchi dinamici.

Un semplice esempio è quello di una richiesta HTTP con parametri in GET simile alla seguente http://www.sito.com?item=1; in questo caso è possibile definire il parametro item come una variabile che varia da 1 a 100, generando in maniera automatica una serie di richieste e valutando in maniera "fuzzy" le pagine di risposta.

Figura 2: l'intrefaccia di Web Vulnerability Scanner
(clic per l'ingrandimento)

L'intrefaccia di Web Vulnerability Scanner

Nikto

Sistema operativo: Windows, Linux, Unix
Tipologia prodotto: GPL
Sviluppatori: CIRT.net

Ricerca errori di configurazione, file e script noti, software obsoleto su HTTP e HTTPS a livello di web server. È completamente aggiornabile via Internet e dispone di un buon database costantemente aggiornato.

Sebbene non analizzi direttamente l'applicazione è considerato uno degli strumenti Open Source migliori con cui iniziare la verifica di software online; ovviamente dopo aver verificato il server è necessario approfondire l'applicazione con altri strumenti.

Burp Suite

Sistema operativo: Windows, Linux, Unix
Tipologia prodotto: Freeware
Sviluppatori: Portswigger.net

Una suite completa di strumenti per testare il livello di sicurezza delle applicazioni web. È interamente sviluppata in Java e non necessita di nessuna installazione. Per chi si occupa professionalmente di sicurezza informatica rappresenta uno strumento ideale per eseguire dei test sulle applicazioni; il suo utilizzo implica però una buona conoscenza sull'argomento oltre che una buona capacità pratica.

La suite è composta da quattro componenti (proxy, spider, repeater e intruder) che interagiscono tra loro e permettono di manipolare le richieste HTTP.

Burp proxy permette di intercettare le richieste HTTP/HTTPS che dal browser vengono inviate verso il server; in questo modo è possibile ispezionare e modificare tutti i parametri.

Nella figura successiva si vede come la richiesta verso sicurezza.html.it, effettuata tramite il browser, è intercettata dal proxy locale che mostra in maniera dettagliata i parametri della request. A questo punto si potrebbe editare direttamente qualche parametro oppure inviare la richiesta agli altri strumenti della suite.

Figura 3: l'intrefaccia di Burp Proxy
(clic per l'ingrandimento)

L'intrefaccia di Burp Proxy

Burp spider è un web spider usabile per enumerare le pagine ed i contenuti dell'applicazione in esame.

Burp repeater è uno strumento manuale per manipolare le richieste e inviarle più volte; una comoda funzione permette poi di visualizzare la risposta del server sotto forma di sorgente o di pagina html renderizzata. Questo componente è il più utile dell'intera suite, nel caso si vogliano modificare dei parametri di input (variabili in GET/POST, header field, cookie) per tentare di aggirare protezioni o immettere istruzioni dannose.

Figura 3: l'intrefaccia di Burp Repeater
(clic per l'ingrandimento)

L'intrefaccia di Burp Repeater

Burp intruder permette invece di compiere attacchi semi automatici verso una web application. Con questo strumento è possibile selezionare dei parametri in maniera dinamica, modificarne il contenuto e inoltrare più volte la richiesta verso il server; una comoda funzione di riconoscimento basata su espressioni regolari determina il risultato della pagina e fornisce un comodo report. Con questa funzionalità è possibile implementare in pochi click degli attacchi Brute Force verso pagine di login.

Terminiamo questo appuntamento invitando il lettore a provare di persona tutti gli strumenti presentati, per scoprire quale si adatta meglio al contesto applicativo in analisi. Le versioni demo o limitate nel tempo sono una buona opportunità per valutare i prodotti prima di procedere ad un eventuale acquisto.

Ti consigliamo anche