Il paradigma del "nessun sistema è sicuro al 100%" si può tranquillamente applicare anche ai siti web. Negli ultimi anni, questi si sono evoluti notevolmente, passando da semplici pagine statiche scritte in HTML a piattaforme molto più complesse, che che si appoggiano a Content Management System (CMS) e che a loro volta utilizzano plugin di terze parti. Queste novità portano con sé possibili vulnerabilità, possibili punti di accesso per malintenzionati. Ma anche una semplice pagina statica, con un form da compilare, può essere utilizzata per un attacco.
Come rendere il più sicuro possibile il nostro sito web?
Fortunatamente, la rete ci viene incontro, mettendo a disposizione una serie di tool che ci permettono di effettuare dei test per verificare la sicurezza del nostro sito nei confronti di attacchi noti e possibili vulnerabilità.
Con questa guida andremo a presentare 10 strumenti gratuiti, molti dei quali adatti anche per i meno esperti in ambito di sicurezza, che analizzano siti e applicazioni Web.
Netsparker community edition
NetSparker Community Edition è la versione gratuita di False Positive free scanner Netsparker, di cui condivide le caratteristiche principali. È in grado di scovare problemi legati a SQL injection, ossia la presenza di codice maligno all'interno di codice SQL, e Cross-site scripting (XSS, l'inserimento di codice maligno all'interno di pagine web), garantendo di non produrre falsi positivi.
Quando Netsparker identifica una SQL Injection, può identificare come sfruttarla automaticamente e con una serie di verifiche determinare che non si tratta di un falso positivo. Lo stesso vale per altre vulnerabilità come XSS dove Netsparker carica il codice maligno in un browser e osserva l'esecuzione di JavaScript per confermare che l'injection venga effettivamente eseguita nel browser. I report finali possono essere esportati in vari formati, tra cui XML, RTF/Word e PDF.
Netsparker Community Edition è completamente gratuito e non richiede alcuna registrazione, ma può girare solamente su sistemi Windows con i seguenti prerequisiti:
- Microsoft Windows XP (SP 2 o superiore), Windows 7, Windows Vista (SP1 o superiore, Windows Server 2003 (SP1 oo superiore), Windows Server 2008
- Supporto 32-bit e 64-bit
- Microsoft Internet Explorer 6 o superiore
- Microsoft .NET Framework 3.5 Service Pack 1 Runtime
- Processiore 1Ghz Pentium o superiore
- Minimo 512 MB di RAM, raccomandato 1 GB
- 100 MB di spazio libero su disco per l'installazione (più spazio aggiuntivo per i report della scansione)
Websecurify
Websecurify è un tool open-source in grado di scoprire le vulnerabilità di applicazioni web tramite l'utilizzo di strumenti avanzati di scansione. La facilità d'uso lo rende un ottimo strumento di analisi sia per gli esperti che per coloro che hanno meno pratica in materia di web security. È sufficiente infatti inserire il "target", ossia l'URL del sito web da analizzare, per avere un report dettagliato delle vulnerabilità, con una struttura alberata in base alla categoria del bug.
La lista delle vulnerabilità scovate automaticamente sono:
- SQL Injection
- Local and Remote File Include
- Cross-site Scripting
- Cross-site Request Forgery
- Information Disclosure Problems
- Session Security Problems
Oltre ad avere un supporto multilingua e una serie di add-on che ne estendeno le potenzialità, Websecurify è multi-piattaforma, dato che può essere installato sui sistemi Windows, Mac Os X e Linux.
Wapiti
Anche Wapiti è un prodotto open-source per l'analisi della sicurezza delle applicazioni Web. A differenza di altri software, considera il target come una black-box, ossia come una scatola chiusa: non viene fatta la scansione del codice sorgente dell'applicazione, bensì va alla ricerca di script e form in cui si possano inserire dati. Una volta ottenuti i dati, Wapiti utilizza le tecniche del fuzzing al fine di verificare l'effettiva vulberabilità.
Wapiti può rilevare le seguenti vulnerabilità:
- File Handling Errors (Local and remote include/require, fopen, readfile...)
- Database Injections (PHP/JSP/ASP SQL Injections and XPath Injections)
- XSS (Cross Site Scripting) Injection
- LDAP Injection
- Command Execution detection (eval(), system(), passtru()...)
- CRLF Injection (HTTP Response Splitting, session fixation...)
Al momento è disponibile per Windows, Mac Os X e Linux e in 3 lingue: inglese, francese e spagnolo.
N-Stalker free version
N-Stalker Free Version è la versione ridotta della versione Professional, che include comunque una serie di test per una completa analisi di applicazioni web e webserver.
Nonostante la versione gratuita sia ridotta nel database di signature con cui svolgere i test, contiene comunque ben 18000 signature e altri controlli, tra cui:
- Web Server security check
- Backup security check
- Cross-site Scripting
È un prodotto consigliato per uso personali, per piccole infrastrutture e organizzazioni no-profit. Disponibile solo per Windows.
Skipfish
Sono 3 le funzioni principali che caratterizzano Skipfish, strumento di analisi di sicurezza delle applicazioni web:
- scritto interamente in C, ottimizzato per la gestione delle richieste HTTP, con un basso utilizzo della CPU, Skypfish è in grado di eseguire 2000 richieste al secondo
- facilità d'uso
- Pochi falsi positivi, controlli di sicurezza differenziale in grado di scovare una serie di vulnerabilità note.
Attualmente ancora in versione beta, Skypfish è disponibile per Linux, Free BSD, Mac Os X e Windows (tramite l'utilizzo di cygwin).
Scrawlr
Scrawlr, sviluppato da HP Web Security Research Group in coordinamento con Microsoft Security Response Center (MSRC), è l'abbreviazione di "SQL Injector e Crawler". Scrawlr esegue la scansione di un sito web e contemporaneamente analizzare i parametri di ogni singola pagina per vulnerabilità di tipo SQL Injection. Scrawlr è estremamente veloce e permette di rilevare dinamicamente gli attacchi SQL Injection al volo.
Tra le caratteristiche principali:
- Identifica vulnerabilità SQL Injection all'interno di una URL
- Può essere configurato per utilizzare un proxy server per accedere al sito web
- Identifica automaticamente il tipo di server SQL in uso
- Estra in nomi delle tabelle per garantire nessun falso positivo
Scrawlr è disponibile solo su piattaforme Windows.
Watcher
Watcher è un add-on di Fiddler, un proxy di web debugging che raccoglie tutti i dati del traffico tra il nostro computer ed Internet. Watcher, integrato quindi con Fiddler, agisce come un tool di analisi passivo per le applicazioni web.
Passivo significa che effettua le analisi senza "attaccare" le Web application, è completamente sicuro da usare nel cloud computing e in ambienti di hosting condiviso e dedicato.
Agisce in background, durante la nostra navigazione, e esegue oltre 30 test di analisi, andando a identificare context-switching tra connessioni HTTP e HTTPS, potenziali XSS, bug in SSL, Flash, Silverlight e molto altro.
Le sue caratteristiche principali sono:
- rilevamento passivo
- lavora, in background, con applicazioni Web 2.0
- non intrusivo
- analisi real-time
- reportistica real-time
- domini configurabili
- estendibile con aggiunta di controlli (oltre ai 30 di default)
Watcher gira solamente su sistemi Windows.
X5S
Così come Watcher, anche X5S è un add-on di Fiddler, il cui obiettivo è di prevenire attacchi XSS verificando la codifica dei caratteri. Il suo obiettivo principale è quindi di evidenziare situazioni in cui si possa verificare un attacco XSS, determinando dove:
- non sono applicati codifiche sicure all'input inserito dall'utente
- la codifica Unicode dei caratteri è stata modificata per oltrepassare filtri di sicurezza
- la codifica UTF8 dei caratteri è stata modificata per oltrepassare filtri di sicurezza
Il suo utilizzo è orientato per esperti, con conoscenza di codifica e XSS, in quanto x5s si limita a segnalare eventuali problemi, la cui risoluzione è poi demandata all'utente. X5S è disponibile solo per sistemi Windows.
Exploit-me
Exploit-me è un insieme di 3 add-on per Firefox:
- XSS-Me per rilevare vulnerabilità XSS
- SQL Inject-Me per testare vulnerabilità di tipo SQL injection
- Access-Me per verificare vulnerabilità negli accessi all'applicazione
Essendo un plugin per Firefox, Exploit-Me è disponibile per Windows, Mac Os X e Linux.
Webscarab
WebScarab è un tool che raccoglie e analizza traffico HTTP e HTTPS. Può essere utilizzato in vari modi, ma nel suo uso più comune, WebScarab opera come un proxy in grado di sniffare traffico http(s), consentendo all'utente di rivedere e modificare le richieste create dal browser prima di essere inviati al server, e di rivedere e modificare le risposte restituite dal server prima di essere ricevute dal browser. WebScarab è disponibile per Windows, Mac Os X e Linux.
Infine, una piccola chicca: per chi vuole testare le sue capacità in ambito di web security esiste Damn Vulnerable Web App (DVWA). Si tratta di un'applicazione scritta in PHP su MySQL che permette di valutare le proprie capacità e gli strumenti in un contesto legale, e aiuta gli sviluppatori web a comprendere meglio i processi di protezione delle applicazioni e gli studenti per imparare nozioni di sicurezza delle applicazioni web.