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

Sniffing con Wireshark

Impariamo ad utilizzare il packet analyzer Open Source Wireshark per osservare cosa viene effettivamente veicolato su una rete, in modo da capire meglio perché il problema della sicurezza dei Web services è tanto pressante e richiede soluzioni robuste.
Impariamo ad utilizzare il packet analyzer Open Source Wireshark per osservare cosa viene effettivamente veicolato su una rete, in modo da capire meglio perché il problema della sicurezza dei Web services è tanto pressante e richiede soluzioni robuste.
Link copiato negli appunti

Una volta introdotto il WSDL alla base dei nostri esempi e organizzati i progetti di base, possiamo effettuare delle prove di invocazione del servizio da remoto. Tramite Wireshark osserveremo cosa viaggia effettivamente sulla rete, in modo da vedere con i nostri occhi perché il problema della sicurezza è tanto pressante e richiede soluzioni robuste.

In primo luogo, provvediamo a lanciare l’Application Server con il progetto PresentazioneServer deployato. Nell’esempio mostrato viene utilizzato un server JBoss di tipo "default vanilla", ossia senza configurazioni personalizzate. Volendo eseguire una prova di connessione da un computer remoto, sarà necessario lanciare il server su un un generico 0.0.0.0 o l’host utilizzato dalla scheda di rete (individuabile tramite comando ipconfig /all su sistemi Windows o ifconfig su sistemi Linux).

In JBoss il parametro è impostabile tramite la scheda del server nell’interfaccia grafica messa a disposizione da Eclipse (vista Java EE), o in caso di lancio dell’AS da console tramite opzione –b. Ipotizziamo di lanciare il server su 0.0.0.0, come da immagine seguente.

Figura 1. Overview dei parametri del server JBoss
Overview dei parametri del server JBoss

Una volta completato l’avvio del server, se tutto è andato a buon fine lo troveremo presso l’URL:

http://localhost:8080/Presentazione/PresentazioneService/ServizioPresentazioneIF?wsdl

Eventualmente si potrà sostituire a “localhost” l’host corretto per individuarlo da remoto. Utilizzando da remoto il client creato, e impostando l’host relativo alla macchina ospitante il server, se non dovessero sorgere altri problemi (come l'irraggiungibilità del server) dovremmo ottenere la risposta all’invocazione operata. A questo punto, appurato che tutto è funzionante, avviamo Wireshark e cominciamo a “sniffare” il traffico sulla rete, magari impostando un filtro per discriminare il traffico cui siamo effettivamente interessati (ad esempio un filtro del tipo ip.src==192.168.1.100 o ip.dst==192.168.1.100 con il quale indicare che siamo interessati al solo traffico che ha origine o destinazione nell’host indicato).

Figura 2. Sniffing del traffico di rete, invocazione dei una operazione sul Web service
Invocazione dei una operazione sul Web service
Figura 3. Sniffing del traffico di rete, risposta dal Web service
Risposta dal Web service

Nelle immagini proposte possiamo osservare la sequenza di messaggi sniffati, con evidenziati i messaggi di invocazione dell’operazione e di risposta, entrambi su protocollo HTTP/XMI (XMI, XML Metadata Interchange, è un protocollo standard OMG per lo scambio, definizione, manipolazione e integrazione di informazioni tramite l’XML).

In particolare, per entrambi i messaggi possiamo facilmente ricavare l’origine e la destinazione dalla riga relativa al protocollo in uso (Internet Protocol Version 4, Src e Dst), i porti origine e destinazione (nel nostro caso il servizio è in attesa sul porto 8080, ma anche se lanciato su altri porti si può filtrare senza problemi), ma soprattutto l’intero messaggio SOAP in chiaro.

Esplorando il contenuto dell’Envelope SOAP è semplice ricavare l’operazione invocata, i parametri di invio, la successiva risposta e in generale tutto quanto può servire per carpire informazioni, creare pacchetti fasulli, sostituirsi agli effettivi attori. Da notare che la situazione descritta è semplicemente riproducibile su Web services RESTful, sia che i dati viaggino come XML che come JSON.

Tutto ciò che è stato descritto è ottenibile con uno sniffer free e Open Source scaricabile in qualsiasi momento. Risulta evidente il grosso rischio derivante dall’utilizzo di Web services privi di misure di sicurezza. I Web services basano lo scambio di dati sull’XML e su protocolli di uso comune come HTTP. Ciò da un lato ha permesso di semplificare l’interoperabilità e l’elaborazione dei dati grazie a messaggi testuali che contengono meta-informazioni strutturate utili a identificare cosa sta viaggiando, dall’altro l’invio di dati in chiaro agevola falle nella gestione della sicurezza. Nella prossima lezione si fornirà un resoconto delle soluzioni ai problemi fin qui evidenziati.

Ti consigliamo anche