- 1. Progetto e realizzazione dell'infrastruttura di monitoraggio
ed analisi in una farm per la rilevazione di attacchi web a siti
remoti Relatore: Prof. Alberto Bartoli Correlatore: Ing. Eric
Medvet Laureando: Marco Mauri
2. Architettura del progetto Marco Mauri A.A. 2007/2008 3.
Requisiti del progetto
-
- Risorse monitorate: alcune migliaia
-
- Ogni istanza comunicasolocol controllore
-
- Deve essere possibile aggiungere/rimuovere istanze con
interventi minimi sul controllore
-
- Deve essere possibile spegnere/riaccendere istanze senza
operare sul controllore
Marco Mauri A.A. 2007/2008 4. Requisiti: Controllore
-
- Tutti i comandi tra interfaccia grafica ed istanzedevonopassare
per il controllore
- Gestisce utenti / profile / warden
-
- Noti solo al controllore (che li fornisce allinterfaccia
grafica)
Marco Mauri A.A. 2007/2008 5. Algoritmo alto livello (1)
-
- distribuisce itasksulle istanze (creazione, modifiche, )
-
- richiede periodicamente gli alert alle istanze
-
- Prelevano e analizzano risorse (eseguono task
continuamente)
-
- Rispondono a richieste del controllore
Marco Mauri A.A. 2007/2008 6. Algoritmo alto livello (2) Marco
Mauri A.A. 2007/2008 7. Architettura del sistema alerts task warden
snapshot HTML ICEFaces Facelets Lazy Load db timer heartbeat load
index fetcher download dep. analizer feeder aggregator sensors db
cache alerts task warden snapshot Alert fetcher Instance checker
Repair thread 8. Istanza: cosa fa (1)
- Il compito di unistanza di scaricare eanalizzarepagine web
- Lanalisi di una pagina corrisponde allesecuzione di untask
- Deve schedulare lesecuzione periodica dei task, ogni task viene
schedulato da untimerEJB diverso
Marco Mauri A.A. 2007/2008 9. Istanza: cosa fa (2)
- Ogni esecuzione di un task comporta:
- Downloadpagina web associata al task
- Analisi e downloaddipendenze
- Rilevazione deidefacemented invioalert
Marco Mauri A.A. 2007/2008 10. Istanza: cosa fa (3) Marco Mauri
A.A. 2007/2008 11. Istanza: transazioni e coerenza dei dati
- Ogni esecuzione di task corrisponde ad unatransazione
- Le transazioni forniscono atomicit:
-
- Se non ci sono errori i dati vengono salvati
-
- In caso di errori non gestiti tutte le modifiche effettuate
nella transazione sono annullate
-
- Tutte le modifiche = database + timer
Marco Mauri A.A. 2007/2008 12. Istanza: analisi di una pagina
(1)
- Per implementare gli algoritmi di rilevazione defacement sono
stati scritte tre tipologie di componenti:
Marco Mauri A.A. 2007/2008 13. Istanza: analisi di una pagina
(2)
-
- Analizzanouna particolare caratteristica di una pagina (numero
di link, url delle immagini,)
-
- Puramentefunzionali , non hanno stato
-
- Sensori numerici: sensori particolari che restituiscono solo
numeri
Marco Mauri A.A. 2007/2008 14. Istanza: analisi di una pagina
(3)
-
- Usano i sensori numerici per creare modello della pagina
-
- Confrontano modello con risultati correnti per rilevare
defacement
-
- Fornisce i dati agli aggregatori
-
- Decide quando aggiornare lo stato degli aggregatori
Marco Mauri A.A. 2007/2008 15. Istanza: analisi dipendenze
- Ogni pagina web dipende da altre risorse
- Le dipendenze sono indispensabili per analizzare completamente
la pagina
- Alcuni sensori appositi vengono utilizzati per ottenere le
dipendenze
Marco Mauri A.A. 2007/2008 16. Istanza: caching delle pagine
web
- Scaricare sempre le risorse e le loro dipendenze consuma molta
banda
- HTTP fornisce nativamente supporto al caching per minimizzare
la banda
- Purtroppo poche pagine web lo sfruttano
- Fortunatamente quasi tutte le immagini lo usano
Marco Mauri A.A. 2007/2008 17. Controllore: modalit di
interazione
-
- server per linterfaccia grafica
-
- Interfaccia grafica web, per gli utenti finali
-
- Interfaccia a linea di comando, per noi
- Entrambe basate su invocazione di metodi remoti EJB
Marco Mauri A.A. 2007/2008 18. Istanze
-
- Insieme di istanze fisicamente vicine
-
- Gestite con libreria di clustering (Shoal)
-
- Il controllore deve conoscere solounaistanza del gruppo
-
-
- Scopre automaticamente le altre
-
-
- E notificato automaticamente di crash/recovery
Marco Mauri A.A. 2007/2008 19. Controllore: indici di carico
- Indicano quanto occupata unistanza
- I due indici principali sono:
-
- Percentuale processore utilizzato
-
- Memoria di massa utilizzata
- Nel caso di gruppi ogni istanza conosce tutti gli indici del
gruppo
- Usati per scegliere listanza a cui assegnare un nuovo task
Marco Mauri A.A. 2007/2008 20. Controllore: coerenza dati
(1)
- DB di istanze e controllore devono esserecoerenti
-
- Controllore: Istanza X esegue Task Y
-
- Istanza X: Task Y in esecuzione
- Molte operazioni richiedono modifiche adueDB
-
- DB controllore, DB istanza
- Alcune addirittura atreDB
-
- Migrazione task tra istanze
Marco Mauri A.A. 2007/2008 21. Controllore: coerenza dati
(2)
- Guastiduranteoperazioni possono rendere DB incoerenti
- Soluzione: Transazioni distribuite
-
- Difficili da implementare
-
- Non offerte dal nostro J2EE container
Marco Mauri A.A. 2007/2008 22. Controllore: coerenza dati
(3)
- Soluzione: sipermettonoincongruenzetemporanee
- Periodicamente viene eseguito un repair thread che rileva e
corregge eventuali incongruenze
-
- Esempio: guasti tra 1 e 2
Marco Mauri A.A. 2007/2008 23. Controllore: repair thread Marco
Mauri A.A. 2007/2008 24. Controllore: tecniche per la riduzione di
banda
- I trasferimenti degli snapshot consumano molta banda, necessari
metodi per ridurla
- Snapshot light : contengono solo i dati di una risorsa, senza
le sue dipendenze
- Caching : utilizzando una cache si riduce il numero di
richieste necessarie
Marco Mauri A.A. 2007/2008 25. Ringraziamenti
- Oltre che dalle conoscenze tecnichetutto il lavoro svolto stato
reso possibile grazie alla
- di tutti i componenti dello staff.
Marco Mauri A.A. 2007/2008 26. Tecnologie utilizzate (1)
-
- Transazionalit, gestione automatica della concorrenza,
invocazione di procedure remote
-
- Mappa automaticamente oggetti java in tabelle di un
database
-
- Implementa i due standard precedenti
Marco Mauri A.A. 2007/2008 27. Tecnologie utilizzate (2)
-
- Scoperta automatica aggiunta/rimozione nodi
-
- Cache condivisa: condivisione dati tra i nodi
-
- Utilizzato internamente da GlassFish
Marco Mauri A.A. 2007/2008 28. Tecnologie utilizzate (3)
-
- Anche se apparentemente simile al XML ha una sintassi
profondamente diversa
-
- Molte pagine web sono piene di errori
-
- Permette lanalisi di tag soup
Marco Mauri A.A. 2007/2008 29. Tecnologie utilizzate (4)
- JPA permette lindipendenza dal database utilizzato
- Le prove sono state effettuate con due noti DBMS open
source:
- Dal punto di vista del programma non ci sono differenze tra i
due
Marco Mauri A.A. 2007/2008 30. Controllore: tipi di alert
- Esistono tre tipi di alert:
-
- Network alert : segnalano problemi di connessione alla risorsa
richiesta
-
- Content alert : segnalano un possibile defacement
-
- Instance Alert : segnalano un problema riguardante
unistanza
Marco Mauri A.A. 2007/2008 31. Controllore: gestione degli
alert
- Usa gli alert per avvertire gli interessati dei problemi
- Periodicamente si connette alle istanze per ottenere nuovi
alert
- Alert pendenti:alert noti al controllore ma non ancora visti
dagli interessati
Marco Mauri A.A. 2007/2008 32. Controllore: algoritmo di invio
notifiche degli alert Marco Mauri A.A. 2007/2008