Hacking di applicazioni Web 2.0 con Firefox

18 dicembre 2006

Questa è la traduzione dell'articolo Hacking Web 2.0 Applications with Firefox di Shreeraj Shah pubblicato originariamente su SecurityFocus il 10 novembre 2006. La traduzione viene qui presentata con il consenso dell'editore.

Introduzione

Ajax e i Web service formano l'ossatura delle applicazioni cosiddette “Web 2.0″. La trasformazione tecnologica in atto porta con sé nuove sfide per gli esperti di sicurezza.

Questo articolo ha lo scopo di indagare alcuni metodi, strumenti e stratagemmi per analizzare in profondità applicazioni Web 2.0 (gestite con Ajax) e per scoprire bug di sicurezza con il solo aiuto di Firefox e di alcune sue estensioni. Questo articolo si propone di far comprendere:

  • L'architettura delle applicazioni Web 2.0 e le loro implicazioni nel campo della sicurezza.
  • Alcune tecniche di sicurezza, tra le quali: scoperta di chiamate nascoste, problemi di navigazione e messa a nudo della logica Ajax
  • L'analisi delle chiamate XmlHttpRequest (XHR) con l'estensione Firebug per Firefox.
  • La simulazione di eventi automatici del browser con l'estensione Chickenfoot per Firefox.
  • Il debugging delle applicazioni web dal punto di vista della sicurezza con il debugger di Firebug.
  • Un approccio metodologico per la scoperta di vulnerabilità.

Uno sguardo alle applicazioni Web 2.0

Il termine “Web 2.0″ fa riferimento ad una nuova generazione di applicazioni web nate grazie all'adozione di di nuovi strumenti tecnologici. I Web service basati su XML eseguiti grazie a SOAP, XML-RPC e REST stanno potenziando le componenti server-side. Utilizzando Ajax e componenti del tipo RIA (Rich Internet Application), come quelle offerte da Flash, le interfacce per gli utenti finali diventano più ricche.

Queste mutazioni tecnologiche hanno un impatto sull'intera architettura delle applicazioni web e sui sistemi di comunicazione fra client e server. Allo stesso tempo questo cambiamento ha aperto nuove sfide e nuovi problemi per quanto riguarda la sicurezza.

Nuovi worm come Yamanner, Samy and Spaceflash sono riusciti a sfruttare per le proprie finalità nocive le infrastrutture “client-side” gestite con Ajax inaugurando nuovi tipi di attacchi informatici e compromettendo informazioni confidenziali

Figura 1: la struttura di un'applicazione Web 2.0

la struttura di un'applicazione Web 2.0

Come viene mostrato nella figura, i processi che coinvolgono il browser, visibili nella parte sinistra, possono essere suddivisi nei seguenti livelli:

  • Il livello di presentazione: HTML e CSS forniscono l'intero aspetto dell'applicazione all'interno della finestra del browser.
  • Logica e processo: il motore JavaScript del browser offre alle applicazioni le capacità di svolgere i compiti di esecuzione e di comunicazione. Tutti i componenti gestiti da Ajax vengono inclusi all'interno di questo livello.
  • Trasporto: XMLHttpRequest (XHR). Questo oggetto provvede alla gestione delle comunicazioni asincrone e allo scambio di dati basato su XML tra il client e il server e attraverso il protocollo HTTP(S).

Le componenti lato server mostrate nella parte destra della figura 1, solitamente collocate all'interno dell'infrastruttura aziendale dietro un firewall, possono includere sia Web service sia tradizionali risorse proprie delle applicazioni web. Una risorsa Ajax che viene eseguita all'interno del browser può interfacciarsi direttamente con i Web service basati su XML e scambiare informazioni e dati senza necessità di eseguire un refresh della pagina. L'intero processo di comunicazione è nascosto all'utente finale: in altre parole questi non si accorgerà di nessun redirect (rindirizzamento). L'uso di refresh e redirect sono tipici della logica di funzionamento delle applicazioni Web di prima generazione. Nelle applicazioni Web 2.0, grazie all'uso di Ajax, questi fenomeni sono molto ridotti.

Se vuoi aggiornamenti su Hacking di applicazioni Web 2.0 con Firefox inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Hacking di applicazioni Web 2.0 con Firefox

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy