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