Il programma che andrò ad illustrare brevemente è Acunetix Web Vulnerability Scanner (WVS), uno tra i migliori e più intuitivi in circolazione. Ovviamente, essendo questa una guida orientata al mondo server su Linux, il tool gira su ... Windows.
Bene, detto questo riavviamo il nostro computer e selezioniamo "Windows" all'avvio (perchè tutti l'abbiamo). Va subito detto che il software ha un prezzo, e per nulla basso. Tuttavia esistono altri programmi affini sul mercato e la presente ha il solo scopo di evidenziare l'esistenza di pacchetti simili: sta a chi è interessato usare il programma più comodo o meno costoso di suo interesse.
WVS di Acunetix è uno scanner Web che, in base ad euristiche e ad un database di (possibili) vulnerabilità note, naviga ed "utilizza" il programma Web (in rete) alla ricerca di exploit. Ne abbiamo parlato anche in un altro articolo della sezione sicurezza di HTML.it.
Il programma Web, per un test più affidabile, deve essere già in uno stato di pseudo-produzione, con (possibilmente) dati al suo interno ed un database non vuoto. Consiglio vivamente - e dico vivamente - di usare una copia dello stesso e di tutti i suoi dati, database compreso, per il test: i dati di un programma non progettato con un occhio di riguardo per la sicurezza non ne usciranno molto bene (eufemismo).
WVS è in grado di evidenziare, tra le altre, falle riguardanti:
- SQL injection;
- cross site scripting;
- inclusioni dinamiche;
- esecuzione di codice su server;
- attacco alle password di accesso tramite dictionary-attack ed alla procedura di autenticazione in toto.
È presente un modulo di sniffing, ovvero è possibile controllare (manualmente) il traffico di rete da/verso l'applicazione Web testata, il modulo HTTP fuzzer, che crea URL con variabili in GET che spaziano in un insieme di valori definito manualmente o automaticamente, ed un modulo di ricerca di vulnerabilità legate alla programmazione con paradigma AJAX.
Nel caso di programmi con necessità di login, dev'essere preventivamente definita la procedura di login stessa tramite registrazione di "macro", in modo equivalente a come viene registrata graficamente una macro in MS Word o OpenOffice. Alternativamente, se il login è affidato all'autenticazione base HTTP, è sufficiente specificare username e password.
Così facendo, è possibile nel contempo testare l'applicazione per diversi login di accesso e relativi permessi (di visualizzazione, amministrazione e via dicendo). Credo che i test più utili siano quelli in relazione agli utenti non amministrativi (parlo sempre di utenti del programma Web) in quanto possedere già un account amministrativo vuol dire far ciò che si vuole, senza andare a scovare le vulnerabilità che lo possano permettere.
Una volta terminata la scansione, nel caso in cui il programma presenti vulnerabilità, il programmatore avrà di che divertirsi nel cucire i buchi, prima del rilascio definitivo.