Politecnico di Milano Analisi e Valutazione sulla sicurezza delle applicazioni web generate con WebML/WebRatio Luca Carettoni -

Slides:



Advertisements
Presentazioni simili
Perché.NET di Marco Maraglino don't worry...B-bright !
Advertisements

ARI sezione di Parma Sito ariparma ARI sezione di Parma.
Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
CORSO DI SICUREZZA SU RETI II PROF. A. DE SANTIS ANNO 2006/07 Informatica granata Gruppo 2 ISP Gruppo 3 ISP.
Sicurezza e concorrenza nelle basi di dati
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
La riduzione dei privilegi in Windows
Utilizzare PHP 5 Corso Interazione Uomo – Macchina AA 2005/2006.
Gestione dei laboratori Come rendere sicura la navigazione internet e l'uso della rete Lorenzo Nazario.
Java Enterprise Edition (JEE)
Mantenimento dello stato Laboratorio Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Connessione con MySQL.
una interfaccia internet per il sistema Momis
Analisi e Contromisure di tecniche di Sql Injection
OUTLINE Riprogettazione del database del portale Web della Facoltà di Ingegneria Sviluppo di una applicazione WEB DB : HOMEPAGE DOCENTI Architettura multilivello.
Sicurezza II Prof. Dario Catalano Autentica di Umani.
1 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dellutente? Introdurremo i concetti di verifica e validazione.
UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della.
17/12/02 1 Direzione Sviluppo Servizi su rete, Banche dati IRIDE Infrastruttura di Registrazione e IDEntificazione.
Gioco di Ruolo Sicurezza su Reti II /07 Commessa – Ufficiale Pagatore Gruppo 1 - NIC Albano Pietro Castiglione Arcangelo Rossomando Enrico Tortora.
Corso di Sicurezza su Reti II
Gruppo ISP1 Commessa tuttipunti.org. Sommario Descrizione commessa Organizzazione del lavoro Lavoro svolto Problematiche di sicurezza Impostazioni di.
Progetto Sicurezza 2 Fase di setup Prof. A. De Santis
1 Il protocollo HTTP seconda parte Larosa Sabatino.
Daniel Stoilov Tesi di Laurea
Architettura Java/J2EE
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Gruppo Directory Services Rapporto dell'attivita' svolta - Marzo 2000.
Guida IIS 6 A cura di Nicola Del Re.
1 Modello di utilizzo n° 1 Login al sistema. 2 Accedere al sistema con autenticazione debole: PASSWORD ? PASSWORD scaduta ? La password è adeguata alle.
Corso Drupal 2013 Andrea Dori
Printserver2.pg.infn.it (VM Xen in esecuzione su redhat cluster)
Creare pagine web Xhtlm. Struttura di una pagina.
Un problema importante
Il World Wide Web Lidea innovativa del WWW è che esso combina tre importanti e ben definite tecnologie informatiche: Documenti di tipo Ipertesto. Sono.
Obiettivi di Design Rappresentano, in un prodotto software, le basi del successivo sviluppo del prodotto, perché, su di esse, si fondano le scelte prese.
FASTVID RENTALS: CONCLUSIONI I PUNTI DI FORZA DEL PROGETTO, GLI SVILUPPI FUTURI 1.
Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,
Amministrazione della rete: web server Apache
Politecnico di Torino maggio DIDAMATICA 2011 Insegnare Futuro EXCEL4PS&SP – 6 Maggio 2011 Prof. Nicola Armenise, PhD I.T.E.S. “A. Olivetti” -
Virtualization by Security A novel antivirus for personal computers Università degli Studi di Bergamo Corso di Laurea Specialistica In Ingegneria Informatica.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Roma, 9 maggio 2005 Luca Nicoletti – Unità Disegno e progettazione Sistemi Access Management centralizzato per applicazioni WEB: l’esperienza del MEF.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Education & Training Training per Microsoft Access 97 Perché Education & Training ? Perché StartPoints crede nell’importanza strategica delle Risorse Umane.
ASP.NET – Autenticazione e Sicurezza basata sui ruoli
Sviluppo per Pocket PC con SQL Server CE 2.0 Fabio Santini Silvano Coriani.NET Developer Evangelist Microsoft Corporation.
Sicurezza II, A.A. 2011/2012 OpenID Speaker: André Panisson, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera,
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Extension pack per IIS7 Piergiorgio Malusardi IT Pro Evangelist
DIGITAL FOLDER Pesatori Carlo
PiattaformePiattaformePiattaformePiattaforme Antonio Cisternino 28 Gennaio 2005 OpenSourceOpenSourceOpenSourceOpenSource e ProprietarieProprietarieProprietarieProprietarie.
Reti di calcolatori e sicurezza “Configurare il web-server Apache” a cura di Luca Sozio.
Tecnologie lato Server: i Server Web © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto.
Eprogram informatica V anno.
TOE Livello Applicativo Target Of Evaluation: livello applicativo Analisi applicazione GP (prenotazioni visite specialistiche) Analisi applicazione GA.
31 ottobre Security Assessment per Cassa Centrale Analisi delle modalità di deployment di server e di postazioni utente. Simulazione di consulente.
Seat 2007 Vulnerability Assessment. Background  Start-up Avvio del Vulnerability Assessment, svolto con il contributo della Funzione DITP-TI e DINT,
12 dicembre Analisi di sicurezza dell’applicazione SISS Security Assessment dell’applicativo e Reversing del client.
Realizzazione di hotspot wireless per l’Università degli Studi di Milano Marcello Meroni, Michele de Varda, DIVISIONE TELECOMUNICAZIONI UNIVERSITÀ DEGLI.
Interazione Persona Computer prova di progetto Gruppo: IO Componenti: Carlo Solimando Sito analizzato:
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
PHP HyperText Prepocessor.  Linguaggio di scripting lato server sviluppato per generare pagine web.  Permette ad un sito web di diventare dinamico 
23 giugno Analisi dei Servizi al Cittadino Stato Avanzamento Lavori.
INFN-AAI Autenticazione e Autorizzazione Dael Maselli Tutorial INFN-AAI Plus Marzo 2012.
Transcript della presentazione:

Politecnico di Milano Analisi e Valutazione sulla sicurezza delle applicazioni web generate con WebML/WebRatio Luca Carettoni - 31 Maggio 2005

- 2 - Sicurezza nelle web application Un requisito importante, al pari di quelli funzionali, che spesso viene trascurato… Le applicazioni diventano sempre più aperte e flessibili; garantire il paradigma CIA non è un compito semplice: HTTP è un protocollo debole Un web server, per sua stessa natura, è un servizio esposto con meccanismi più o meno funzionali di autenticazione e/o autorizzazione Applicazioni data-intensive sono un obiettivo appetibile per un stima che il 70% delle applicazioni analizzate, presenta delle vulnerabilità rilevanti. Qualche esempio: Sql Injection,Transversal Directory, XSS, etc.. $query = sprintf("SELECT * FROM %s WHERE owner='%s' AND nickname='%s'", $this->table, $this->owner, $alias); $res = $this->dbh->query($query); E se $alias contenesse ' UNION ALL SELECT * FROM address WHERE '1'='1 ?

- 3 - Web Hacking Methodology utilizzata per le applicazioni WebML/WebRatio Due livelli di analisi: Modello concettuale Considerazioni generali sulluso di un metodo formale per lo sviluppo; Mapping tra elementi del modello e valutazione dei rischi; Implementazione automatica delle applicazioni Profiling; Tentativi di attacco alla piattaforma di deployment; Tentativi di attacco ai meccanismi di autenticazione; Tentativi di attacco ai meccanismi di autorizzazione; Tentativi di attacco alla gestione delle sessioni; Problematiche di Input Validation; Tentativi di attacco alla base di dati;

- 4 - Valutazione dei rischi associati al modello Utilizzare un modello formale per lo sviluppo di software permette di avere una visione globale del progetto, oltre ad aiutare le varie fasi dello sviluppo stesso (analisi di sicurezza compresa!) Nei tools che utilizzano il modello è possibile effettuare controlli in maniera automatica (Es: Validità dellhypertext) Sono molteplici i casi di attacco sferrati su pagine di test, che andavano rimosse…test.php, debug.asp e sqlquery.jsp Generare del codice da un modello formale pone una serie di problematiche intrinseche: Replicazione degli errori Approccio black-box VS (quasi) white box Sviluppo agevolato Tutti possono fare web application Ogni elemento del modello è un potenziale candidato per differenti vulnerabilità

- 5 - Casi di studio: Acme e Gestione Corsi Seguendo lo schema precedentemente illustrato abbiamo analizzato due applicazioni implementate con WebRatio. Forniamo ora una brevissima panoramica sui risultati: Profiling - a livello applicativo: simulando una normale interazione dellutente e attraverso lo studio del progetto WebRatio - a livello di piattaforma di deployment: manualmente e con strumenti di scansione automatica (Nmap, Amap, Nikto, Nessus, etc.) Anche da remoto, si evince che la piattaforma di deployment risulta esser una configurazione base dellapplication server Apache Tomcat con servizi di management attivati, presenza di file di esempio, directory listing, ect. Attacco alla piattaforma di deployment La versione di Tomcat presente con WebRatio è SOLAMENTE una piattaforma usabile in fase di testing, sebbene lintegrazione possa indurre ad usare inizialmente il servizio integrato.

- 6 - Casi di studio: Acme e Gestione Corsi Tentativi di attacco ai meccanismi di autenticazione - SQL-Backend Login Form Meccanismo fondamentalmente sicuro a causa della buona validazione dellinput effettuata tramite il framework Struts. Meccanismo fondamentalmente sicuro a causa della buona validazione dellinput effettuata tramite il framework Struts. SELECT A1.oid_2, A2.groupoid, A4.siteviewid FROM usertable A1, usertable A2, grouptable A3, siteviewtable A4 WHERE (A1.username = admin ) --) AND ((A1.password = $pass) OR (A1.password IS NULL AND $pass IS NULL)) AND (A1.oid_2 = A2.oid_2) AND (A2.groupoid = A3.oid_2) AND (A3.siteviewoid = A4.oid_2) E però possibile fare di più: Confronto tra hash invece che tra coppie di password Eventuali timeout per applicazioni critiche Abilitare SSL

- 7 - Casi di studio: Acme e Gestione Corsi Tentativi di attacco ai meccanismi di autorizzazione - Concetto di SiteView, Utenti e Gruppi. - Meccanismo comune di RBAC Meccanismo concettualmente sicuro, anche se allinterno della singola SiteView non viene definito automaticamente un meccanismo forte di separazione dei dati tra utenti con gli stessi privilegi. Tale vulnerabilità permette un attacco denominato Horizontal Privilege Escalation. Cosa si può fare: Abilitare lopzione Use URL checksum for pages nelle security properties; Introdurre meccanismi a livello di logica applicativa;

- 8 - Casi di studio: Acme e Gestione Corsi Tentativi di attacco alla gestione delle sessioni - Cookies contenenti un Session ID - Stringhe alfanumeriche da 32 caratteri - Sembrerebbe il risultato di una digest function (MD5 forse!) applicata ad informazioni legate allutente con un seme random (timestamp+seed forse!) Attaccare questo aspetto significa, in pratica, essere in grado di generare dei fake token. Ma non è un compito semplice! Se fosse MD5(Epoch Time, Server Secret, Pass, User) sarebbe computazionalmente impossibile un attacco a forza bruta. Validazione dellinput Struts fornisce un ottimo sub-framework per la validazione. In aggiunta: Definire delle validazioni specifiche per il contesto applicativo (WebRatio permette luso di predicati ed espressioni regolari) Porre attenzione a tutti gli input, file compresi! (vedi vulnerabilità nella gestione degli stores in Acme! )

- 9 - Conclusioni WebML e WebRatio possono veramente agevolare ed aiutare lo sviluppo di unapplicazione, anche per gli aspetti legati alla sicurezza. La validazione dellinput, problema principale delle web apps, sembra ridotto grazie alluso del framework OpenSource Struts e dei ValidatorBean. Serve comunque sempre uno sviluppo attento che cerchi di porre rimedio ad eventuali problemi tramite la logica applicativa e che adotti tutte le soluzioni fornite dallambiente di sviluppo per assicurare la confidenzialità, lintegrità e la disponibilità dei dati. Sono a vostra disposizione per eventuali domande. Grazie per lattenzione!