UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della.

Slides:



Advertisements
Presentazioni simili
OWASP e le 10 vulnerabilità più critiche delle applicazioni Web
Advertisements

Active Server Pages ed ADO. Scrivere ASP Le pagine ASP possono contenere codice HTML o XML Le parti del documento che racchiudono codice script vanno.
Linux examples of Buffer overflow attacks
3 ottobre 2000Consiglio Nazionale delle Ricerche Progetto Biblio MIME 1 Consiglio Nazionale delle Ricerche Area di Ricerca di Bologna Istituto per le Applicazioni.
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME HOSTTYPE Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
CORSO DI SICUREZZA SU RETI II PROF. A. DE SANTIS ANNO 2006/07 Informatica granata Gruppo 2 ISP Gruppo 3 ISP.
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.
Public Key Infrastructure
Utilizzare PHP 5 Corso Interazione Uomo – Macchina AA 2005/2006.
Programmazione con socket
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
Mantenimento dello stato Laboratorio Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
PolyFun. Dare implementazione,funzione di astrazione, invarianti della rappresentazione. Provare che i metodi apply e bind preservano gli invarianti.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Università degli Studi di Modena e Reggio Emilia
Analisi e Contromisure di tecniche di Sql Injection
Sicurezza II Prof. Dario Catalano Autentica di Umani.
Università La Sapienza Web programming e programmazione multimediale 1 Web Programming e comunicazione multimediale Lezione 10: PHP.
UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della.
Sicurezza Informatica
Secure Shell Giulia Carboni
Laboratorio di Linguaggi note sull'uso dell' IDE DevC++ Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Specifiche senza JML: uso delle asserzioni. 2 Asserzioni in Java Dal jdk 1.4 (da Febbraio 2002) cè meccanismo per gestire asserzioni Asserzione: espressione.
1 Lezione XIII Lu 17-Nov-2005 Programmare le classi.
Introduzione a AJAX - Asynchronous Javascript And Xml
23 novembre 2000IAT-CNR Progetto Biblio MIME 1 Consiglio Nazionale delle Ricerche Area di Ricerca di Bologna Istituto per le Applicazioni Telematiche di.
Per un funzionamento corretto del servizio NIS Web vi preghiamo di seguire le indicazioni di seguito riportate: 1)Non avere installata la barra di Google.
Java Collections.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
La sicurezza può essere fornita in ciascuno degli strati: applicazione, trasporto, rete. Quando la sicurezza è fornita per uno specifico protocollo dello.
Modulo 7 – reti informatiche u.d. 2 (syllabus – )
Secure Socket Layer (SSL) Transport Layer Security (TLS)
Elaborazioni server-side: dalle CGI al PHP
Reti di Calcolatori e Sicurezza Laurea specialistica in Economia Informatica Stefano Bistarelli Università degli Studi G. DAnnunzio (Chieti – Pescara)
Un problema importante
Project Review byNight byNight December 21th, 2011.
1 Applet ed HTML Fondamenti di Informatica Corso D.
Laboratorio 4: PHP e MySQL
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Ontologia AA F. Orilia. Lez. 16 Discussione dell'approccio controfattualista di lewis condotta da Antonio De Grandis.
Sicurezza II, A.A. 2011/2012 OpenID Speaker: André Panisson, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera,
MySQL Database Management System
MyEconLab_Univerità degli studi di Milano, corso Prof.ssa Valentina Raimondi How to Access MyEconLab 1.
Distribuzione controllata del software con Systems Management Server 2003 Fabrizio Grossi.
La Crittografia nell’ambito del protocollo HTTP Classe: V istituto professionale (gestione aziendale) Obiettivo 1: Generazione di competenze e preparazione.
Oggi è lunedì il sei maggio!
1 Progettazione dettagliata di un Tipo di Dato Astratto: l’ambiente di metodi.
Specifiche. Scopo e significato delle specifiche (1) Lo scopo di una specifica è di definire il comportamento di un ’ astrazione. Gli utenti si baseranno.
1 Progettare un Tipo di Dato Astratto. 2 Scelte di Progetto (astrazione) 4 Caratteristiche degli oggetti –Modificabilità 4 Scelta delle operazioni –Realizzare.
UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della.
Ese 3 (del 3 Aprile 2003). Testo Progettare la specifica e l’implementazione del tipo di dato astratto modificabile Stack, supponendo che gli elementi.
Università degli Studi G.D’Annunzio (Pe) Corso di Laurea Specialistica in Eco.Informatica.
Ese 3 (del 3 Aprile 2003). Testo Progettare la specifica e l’implementazione del tipo di dato astratto modificabile Stack, supponendo che gli elementi.
Servizi Internet Claudia Raibulet
Università “G. d’Annunzio” Corso di Laurea Specialistica in Economia Informatica SECURE PROGRAMMING Prof. Stefano Bistarelli SEMINARIO “Authentication.
Esercitazione sull’ ordinamento 20 maggio 2003
UNITA’ 04 Uso Sicuro del Web.
L A R OUTINE D EL M ATTINO Ellie B.. Io mi sono svegliata alle cinque del mattino.
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Progetti con arduino e pic.  Il trasduttore è analogico  Trasforma la temperatura in tensione secondo la relazione V millivolts =10*t celsius Essendo.
Cenni di Crittografia Luigi Vetrano TechnoLabs S.p.A. L’Aquila, Aprile 2011.
Transcript della presentazione:

UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione Cookies poisoning Prof. Stefano Bistarelli C Consiglio Nazionale delle Ricerche Iit Istituto di Informatica e Telematica - Pisa Università “G. d’Annunzio” Dipartimento di Scienze, Pescara

UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione Cookies poisoning cookies gessable broken authentication session hijacking Prof. Stefano Bistarelli C Consiglio Nazionale delle Ricerche Iit Istituto di Informatica e Telematica - Pisa Università “G. d’Annunzio” Dipartimento di Scienze, Pescara

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 3 A3. Broken Authentication e Session Management Processo di autenticazione  Meccanismo di autenticazione implementato non adeguato Gestione delle sessioni web  HTTP protocollo stateless: è necessario implementare una corretta gestione delle sessioni

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 4 Meccanismi di autenticazione non adeguati A3. Broken Authentication

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 5 A3. Broken Authentication (2)

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 6 A.3: Concetto di “gestione della sessione” nel mondo reale Dipendente Banca A. Ferrari Mario Rossi Carta di identità Mario Rossi Buongiorno Mario Rossi Ticket #33 Verifica identità in base alla carta di identità Ticket #33: mi dia 1000 euro dal mio conto Tenga 1000 euro Sig. Rossi Verifica identità in base al ticket Meccanismo di autenticazione? Meccanismo di gestione della sessione? Livello di sicurezza del sistema? Num. 33 Firma: A.Ferrari

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 7 [1] [2] Invio form di autenticazione via HTTPS [3] inserisce username/password via HTTPS [4] Welcome page personale e Set Cookie=TWFyaW8123 Mario Rosssi Web Server --Richieste seguenti-- --Procedura di autenticazione-- Verifica credenziali: se ok  client autenticato  Generazione del cookie [6] Invio del contenuto Token di autenticazione Cookie=TWFyaW8123 Verifica del cookie:  Identifica il mittente Invio del contenuto al DEST Username/password [5] Richiesta dell’estratto CC ( mia-banca.it/cont.jsp) Cookie=TWFyaW8123 A.3: Gestione della sessione web

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 8 Se altero la GET HTTP, “forgiando” il cookie sono in grado di accedere al contenuto di un’altra persona [6a] Invio del contenuto di Paolo Verdi Verifica del cookie: TWFyaW8122  Identifica il mittente Paolo Verdi Invio del contenuto di Paolo Verdi al destinatario Mario Rossi Mario Rossi I dati relativi all’utenza di Verdi non sono stati adeguatamente protetti Cookie=TWFyaW8122 [5a]Richiesta dell’estratto CC ( mia-banca.it/cont.jsp) A.3: Furto di identità proteggerecredenziali di autenticazione token di sessione Per implementare una corretta gestione delle sessioni è necessario proteggere sia le credenziali di autenticazione di un utente che i token di sessione generati dal server ed assegnati all’utente

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 9 A.3: Errata gestione della sessione - Furto di identità Cookie poisoning Alterando campi forniti al client tramite un cookie (stato), un attaccante puo’ impersonare un utente per accedere a servizi web. Cookie: lang=en-us; ADMIN=no; y=1 ; time=10:30GMT ; Cookie: lang=en-us; ADMIN=yes; y=1 ; time=12:30GMT ; Cookie guessable Cookie:aefdsg6757nb90 ;  M.Rossi Cookie:aefdsg6757nb92 ;  G.Verdi Cookie:aefdsg6757nb9? ;  V.Bianchi

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 10 Review your account Find where the confidential data is

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 11 So Many Cookies TestSess ‘Site cookie’ Seg TestPerm ProfileAddressVerified ProfileID MEMUSER USERID SESSIONUSERID PROFILE

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 12 Eliminate each one until the ones that matter are left In this case ‘SESSIONUSERID=505741’ Is the number incremental? Keep everything the same except decrement the number – ‘SESSIONUSERID=505740’

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 13 Victoria’s Secret Victoria’s Secret, November 27, 2002 Order ID parameter in the order status page Order status page bound to your session, but not the parameters $50,000 fine and publicity in 2003 Victoria’s Secret

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 14 Quale e’ la soluzione al problema? Suggerimenti..

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 15 Usare hashing, encryption, nonces, timestamp

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 16 Lab: In this scenario, you have a public-facing web application accepts anonymous requests from the Internet. Cookies are used to store state on the client machines, but the cookies are being tampered with by malicious users, leading to possible cross-site scripting attacks and general data tampering mischief.

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 17 Controllando codice:  Page_load chiama display_cookie string cookieValue = readCookie(); if (null == cookieValue) { lblCookieInfo.Text = "No cookie was found."; } else { // Note that there is an XSS vulnerability here. // The user can change the contents of any cookie! lblCookieInfo.Text = "Cookie found: " + cookieValue; } Su tag:  Possiamo usare cookie come input e fare un XSS attack come prima!!!  (provare a settare come cookie alert(‘ciao’)

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 18 Modifichiamo cookie in black  Per IE andare sotto C:\Documents and Settings\Stefano Bistarelli\Cookies  Per firefox C:\Documents and Settings\Stefano Bistarelli\Dati applicazioni\Mozilla\Firefox\Profiles  Nota:  E se lo modifichiamo con lo …. ?? Funziona!!! Ma su IE no 

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 19 Perche? IE ha un controllo sulla lunghezza dei cookies  Ma ora lo bypassiamo  Usiamo tool per editare cookies iecv.zip  Altro problema i caratteri   Bypassiamo Usiamo X al posto dei caratteri vietati e popi editiamo a mano il file!! FUNZIONA!!!

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 20 Difesa: Controllare i cookies come se fossero un input!!  Al solito  A tamper detector: Add new item, new class TamperDetector using System; using System.Text; using System.Security.Cryptography; using System.Configuration; public class TamperDetector { public static string AddTamperDetection(string s) { return s; } public static string CheckAndRemoveTamperDetection(string s) { return s; } public static string GenerateRandomKey() { return string.Empty; } public class DataTamperingException : Exception { public DataTamperingException(string msg) : base(msg) {} }

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 21 AddTamperDetection public static string AddTamperDetection(string s) { byte[] data = Encoding.UTF8.GetBytes(s); byte[] hash = getKeyedHash().ComputeHash(data); return Convert.ToBase64String(hash) + '|' + s; } static HMACSHA1 getKeyedHash() { string skey = ConfigurationManager.AppSettings["validationKey"]; byte[] key = Convert.FromBase64String(skey); return new HMACSHA1(key); }

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 22 CheckAndRemoveTamperDetection public static string CheckAndRemoveTamperDetection(string s) { int i = s.IndexOf('|'); if (-1 == i) throw new DataTamperingException("Unexpected format."); string prefix = s.Substring(0, i); string suffix = s.Substring(i + 1); byte[] hash = Convert.FromBase64String(prefix); byte[] data = Encoding.UTF8.GetBytes(suffix); byte[] computedHash = getKeyedHash().ComputeHash(data); if (!isEqual(hash, computedHash)) throw new DataTamperingException("String has been modified!"); return suffix; } static bool isEqual(byte[] a, byte[] b) { if (a.Length != b.Length) return false; for (int i = 0; i < a.Length; ++i) if (a[i] != b[i]) return false; return true; }

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 23 GenerateRandomKey Usata per salvare su web.config la chiave per fare hash public static string GenerateRandomKey() { byte[] rnd = new byte[16]; // 128 bits new RNGCryptoServiceProvider().GetBytes(rnd); return Convert.ToBase64String(rnd); }

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 24 Change to write and read cookie cookie.Value = TamperDetector.AddTamperDetection(value); return TamperDetector.CheckAndRemoveTamperDetection(cookie.Value);

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 25 Gestione ecc su displaycookie Cambia displaycookie per gestire eccezione void displayCookie() { try { string cookieValue = readCookie(); if (null == cookieValue) { lblCookieInfo.Text = "No cookie was found."; } else { // Note that there is an XSS vulnerability here. // The user can change the contents of any cookie! lblCookieInfo.Text = "Cookie found: " + cookieValue; } catch (DataTamperingException) { lblCookieInfo.Text = "Cookie has been tampered with or corrupted!"; }

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 26 Aggiunta chiave a web.config Aggiungi a Page_Load in Default.aspx  lblRandomKey.Text = TamperDetector.GenerateRandomKey(); Run: Copia su web.config la stringa

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 27 Se ora modifico i cookie  Errore!!!