Progetto Sicurezza Codice Corretto – Codice Robusto: Metodi formali per la progettazione di codice sicuro Checklist IS Metodi Logico Formali Protocolli:

Slides:



Advertisements
Presentazioni simili
Elementi di Crittografia MAC e FUNZIONI HASH
Advertisements

La sicurezza dei sistemi informatici
Procedure e funzioni A. Ferrari.
SSL/TLS.
RTP MIDI – parte 2 Lezione 16
Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Messaggi di errore e di controllo Alberto Polzonetti
L’Informatica dal Problema alla Soluzione
Reti Private Virtuali (VPN)
Sicurezza II Prof. Dario Catalano Errori di Implementazione.
Autenticazione dei messaggi e funzioni hash
I modelli di riferimento OSI e TCP/IP
La rete in dettaglio: rete esterna (edge): applicazioni e host
3-1 User Datagram Protocol: UDP Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All.
Moving Moving Young Young Turin Turin Hydrogen Hydrogen Olympic Olympic Safe RETE MANET informazioni in movimento.
Politecnico di Milano Algoritmi e Architetture per la Protezione dellInformazione Multichannel Adaptive Information Systems Paolo Maistri Dipartimento.
Strategie per la sicurezza degli host e la sorveglianza delle reti Danilo Bruschi Mattia Monga Dipartimento di Informatica e Comunicazione Università degli.
Reti di Calcolatori Domande di riepilogo Quinta Esercitazione
Secure Shell Giulia Carboni
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
SSL (Secure Socket Layer)
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
Reti di Calcolatori IL LIVELLO RETE.
Reti di Calcolatori IL LIVELLO RETE.
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
1 Internet e nuove tecnologie Anno Accademico Prof. Flavio De Paoli Dott. Marco Loregian.
> Remote Authentication Dial In User Service
La progettazione di un sistema informatico
Norman Security Suite Sicurezza premium facile da usare.
LA CRITTOGRAFIA QUANTISTICA
Il modello di riferimento OSI
Sistemi e Tecnologie Informatiche Requisiti per la realizzazione di un buon programma.
Risultati complessivi Diego Ragazzi
Fasi di progetto di SI Impostazione strategica e di disegno concettuale Implementazione Utilizzo e monitoraggio.
Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.
TCP/IP.
Prof. Antonio Martano ITIS “Pacinotti” Taranto
Connessioni wireless. introduzione Il primo standard fu creato nel 1995 dalla IEEE e fu attribuito il codice Le tecnologie utilizzate sono:  Raggi.
Reti di Calcolatori ed Internet Fabio Massimo Zanzotto.
IPSec Fabrizio Grossi.
Le ragioni della neutralità del trasporto di informazioni Associazione Provider Indipendenti Ing. Dino Bortolotto Milano, 12 novembre 2011.
Indirizzi IP e Subnet mask
ITCG “V. De Franchis” - PON FSE Modulo G/1 l’informatica”
Distributed System ( )7 TCP/IP four-layer model.
Reti Stratificazione del Protocollo. 2 Andrea Asta I protocolli oSpecificano e Rendono Comprensibile la comunicazione oNon è necessario conoscere.
Capitolo 8 La gestione di rete
1: Introduction1 Stratificazione protocollare (Protocol “Layering”) Le reti sono complesse! r Molti elementi: m host m router m link fisici dalle caratteristiche.
Lucia Melotti 1/14 Bologna, 7 luglio 2004 Aspetti di sicurezza nello scambio di messaggi XML tra un partner ebXML ed un Web Service di Lucia Melotti Relatore:
IPSEC Studente Professore Michele Di Renzo Stefano Bistarelli.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 6 -User Datagram Protocol Ernesto Damiani Lezione 1 – UDP.
Reti II Stefano Leonardi
Progettazione di basi di dati: metodologie e modelli
Software di Packet-Filtering e Port-Filtering su reti TCP/IP Come filtrare il traffico di rete in transito sulle interfacce presenti, frapponendosi tra.
I FIREWALL. COSA SONO I FIREWALL? LAN MONDO ESTERNO UN FIREWALL E’ UN SISTEMA CHE SUPPORTA UNA POLITICA DI CONTROLLO DEGLI ACCESSI FRA DUE RETI (POLITICHE.
Protocolli di rete. Sommario  Introduzione ai protocolli di rete  Il protocollo NetBEUI  Il protocollo AppleTalk  Il protocollo DLC  Il protocollo.
12 dicembre Analisi di sicurezza dell’applicazione SISS Security Assessment dell’applicativo e Reversing del client.
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Prof. G.Mastronardi1 IL PROBLEMA DEL “DENIAL of SERVICE” Politecnico di Bari – Sicurezza dei Sistemi Informatici -
Cenni di Crittografia Luigi Vetrano TechnoLabs S.p.A. L’Aquila, Aprile 2011.
II PROVA Svolgimento tramite protocollo ISO/OSI. I LIVELLO : LIVELLO FISICO Scelta del mezzo fisico; tenere conto degli standard IEEE Procedura di codifica.
Raccogliere informazioni ALCUNE DOMANDE FONDAMENTALI È stato modificato qualche componente HW o SW? Il sintomo si presenta regolarmente o ad intermittenza?
DNSSEC Sicurezza & Windows Frascati Febbraio 2012 Fulvia Costa Infn Padova.
INTERNET MAP SCENARIO Primi anni ’90: Rapida crescita della rete Internet. Nuove applicazioni multimediali. Esigenza di applicazioni security – sensitive.
Slide #: 1/232 Internet - Architettura, principali protocolli e linee evolutive Nicola Blefari Melazzi Copyright © 2005 – The McGraw-Hill Companies srl.
Transcript della presentazione:

Progetto Sicurezza Codice Corretto – Codice Robusto: Metodi formali per la progettazione di codice sicuro Checklist IS Metodi Logico Formali Protocolli: Punti Deboli Esempi Progettazione Sicura: Suggerimenti IPv6 Security

Correttezza vs. Robustezza (1) Non esiste una definizione precisa di codice robusto Per capire necessario osservare le differenze che intercorrono tra codice corretto e codice robusto Un programma si dice corretto se si comporta come previsto dalle specifiche

Correttezza vs. Robustezza (2) Un programma robusto : Corretto Scritto in modo da controllare che la propria esecuzione non causi danni Quindi necessario inserire dei controlli: Quanti? Quali? Dove? Non esiste una risposta precisa a tali domande!

Correttezza vs. Robustezza (3) Nel corso degli ultimi 30 anni sono stati studiati alcuni metodi (pseudo-)formali per la progettazione di software sicuro: Checklist Software Engineering Metodi Logico - Formali La semplice applicazione di uno qualsiasi di tali approcci non implica un prodotto finale o un sistema sicuro al 100%

Checklist: Caratteristiche Metodo pragmatico basato sull'esperienza dei professionisti del campo Metodo poco formale: Specifiche scritte in linguaggio naturale Assenza di regole e metodi precisi Assunzioni: Spazio soluzioni limitato Soluzioni a validità universale

Checklist: Pro Completa analisi di ogni componente possibile del sistema di sicurezza Indipendenza dal know-how dell'analista Stile cookbook: Presenza di numerosi tools che assistono l'analista nelle varie fasi del progetto Sistemi esperti per l'analisi dei rischi e della sicurezza dei sistemi

Checklist: Contro Modello troppo semplicistico Non adatto a grandi sistemi informatici Utilizzo di linguaggio naturale Difficoltà di manutenzione Mancanza di metodologie formali: Possibilità di dimenticare qualche particolare Soluzioni obsolete

Software Engineering: Caratteristiche Modelli di progettazione molto simili a quelli utilizzati in IS per la progettazione e la realizzazione del software Esempio: modello di Fisher (1984) Inventario dei dati da proteggere Identificazione dei punti deboli del sistema Analisi dei rischi Progettazione dei controlli Analisi costi-benefici

Software Engineering: Assunzioni Per ogni sistema esiste una soluzione ottima riguardo alla sicurezza Lo spazio delle soluzioni non numerabile La soluzione nasce dall'analisi delle funzionalità di ogni singola componente del sistema Non possibile utilizzare controlli generici per qualsiasi tipo di sistema Documentazione Adeguata + Comprensione del Sistema = Maggiore Efficienza + Facilità di Manutenzione + Sicurezza

Software Engineering: Pro Concentrazione sugli aspetti tecnici del sistema Flessibilità: possibile applicare questi metodi sia a sistemi complessi che a sistemi semplici Efficienza: non necessario perdere tempo nella consultazione di checklist per scartare controlli che non sono necessari Buona documentazione, facile manutenzione Molto adatto per sistemi informatici complessi e di grandi dimensioni in cui la modifica di una componente influenza tutto il sistema

Software Engineering: Contro Necessità di un super-analista o di un security team Risultati poco soddisfacenti su sistemi già esistenti: Perdita di alcune features del sistema Distruzione del sistema Il coinvolgimento degli utenti durante la fase di progettazione e analisi dei requisiti di sicurezza porta a sovrastimare i punti deboli del sistema (Farquar 1991)

Metodi Logico – Formali: Caratteristiche Astrazione dei problemi di sicurezza - Astrazione delle soluzioni Approccio top-down Assunzioni: La soluzione può essere creata solo da una conoscenza globale del sistema: l'astrazione la via maestra Le soluzioni progettate sull'astrazione dei problemi di sicurezza sono molto più generali e quindi più flessibili e durature nel tempo L'implementazione dei controlli deve essere eseguita su misura per ogni sistema con cui si ha a che fare

Metodi Logico – Formali: Pro Flessibilità nelle strutture di controllo Indipendenza dall'evoluzione della tecnologia Buona documentazione Tutto questo porta a... Facilità di manutenzione Riduzione dei costi Minor conflittualità tra sicurezza e grado di usabilità del sistema informatico

Metodi Logico – Formali: Contro Difficoltà nella descrizione astratta di problemi, controlli e soluzioni Difficoltà nel passare dalla soluzione astratta ai dettagli implementativi Difficoltà nell'integrare le componenti logiche e fisiche di un sistema sicuro Molto difficile l'applicazione di tali metodi a sistemi già esistenti Assenza di tool e procedure automatiche

Codice Robusto A seconda del livello di dettaglio necessario considerare diverse problematiche e diverse strategie di soluzione Un software corretto e robusto presenta un numero minore di malfunzionamenti che potrebbero essere sfruttati dai malintenzionati Vana la sicurezza senza la robustezza: stack smashing & strcpy

Protocolli: Tipologie di Attacco Ascolto passivo del canale di comunicazione Ascolto attivo del canale di comunicazione (modifica delle informazioni che passano attraverso il canale) Impersonificazione di un capo della comunicazione

Protocolli: Punti Deboli Dimensioni variabili dei dati trasferiti: Possibilità di attacchi alla buffer overrun Esempio: protocollo HTTP, funzione GET Scelta degli ID di sessione: Lo spazio dei valori possibili deve essere di dimensioni adeguate Cheating: la possibilità da parte di un client di collegarsi leggitimamente, ma di sfruttare alcuni difetti del protocollo per ottenere dei vantaggi

Protocolli: Esempi Famosi Syslog Spoofing dei pacchetti DoS Timestamping non affidabile DNS [RFC 1034, RFC 1035] Problemi nella gestione degli ID nell'implementazione di Bind di Microsoft Windows

Progettazione di Protocolli: Hints Controllare l'integrità dei dati trasmessi Time Stamping Arbitrated protocols: time stamping authority (TSA) Indipendenza dal supporto fisico Impossibilità di apportare modifiche dopo l'autenticazione Impossibilità di modificare la data di autenticazione Generazioni di sequenze pseudo-casuali Sequenze numeriche sufficientemente lunghe che possano considerarsi casuali Sequenze numeriche impredicibili

Progettazione di Protocolli: Integrità dei Dati AB M, h(M,K) Una soluzione semplice l'utilizzo di una funzione di hashing MAC/DAC (Message/Data Authentication Codes) Se non si sceglie K e h in modo opportuno si rischia di compromettere seriamente questo protocollo Un altro difetto che A e B devono conoscere K, quindi necessaria la presenza di un canale sicuro

IPv6: Obiettivi Supporto di miliardi di host Riduzione tabelle di routing Semplificazione del protocollo & maggiore velocità trasferimento pacchetti Maggiore sicurezza (autenticazione e privacy) Servizi in tempo reale Semplificazione multicasting Coesistenza con IPv4

IPv6: Preambolo Principale Priorità: 0-7 pacchetti che possono rallentare; 8-15 traffico in tempo reale Flow Label (sperimentale): pseudoconnessione sorgente- destinazione Payload: non include la lunghezza del preambolo

IPv6 vs. IPv4 Non presente il campo IHL perch il preambolo di IPv6 ha dimensione fissa Il campo protocol stato eliminato in quanto il campo Next Header descrive il tipo di dati che segue l'ultimo preambolo IP (per esempio TCP) Tutti i campi relativi alla frammentazione sono stati eliminati La dimensione minima del pacchetto IPv6 di 576 byte Checksum non presente

IPv6: Extension Headers IPv6 Header (obbligatorio) Hop-by-hop Header Destination Option Header (intermedi) Routing Header Fragmentation Header Authentication Header Encapsulating Security Payload Header Destination Options Header (destinazione)

IPv6: Authentication Header (AH) A e B devono accordarsi su una o più chiavi segrete che solo loro conoscono A ogni chiave associato un codice a 32 bit univoco (campo SPI) Ogni chiave ha un time stamp Authentication data: checksum di MD5

IPv6: AH How To (Mitt.) Costruzione pacchetti IP completo Azzeramento campi variabili (Hop Limit) Padding della chiave e del pacchetto fino a raggiungere un multiplo di 16 byte (separatamente) Calcolo della checksum della chiave + pacchetto + chiave L'algoritmo utilizzato per il calcolo della checksum deciso dagli utenti; quello di default MD5

IPv6: AH How To (Dest.) Dal numero di chiave (campo SPI) risale alla chiave Padding della chiave e del pacchetto fino a raggiungere un multiplo di 16 byte (separatamente) Calcolo della checksum della chiave + pacchetto (in cui sono stati azzerati i campi variabili) + chiave Confronto delle checksum Nota: i dati sono spediti in chiaro.

IPv6: Encapsulated Security Payload (ESP) SPI: numero di chiave a 32 bit Algoritmo crittografico: a scelta del mittente e del destinatario Se si utilizza DES-CBC (default): Payload Data inizia con un vettore di inizializzazione di lungheza multipla di 4 byte I dati crittografati sono completati a un multiplo di 8 byte

IPv6: ESP Note Se si utilizza DES-CBC il vettore di inizializzazione trasmesso in chiaro: questo approccio non dei più sicuri, ma per gli obiettivi che si propone IPv6 accettabile È possibile combinare AH e ESP: ESP prima di AH Transport mode ESP Tunnel mode ESP AH prima di ESP (solo tunnel mode): AH protetto da ESP quindi più difficile modificare il messaggio

Bibliografia Richard Baskerville, Information System Security Design Methods: Implications for Information Systems Development - Acm Computing Surveys, Volume 25 Number 4 December 1993 Andrew Stuart Tanenbaum, Reti di Computer – Capitolo 5 Il livello di rete in Internet, Ed. Italiana 1998 William Stallings, IPv6: The New Internet Protocol, First published in IEEE Communications Magazine, July 1996, Volume 34, Number 7 IEEE Communication Society: Antonio Cisternino, Sicurezza e Robustezza – DEV, Novembre 2000 N. 79 Alfonso De Gregorio, Protocolli applicativi: le vulnerabilità più ricorrenti, Progettazione di protocolli sicuri – DEV, Novembre 2000 N. 79 T. A. Linden, Operating System Structure to Support Security and Reliable Software – U.S Departement of Commerce / National Bureau of Standards NBS Technical Note 919 August 1976 Informazioni varie sul mondo dell'informatica: The UK ITSEC scheme: