Appunti lezioni
Introduzione alla cyber security
1. Introduzione alla cyber security
2. La sicurezza nelle reti
3. Crittografia simmetrica: Block cypher e modi d’uso
4. Crittografia simmetrica: Stream cypher e modi d’uso
5. Funzioni di hash
6. Crittografia asimmetrica
7. Protocolli di autenticazione e instaurazione di chiavi effimere
8. Livello di trasporto: Transport Layer Security
9. Sicurezza reti LAN cablate
10. Reti Wi-Fi
11. Reti mobili
12. Sicurezza nel mondo IoT
13. Malware
Introduzione alla cyber security
Cos'è la cyber security?
Per cybersecurity si intende la capacità di mettere in sicurezza un sistema informatico al fine di proteggerlo da eventuali attacchi hacker.
Perché e dove viene applicata?
La cybersecurity viene applicata in ogni attore coinvolto all'interno di una filiera ed è in particolare stata introdotta con la norma dell'Industria 4.0 al fine di proteggere a 360° i dati di produzione, riguardanti macchinari, processi, personale.
Il motivo principale è dovuto all'eventualità che qualcuno dall'esterno possa accedere a tali informazioni causando danni all'azienda, non solo a livello di immagine, ma anche conseguenze di tipo economico.
Molto spesso attacchi di questo genere avvengono a causa di una mancata conoscenza da parte del personale aziendale dei potenziali rischi di alcune operazioni eseguite nel modo scorretto o peggio ancora mai effettuate per "pigrizia".
Ad esempio, può accadere che i progettisti dei sistemi informatici non prevedano protocolli con autenticazione oppure che la prevedono ma senza che la password debba essere obbligatoriamente cambiata trascorso un certo lasso di tempo. O ancora, software o hardware non aggiornati per mancanza di tempo o budget.
Ciascuno di questi errori può portare ad avere un sistema informatico con una protezione debole o nulla e dunque facilmente hackerabile.
È comunque importante sottolineare che non è possibile rendere sicuro al 100% un sistema.
Introduzione alla rete di pacchetti
Cos'è una rete di telecomunicazione?
Una rete di telecomunicazione è un insieme di nodi connessi da canali di comunicazione che ha lo scopo di trasportare l’informazione da una sorgente a una destinazione. L’informazione viene suddivisa in unità più piccole, chiamate pacchetti, i quali viaggiano dal nodo sorgente a quello di destinazione anche seguendo strade differenti. L'unione delle sotto-reti che formano tutte le possibili strade percorribili dai pacchetti e che sono tra loro interconnesse è chiamata internet.
Obiettivi di una rete a pacchetti
L’obiettivo è quello di scambiare informazioni tra due nodi terminali qualsiasi della rete in modo che tale trasporto sia trasparente per l’utente e sicuro. In particolare, l’aspetto più importante da garantire è che tutti i pacchetti vengano consegnati correttamente a destinazione. Inoltre, al fine di evitare che qualcuno dall’esterno possa leggere quanto presente in tali pacchetti, le informazioni vengono criptate.
Evoluzione delle reti LAN
Le reti LAN erano inizialmente composte esclusivamente da cavi fisici e switch, il che comportava ingenti spese di mantenimento. Si è passati successivamente all’introduzione degli access point, che non richiedono l’utilizzo di cavi fisici e che dunque rappresentano una soluzione più economica e flessibile rispetto alla precedente tipologia di configurazione. Nonostante i vantaggi appena detti, vi sono anche degli aspetti negativi: il primo legato alla pianificazione delle frequenze e il secondo legato ad una maggiore facilità di "ascolto" delle comunicazioni da parte di soggetti esterni.
Evoluzione delle reti industriali
Le reti industriali erano inizialmente utilizzate per connettere macchinari e robot alle centraline di comando degli stessi. Per farlo venivano utilizzati cavi fisici che risultavano essere non solo costosi, ma anche ingombranti, dato l’elevato numero di connessioni. Ad oggi le reti industriali utilizzano un bus di campo in cui sono collegati tutti i dispositivi. Così facendo, sintetizzando le connessioni ad un unico bus, la complessità, i costi e gli errori di installazione si riducono notevolmente ed inoltre si rende più semplice estendere il sistema. La problematica principale riscontrabile in questa tipologia di rete resta nella sincronizzazione di tutti i nodi per ovviare a problematiche di contesa. Con l’avvento dell’Industria 4.0, l’obiettivo è quello di realizzare reti industriali utilizzando il sistema a pacchetti, di fatto sfruttando le stesse tecnologie di internet e quindi WiFi, Bluetooth etc. Anche in questo caso le problematiche esisterebbero e sarebbero legate a problemi di latenza, perdite di informazioni, gestione delle priorità e soprattutto problemi di sicurezza delle informazioni.
Convergenza tecnologia rete a pacchetti
Dal punto precedente si può capire come a prescindere da dove ci troviamo, se a casa o in azienda, le problematiche delle reti di comunicazione stanno diventando sempre più simili. Esistono dei meccanismi di difesa, perlopiù legati alla sicurezza dei dati come ad esempio il fatto di limitare l’accesso a tali dati tramite autenticazione con username e password, utilizzare sistemi di protezione dei dati sensibili come i numeri delle carte di credito, rendere le informazioni non modificabili per garantirne l'integrità, separare fisicamente reti usate per scopi differenti. Il più importante meccanismo resta sicuramente quello di sensibilizzare gli utenti su queste tematiche.
Meccanismi e pilastri della sicurezza
Pilastri della sicurezza
I servizi di sicurezza sono:
- Autenticazione: Identificare chi partecipa ad una comunicazione attraverso una prova di identità (PIN, password, parola segreta, sblocco dello schermo, etc.). Per partecipanti si intendono non solo utenti, ma anche nodi di rete, pacchetti in transito, etc.
- Controllo di accesso: Segue l’autenticazione e verifica quali diritti di accesso possiede ogni partecipante.
- Confidenzialità: Permette a chi si è autenticato e a chi ne possiede il diritto di accesso, di leggere le informazioni protette (criptate), sia quelle in transito che quelle memorizzate.
- Integrità: Garantisce l’integrità dell’informazione, ossia impedisce a chi non è autorizzato di modificare l’informazione in transito o in memoria senza essere scoperto. Per attuarla, i peer che comunicano devono accordarsi su una chiave.
- Non ripudio: Impedisce all’entità che ha partecipato ad un processo o che ha generato l’informazione di negare in seguito di averlo fatto. Il non ripudio è ad esempio alla base della firma digitale.
Crittografia: La tecnologia di base è la crittografia, parte della matematica che si occupa di trasformare l’informazione in chiaro in un dominio di caratteri che visti dall’esterno non hanno alcun senso a meno che non si conosca la chiave per decifrarli. Gli algoritmi principali usati sono:
- Algoritmi a chiave simmetrica (private key): La chiave usata per criptare è la stessa usata per decrittare.
- Algoritmi a chiave asimmetrica (public key): La chiave usata per criptare è diversa da quella usata per decrittare.
- Sistemi di Hash e MAC: Sono i sistemi alla base dell’integrity protection e della firma digitale.
- Protocolli crittografici: Regole alla base degli algoritmi crittografici per individuare l’ordine con cui utilizzarli al fine di raggiungere un determinato obiettivo.
Attacchi alla sicurezza
Gli attacchi alla sicurezza possono essere:
- Passivi: L’attaccante cattura e analizza i dati (es. ascolta i segnali grazie ad una antenna che li intercetta) al fine di comprendere come entrare nel sistema.
- Attivi: L’attaccante intercetta l’informazione in transito, la modifica e la ritrasmette in rete.
- A livelli differenti: Si possono trovare delle vulnerabilità nell’algoritmo, un protocollo può non essere implementato correttamente, etc.
La sicurezza è relativa
Non esiste una sicurezza assoluta. Essa infatti dipende da diversi fattori, quali l’ambito applicativo (reti di telecomunicazioni, abitazione, transazioni economiche…), il valore di quanto viene protetto (dati utenti, accesso agli edifici Unibs, …). La relatività della sicurezza ha reso necessaria la stesura di standard.
Sicurezza di sistema e sicurezza di rete
Per sicurezza di sistema si intende quella legata al singolo nodo e dipende dalla sicurezza dell'hardware e del software, del sistema operativo e delle applicazioni, in modo che l’eventuale vulnerabilità di un sottosistema non comprometta il resto del nodo.
Per sicurezza di rete invece si considera un insieme di nodi che comunicano e la sicurezza dipende da quella dell’intero meccanismo di comunicazione, in modo che l’eventuale vulnerabilità di un nodo non si propaghi al resto della rete.
Architettura di rete generica
All’interno di una rete ci sono risorse che devono essere protette, ma la sicurezza deve riguardare anche il perimetro della rete. Il sistema perimetrale viene protetto da firewall che controllano l’accesso alla rete da parte di utenti esterni. Le risorse interne alla rete vengono protette da insider e da outsider tramite meccanismi end-to-end, meccanismi locali, meccanismi di criptazione e architetture di rete orientate alla sicurezza.
Richiami di networking
Scenario di riferimento
Guardare una webcam puntata su Times Square sullo schermo dello smartphone. Sotto al trasporto logico dell’informazione dalla webcam allo smartphone c’è una comunicazione fisica attraverso la rete.
Comunicazione logica (Da webcam a smartphone)
La webcam cattura immagini che vengono riprodotte sullo schermo dello smartphone. Entrambi i dispositivi sono dotati di periferiche che consentono da un lato di catturare/mostrare le immagini/informazioni e dall’altro di trasmettere o ricevere tali informazioni (schede di rete).
Comunicazione fisica (Attraverso la rete)
Sulla webcam e sullo smartphone sono installate delle applicazioni software che catturano e riproducono le immagini. Per poterlo fare le immagini vengono compresse per ridurre il numero di informazioni da trasmettere. Al pacchetto da inviare l’applicazione aggiunge una serie di dati, l’header, in cui è contenuto l’indirizzo del mittente, l’indirizzo del destinatario e il payload, ossia quanto deve essere effettivamente comunicato.
Problematiche
- Perdita di pacchetti: La perdita dei pacchetti può essere dovuta a diversi fattori come la presenza di interferenze oppure per congestione della rete. Cosa succede in questi casi? Dipende da cosa si sta trasmettendo: se si tratta di un file di testo, essendo il file corrotto esso deve essere inviato nuovamente, mentre se si tratta di un filmato di una webcam come in questo caso, la perdita di un frame non intacca la comprensione, dunque non succede nulla.
- Indirizzamento pacchetti: La sequenza di byte va indirizzata al nodo (nell’esempio, lo smartphone), ma ci deve essere anche un indirizzo legato all’applicazione che deve ricevere tale informazione tra le tante che girano sul nodo. L’indirizzo del nodo è l’indirizzo IP, mentre quello dell’applicazione è chiamato porta.
- Ordine dei pacchetti: Poiché l’informazione viene spezzata in diversi pacchetti che vengono trasmessi singolarmente nella rete e poiché essa è una mesh, può accadere che il pacchetto A che dovrebbe arrivare a destinazione prima del pacchetto B percorra in realtà una strada più lunga e dunque arrivi in ritardo rispetto a B. All’interno del pacchetto è necessario dunque inserire anche un numero di sequenza, così che la destinazione possa riordinare le informazioni ricevute.
Livelli di comunicazione fisica
- Livello applicativo: Si spezza l’informazione in pacchetti.
- Livello di trasporto: Si aggiunge un header per indicare quale applicazione ha trasmesso (N), quale applicazione deve ricevere i dati a destinazione (M), numero di sequenza k.
- Livello di rete: Si aggiunge un header per indicare l’indirizzo addrdst del nodo che deve ricevere, e l’indirizzo addrsrc del nodo che ha trasmesso.
Modelli di comunicazione
Cos'è la comunicazione?
La comunicazione tra due sistemi è possibile solo identificando un modello di comunicazione, che definisce il linguaggio utilizzato (comunicazione a livello logico) e la modalità di scambio delle informazioni (comunicazione a livello fisico).
Approccio a livelli o strati
Il problema della comunicazione viene suddiviso in sotto-problemi che vengono trattati separatamente. L’informazione passa attraverso ciascun livello per essere trasformata in modo da poter essere trasmessa e li riattraverserà in senso opposto una volta arrivata a destinazione. Il modello a strati prevede che ciascuno strato possa interagire solo con i due adiacenti, in particolare riceve informazione dal livello superiore, la elabora aggiungendo un header e la spedisce al livello inferiore. Man mano che il pacchetto attraversa i livelli, la sua dimensione aumenta in fase di trasmissione e diminuisce in fase di ricezione per poter essere “letto”.
Livelli, protocolli, interfacce, primitive, servizi
Un livello N può comunicare tramite delle interfacce con i livelli N+1 e N-1. Il livello N-1 offre dei servizi al livello N tramite delle primitive di servizio. Interfacce, servizi e primitive si riferiscono a diversi livelli di uno stesso nodo. La comunicazione tra livelli N di due nodi diversi invece avviene mediante protocolli. Per ogni strato esiste un protocollo specifico e non può essere compreso dagli altri livelli, che trattano il contenuto come fosse una scatola chiusa.
Modello TCP/IP
Il modello di riferimento OSI non ha mai avuto una realizzazione nella pratica. Attualmente lo stack protocollare più utilizzato è il modello TCP/IP che prevede 5 livelli: applicativo, trasporto, rete, datalink e fisico.
- Livello fisico: Si occupa di gestire il trasferimento del segnale su un canale fisico.
- Livello datalink: Fornisce un canale numerico di comunicazione più affidabile rispetto al canale fisico, che subisce interferenze e collisioni causa di perdite di informazioni.
- Livello di rete: Si occupa dell’indirizzamento del pacchetto verso la destinazione indipendentemente dal tipo di collegamento e si occupa anche dell’individuazione del percorso da seguire.
- Livello di trasporto: Si occupa di multiplazione e ritrasmissione dei pacchetti.
- Livello applicativo: Acquisisce i dati e li trasmette oppure li riceve se si trova sul nodo destinazione.
Esempio
Supponiamo di voler aprire una pagina HTML sul browser. Per farlo utilizziamo un’applicazione del dispositivo (browser, es. Safari) che si collega al livello applicativo di un server web, invia la richiesta di visualizzazione della pagina e ottiene come risposta la pagina desiderata. Questo avviene mediante il protocollo HTTP (HyperText Transfer Protocol), che analizza il pacchetto inviato dal browser comprendendo la richiesta e inviando un pacchetto di risposta.
Anche se a prima vista sembrerebbe che i due livelli applicativi stiano parlando direttamente, in realtà i pacchetti viaggiano attraverso tutta la pila protocollare. Tra il laptop dell’utente e il server web vi sono una serie di nodi intermedi che instradano e indirizzano i pacchetti nella rete affinché giungano a destinazione. L’inoltro del pacchetto avviene utilizzando l’indirizzo del livello tre di rete. Il pacchetto passa anche per il livello 2 di ethernet, che aggiunge l’informazione legata all’indirizzo della scheda di rete della sorgente e l’indirizzo del next-hop, cioè del primo nodo intermedio (la prima destinazione). Il nodo intermedio interroga il livello 3 e verificato l’indirizzo di destinazione del pacchetto IP, lo inoltra al nodo successivo, fino a giungere a destinazione.
Nota bene: il nodo intermedio “spacchetta” il pacchetto ricevuto, ma solo fino al livello 3. Nel caso analizzato, il primo nodo intermedio era rappresentato da un nodo fisico collegato al laptop mediante cavo USB. Cosa sarebbe cambiato se avessimo inviato il pacchetto mediante il Wi-Fi? Praticamente nulla, solo che il pacchetto anziché passare per il livello 2 Ethernet, sarebbe passato il livello 2 Wi-Fi. Nota bene: l’indirizzo sorgente cambia perché stiamo usando un’interfaccia diversa rispetto al cavo USB. Un dispositivo può infatti avere più indirizzi IP.
Analisi livelli
- Livello fisico: Esistono diversi tipi di livello fisico:
- Fibra ottica → fotoni di luce
- Wireless → onda radio
- Cavo di rame → segnali elettrici
- Luce → luce modulata
- Onda meccanica trasmessa attraverso l’acqua
- Livello collegamento dati (Data link): L’obiettivo è quello di creare un canale dati tra due macchine adiacenti (fisicamente connesse mediante un cavo) che sia il più affidabile possibile. I problemi che gestisce sono: La non idealità del canale fisico, che provoca collisioni. Ad oggi, il cavo di rame e la fibra ottica sono considerati affidabili quasi al 100% in quanto non ci sono collisioni (a meno che il cavo non sia stato posizionato all’interno di una canaletta insieme al cavo della corrente elettrica).
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.
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.
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.
-
Appunti completi corso Computer Security
-
Paniere Domande Sicurezza nelle reti e Cyber Security
-
Cyber social security: terrorismo, devianza criminale e controllo digitale
-
Cyber Security