Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Master Cybersecurity, Dispense di Sicurezza Dei Sistemi Informativi

Un'introduzione alla cybersecurity, un tema vasto e multidisciplinare che riguarda la sicurezza IT e dei dispositivi raggiungibili via cyberspace. Vengono descritti i concetti di sicurezza delle comunicazioni, crittografia e sicurezza dei messaggi, attacchi informatici e cifrari simmetrici e asimmetrici. Vengono inoltre presentati i cifrari simmetrici moderni, come DES e AES, e il loro funzionamento. Infine, viene descritto il concetto di CIA (Confidentiality Integrity Availability) e come si evita l'interruzione delle comunicazioni.

Tipologia: Dispense

2019/2020

In vendita dal 02/12/2023

elif96
elif96 🇮🇹

4.5

(4)

7 documenti

1 / 22

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
MASTER CYBERSECURITY
Sicurezza delle comunicazioni
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16

Anteprima parziale del testo

Scarica Master Cybersecurity e più Dispense in PDF di Sicurezza Dei Sistemi Informativi solo su Docsity!

MASTER CYBERSECURITY

Sicurezza delle comunicazioni

Introduzione

Cybersecurity: come sicurezza IT + sicurezza dei dispositivi raggiungibili via cyberspace. La cybersecurity è un tema vasto e multidisciplinare. Soc: Security Operation Center → strutture organizzative presso le aziende oppure date in outsourcing in cui una società ha un SOC e lo dà ai propri clienti. SIEM (Security Information and Event Management): software che servono per l’analisi delle vulnerabilità e del monitoraggio.

Sicurezza delle comunicazioni

Crittografia e sicurezza dei messaggi → protocolli di comunicazione

  1. Crittografia simmetrica
  2. Crittografia asimmetrica IT security e information security in cui ci sono la sicurezza dei calcolatori e delle comunicazioni. I calcolatori comunicano tra loro e ci sono dei problemi nella comunicazione per la sicurezza e dei calcolatori. Sicurezza dei calcolatori: un calcolatore può essere attaccato in diversi modi, in cui si distingue rete locale da rete geografica. Gli attacchi possono venire da queste due reti. Rete locale relativamente sicuro, rete esterna insicura, incontrollata. Problemi: 2 tipi → intrusione informatica che usa i calcolatori in modo non autorizzato (hacker) e attacco di tipo via software (virus che in modo semiautomatico riesce ad attaccare il calcolatore). Vettore di attacco: violare la sicurezza fisica oppure si cambia il comportamento dell’hardware, utilizzo diretto del calcolatore, inserimento di supporti non autorizzati. Quando si è all’interno della rete locale è molto più facile effettuare attacchi perché si può intercettare il traffico e fare spoofing, cosa che non si può fare da rete geografica. Gli attacchi da rete geografica sono più difficili ma sono anche i più pericolosi in quanto ci sono leggi e regole differenti ma ci possono essere nazioni che sono in conflitto tra di loro. → quantità di avversari enorme. Attacchi 0 day: attacchi nuovi che non sono mai stati pubblicati e non si hanno difese. Sicurezza delle comunicazioni: ci si preoccupa della comunicazione che transita sulla rete insicura. Ci si preoccupa che i messaggi da un calcolatore a un altro siano protetti. Problemi : intercettazione e modifica, poiché un messaggio può essere intercettato e modificato. Inoltre, c’è anche l’interruzione in cui un messaggio viene interrotto e non arriva a destinazione. Su intercettazione e modifica ci sono degli ottimi strumenti per risolvere questi problemi e si utilizza la crittografia, per l’interruzione non ci sono. Come si evita l’interruzione? Si utilizza un sistema distribuito delle risorse con i CDN (Content Deliver Network), che forniscono servizi tramite dei proxy vicini al client a cui lo devono fornire. Un tipico attacco di interruzione è il DoS, che è un attacco informatico che consente di interrompere il corretto funzionamento di un server, che di fatto mira ad esaurire le risorse del server fino a mandarlo in crash. Cifrari simmetrici: intercettazione e modificaproblemi da affrontare Concetto di CIA (Confidentiality Integrity Availability) :
  • C evita l’intercettazione
  • I evita la modifica
  • Bit oriented Cifrario di Cesare
  • Genera una chiave K tra 0 e 20
  • Per cifrare, sostituisci la lettera numero X con la lettera numero (X+K)%
  • Per decifrare, sostituisci X con (X-K)% Dato un testo cifrato basta provare a decifrarlo con tutte le chiavi K da 0 a 20, fermandoci quando troviamo un testo di senso compiuto (attacco di tipo ‘forza bruta’ – ‘brute force’, o ‘esaustivo’) Cifrari monoalfabetici a una lettera Come il cifrario di Cesare, ma la chiave K identifica una sostituzione arbitraria di ciascuna lettera dell’alfabeto (per esempio a → q, b → z, c → f, …) Esistono N! diverse chiavi per N lettere (tutte le possibili permutazioni), per 21 lettere sono più di 51 miliardi di miliardi di chiavi. → possibile attacco di forza bruta con un calcolatore. Problemi cifrari simmetrici: forza bruta e crittoanalisi statistica che si basa sulla frequenza delle lettere nel testo. L’idea base è che il pattern di frequenza del testo cifrato rispetto quello in chiaro e si può conoscere così la frequenza del testo. Si osserva la frequenza di lettere nel testo cifrato. Esempio: Ciphertext only attack Eva sa la lingua di riferimento (inglese), ma non conosce la sostituzione. Il metodo per la crittoanalisi statistica è si confronta la frequenza delle lettere del testo cifrato con quelle della lingua di riferimento → se il testo è lungo è più facile individuare il messaggio. Più il testo cifrato è lungo più è facile decifrare
  • Se esistono parti di testo fisse il compito è estremamente facilitato
  • Se esistono parti di testo probabili il compito è facilitato Esempio: decifrare un testo di circa 150 caratteri Cifrari monoalfabetici a N lettere: si sostituiscono digrafi e non lettere ed è più sicuro rispetto all’attacco di forza bruta. Il cifrario è più sicuro rispetto all’attacco esaustivo. Es. per N=2, numero di chiavi: |{aa,ab,…,az,ba,…,bz,…,za,…,zz}|!=(21*21)! Ma è ancora possibile la crittanalisi statistica. Cifrario di Playfair: è più robusto alla crittonanalisi statistica ma è più difficile da applicare → 25! Tutte le possibili permutazioni, ma in teoria ancora meno Cifrari polialfabetici: l’analisi statistica risulta molto più difficile con un cifrario polialfabetico, ove una lettera viene sostituita ogni volta in modo diverso, a seconda della sua posizione nel testo. Man mano che si va avanti nel testo in chiaro, si cambia la sostituzione. La crittoanalisi statistica diventa più difficile perché si cambia la sostituzione. Cifrario di Vigenère: cifrario forte in particolare quando il testo non è troppo lungo. È come il cifrario di Cesare ma per ogni lettera cambia la chiave. La chiave è una sequenza di numeri tra 0 e 20. Supponiamo si conosca n, allora è possibile fare la stessa analisi dei cifrari monoalfabetici per lettere che distano n posizioni nel testo (per esse vale la stessa sostituzione)
  • Più il testo cifrato è lungo più è facile decifrare
  • Se esistono parti di testo fisse il compito è estremamente facilitato Cifrari bit-oriented: dai caratteri ai bit

Esempio: da A → R, quindi in ASCII 65 → 82. In bit si deve trasformare il numero 65 in binario e calcolare lo XOR con una chiave per ottenere la lettera trasformata. Cifrario di Vernam: le vulnerabilità sono le stesse di Vigenère → c’è la remota possibilità di un’analisi statistica se i bit sono alla stessa distanza della chiave. One time pad: è il cifrario di Vigenère dove la chiave è lunga quanto il testo in chiaro. È totalmente sicuro Cifrari a permutazione Cifrari simmetrici moderni

  • Macchine a rotori: la più famosa è Enigma usata dai tedeschi nella 2 guerra mondiale. Il cifrario è simile a quello di Vigenère ma ci usano chiavi molto lunghe in modo facile.
  • DES (Data Encryption Standard)
  • AES (Advanced Encryption Standard)

Data Encryption Standard (DES)

Cifrario simmetrico reale e attualmente utilizzato che corrisponde a un algoritmo implementato sui calcolatori. Inventato all’inizio degli anni ’70 da IBM, poi modificato e pubblicato nel ’77, ad oggi si usa come 3DES poiché si devono usare chiavi più lunghe. È basato sul concetto di diffusione e confusione. Per risolvere il problema delle chiavi, si è introdotto l’AES (Advanced Encryption Standard). Effetto valanga: è imprevedibile quindi deve diffondere le informazioni e confonderle rimescolandole. Il DES si basa sul cifrario di Feistel ed è un cifrario a blocchi. Si cifra un blocco di informazioni lungo 64 bit, per l’AES 128 bit. Il blocco viene diviso in due parti: sx e dx di 32 bit ciascuno. Questi vengono processati attraverso delle fasi che si ripetono (16 fasi). Si prende la parte destra e lo si copia nella parte sx, della parte dx la si mette come input a una funzione F che prende anche una chiave, il risultato è messo in XOR con il sottoblocco sx e questo nuovo risultato sarà la parte destra. Gli ultimi due sottoblocchi sono il testo cifrato. Le chiavi DES sono di 56 bit, molto corte, 16 passi di Feistel → nel complesso l’algoritmo DES è molto efficiente e sicuro da attacchi di forza bruta. La chiave viene estesa fino a farla diventare da 64 bit, aggiungendo ogni 7 bit un bit di parità. Ogni round ha in input una subkey calcolata a partire dalla chiave generale tramite operazioni standard deterministiche. Alla fine del passo 16 il blocco viene invertito per ottenere il ciphertext. Ogni sottochiave è lunga 48 bit. Passi della funzione: passo precedente + sottochiave. La parte destra va nella parte sx. Ri è il risultato di una computazione → la parte dx è trasformata con un’espansione di permutazione (48 bit), poi si mettono in XOR con la chiave e poi si trasformano i 48 bit con la S-box in 32 bit a blocchi di 6 bit, che saranno sostituiti in 4 bit, e il tutto si mette in XOR con la parte sx. E = Encryption D = Decryption La D nel DES è possibile basta conoscere le chiavi: Advanced Encryption Standard Chiavi lunghe native di 128 bit o 256 bit, pensato per architetture a 64 bit ed è robusto sugli attacchi effettuati sul DES. Ha un numero inferiore di passi ma più complessi. Cifrari a blocchi

Si vuole che l’avversario non riesca a ricavare la chiave e anche se vede il messaggio cifrato non lo possa decifrare con la chiave. Nei cifrari asimmetrici le chiavi sono intercambiabili. Basati su principi completamente diversi da quelli della crittografia convenzionale:

  • nei cifrari convenzionali la difficoltà della lettura di un messaggio cifrato consiste nel fatto che la trasformazione realizzata dal cifrario non è conosciuta
  • nei cifrari asimmetrici la trasformazione è conosciuta, ma è troppo difficile da calcolare se non si conosce l’informazione segreta (trapdoor) utilizzata per generare le chiavi e/o per decifrare. Nei cifrari asimmetrici, l’avversario sa tutte le informazioni ma per ottenere il risultato deve compiere un calcolo computazionale molto complesso. Vantaggi:
  • Strumentali allo scambio di chiavi per la confidentiality
  • Sono fondamentali per un particolare modo di trattare l’integrity → firma elettronica
  • Non sostituisce i cifrari simmetrici, ma è un supporto, infatti per una grossa mole di traffico si utilizzano i simmetrici
  • Perché diventa possibile cifrare un messaggio senza condividere un segreto con il destinatario → maggiore facilità nella distribuzione delle chiavi
  • Perché solo chi detiene la chiave di cifratura è in grado di produrre un dato messaggio cifrato possibilità di effettuare operazioni non disconoscibili (non repudiation) → introduce la possibilità in cui non si può dire “non sono stato io a fare quella cosa”. Maggiore facilità nella distribuzione delle chiavi: perché è chiamata a chiave pubblica? A B: K K1, M → EK1(M) → DK 2 (M) = M K1 = chiave pubblica di B K2 = chiave privata di B Le chiavi sono di un soggetto, quindi un soggetto ha una coppia di chiavi <chiave pubblica (K+), chiave privata (K-)>. La chiave pubblica è effettivamente pubblica e viene trasmessa in rete. Non c’è nulla di segreto → è impossibile calcolare K2 a partire da K1. La chiave privata è super segreta, perché essendo personale e se viene manomessa permette di intercettare il traffico e falsificare tutto. Numero chiavi simmetriche: Il numero di chiavi simmetriche: 2 x ogni utente Si riesce a cifrare un messaggio senza avere n chiavi senza far transitare segreti. La chiave segreta/privata non transita in rete ed è mantenuta dal proprietario.

Non repudiation: da segreto condiviso a segreto personale, di conseguenza se si commette un’azione con la chiave privata si ha la certezza che quell’azione è stata compiuta dal proprietario della chiave. A questo punto entra in gioco l’integrità con l’autenticazione. Autenticazione: possibilità di inviare un messaggio senza che nessuno lo modifichi. Cifratura con chiave privata → mittente. Semplice forma di autenticazione: utilizzando informazioni segrete, lo si trasforma aggiungendo un codice di autenticazione e il destinatario è in grado di capire se il messaggio è autentico o no con la chiave pubblica. Integrità: verifica dell’autenticazione con chiave pubblica → destinatario A cifra il messaggio con la sua chiave privata e lo manda a B. il messaggio non è protetto da lettura poiché tutti conoscono la chiave pubblica di A, è intercettabile, ma lo scopo è renderlo autenticato. Se dopo averlo decifrato si ottiene un messaggio con senso, vuol dire che non è stato modificato poiché solo A conosce la chiave privata di conseguenza anche se solo uno cambia un bit, dopo la decryption esce fuori una cosa senza senso. Replay : mandare lo stesso messaggio 2 volte. Per il traffico di rete si utilizza una combinazione dei cifrari asimmetrici e simmetrici → concetto di digital envelope: per inviare un messaggio cifrato si prepara un ‘digital envelope’ che consiste nel messaggio cifrato con una chiave simmetrica K, e nella chiave K stessa cifrata mediante un cifrario asimmetrico. Imbustamento di due informazioni: messaggio e chiave. K viene generata al momento per il passaggio da cifrario asimmetrico a simmetrico per il messaggio.

Funzioni di Hash

Per funzionare, l’attacco del compleanno richiede che Eva possa avere uno “Chosen Message”, in cui Eva cerca di convincere Alice a mandare un messaggio con la variante, in questo modo l’hash calcolato su quel messaggio risulta essere uguale quindi Eva riesce nel suo intento. Nei codici di hash bisogna avere una lunghezza doppia rispetto al codice per evitare l’attacco del compleanno. Threat models:

  • Chosen message attack: Eva vede il messaggio di Alice e lo riesce a modificare generando una variante → Eva fa un attacco attivo e fa dice ad Alice quali messaggi mandare. In questo caso i messaggi che Eva conosce sono quelli di Alice. Eva vince quando riesce a calcolare il codice di autenticazione corretto di un messaggio falsificato
  • Known message attack: Eva vede un certo numero di esempi, oltre allo chosen message
  • Ciphertext only attack: l’avversario ha pochi strumenti a disposizione e può solo osservare il traffico che viaggia in rete e cerca di decifrarlo o capire qualcosa. Tipi di funzioni di hash: modulo, bit di parità. Bit di parità per rilevare errori non voluti o malfunzionamenti → non vanno bene nella secutity poiché l’avversario inserisce appositamente errori che non possono essere rilevati. Nella security non va bene perché si può generare facilmente una collisione.

Autenticazione e firma elettronica

Per l’autenticazione e la firma elettronica si utilizzano le chiavi sia simmetriche che asimmetriche. In particolare, per l’autenticazione nel caso simmetrico si utilizza la stessa chiave condivisa per autenticare (mittente) e verificare (destinatario). Nel caso asimmetrico è che nell’autenticazione si utilizzano informazioni segrete di chi autentica e si utilizzano informazioni pubbliche per la verifica → chiave pubblica. L’autenticazione simmetrica si basa sui cifrari simmetrici e utilizza specifiche funzioni di hash. Quando si manda in rete un messaggio ci si pone 2 problemi:

  • Integrità: si aggiunge un codice di identificazione
  • Cifratura: si cifra solo il messaggio ma non si garantisce l’integrità Cifratura + autenticazione: risolve questi 2 problemi Autenticazione simmetrica L’autenticazione è un codice che viene aggiunto al messaggio, che serve per garantirne l’integrità. Nel caso simmetrico, questo codice è chiamato MAC (Message Authentication Code). Si condivide una chiave segreta k, quindi il calcolo del MAC e la sua verifica è sempre effettuato dalla stessa chiave k. Il MAC si calcola a partire dalla chiave simmetrica e ci sono 2 modi:
  • Cifrario simmetrico in modalità CBC: si prende il messaggio, lo si divide in blocchi lungo quanto deve essere l’input del cifrario simmetrico, si applica il CBC e il blocco cifrato lo si dà in input allo XOR e il risultato sarà input del 2 blocco e così via; l’ultimo passaggio è il blocco MAC cifrato. In questo caso l’attacco del compleanno non si compie poiché l’attaccante non conosce la chiave.
  • MAC con funzioni di hash: si vuole aggiungere una chiave, quindi la chiave diventa un input della funzione di hash. MACk(m) = H(k || m). per fare in modo che l’impatto sia significativo, la chiave va messa all’inizio. HMAC: si prende il messaggio, lo si divide in n blocchi e si aggiunge un padding. A questo punto si hanno i blocchi di j bit e si ha la chiave segreta k. La chiave k deve essere lunga j bit, se non è così, la si fa diventare di lunghezza giusta aggiungendo 0 oppure la si riduce. → si applica 2 volte la funzione di hash, dividendo in 2 la chiave condivisa: H(k1 || H(k2 || m)). È sicuro contro lo chosen message attack.

Firma elettronica asimmetrica: anche nella firma viene aggiunto un codice, ma essendo nel caso asimmetrico viene manipolata usando chiavi diverse. Il codice è generato dalla chiave privata di Alice, che sarà verificato dalla sua chiave pubblica da Bob. Per firmare si usa la chiave privata e per la verifica si utilizza la chiave pubblica del soggetto. La firma elettronica è un codice univoco. Esistono vari modi di fare la firma: RSA con SHA-256 o crittografia a curva ellittica. Si prende il messaggio, si calcola l’hash, si ottiene il digest di 256 bit. Questi vengono cifrati da RSA usando come input la chiave privata di chi cifra, il tutto diventa di 1024 bit. → quello che si ottiene è la firma. Lato ricevente: si riceve il messaggio e la firma. Bob calcola il digest del messaggio e decifra la firma utilizzando la chiave pubblica di Alice, ottenendo il digest decifrato. Se i due digest sono uguali si ha l’integrità del messaggio e la veridicità della firma. La firma elettronica ha il principio della non disconoscibilità perché per produrre il codice di hash si utilizza la chiave privata e Alice non la potrà disconoscere poiché è stata generata dalla sua chiave privata. La firma elettronica è soggetta ad attacchi di tipo man in the middle, poiché Alice firma un messaggio con la sua k-, Eva le blocca il messaggio, produce con un messaggio m’ e lo firma con la propria chiave privata ke-, Bob però verificando la firma si accorge che non è valida ma è stata falsificata. Se Eva, riesce a far credere a Bob di essere Alice, la firma falsa di Eva risulta valida, di conseguenza, ci deve essere un’associazione certa tra soggetto e chiave pubblica.

1986: spionaggio con hacker tedesco → si doveva analizzare il motivo per cui si utilizzava una certa quantità di CPU ma non risultavano contabilizzate, quindi sistemi a scrocco. 1° azione: bloccare l’account → ma non si fece, anzi studiò il problema, individuando che l’intruso aveva sfruttato una vulnerabilità di un editor di testo: Emacs che lavora in combinazione con un programma che gestisce le mail e usava un comando per spostare una mail. Per fare lo spostamento, si andavano a toccare delle parti di file system, ma si doveva dare il privilegio all’utente. L’intruso creò e sostituì un programma suo che veniva eseguito con i privilegi di amministratore di sistema, creando così account e programmi con backdoor e utilizzò i computer LBN. 1988: fraudolenza con Worm → programma che si replica automaticamente. L’attaccante lo lanciò dai computer del MIT, provocando un elevato numero di macchine infettate e i computer connessi alla rete erano diventati utilizzati (DoS). Tipologie di malware Per malware si intende un codice per danneggiare un sistema alterandone le funzionalità o i dati. Suite di protocolli TCP/IP Il livello di Internet è un servizio best effort senza garanzia di consegna, se si vuole la garanzia di consegna e quindi un servizio affidabile, ci si deve affidare a TCP. Livello Transport:

  • TCP garantisce una comunicazione affidabile poiché permette di sapere quali pacchetti sono consegnati e ricevuti. → connection oriented
  • UDP: non ci sono garanzie sulla consegna dei pacchetti → connection less Integrità: si intende un pacchetto che parte dal mittente e arriva al destinatario e rimane inalterato per tutto il percorso dalla sorgente alla destinazione. Controlli:
  • a livello applicazione e transport si controlla che il pacchetto sia lo stesso spedito → end-to-end
  • a livello Internet il pacchetto subisce delle modifiche, quindi il datagram spedito non è lo stesso ricevuto perché ci sono dei dati che cambiano e i controlli vengono fatti dai router hop by hop intermedi. Classi di indirizzi IP Gli indirizzi IP sono composti da una parte che identifica la rete: NetID e una parte che identifica gli host della rete: Host. Per essere flessibili all’inizio furono individuate delle classi di indirizzo sulla base degli host ospitati. Negli anni le classi di indirizzi sono scomparse poiché si è notato uno spreco di indirizzi IP, di conseguenza è stato introdotto il CIDR (Class Inter Domain Routing) in cui si indica con /numero bit per la subnet mask. IP definisce un insieme di indirizzi speciali:
  • Non possono essere assegnati ad host
  • Indirizzo di Network
  • Broadcast Diretto
  • Broadcast Limitato
  • Indirizzo di questo host
  • Indirizzo di loopback
  • Indirizzi multicast Protocollo IP
  • Il protocollo IP è la base fondante della rete Internet
  • Fornisce un servizio di consegna di datagrammi di tipo best effort: senza connessione, senza garanzia di affidabilità (non viene garantita la consegna, l’integrità, l’ordine e la non duplicazione degli datagram)
  • I datagrammi IP possono essere scambiati tra due nodi qualsiasi
  • Ogni nodo e identificato da un indirizzo IP da 32 bit (IPv4), tradizionalmente scritto come 4 ottetti (notazione in base 256)
  • L’instradamento (routing) avviene tramite nodi gateway che si interfacciano con due o più reti
  • Per la comunicazione low levelIP può usare una pletora di protocolli MAC (es. Ethernet, WiFi, ecc.) La rete è stateless, non si mantiene memorizzato lo stato della rete. Attacchi su LAN Si effettuano attacchi sulla rete per fare spoofing, man in the middle o intercettare i pacchetti da una sorgente a una destinazione e modificarli. Sulla rete si possono fare 3 operazioni:
  • Sniffing: annusare i pacchetti che passano e leggerli
  • Spoofing: far finta di essere un altro → falsificazioni
  • Hijacking: dirottamento dei pacchetti Le prime versioni di Ethernet avevano un bus a cui gli host si collegavano → Ethernet (1 versione) basato su broadcast, quindi tutti gli utenti ricevono il messaggio, le schede di rete, portavano all’host solo le informazioni strettamente necessarie. Sniffing
  • Attività (non necessariamente fraudolenta) di intercettazione passiva dei dati che transitano in una rete
  • Tecnica di base per diversi tipi di attacchi. I pacchetti catturati possono includere password e varie altre

- IP

  • Subnet mask
  • Default gateway → collegato direttamente alla rete LAN In questo modo il router che riceve un pacchetto controlla se l’indirizzo IP destinazione fa parte della sua stessa rete controllando la subnet mask, se fa parte della stessa subnet lo inoltra direttamente, altrimenti usa il default gateway per l’inoltro verso altri router oppure DNS di primo contatto per la traduzione di nomi di dominio. Wireshark Cattura dei pacchetti e del traffico che transita in rete. ARP → si capisce che è una Reply perché la richiesta non è mandata in broadcast. Traffico di rete: TCP verso una particolare porta Ettercap Attacco Man in the Middle → si sniffa l’interfaccia di rete per vedere gli host collegati. Ognuno di questi viene aggiunto al target e dopodiché si fa ARP Poisoning. In questo modo ci sono due indirizzi IP che vanno sulla stessa macchina Attacchi a livello IP IP spoofing: si falsifica l’indirizzo IP del mittente per fingersi un host che ha dei privilegi, ecc. → attacco particolare ed è difficile da gestire. Ogni volta che c’è una procedura di autenticazione, conviene effettuare lo spoofing. Frammentazione e attacchi : si può sfruttare la frammentazione per compiere attacchi di tipo DoS ed è uno dei motivi per i quali la frammentazione è stata abolita in IPv6. Tipi di attacco:
  • UDP flooding: si utilizzano dei botnet per generare grandi volumi di frammenti da numerose fonti. In molti casi, il destinatario non riceve il frammento iniziale, ma vede solo molti pacchetti senza header; di conseguenza non può sapere se i frammenti appartengono a una sessione legittima oppure sono traffico spazzatura.
  • Attacchi di frammentazione UDP e ICMP: sono trasmessi pacchetti UDP o ICMP falsi. Questi pacchetti sono progettati per essere più grandi dell’MTU della rete, ma in realtà sono inviate solo alcune parti. Dato che i pacchetti sono falsi e non possono essere riassemblati, il server alloca risorse che sono consumate rapidamente, rendendolo non disponibile al traffico legittimo.
  • Attacco teardrop: prende di mira il meccanismo di riassemblaggio IP. I pacchetti non possono essere riassemblati e il risultato è che i pacchetti si sovrappongono e il server di destinazione viene sopraffatto e alla fine crasha. ICMP: Smurf Attack È un tipo di attacco ad amplificazione poiché si genera un numero di pacchetti di risposta tanti quanti sono gli host presenti sulla rete. Tutti gli attacchi di ICMP hanno in comune lo spoofing di indirizzi IP.

Transport layer I protocolli di livello trasporto mettono in comunicazione processi end-to-end. Lato mittente vengono inviati dei pacchetti di livello transport → segmenti all’interno dei quali vengono messe le informazioni di livello IP, che viaggiano incapsulati nella parte dati di TCP per le applicazioni. Il livello transport si colloca tra il livello di rete e il livello applicazione. UDP: è un protocollo che offre un effort e non garantisce affidabilità TCP: protocollo complesso che garantisce affidabilità sulla consegna dei pacchetti, controllo di flusso, ecc. Le applicazioni sono composte da una parte client e un server, in cui il client richiede un servizio, file, ecc. e il server fornisce al client i file di cui ha bisogno. → processo asimmetrico. Funzioni di base del livello transport:

  • Demultiplexing: ha il compito di trasportare i dati dei segmenti a livello di trasporto verso la giusta socket
  • Multiplexing: ha il compito di radunare frammenti di dati da diverse socket sull’host di origine e incapsulare ognuno con intestazioni a livello di trasporto per creare dei segmenti e passarli a livello di rete. 17/04/ Syn flood attack 3 way handshake:
  1. Syn = 1 dal client al server
  2. Segmento syn ack dal server al client
  3. Ack dal client al sever Attacchi tipici: DoS e DDoS che esauriscono le risorse del server in quanto si generano tanti messaggi che creano accodamento nella coda del buffer del server creando malfunzionamenti e crash. Attacco distruttivo che tenta di interrompere la regolarità delle operazioni del server. L’attaccante invia tanti SYN in modo tale che il server alloca le risorse necessarie per stabilire la connessione, e se non riceve il segmento conclusivo ACK per stabilire la connessione, non rilascia la risorsa allocata finché non lo riceve sprecando di conseguenza risorse e/o memoria fino a sovraccaricarsi e andare in crash. Syn cookie: Con il SYN Cookie, il server non alloca le risorse al primo SYN ricevuto dal client, ma le alloca dopo che il client invia l’ACK per stabilire la connessione. In questo modo si pone rimedio al SYN Flood, in quanto non si permette all’attaccante di inviare tanti SYN per far allocare al server tante risorse quanti i SYN ricevuti, dato che alloca le risorse all’atto della ricezione dell’ACK da parte del client. Il server si comporta come un server stateful e non stateless in cui non memorizza lo stato della connessione. Aver introdotto lo stato ha permesso di conservare delle risorse e bloccarle. Nel syn cookie, il server nel messaggio numero 2 (SYN ACK), risponde al client con le informazioni:
  4. Syn ack + cookie → codifica delle informazioni che quando verranno restituite potranno completare il processo di instaurazione della connessione
  • inviando un pacchetto falso, si può riuscire a prevedere il numero di sequenza successivo del sistema operativo. Quindi:
  1. host A, host B, host C (attaccante)
  2. l’host C stabilisce una connessione TCP su una delle sue porte TCP, dalle informazioni ottenute l’attaccante deduce quale sequence number utilizzare. Prevedendo il sequence numer iniziale, è in grado di falsificare l’identità di un client attendibile su un server senza richiedere altre informazioni al server. Quindi C si finge A e manda il primo sequence number di A, a B.
  3. B risponde a C, che crede essere A con il seq number successivo
  4. A questo punto C conclude la connessione Per rendere l’attacco efficace, in quanto A potrebbe intromettersi nella comunicazione inviando pacchetti a B, di conseguenza C effettua DoS su A e in questo modo si finge A a B. Questo è un attacco blind perché l’attaccante non sa se l’attacco è riuscito perché non riesce a ricevere le risposte di B, in quanto B risponde sempre ad A perché C si è finto A. Inoltre, questa tecnica è utilizzata per il dirottamento della sessione. Una volta che l’intruso riesce a intromettersi nella connessione riesce a impossessarsi del terminale. TCP Session Hijacking È una tecnica che consiste nell'intercettare una sessione TCP cominciata fra due terminali ed impossessarsene (ognuno delle due controparti legittime non si accorgono dell’intruso). Se il controllo d'autenticazione viene effettuato solamente all'apertura della sessione, un attaccante riesce ad impossessarsi della connessione durante la sessione. Esistono tre possibili metodi:
  • Source routing(o ri-direzione)
  • Blind attack(attacco di Morris)
  • Attacchi di tipo MitM Desincronizzazione:
  1. Host A manda un seq number a B di partenza
  2. L’attaccante C, si finge A e manda a B il seq number successivo
  3. B vede arrivare da A il seq number e manda il corrispondente ACK e il seq number successivo. A questo punto A riceve da B un seq number e un ACK fuori sequenza e scarta il pacchetto. C tenta solo di intercettare il pacchetto 22/04/ Scanning L’attività di scansione fa parte dell’attività di ricognizione → per progettare attacchi o difesa occorre partire da attività di ricognizione nelle reti obiettivo. L’attaccante usa la ricognizione effettua lo scanning per individuare la sua rete obiettivo e può effettuare anche il social engineering. Per effettuare questo tipo di operazioni servono i socket, collocati sia lato server che lato client e si interfacciano tra il livello transport e il livello applicativo. Socket lato server :

un socket viene creato: 1° if, 1° e 2° if: il socket deve essere ancorato all’ip del server e alla sua porta 3° if: specificano la porta di ascolto del socket in attesa delle richieste di connessione 4° if: il programma si blocca in attesa di connessioni: client che arriva dall’esterno e chiede la connessione. Quando è accettato un client avviene lo scambio di informazioni, una volta terminata l’interazione con il client, il server chiude la connessione e si rimette in attesa di ulteriori richieste da parte di altri client. Socket client : il client deve conoscere l’indirizzo IP del server che è in esecuzione e la sua porta su cui è in attesa il server. Se il client non conosce la porta del server, non può comunicare con lui e anche in caso di attacco è necessario conoscere la porta. Convenzione delle porte: servizi well-known → ogni servizio ha una porta standard Una volta ottenute queste informazioni, il client crea il socket (1° if) e le informazioni sono codificate in una struttura dati, che si passa a una system call del SO → connect che permette di connettersi al server e quindi il set-up della connessione e fa partire il segmento SYN = 1 della connessione, lanciando il 3-way handshake. Attività di ricognizione :

  • cyber scannig ed enumeration: attività preliminare che permette di enumerare reti, ecc.
  • intrusion attempt: tentativo di intrusione
  • elevation of priviledge
  • perform malicious task
  • deploy malware/backdoor
  • delete forensic evidence and exit. Scanning : si riferisce all’attività di ricerca di vulnerabilità in reti e sistemi di calcolo (mediante probing) o dei modi per infiltrarsi in tali sistemi. Tipo di scansioni:
  • attiva : più semplici da intercettare → si immettono pacchetti nella rete. Fornisce una mappa delle porte e servizi attivi. È invadente cioè può essere rilevato in quanto genera dei messaggi poiché tenta di stabilire delle connessioni per testare le porte e tramite i file di log si rileva il tentativo.
  • passiva : si ascolta il traffico di rete. Ci si mette ad ascoltare il traffico in modalità promiscua (permette di ascoltare tutto il traffico di rete dalla scheda di rete). Non è una procedura invadente.
  • strategia : indicano chi sta effettuando la scansione rispetto al target della scansione o remoto – local : l’attaccante si trova all’esterno della rete da attaccare e invia il suo vettore d’attacco da remoto o local – remote : l’attaccante si trova all’interno di una rete locale e invia il suo vettore d’attacco in internet per attaccare la vittima o local – local : l’attaccante attacca una vittima appartenente alla sua rete locale senza andare in internet. o remote – remote
  • approccio : o aim : port scanning su un intervallo di porte/indirizzi IP o un target specifico o metodo : da un singolo punto o utilizzano una tecnica distribuita o ampio raggio : può prendere sia range di IP che di porte o target specifico : attività mirata e si differenzia con strumenti che sono: