Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Progetto e realizzazione dell'infrastruttura di monitoraggio ed analisi in una farm per la rilevazione di attacchi web a s...
Architettura del progetto Marco Mauri A.A. 2007/2008
Requisiti del progetto <ul><li>Scalabilità </li></ul><ul><ul><li>Istanze: alcune decine </li></ul></ul><ul><ul><li>Risorse...
Requisiti: Controllore <ul><li>Punto unico di comando </li></ul><ul><ul><li>Tutti i comandi tra interfaccia grafica ed ist...
Algoritmo alto livello (1) <ul><li>Controllore: </li></ul><ul><ul><li>distribuisce i  task  sulle istanze (creazione, modi...
Algoritmo alto livello (2) Marco Mauri A.A. 2007/2008
Architettura del sistema alerts task warden snapshot HTML ICEFaces Facelets Lazy Load db timer heartbeat load index fetche...
Istanza: cosa fa (1) <ul><li>Il compito di un’istanza è di scaricare e  analizzare  pagine web </li></ul><ul><li>L’analisi...
Istanza: cosa fa (2) <ul><li>Ogni esecuzione di un task comporta: </li></ul><ul><li>Download  pagina web associata al task...
Istanza: cosa fa (3) Marco Mauri A.A. 2007/2008
Istanza: transazioni e coerenza dei dati <ul><li>Ogni esecuzione di task corrisponde ad una  transazione </li></ul><ul><li...
Istanza: analisi di una pagina (1) <ul><li>Per implementare gli algoritmi di rilevazione defacement sono stati scritte tre...
Istanza: analisi di una pagina (2) <ul><li>Sensori </li></ul><ul><ul><li>Analizzano  una particolare caratteristica di una...
Istanza: analisi di una pagina (3) <ul><li>Aggregatori </li></ul><ul><ul><li>Usano i sensori numerici per creare modello d...
Istanza: analisi dipendenze <ul><li>Ogni pagina web dipende da altre risorse </li></ul><ul><li>Le dipendenze sono indispen...
Istanza: caching delle pagine web <ul><li>Scaricare sempre le risorse e le loro dipendenze consuma molta banda </li></ul><...
Controllore: modalità di interazione <ul><li>Opera da: </li></ul><ul><ul><li>server per l’interfaccia grafica </li></ul></...
Istanze <ul><li>Istanza singola </li></ul><ul><li>Gruppi di istanze </li></ul><ul><ul><li>Insieme di istanze “fisicamente ...
Controllore: indici di carico <ul><li>Indicano quanto è “occupata” un’istanza </li></ul><ul><li>I due indici principali so...
Controllore: coerenza dati (1) <ul><li>DB di istanze e controllore devono essere  coerenti </li></ul><ul><ul><li>Controllo...
Controllore: coerenza dati (2) <ul><li>Guasti  durante  operazioni possono rendere DB incoerenti  </li></ul><ul><li>Soluzi...
Controllore: coerenza dati (3) <ul><li>Soluzione: si  permettono  incongruenze  temporanee </li></ul><ul><li>Tutte le oper...
Controllore: repair thread Marco Mauri A.A. 2007/2008
Controllore: tecniche per la riduzione di banda <ul><li>I trasferimenti degli snapshot consumano molta banda, necessari me...
Ringraziamenti <ul><li>Oltre che dalle conoscenze tecniche  tutto il lavoro svolto è stato reso possibile grazie alla </li...
Tecnologie utilizzate (1) <ul><li>Enterprise Java Beans : </li></ul><ul><ul><li>Transazionalità, gestione automatica della...
Tecnologie utilizzate (2) <ul><li>Shoal: </li></ul><ul><ul><li>Libreria di clustering </li></ul></ul><ul><ul><li>Scoperta ...
Tecnologie utilizzate (3) <ul><li>Html Parser : </li></ul><ul><ul><li>Anche se apparentemente simile al XML ha una sintass...
Tecnologie utilizzate (4) <ul><li>JPA permette l’indipendenza dal database utilizzato </li></ul><ul><li>Le prove sono stat...
Controllore: tipi di alert <ul><li>Esistono tre tipi di alert: </li></ul><ul><ul><li>Network alert : segnalano problemi di...
Controllore: gestione degli alert <ul><li>Usa gli alert per avvertire gli interessati dei problemi </li></ul><ul><li>Perio...
Controllore: algoritmo di invio notifiche degli alert Marco Mauri A.A. 2007/2008
Upcoming SlideShare
Loading in …5
×

Progetto e realizzazione dell'infrastruttura di monitoraggio ed analisi in una farm per la rilevazione di attacchi web a siti remoti

527 views

Published on

Published in: Technology, Design
  • Be the first to comment

  • Be the first to like this

Progetto e realizzazione dell'infrastruttura di monitoraggio ed analisi in una farm per la rilevazione di attacchi web a siti remoti

  1. 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. 2. Architettura del progetto Marco Mauri A.A. 2007/2008
  3. 3. Requisiti del progetto <ul><li>Scalabilità </li></ul><ul><ul><li>Istanze: alcune decine </li></ul></ul><ul><ul><li>Risorse monitorate: alcune migliaia </li></ul></ul><ul><li>Autonomia delle istanze </li></ul><ul><ul><li>Ogni istanza comunica solo col controllore </li></ul></ul><ul><ul><li>Deve essere possibile aggiungere/rimuovere istanze con interventi minimi sul controllore </li></ul></ul><ul><ul><li>Deve essere possibile spegnere/riaccendere istanze senza operare sul controllore </li></ul></ul>Marco Mauri A.A. 2007/2008
  4. 4. Requisiti: Controllore <ul><li>Punto unico di comando </li></ul><ul><ul><li>Tutti i comandi tra interfaccia grafica ed istanze devono passare per il controllore </li></ul></ul><ul><li>Gestisce utenti / profile / warden </li></ul><ul><ul><li>Noti solo al controllore (che li fornisce all’interfaccia grafica) </li></ul></ul><ul><ul><li>Non noti alle istanze </li></ul></ul>Marco Mauri A.A. 2007/2008
  5. 5. Algoritmo alto livello (1) <ul><li>Controllore: </li></ul><ul><ul><li>distribuisce i task sulle istanze (creazione, modifiche, …) </li></ul></ul><ul><ul><li>richiede periodicamente gli alert alle istanze </li></ul></ul><ul><li>Istanze </li></ul><ul><ul><li>Prelevano e analizzano risorse (eseguono task continuamente) </li></ul></ul><ul><ul><li>Rispondono a richieste del controllore </li></ul></ul>Marco Mauri A.A. 2007/2008
  6. 6. Algoritmo alto livello (2) Marco Mauri A.A. 2007/2008
  7. 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. 8. Istanza: cosa fa (1) <ul><li>Il compito di un’istanza è di scaricare e analizzare pagine web </li></ul><ul><li>L’analisi di una pagina corrisponde all’esecuzione di un task </li></ul><ul><li>Deve schedulare l’esecuzione periodica dei task, ogni task viene schedulato da un timer EJB diverso </li></ul>Marco Mauri A.A. 2007/2008
  9. 9. Istanza: cosa fa (2) <ul><li>Ogni esecuzione di un task comporta: </li></ul><ul><li>Download pagina web associata al task </li></ul><ul><li>Analisi e download dipendenze </li></ul><ul><li>Rilevazione dei defacement ed invio alert </li></ul><ul><li>Salvataggio dati </li></ul>Marco Mauri A.A. 2007/2008
  10. 10. Istanza: cosa fa (3) Marco Mauri A.A. 2007/2008
  11. 11. Istanza: transazioni e coerenza dei dati <ul><li>Ogni esecuzione di task corrisponde ad una transazione </li></ul><ul><li>Le transazioni forniscono atomicità: </li></ul><ul><ul><li>Se non ci sono errori i dati vengono salvati </li></ul></ul><ul><ul><li>In caso di errori non gestiti tutte le modifiche effettuate nella transazione sono annullate </li></ul></ul><ul><ul><li>Tutte le modifiche = database + timer </li></ul></ul>Marco Mauri A.A. 2007/2008
  12. 12. Istanza: analisi di una pagina (1) <ul><li>Per implementare gli algoritmi di rilevazione defacement sono stati scritte tre tipologie di componenti: </li></ul><ul><ul><li>Sensori </li></ul></ul><ul><ul><li>Aggregatori </li></ul></ul><ul><ul><li>Feeder </li></ul></ul>Marco Mauri A.A. 2007/2008
  13. 13. Istanza: analisi di una pagina (2) <ul><li>Sensori </li></ul><ul><ul><li>Analizzano una particolare caratteristica di una pagina (numero di link, url delle immagini,…) </li></ul></ul><ul><ul><li>Puramente funzionali , non hanno stato </li></ul></ul><ul><ul><li>Sensori numerici: sensori particolari che restituiscono solo numeri </li></ul></ul>Marco Mauri A.A. 2007/2008
  14. 14. Istanza: analisi di una pagina (3) <ul><li>Aggregatori </li></ul><ul><ul><li>Usano i sensori numerici per creare modello della pagina </li></ul></ul><ul><ul><li>Confrontano modello con risultati correnti per rilevare defacement </li></ul></ul><ul><li>Feeder </li></ul><ul><ul><li>Fornisce i dati agli aggregatori </li></ul></ul><ul><ul><li>Decide quando aggiornare lo stato degli aggregatori </li></ul></ul>Marco Mauri A.A. 2007/2008
  15. 15. Istanza: analisi dipendenze <ul><li>Ogni pagina web dipende da altre risorse </li></ul><ul><li>Le dipendenze sono indispensabili per analizzare completamente la pagina </li></ul><ul><li>Alcuni sensori appositi vengono utilizzati per ottenere le dipendenze </li></ul>Marco Mauri A.A. 2007/2008
  16. 16. Istanza: caching delle pagine web <ul><li>Scaricare sempre le risorse e le loro dipendenze consuma molta banda </li></ul><ul><li>HTTP fornisce nativamente supporto al caching per minimizzare la banda </li></ul><ul><li>Purtroppo poche pagine web lo sfruttano </li></ul><ul><li>Fortunatamente quasi tutte le immagini lo usano </li></ul>Marco Mauri A.A. 2007/2008
  17. 17. Controllore: modalità di interazione <ul><li>Opera da: </li></ul><ul><ul><li>server per l’interfaccia grafica </li></ul></ul><ul><ul><li>client per le istanze </li></ul></ul><ul><li>Due modalità di accesso: </li></ul><ul><ul><li>Interfaccia grafica web, per gli utenti finali </li></ul></ul><ul><ul><li>Interfaccia a linea di comando, per “noi” </li></ul></ul><ul><li>Entrambe basate su invocazione di metodi remoti EJB </li></ul>Marco Mauri A.A. 2007/2008
  18. 18. Istanze <ul><li>Istanza singola </li></ul><ul><li>Gruppi di istanze </li></ul><ul><ul><li>Insieme di istanze “fisicamente vicine” </li></ul></ul><ul><ul><li>Gestite con libreria di clustering (Shoal) </li></ul></ul><ul><ul><li>Il controllore deve conoscere solo una istanza del gruppo </li></ul></ul><ul><ul><ul><li>Scopre automaticamente le altre </li></ul></ul></ul><ul><ul><ul><li>E’ notificato automaticamente di crash/recovery </li></ul></ul></ul>Marco Mauri A.A. 2007/2008
  19. 19. Controllore: indici di carico <ul><li>Indicano quanto è “occupata” un’istanza </li></ul><ul><li>I due indici principali sono: </li></ul><ul><ul><li>Percentuale processore utilizzato </li></ul></ul><ul><ul><li>Memoria di massa utilizzata </li></ul></ul><ul><li>Nel caso di gruppi ogni istanza conosce tutti gli indici del gruppo </li></ul><ul><li>Usati per scegliere l’istanza a cui assegnare un nuovo task </li></ul>Marco Mauri A.A. 2007/2008
  20. 20. Controllore: coerenza dati (1) <ul><li>DB di istanze e controllore devono essere coerenti </li></ul><ul><ul><li>Controllore: “Istanza X esegue Task Y” </li></ul></ul><ul><ul><li>Istanza X: “Task Y in esecuzione” </li></ul></ul><ul><li>Molte operazioni richiedono modifiche a due DB </li></ul><ul><ul><li>DB controllore, DB istanza </li></ul></ul><ul><li>Alcune addirittura a tre DB </li></ul><ul><ul><li>Migrazione task tra istanze </li></ul></ul>Marco Mauri A.A. 2007/2008
  21. 21. Controllore: coerenza dati (2) <ul><li>Guasti durante operazioni possono rendere DB incoerenti </li></ul><ul><li>Soluzione: Transazioni distribuite </li></ul><ul><li>Scartata: </li></ul><ul><ul><li>Difficili da implementare </li></ul></ul><ul><ul><li>Non offerte dal nostro J2EE container </li></ul></ul><ul><ul><li>Pesanti a run-time </li></ul></ul>Marco Mauri A.A. 2007/2008
  22. 22. Controllore: coerenza dati (3) <ul><li>Soluzione: si permettono incongruenze temporanee </li></ul><ul><li>Tutte le operazioni: </li></ul><ul><ul><ul><li>Modifica DB istanza </li></ul></ul></ul><ul><ul><ul><li>Modifica DB controllore </li></ul></ul></ul><ul><li>Periodicamente viene eseguito un “repair thread” che rileva e corregge eventuali incongruenze </li></ul><ul><ul><li>Esempio: guasti tra 1 e 2 </li></ul></ul>Marco Mauri A.A. 2007/2008
  23. 23. Controllore: repair thread Marco Mauri A.A. 2007/2008
  24. 24. Controllore: tecniche per la riduzione di banda <ul><li>I trasferimenti degli snapshot consumano molta banda, necessari metodi per ridurla </li></ul><ul><li>Snapshot “light” : contengono solo i dati di una risorsa, senza le sue dipendenze </li></ul><ul><li>Caching : utilizzando una cache si riduce il numero di richieste necessarie </li></ul>Marco Mauri A.A. 2007/2008
  25. 25. Ringraziamenti <ul><li>Oltre che dalle conoscenze tecniche tutto il lavoro svolto è stato reso possibile grazie alla </li></ul><ul><li>Collaborazione </li></ul><ul><li>di tutti i componenti dello staff. </li></ul><ul><li>Grazie a tutti </li></ul>Marco Mauri A.A. 2007/2008
  26. 26. Tecnologie utilizzate (1) <ul><li>Enterprise Java Beans : </li></ul><ul><ul><li>Transazionalità, gestione automatica della concorrenza, invocazione di procedure remote </li></ul></ul><ul><li>Java Peristence Api : </li></ul><ul><ul><li>Mappa automaticamente oggetti java in tabelle di un database </li></ul></ul><ul><li>GlassFish 2 : </li></ul><ul><ul><li>Implementa i due standard precedenti </li></ul></ul>Marco Mauri A.A. 2007/2008
  27. 27. Tecnologie utilizzate (2) <ul><li>Shoal: </li></ul><ul><ul><li>Libreria di clustering </li></ul></ul><ul><ul><li>Scoperta automatica aggiunta/rimozione nodi </li></ul></ul><ul><ul><li>Cache condivisa: condivisione dati tra i nodi </li></ul></ul><ul><ul><li>Utilizzato internamente da GlassFish </li></ul></ul>Marco Mauri A.A. 2007/2008
  28. 28. Tecnologie utilizzate (3) <ul><li>Html Parser : </li></ul><ul><ul><li>Anche se apparentemente simile al XML ha una sintassi profondamente diversa </li></ul></ul><ul><ul><li>Molte pagine web sono piene di errori </li></ul></ul><ul><ul><li>Permette l’analisi di “tag soup” </li></ul></ul><ul><li>Ehcache : </li></ul><ul><ul><li>Libreria per il caching </li></ul></ul>Marco Mauri A.A. 2007/2008
  29. 29. Tecnologie utilizzate (4) <ul><li>JPA permette l’indipendenza dal database utilizzato </li></ul><ul><li>Le prove sono state effettuate con due noti DBMS open source: </li></ul><ul><ul><li>PostgreSQL </li></ul></ul><ul><ul><li>MySql </li></ul></ul><ul><li>Dal punto di vista del programma non ci sono differenze tra i due </li></ul>Marco Mauri A.A. 2007/2008
  30. 30. Controllore: tipi di alert <ul><li>Esistono tre tipi di alert: </li></ul><ul><ul><li>Network alert : segnalano problemi di connessione alla risorsa richiesta </li></ul></ul><ul><ul><li>Content alert : segnalano un possibile defacement </li></ul></ul><ul><ul><li>Instance Alert : segnalano un problema riguardante un’istanza </li></ul></ul>Marco Mauri A.A. 2007/2008
  31. 31. Controllore: gestione degli alert <ul><li>Usa gli alert per avvertire gli interessati dei problemi </li></ul><ul><li>Periodicamente si connette alle istanze per ottenere nuovi alert </li></ul><ul><li>Alert pendenti: alert noti al controllore ma non ancora visti dagli interessati </li></ul>Marco Mauri A.A. 2007/2008
  32. 32. Controllore: algoritmo di invio notifiche degli alert Marco Mauri A.A. 2007/2008

×