SICUREZZA DI SISTEMI INFORMATIVI

Proprietà di Sicurezza:

Integrità: Il sistema deve impedire l'alterazione delle informazioni in qualsiasi caso se l'utente o il processo NON sono autorizzati

Autenticità: Al destinatario deve essere nota l'identità del mittente e le informazioni devono essere integre.

Ne segue l'autenticazione, ogni agente deve essere autenticato prima di interagire con il sistema

Riservatezza(confidenzialità): Nessun utente deve essere in grado di accedere a informazioni che non è destinato a conoscere

Se queste informazioni riservate riguardano dati su individui si parla di privacy

Disponibilità:Il sistema deve rendere disponibile a ogni utente autorizzato l'accesso alle informazioni richieste in base ai protocolli in uso

Problematiche relative alla sicurezza

Minacce

Fisiche: Danneggiano gli impianti e le infrastrutture (es. terremoti, incendi...)

Logiche: Sottrazione o danneggiamento di informazioni e risorse (es. clonazione di bancomat)

Accidentali: Errori di configurazione di software e della rete, malfunzionamenti di programmi...

Hanno come conseguenza

Violazioni

Sfruttando le vulnerabilità (exploit) vengono effettuati attacchi mirati sia all'utilizzo indebito di informazioni riservate, sia al blocco delle risorse (attacchi DoS - Denial of Service)

Attacchi

LIVELLO DI RETE

LIVELLO APPLICATIVO

Malware: Software creati per causare danni

Virus: Un frammento di software capace di infettare files per potersi riprodurre facendo copie migliorate di sé stesso

Worm: Un malware capace di riprodursi autonomamente, è un programma eseguibile, non necessita altri programmi per potersi riprodurre

Trojan: Malware le cui funzionalità sono mascherate dietro un programma apparentemente utile o innocuo. Spesso si trovano in programmi scaricati da Internet. I trojan necessitano un'azione da parte dell'utente per poter essere eseguiti

Ransomware: Malware creato per limitare l'utilizzo del dispositivo infettato fino a quando non venga pagato un riscatto

Backdoor: "porte segrete" lasciate aperte volontariamente (per manutenzione) per poter bypassare almeno parzialmente le procedure di sicurezza attive in un SI.
Possono essere usate per manomettere un sistema (un utente esterno potrebbe prendere il controllo remoto della macchina senza autorizzazione)

Spyware: Software creati per raccogliere illecitamente informazioni dal sistema su cui sono stati installati per trasmetterli a un destinatario interessato

Attacchi:

Da terze parti, ossia da agenti esterni all'organizzazione

Da utenti interni, che utilizzano indebitamente i propri permessi per accedere a informazioni alle quali non dovrebbero accedere

Crittografia: garantisce le proprietà di riservatezza, autenticità e integrità

Controllo degli accessi

A chiave simmetrica: Esiste un'unica chiave, detta chiave simmetrica o segreta; appartengono a questa categoria gli algoritmi di sostituzione, trasposizione e gli algoritmi derivanti dalla combinazione delle due precedenti. Due esempi sono il DES(https://it.wikipedia.org/wiki/Data_Encryption_Standard) e il AES(https://it.wikipedia.org/wiki/Advanced_Encryption_Standard)

A chiave asimmetrica: Esistono due chiavi, una pubblica e l'altra privata, entrambi i soggetti possiedono entrambe le chiavi. L'algoritmo è basato su problemi matematicamente complessi. Due esempi molto utilizzati sono: l'RSA(https://it.wikipedia.org/wiki/RSA_(crittografia)) e il Diffie-Hellman(https://it.wikipedia.org/wiki/Scambio_di_chiavi_Diffie-Hellman)

Le due tecniche principali utilizzate sono:

Sostituzione: Ad esempio con chiave numerica e sostituzione monoalfabetica, ho un mapping fisso. Un esempio è il cifrario di Cesare, dove la chiave k è il numero di lettere da saltare ( M=ciao e k=4 ▶ M'=goes)

Trasposizione: La chiave serve per indicare come permutare le lettere contenute nel testo in chiaro durante la codifica

L'algoritmo standard di questa categoria è l'AES, il messaggio viene cifrato utilizzando chiavi di 128,192 o 256 bit. Per la cifratura il messaggio viene:

  • spezzato in blocchi da 128 bit
  • ogni blocco viene cifrato tramite le fasi di: xor dei bit del messaggio con i bit di chiave, sostituzioni, trasposizioni e combinazioni tra bit in fasi intermedie

PUNTI CRITICI

PRO:

CONTRO:

La chiave deve essere cambiata spesso

La chiave deve essere generata e distribuita con la massima sicurezza

Velocità di codifica e di decodifica

Possibilità di implementare l'algoritmo in hardware con processori dedicati

Ogni agente possiede una coppia di chiavi: {K_P(chiave pubblica) e K_pr(chiave privata)}

Tutto ciò che è cifrato con una delle due chiavi può essere decifrato dall'altra chiave della coppia

Non deve essere in alcun modo possibile dedurre una delle due chiavi a partire dalla conoscenza dell'altra

La chiave pubblica può essere distribuita mentre la chiave privata deve restare segreta

Vengono garantite riservatezza e autenticità

PRIMO MODO:

A cifra il messaggio con la chiave pubblica di B ▶ il messaggio può essere decifrato solo con la chiave privata di B

Viene garantita la riservatezza

⚠ Poiché tutti possono entrare in possesso della chiave pubblica di B, potrebbero fingersi A all'interno della comunicazione

Sono possibili attacchi di tipo Man-in-the-middle

SECONDO MODO:

A cifra il messaggio con la sua chiave privata prima di inviare il messaggio a B che potrà decifrare il messaggio solo con la chiave pubblica di A

Lo scambio è autenticato, perché A, cifrando con la sua chiave privata, certifica la propria identità

⚠ Poiché tutti possono entrare in possesso della chiave pubblica di A, il messaggio risulta leggibile anche da terzi

Non viene garantita la riservatezza

Per garantire sia l'autenticità sia la riservatezza i due modi vanno combinati con una doppia fase di cifratura

Il principio su cui si basa la crittografia asimmetrica è l'uso di una funzione f semplice la cui inversa è complessa

CONTRO: La cifratura con chiave asimmetrica è lenta, questo perché è richiesta una certa capacità computazionale per risolvere i problemi

Funzione di Hash:
Serve a garantire l'integrità

Trasforma un messaggio di lunghezza arbitraria in un output di lunghezza fissa detto impronta digitale, hash o digest

Coerenza: Due messaggi identici hanno lo stesso digest

Univocità: Se due messaggi differiscono anche soltanto di un bit devono essere associati a due digest diversi

Non-invertibilità: Dato un digest non deve essere in alcun modo possibile risalire al messaggio originario

Questo costituisce la prova di integrità del messaggio

Spoofing: Invio di pacchetti con indirizzo di sorgente diverso dal proprio con lo scopo di non essere identificati o di impersonare un altro agente (rubandone di fatto l'identità)

Sniffing: Intercettazione di informazioni scambiate tra due agenti ➡ accesso non autorizzato a informazioni

Hijacking: o Man-in-the-middle, una combinazione di sniffing e spoofing al fine di deviare verso un agente malevolo le comunicazioni e di intercettare e modificare il traffico in modo invisibile ai sistemi compromessi

Flooding: Intasamento della rete con quantità di traffico indesiderato che porta al blocco e all'irragiungibilità del servizio (DoS)

Se l'impronta ricevuta e quella calcolata a partire dal messaggio ricevuto sono diverse si riconosce la manipolazione durante la trasmissione; se invece le due impronte coincidono il messaggio è integro

FIRMA DIGITALE: è il digest crittografato di un elemento ottenuto utilizzando la chiave privata del mittente del documento

Con questa si vogliono autenticare i dati e identificare con certezza il loro creatore

Ricevuti i due documenti si effettuano due verifiche:

La firma va allegata al documento da spedire

Ricalcolo del digest del documento

Decodifica della firma con la chiave pubblica del mittente e recupero del digest originale

Possiede la proprietà del non-ripudio, ovvero viene identificato l'agente che ha generato i dati e viene anche certificato che i dati non siano stati manomessi dopo essere stati firmati

AUTENTICAZIONE all'agente viene associata un'identità precisa

Un agente può essere identificato sfruttando una o più delle seguenti caratteristiche:

Something You Have (SYH): un oggetto posseduto (es. tessera magnetica)

Something You Are (SYA): una caratteristica fisica (es. impronta digitale)

Something You Know (SYK): un'informazione conosciuta (es. password)

AUTORIZZAZIONE viene verificato se l'agente può svolgere determinate funzioni

I DBMS sicuri hanno delle regole di accesso composte da:

Autorizzatori: Quando vale l'ownership sulle risorse il creatore corrisponde con il proprietario che può decidere a chi garantire l'accesso. Due esempi sono il DBA (Data Base Administrator) e il security officer

Per basi centralizzate è utile che vi sia un unico amminstratore

Soggetti: Sono:

  • utenti
  • amministratori e programmatori applicativi
  • gruppi o classi
  • transazioni o applicazioni

Per basi distribuite solitamente esistono più autorizzatori divisi in gerarchie

Oggetti

Diritti

Modi di accesso (read, write, execute...) (per i programmi)

CRUD - create, read, update, delete (per i dati)

La definizione delle regole è dettata dalle politiche di sicurezza

Sistema chiuso: gli accessi permessi sono soltanto quelli specificati dalle regole. Tutto ciò che non è esplicitamente permesso è vietato

Sistema aperto: tutti gli accessi sono permessi tranne per quelli specificatamente vietati tramite regole. Tutto ciò che non è esplicitamente vietato è permesso

Le regole di accesso (definite dagli autorizzatori) sono basate su un modelllo a quattro componenti:

  • subject
  • object
  • right
  • costraint

Politiche di accesso ai dati

Politiche discrezionali: chiamate anche DAC, è discrezione dei proprietari autorizzare altri utenti all'accesso, definire i tipi di accesso da concedere ad altri e definire gli accessi selettivi

Politiche mandatorie: chiamate anche MAC, sono adatte per database con dati sensibili e dove sono necessari controlli sul flusso di dati e controlli sugli utenti

Le politiche MAC classificano gli oggetti con livelli di sensitività e i soggetti con livelli di clearance

Sono inoltre definite le Security Class, dove la componente gerarchica individua il livello e e le categorie individuano le aree di appartenenza dei dati

Le politiche MAC seguono le seguenti regole:

No-Read-Up: Un soggetto è autorizzato alla lettura di un oggetto solo se il livello del soggetto è maggiore o uguale al livello dell'oggetto

No-Write-Down: Un soggetto è autorizzato alla scrittura di un oggetto solo se il livello del soggetto è minore o uguale al livello dell'oggetto

Tipici livelli di classificazione sono:

  • Unclassified (U)
  • Confidential (C)
  • Secret (S)
  • Top Secret (TS)

Queste regole impediscono flussi di dati tra soggetti high e low

Sicurezza infrastrutturale:

Firewall, componenti e servizi usati per controllare e limitare il traffico tra la rete da proteggere e l'esterno. Seguono le seguenti:

1) Il firewall deve essere l'unico punto di contatto tra la rete interna e l'esterno (come un ponte levatoio)

2) Tutti i pacchetti devono essere bloccati tranne quelli autorizzati

3) Il firewall deve essere sicuro a sua volta

Componenti base che permettono il monitoraggio sono:

  • Screening router (o Packet filtering) e Packet Inspection
  • Application Gateway

Packet filtering: si analizza solo l'intestazione del pacchetto in ricezione in base alle liste contenenti gli IP dai quali accettare/rifiutare

Packet Inspection: supero l'intestazione e ispeziono anche il payload. Viene controllata tutta la sessione di comunicazione. Più lento rispetto al Packet filtering

Application proxy: vengono intercettate le comunicazioni e filtrate le comunicazioni in ingresso al server. Esiste un elemento in mezzo alla comunicazione atto alla protezione del server. Ancora più lento rispetto al Packet inspection

Esistono architetture a più livelli: in un' architettura a tre livelli, dove sono presenti due firewall, la zona "in mezzo" ai due firewall prende il nome di DMZ (DeMilitarized Zone), una zona intermedia a rischio usata come quarantena per proteggere la zona dove sono presenti i dati sensibili

Inoltre, in alcuni casi, soprattutto in architetture a 5-tier, oltre alla presenza di più DMZ esiste anche un "server ostaggio", contenente pagine statiche e usato per monitorare eventuali attacchi

Intrusion Detection System: o IDS, sono i sistemi che automatizzano il processo di Instrusion Detection, identificando intrusioni di utenti non autorizzati (crackers) e autorizzati (inside threaters). Sono le "ronde" del sistema.

I componenti funzionali sono:

Sensori: raccolgono elementi dai quali rilevare tracce di intrusione

Algoritmi di analisi: implementano l'ID sulla base dei dati raccolti

Componenti di Alerting & Response: componenti attivi che, quando è in atto un attacco intraprendono varie azioni

Le principali assunzioni su cui si basano sono:

Le attività di sistema sono osservabili

Le attività normali e intrusive hanno evidenze diverse

Si usano features (catturano le evidenze di intrusione) e modelli (permettono di comporre tali evidenze)

Servono vari componenti: processori per i dati di audit, una base di conoscenza, una 'decision engine' e generatori di allarme e risposte

Gli IDS possono essere classificati in base a diversi criteri:

In base alle Information Source

1) Un network-based IDS rileva gli attacchi analizzando il traffico di rete. I sensori devono essere distribuiti sulla rete

2) Un host-based IDS è un software da installare su ogni macchina da proteggere

In base al tipo di analisi

1) Analisi di tipo misuse detection, volta a individuare i comportamenti già noti come attacchi. Analizzano l'attività del sistema e la confrontano con le signature

2) Analisi di tipo anomaly detection, individua deviazioni significative dal comportamento normale

Una volta che l'IDS ha rilevato un attacco si possono avere due tipi di response

Active response: vengono acquisite maggiori informazioni aumentando il livello di sensitività, oppure viene modificato l'ambiente bloccando l'attacco in corso

Passive response: l'IDS invia una notifica all'amministratore del sistema senza intraprendere altre misure