presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di...

22
FACOLTA’ DI INGEGNERIA c.d.l. magistrale in Ingegneria Informatica PROGETTO E REALIZZAZIONE DI UNO STRUMENTO PER L'ACQUISIZIONE E TRASMISSIONE DI DOCUMENTI WEB Laureando: Relatore : Gabriele Formisano Eric Medvet

Upload: gabriele-formisano

Post on 04-Jun-2015

315 views

Category:

Education


1 download

DESCRIPTION

PRESENTAZIONE: PROGETTO E REALIZZAZIONE DI UNO STRUMENTO PER L'ACQUISIZIONE E TRASMISSIONE DI DOCUMENTI WEB

TRANSCRIPT

Page 1: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

FACOLTA’ DI INGEGNERIAc.d.l. magistrale in Ingegneria Informatica

PROGETTO E REALIZZAZIONE DIUNO STRUMENTO PER

L'ACQUISIZIONE E TRASMISSIONEDI DOCUMENTI WEB

Laureando: Relatore :Gabriele Formisano Eric Medvet

Page 2: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Lo strumento utilizzato in un progetto sullo studio di rilevazioni di attacchi informatici a siti web condotto dal “Machine Learning Lab” del dipartimento DIA dell’Università di Trieste.

Motivazioni

Page 3: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

◦ Search Redirection: reindirizzato ad un sito web scelto dall'attaccante.

◦ Search Spam: aggiunta di contenuto illegittimo, mira a manipolare i risultati dei motori di ricerca

◦ Web Defacement: modifiche non autorizzate ad un sito web, mira a compromettere la credibilità e l’ affidabilità del sito

◦ Phishing: frode online che mira a rubare dati sensibili ad un utente, inducendolo a fornire queste informazioni ad una pagina web che viene realizzata dall'attaccante in modo che imiti una pagina legittima.

Tipologie di attacco

Page 4: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Obiettivi

Lo strumento riceverà da un’ «applicazione esterna» delle richieste di elaborazione di un documento web ed eseguirà le seguenti operazioni:

Acquisizione: creazione di due file a partire dal documento web:o un file di tipo testuale che conterrà il DOM (struttura

del documento)o un file immagine (PNG), «screenshot»

(rappresentazione del documento). Trasmissione: invio dei file all’«applicazione

esterna»

Page 5: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Il DOM (Document Object Model) è API:◦ un insieme di funzioni, metodi e proprietà specifica

per rappresentare e interagire oggetti contenuti in documenti web: HTML o XML.

Struttura intermedia, usata dai browser, tra il codice e la rappresentazione visiva finale

Si è scelto di estrarre il DOM perché la struttura del documento è influenzato, non solo dal codice HTML o XML, ma anche da eventuali script che ne possano alterare la struttura

DOM: Cos’è e la sua importanza

Page 6: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

DOM

<TABLE> <TBODY> <TR> <TD>Shady Grove</TD> <TD>Aeolian</TD> </TR> <TR> <TD>Over the River, Charlie</TD> <TD>Dorian</TD> </TR> </TBODY> </TABLE>

Rappresentazione del «DOM Tree» di un documento

Page 7: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Siccome c’è la necessità di interpretare il codice con cui sono scritti i documenti web (HTML, CSS, JavaScript) lo strumento si appoggerà su un web browser

Google Chrome:◦ Possibilità di realizzare delle estensione

Le estensioni sono piccoli programmi che possono modificare e migliorare la funzionalità del browser Chrome.

Vengono create utilizzando tecnologia web

Realizzazione

Page 8: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

1. Richiesta di lavoro da parte di applicazione esterna2. apertura di un documento web su un nuovo tab del

browser,3. se necessario, verrà estratto il DOM 4. se necessario, verrà ricavato lo screenshot5. verrà generato un file “zip” in cui verranno inseriti i dati

precedentemente ottenuti6. invio del file zip7. conferma dell’arrivo del file a destinazione, inserimento

di eventuali altri url di documenti nella coda,8. chiusura del tab,9. se la coda non è vuota, ritornare al punto 1.

Algortimo Principale

Page 9: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

1. Ottenere la «root» del documento2. Ricavare tutti gli attributi:

◦ tipo di elemento (html, body,p, div, ecc...)◦ posizione nella finestra definite dalle coordinate x, y◦ dimensione del box altezza e larghezza in pixel◦ contenuto :

testo visibile per i box normali codice per gli script coppie <nome, valore> per gli attributi definiti esplicitamente

(href, src,id,class..)

3. Ottenere i figli,4. Per ogni figlio ripetere dal punto 2 fino al

completamento di tutti i nodi.

Acquisizione: Algoritmo DOM

Page 10: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

1. Caricare un documento web nel browser2. Ricavare le informazioni del documento e della finestra del

browser: altezza e larghezza3. Spostare la finestra del browser in un punto del documento

web4. Utilizando una funzione disponibile da quelle offerte da

Chrome (chrome.tabs.captureVisibleTab()) creare lo screenshot della parte visualizzata nel browser

5. Inserire lo screenshot appena ottenuto in un canvas (il canvas è un elemento HTML5 che permette la manipolazione delle immagini)

6. Spostare la finestra del browser in un altro punto7. Se non si è raggiunta la fine del documento ripetere dal

punto 28. Estrare dal canvas l'immagine totale

Acquisizione: Algoritmo Immagine

Page 11: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Esempio

Page 12: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Lo strumento dovrà colloquiare con un «applicativo esterno»

Architettura client-server Non è possibile creare un server che

funzioni internamente ad un browser Estensione si comporterà come un

client Applicativo sarà realizzato con

tecnologia lato server

Trasmissione

Page 13: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Si baserà sul protocollo HTTP, utilizzando delle funzioni AJAX:

Il messaggio di richiesta, (inviati con il metodo POST e inserendoli nei campi «form» dell’header HTTP)◦ «msg»: identifica un particolare comando («ready»,

«done», «error»)◦ «id»:identifica l'ID del documento elaborato,◦ «data»: rappresenta i dati dell'elaborazione,

Il messaggio di risposta: (codificati in formato JSON) ◦ «msg»: di tipo stringa, che identifica una particolare

risposta («ok», «end»)◦ «jobs»: è un vettore contenente i dati relativi ai documenti

da elaborare,

Protocollo di comunicazione:Messaggi

Page 14: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Protocollo di comunicazione:Richiesta

Page 15: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Protocollo di comunicazione:Risposta

Page 16: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Testare funzionalità strumento Calcolare prestazione:

◦ Misurazione del carico: Richieste evase in certo arco temporale (1 minuto)

Test

Page 17: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Sviluppo di un semplice applicativo server (PHP) che eseguirà le seguenti operazioni:◦ Ricevere interpretare i comandi e dati ◦ Generare e inviare il lavoro◦ Calcolare le prestazioni

Applicativo Server

Page 18: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Per eseguire i test si è usato un notebook con le seguenti caratteristiche:◦ processore Intel Core 2 Duo P8400 a 2.20GHz ◦ 4 Gb di ram

Si è usata una connessione ad internet ADSL 7 Mbps

Hardware e Connessione

Page 19: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

TIPO Dimensione PX (altezza)

Dimensione MB

Tempo Medio Secondi (solo DOM)

Tempo Medio Secondi (DOM + Screenshot)

Piccolo <2000 <3,5 4,7 12

Medio 2000-5000 3,5-5 6,6 23,2

Grande

>5000 >5 8,4 57

Test: divisione in gruppiI test sono stati divisi in 3 gruppi in base alla dimensione del documento e del pacchetto:

Page 20: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Sono stati selezionati 80 siti internet

per ogni gruppo si sono svolti 10 ripetizioni e ricavate delle medie pesate dei tempi, in modo da avere delle stime il più preciso possibile

Esecuzione dei Test

Page 21: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Misura Carico (solo DOM)

2 4 6 8 10 12 14 160

2

4

6

8

10

12

14

Misura del Carico (solo dom)

piccolimedigrandi

Lunghezza coda in ogni minuto

Invia

ti al m

inut

o

Page 22: Presentazione, progetto e realizzazione di uno strumento per l'acquisizione e trasmissione di documenti web

Misura Carico (DOM + Screenshot)

0 2 4 6 8 10 12 140

1

2

3

4

5

6

Misura del Carico (dom + screenshot)

piccolimedigrandi

Lunghezza coda in ogni minuto

Invia

ti al

min

uto