Sicurezza delle reti
Overview
Computer Security: La protezione offerta ad un sistema informatico automatizzato per proteggere l'integrità, la disponibilità e la confidenzialità delle risorse e dei servizi del sistema.
Confidenzialità, Integrità, Disponibilità = Triade CIA
Addizionali: Autenticità, Responsabilità
Confidenzialità
Mantenere accessi autorizzati alle risorse per proteggere la privacy e le informazioni proprietarie.
Confidenzialità dei dati: Dati ed informazioni confidenziali non sono rese disponibili a individui non autorizzati.
Privacy: Gli individui controllano quali informazioni su di loro vengono collezionate e salvate e da chi possono essere divulgate.
Attacchi alla confidenzialità:
- Del software => Viene fatta una copia non autorizzata.
- Dei dati => Letture di dati non autorizzate; potrebbero anche avvenire grazie ad analisi statistiche di dati 'pubblici'.
- Delle linee di comunicazione => Lettura dei messaggi.
Integrità
Riguarda la protezione da modifiche o distruzioni improprie dei dati (sia informazioni che programmi).
Permette di assicurare l'autenticità e la non repudiation.
Integrità dei dati e del sistema.
Attacchi all'integrità:
- Del software => Un programma viene modificato per fallire o compiere task non previsti.
- Dei dati => Modifiche di file esistenti o creazione di nuovi file.
- Delle linee di comunicazione => Modifica, distruzione o riordinamento dei messaggi. Injection di falsi messaggi.
Disponibilità
Garantire tempestivo ed affidabile accesso alle risorse.
Attacchi alla disponibilità:
- Dell'hardware => Attrezzature rubate o disabilitate.
- Del software => Cancellazione di programmi negando l'accesso agli utenti.
- Dei dati => Cancellazione (o encrypting) di file negando l'accesso agli utenti.
- Delle linee di comunicazione => Modifica o distruzione dei messaggi.
Autenticità
Proprietà di essere autentico e poter essere verificato (trusted).
Confidenza nella validità di trasmissioni e messaggi.
Responsabilità (Accountability)
Ogni azione deve essere associata univocamente ad una entità. Non-repudiation, intrusion detection, legal action...
Livelli di impatto
- Basso (Low): L'effetto sul sistema è limitato.
- Moderato (Moderate): L'effetto sul sistema è serio.
- Alto (High): L'effetto sul sistema è grave.
Terminologia
Avversario (Threat agent): Un'entità che attacca o è una minaccia per il sistema.
Attacco: Un assalto ad un sistema derivato da una minaccia intelligente (sia da un insider che outsider). È un tentativo di aggirare la sicurezza e violare la security policy del sistema.
Attivo: Tentativo di alterare/colpire le risorse del sistema. In questo caso l'obiettivo della sicurezza è individuare l'attacco e ripristinare il funzionamento del sistema. 4 tipi principali di attacco attivo:
- Masquerade: Fingere di essere qualcun altro.
- Replay: Cattura passiva di messaggi e successiva riproduzione.
- Modificazione di messaggi.
- Denial of service.
Passivo: Avere informazioni sul sistema senza colpire direttamente le risorse (es. eavesdropping/monitoring transmissions). È più difficile da scoprire -> bisogna concentrarsi sulla prevenzione. Ne esistono 2 tipi principali:
- Message contents.
- Traffic analysis.
Contromisura
Un'azione, procedura o tecnica che riduce una minaccia, vulnerabilità o un attacco:
- Minimizzando il danno che potrebbe causare.
- Individuandolo ed effettuando delle azioni correttive.
Serve a:
- Prevenire.
- Individuare.
- Ripristinare.
Potrebbe introdurre nuove vulnerabilità; alcune vulnerabilità potrebbero rimanere. Lo scopo è minimizzare il livello di rischio sugli asset.
Rischio
Previsione di una perdita espressa come la probabilità che una certa minaccia sfrutti una particolare vulnerabilità con un risultato dannoso.
Security Policy
Insieme di regole e pratiche che specificano come un sistema o organizzazione fornisce servizi di sicurezza per proteggere dati sensibili e risorse critiche.
Risorsa (Asset)
Possono essere dati, servizi, capacità del sistema, attrezzature.
Minaccia (Threat)
Potenziale violazione della sicurezza che esiste quando ha luogo un evento, azione, circostanza che potrebbe bucare la sicurezza e causare danno.
Vulnerabilità
Una falla o una debolezza nel design, implementazione o operatività di un sistema che può essere sfruttata per violarne le policy di sicurezza. Esempi di vulnerabilità di un sistema:
- Corrupted (perdita di integrità).
- Leaky (perdita di confidenzialità).
- Unavailable, very slow (perdita di disponibilità).
Matrice di rischio
Matrice che mette in relazione l'impatto di un certo evento (righe->catastrofico, alto, medio, basso, insignificante) con la probabilità che questo accada (colonne->raro, improbabile, possibile, verosimile, quasi certo). Nelle celle viene inserito il livello di impatto.
Conseguenze dei Threat
Unauthorized Disclosure (divulgazione non autorizzata): È una minaccia alla confidenzialità dei dati. Exposure: esposizione voluta o errata di alcune risorse.
Interception: Accesso non autorizzato ai dati che viaggiano tra sorgenti e destinazioni autorizzate (man-in-the-middle).
Inference: Analisi del traffico per avere informazioni dettagliate.
Intrusion: Un'entità guadagna l'accesso non autorizzato a dati sensibili evitando i sistemi di sicurezza.
Deception (inganno): Un'entità autorizzata riceve informazioni false credendo siano vere. Minaccia all'integrità dei dati e del sistema.
Masquerade: Avere l'accesso fingendo di essere un utente autorizzato.
Falsification: Alterare dei dati aggiungendo cose false.
Repudiation: Negare la responsabilità di un'azione.
Disruption (rottura): Interrompere o prevenire il corretto funzionamento delle funzionalità o dei servizi di un sistema. Minaccia alla disponibilità ed all'integrità di un sistema:
- Incapacitation: Distruzione fisica o danneggiamento dell'hardware.
- Corruption: Modifica non autorizzata dei servizi del sistema.
- Obstruction: Sovraccaricare il sistema o interferire con le comunicazioni.
Usurpation (occupazione illecita): Un'entità non autorizzata prende il controllo del sistema. Minaccia all'integrità del sistema:
- Misappropriation: Un'entità assume controllo logico o fisico di una risorsa di sistema.
- Misuse: Fare sì che un componente del sistema esegua una funzione o servizio dannoso per la sua sicurezza.
Principi di Design
- Economy of mechanism => KISS; Il design deve essere il più semplice possibile (più facile da verificare; meno probabilità di avere vulnerabilità).
- Fail-safe default => La gestione degli accessi deve avvenire tramite permessi, non esclusioni. Di default non ci deve essere accesso.
- Complete mediation => Ogni accesso deve essere controllato da un sistema di access control.
- Open Design => Il design non dovrebbe essere segreto.
- Separation of privilege => Dovrebbero essere richiesti più privilegi per avere l'accesso alle risorse.
- Least privilege => Assegnare ad ogni programma solo i privilegi minimi necessari per il corretto funzionamento.
- Least common mechanism => Minimizzare le funzioni in comune tra utenti differenti.
- Psychological acceptability => I meccanismi di sicurezza non dovrebbero interferire eccessivamente sul lavoro degli utenti.
- Isolation =>
- Delle risorse critiche: Queste non dovrebbero essere accessibili pubblicamente.
- Dei file degli utenti: Dovrebbero essere isolati l'uno dall'altro.
- Dei meccanismi di sicurezza: Non dovrebbero essere accessibili (per esempio i software crittografici utilizzati).
- Encapsulation => Incapsulare un insieme di procedure e di dati in una singola struttura chiamata dall'esterno solamente attraverso gli entry point strettamente necessari (Senza avere visione della struttura interna).
- Modularity => Utilizzare un'architettura modulare sviluppando le funzioni di sicurezza separatamente l'una dall'altra.
- Layering => Usare approcci di protezione multipli (anche sovrapposti). Per esempio firewall multipli.
- Least astonishment => Un programma o interfaccia dovrebbe sempre stupire l'utente il meno possibile.
Meccanismi di sicurezza
Prevent, detect, response, recover:
- Prevenire gli attacchi.
- Individuare le violazioni di sicurezza.
- Reagire per mitigare gli attacchi.
- Recuperare il corretto funzionamento anche dopo un attacco.
Superfici di attacco (attack surface)
Indicano le vulnerabilità raggiungibili e sfruttabili per un attacco.
- Porte aperte in una socket.
- Servizi non protetti da firewall.
- Codice che gestisce dati in ingresso.
- SQL e web forms.
- Un impiegato con accesso a dati sensibili.
3 categorie principali:
- Network attack surface.
- Software attack surface.
- Human attack surface (social engineering).
Attack surface analysis: Tecnica utile per valutare la scala e la gravità delle minacce a un sistema.
Alberi di attacco (attack trees)
Una struttura gerarchica ad albero che rappresenta un insieme di potenziali vulnerabilità utilizzabili per un certo attacco. Lo scopo dell'attacco è rappresentato dal nodo radice. I modi in cui un attaccante potrebbe raggiungere l'obiettivo sono rappresentati come rami e nodi figli nell'albero. Le foglie indicano quindi i possibili modi di iniziare un attacco.
Crittografia
Utilizzata per:
- Autenticazione: Assicurare l'identità di un utente.
- Riservatezza: Proteggere informazioni da chi non è autorizzato ad averle.
- Integrità: Certificare originalità di un messaggio/documento.
- Anonimato: Rendere non rintracciabile una comunicazione.
Kerckhoffs 1883: “La sicurezza di un sistema crittografico è basata esclusivamente sulla conoscenza della chiave, in pratica si presuppone noto a priori l’algoritmo di cifratura e decifrazione”.
Crittografia a chiave simmetrica
La tecnica più usata per garantire confidenzialità nella trasmissione e nel salvataggio dei dati.
2 requisiti:
- Algoritmo di crittografia robusto.
- Mittente e destinatario condividono la stessa chiave segreta.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.