Progetto e realizzazione dell'infrastruttura di monitoraggio ed analisi in una farm per la...

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

If you can't read please download the document

Transcript of Progetto e realizzazione dell'infrastruttura di monitoraggio ed analisi in una farm per la...

  • 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

  • Scalabilit
    • Istanze: alcune decine
    • Risorse monitorate: alcune migliaia
  • Autonomia delle istanze
    • 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

  • Punto unico di comando
    • Tutti i comandi tra interfaccia grafica ed istanzedevonopassare per il controllore
  • Gestisce utenti / profile / warden
    • Noti solo al controllore (che li fornisce allinterfaccia grafica)
    • Non noti alle istanze

Marco Mauri A.A. 2007/2008 5. Algoritmo alto livello (1)

  • Controllore:
    • distribuisce itasksulle istanze (creazione, modifiche, )
    • richiede periodicamente gli alert alle istanze
  • 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
  • Salvataggio dati

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:
    • Sensori
    • Aggregatori
    • Feeder

Marco Mauri A.A. 2007/2008 13. Istanza: analisi di una pagina (2)

  • Sensori
    • 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)

  • Aggregatori
    • Usano i sensori numerici per creare modello della pagina
    • Confrontano modello con risultati correnti per rilevare defacement
  • Feeder
    • 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

  • Opera da:
    • server per linterfaccia grafica
    • client per le istanze
  • Due modalit di accesso:
    • 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

  • Istanza singola
  • Gruppi di 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
  • Scartata:
    • Difficili da implementare
    • Non offerte dal nostro J2EE container
    • Pesanti a run-time

Marco Mauri A.A. 2007/2008 22. Controllore: coerenza dati (3)

  • Soluzione: sipermettonoincongruenzetemporanee
  • Tutte le operazioni:
      • Modifica DB istanza
      • Modifica DB controllore
  • 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
  • Collaborazione
  • di tutti i componenti dello staff.
  • Grazie a tutti

Marco Mauri A.A. 2007/2008 26. Tecnologie utilizzate (1)

  • Enterprise Java Beans :
    • Transazionalit, gestione automatica della concorrenza, invocazione di procedure remote
  • Java Peristence Api :
    • Mappa automaticamente oggetti java in tabelle di un database
  • GlassFish 2 :
    • Implementa i due standard precedenti

Marco Mauri A.A. 2007/2008 27. Tecnologie utilizzate (2)

  • Shoal:
    • Libreria di clustering
    • 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)

  • Html Parser :
    • Anche se apparentemente simile al XML ha una sintassi profondamente diversa
    • Molte pagine web sono piene di errori
    • Permette lanalisi di tag soup
  • Ehcache :
    • Libreria per il caching

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:
    • PostgreSQL
    • MySql
  • 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