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

Burp repeater

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

L'intrefaccia di Burp Repeater

Burp intruder

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

Ti consigliamo anche