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

RatProxy: scanner per il Web 2.0

Da Google uno strumento open source per testare la sicurezza di ambienti Web 2.0 complessi. Gratuito e compilabile per Linux, Windows e Mac OS X.
Da Google uno strumento open source per testare la sicurezza di ambienti Web 2.0 complessi. Gratuito e compilabile per Linux, Windows e Mac OS X.
Link copiato negli appunti

Ratproxy è un tool di audit passivo semi-automatico sviluppato da Google e dedicato all'analisi della sicurezza di applicazioni e siti web. Già nella documentazione ufficiale, Google sottolinea che per ottenere risultati affidabili questo tool deve essere utilizzato come supporto ad altre analisi, anche manuali, e non come strumento isolato.

Il suo utilizzo permette di individuare, in modo automatico, un determinato insieme di potenziali problemi di sicurezza informatica che potrebbero verificarsi nel complesso ambiente delle applicazioni web 2.0.

È compilabile per Linux, Mac OS X e anche Windows. In questo articolo vedremo come compilarlo (su Linux e Windows) e come generare i rapporti di base.

I vantaggi dell'utilizzo di questa applicazione rispetto ad altri prodotti disponibili sono potenzialmente:

  • la semplicità di utilizzo del tool e la leggibilità dei risultati ottenuti (che possono essere facilmente trasformati in file HTML);
  • la ridotta potenzialità di generare traffico o di interrompere e distruggere il canale di comunicazione e la trasmissione stessa dei pacchetti (nella configurazione di default il tool non genera pacchetti di test che generano rumore nella conversazione ed è quindi non distruttivo);
  • la possibilità di seguire un percorso specifico di test, più dinamico rispetto ad altri programmi (i test vengono infatti effettuati sulla base dei movimenti di un utente umano nella normale interazione con le pagine web).

I test implementati in Ratproxy sono principalmente orientati al rilevamento di problemi di cross-domain scripting , di bad caching header, di query con insufficienti protezioni XSFR, di sospetti o reali XSS/data injection, di uso improprio di HTTP o META redirector ed altre tipologie di criticità riguardanti Javascript, Java, comandi SQL, disposizione e visibilità delle directory e dei file, errori server, ecc.

Il sito ufficiale rende disponibile un file compresso (con estensione .tar.gz) pronto per essere istallato sul sistema operativo presente sulla macchina di test. Per quanto riguarda questo articolo l'ambiente di sviluppo utilizzato è una semplice distribuzione del sistema operativo GNU/Linux, in particolare faremo riferimento a Ubuntu 8.04 Desktop Edition.

La compilazione del programma è molto semplice e richiede solamente un compilatore in grado di eseguirla. Per il resto è sufficiente eseguire il comando make, che di fatto lancia la compilazione con i parametri configurati di default. L'unica libreria aggiuntiva necessaria per completare con successo la procedura di compilazione, che per quanto riguarda Ubuntu non viene distribuita con il sistema operativo di base, è quella di sviluppo di ssl. Pertanto è necessario istallarla, ad esempio attraverso il comando:

sudo apt-get install libssl-dev

A questo punto l'ambiente è pronto e il comando make si occupa del processo di creazione del file binario, producendo l'eseguibile principale: ratproxy.

La configurazione del browser

Una volta che il programma è pronto, e attende solo di essere lanciato, dobbiamo intervenire sul browser per far transitare tutte le connessioni attraverso il nostro proxy che ne analizzerà il contenuto. A seconda del browser utilizzato la procedura di configurazione potrebbe essere diversa, ma i parametri utili per il proxy rimangono costanti. Nel caso di Firefox 3 offerto insieme alla distribuzione Ubuntu Linux i passi sono i seguenti:

1. Selezionare Opzioni dal menu Strumenti;

2. Dalle configurazioni avanzate (Avanzate) selezionare la scheda Rete e premere il pulsante Impostazioni;

3. Spuntare il box Configurazione manuale dei proxy inserendo come parametri relativi alla location e alla porta rispettivamente le voci "localhost" o "127.0.0.1" e "8080". Queste configurazioni, con un po' di esperienza, possono essere sostituite per adattarsi alle reali necessità di testing. Ad esempio la porta utilizzata nell'esempio è la stessa che Ratproxy utilizza di default, ma può essere scelta in modo arbitrario dall'utente.

Eseguiamo Ratproxy

Configurato il browser possiamo lanciare, da linea di comando, il nostro tool di audit assieme ai parametri necessari e opzionali resi disponibili. Digitiamo ad esempio:

sudo ./ratproxy -v testingTrace/ -w audit.log -XClextifscgjm

Tralasciando l'elenco completo dei parametri, comunque disponibili nella documentazione presente sul sito ufficiale e nell'help del comando, evidenziamo alcune indicazioni interessanti:

  • v, specifica la directory nella quale il proxy memorizza le tracce di ogni operazione relativa alla navigazione ed alle connessioni stabilite. Le tracce sono molto numerose, si consiglia di indicare una directory differente per ogni sessione di test.
  • w, specifica il file di log che memorizza il flusso di messaggi scambiati tra il browser e l'applicazione web oggetto di test e rappresenta la fonte di dati che popoleranno il report delle verifiche in formato HTML.
  • p, specifica la porta utilizzata dal proxy (di default è 8080).
  • d, specifica il dominio che deve essere oggetto dei test.

Ratproxy può essere interrotto in ogni momento utilizzando la classica combinazione CTRL + C che fermerà l'attività di monitoring del flusso di comunicazione e il conseguente riempimento del file di log e della directory delle tracce.

Figura 1: La directory delle tracce
La directory delle tracce

I report

Non resta che rendere i risultati più leggibili all'occhio umano, utilizzando uno strumento di trasformazione che prende in input il file di log specificato con l'opzione -w e lo trasforma in un output in formato html. Il comando da seguire è il seguente:

sh ratproxy-report.sh audit.log > audit.html

La figura mostra l'intestazione del report generato e la legenda che indica al tester in che modo vengono evidenziate le criticità riscontrate durante la fase di analisi.

Figura 2: L'intestazione del report
L'intestazione del report

Il report è organizzato in paragrafi che individuano uno specifico sottoinsieme di errori rilevati. Nell'immagine che segue è mostrato un esempio di errore a priorità alta e quindi con la casella HIGH di colore rosso, afferente alla categoria "file path in query parameters". Ratproxy è ottimizzato per individuare molti threat relativi al mondo del web 2.0 con estrema precisione, rimanendo comunque negli intenti degli sviluppatori una versione beta.

Figura 3: Il report
Il report

Per ogni categoria possono essere presenti più occorrenze di errori, ognuno sintetizzato in una tabella che indica:

  • l'indice di gravità del problema;
  • il metodo della chiamata (es. POST o GET);
  • la URL richiesta;
  • il codice di risposta del server;
  • il payload;
  • la risposta restituita;
  • il valore offerto;
  • altri parametri utili come ad esempio il mime type.
Figura 4: Il report (2)
Il report (2)

È opportuno ricordare che, così come indicato dagli stessi sviluppatori nella documentazione e nei report, non vi è nessuna responsabilità per quanto riguarda il contenuto dei risultati e la loro accuratezza, consigliando in ogni caso una successiva verifica manuale degli eventuali problemi riscontrati.

Ratproxy per Windows

Se non si avesse a disposizione un ambiente linux, Ratproxy può essere compilato anche su sistemi Windows, a patto di avere istallato l'ambiente di emulazione Cygwin.

In caso contrario è opportuno eseguire il processo di istallazione di Cygwin, dopo averlo scaricato dal sito ufficiale (www.cygwin.com). L'installer segue gli stessi passi di un qualsiasi altro programma per Windows, l'unica accortezza è quella di indicare i componenti aggiuntivi necessari alla compilazione ed all'esecuzione di Ratproxy.

In particolare è indispensabile istallare quattro componenti che solitamente non vengono indicati nella configurazione di default:

  1. Make, localizzato nella categoria Devel
  2. Gcc-core, localizzato sempre nella categoria Devel
  3. Openssl-dev, anch'esso nella categoria Devel
  4. Openssl (The OpenSSL runtime environment), presente nella categoria Libs oppure Net

Una volta concluso il processo di caricamento dell'ambiente Cygwin si passa alla compilazione del software. Prima di eseguire il comando make è indispensabile modificare opportunamente il Makefile per eliminare alcuni parametri non compatibili con il compilatore presente in Cygwin. Nello specifico, la piccola modifica che occorre apportare è quella di eliminare nel testo la stringa -Wno-pointer-sign, lasciando inalterato tutto il resto. Salvare e uscire.

Un ultimo sforzo si rende a questo punto necessario, bisogna infatti effettuare il download di un file: il cosiddetto Flare action script decompiler, per Windows. Il file è disponibile sulla rete e l'eseguibile deve essere copiato nella directory Ratproxy/flare-dist.

Ora è possibile lanciare la compilazione con il comando make e attendere il completamento e la generazione del file binario.

Da questo momento in poi il funzionamento è analogo a quello visto per Ubuntu nella prima parte dell'articolo, l'unica differenza è la necessità di inserire la directory Cygwin/bin nel path di Windows, come mostra la figura che segue.

Figura 5: Il path di Windows
Il path di Windows


Ti consigliamo anche