Estratto del documento

Corso di “sicurezza dei sistemi informatici in Internet”

Corso tenuto nell’A.A. 2021/2022 dal prof. Massimo Carnevali presso l’Università degli Studi di Ferrara. Licenza Creative Commons 4.0 International: BY-SA. Documento derivato dall’elaborazione del materiale didattico fornito dal prof. Massimo Carnevali per il corso “sicurezza dei sistemi informatici in Internet” presso l’Università degli Studi di Ferrara.

Sicurezza protocolli di rete

Created @November 22, 2021 6:58 PM
Last edit @December 19, 2021 9:52 PM
Slide 15

Indice

  • TCP/IP
  • Vulnerabilità di TCP (Attacchi)
  • IP Spoofing
  • Categorie di attacchi IP Spoofing
  • Difesa contro IP Spoofing
  • Syn Flooding
  • Difesa contro Syn Flooding
  • ARP Spoofing
  • Esempio di ARP Spoofing
  • Difesa contro ARP Spoofing
  • BGP (Border Gateway Protocol)
  • ICMP (Internet Control Message Protocol)
  • Smurf Attack
  • Difesa Smurf Attack
  • Ping flood
  • Difesa Ping flood
  • DHCP (Dynamic Host Configuration Protocol)

DNS

  • DNS shadow server (DNS spoofing)
  • Cache poisoning
  • Attacco omografico
  • Difesa contro attacchi omografici
  • Punycode
  • Domain hijacking
  • Prevention del Domain hijacking

HTTPS

  • HTTPS Handshake
  • Heartbeat
  • HTTPS Inspection
  • HTTPS Strict Transport Security (HSTS)

Protocolli vari

  • SMTP (Simple Mail Transfer Protocol)
  • FTP (File Transfer Protocol)
  • SSH (Secure Shell)

Firewall

  • DMZ (Demilitarized Zone)
  • Stateless firewall
  • Stateful firewall

Gateway

  • Application level gateway
  • HTTP application level gateway (Proxy)
  • HTTP Reverse proxy
  • Captive portal
  • Content filtering
  • Zero-trust

TCP/IP

Il Transmission Control Protocol (TCP) è un protocollo di rete a pacchetto a livello di trasporto (livello 4 del modello OSI) che si occupa di rendere affidabile la comunicazione in rete tra mittente e destinatario. Di solito viene usato in combinazione con il protocollo di livello di rete IP (livello 3 OSI). Ha avuto origine nell’implementazione iniziale delle reti con l'intento di superare il problema della mancanza di affidabilità e controllo della comunicazione sorto con l'interconnessione su vasta scala di reti locali in un'unica grande rete geografica. TCP è stato progettato e realizzato per utilizzare i servizi offerti dai protocolli di rete di livello inferiore che definiscono il modo di trasferimento sul canale di comunicazione.

La procedura utilizzata per instaurare in modo affidabile una connessione TCP tra due host è chiamata three-way handshake, indicando la necessità di scambiare tre messaggi tra i due host affinché la connessione sia instaurata correttamente. Viene stabilita una connessione tra client e server prima che i dati possano essere inviati: il server deve essere in ascolto per le richieste di connessione provenienti dai client. Una volta stabilita la connessione avviene lo scambio di pacchetti IP. Le applicazioni che non richiedono un servizio di flusso di dati affidabile possono utilizzare il protocollo UDP (User Datagram Protocol), che fornisce un servizio senza connessione che assegna priorità al tempo rispetto all'affidabilità.

Vulnerabilità di TCP (Attacchi)

Il protocollo TCP viene progettato per la prima volta come strumento da utilizzare in reti chiuse e private, gestite da enti o università che quindi non si ponevano il problema di garantirne la sicurezza. TCP/IP nasce infatti per essere efficiente, veloce, interoperabile e aperto, mentre la sicurezza non era inizialmente prevista perché il suo utilizzo previsto era in reti chiuse: funzionalità come la sicurezza, l'integrità e l'autenticità della comunicazione tra due host vengono relegate a livelli di rete superiori, portando ad una serie di debolezze e vulnerabilità intrinseche del protocollo. Di seguito vengono riportate e illustrate genericamente le principali e più diffuse metodologie per condurre un attacco a livello di trasporto su una comunicazione che si appoggia a questo protocollo.

IP Spoofing

È una tecnica di attacco informatico che utilizza un pacchetto IP nel quale viene falsificato l'indirizzo IP del mittente. Nell'header di un pacchetto IP si trova uno specifico campo, il Source Address, il cui valore indica l'indirizzo IP del mittente: modificando questo campo si può far credere che un pacchetto IP sia stato trasmesso da una macchina host diversa. Questa tecnica può essere utilizzata per superare alcune tecniche difensive contro le intrusioni, in primis quelle basate sull'autenticazione dell'indirizzo IP come avviene nelle intranet aziendali in cui l'autenticazione ad alcuni servizi avviene sulla base dell'indirizzo IP, senza l'utilizzo di altri sistemi (come username e password). L'IP spoofing risulta essere una tecnica utile per ottenere l'anonimato di un singolo pacchetto, ma è difficile sfruttarla per attacchi che prevedano lo spoofing di un'intera sessione in quanto chi invia il pacchetto (attaccante) non sarà, generalmente, in grado di proseguire in modo coerente la comunicazione, dato che le risposte saranno inviate dal ricevente (vittima) all'indirizzo IP indicato nel pacchetto ("spoofato").

Categorie di attacchi IP Spoofing

  • IP Spoofing non cieco: è attuabile in una rete LAN. Chi attacca cerca di farsi passare per un host che è nella sua stessa sottorete.
  • IP Spoofing cieco: l'attaccante cerca di farsi passare per un host di una qualsiasi sottorete.
  • Attacchi DoS: l'attaccante cerca di bloccare un host per impedire a quest'ultimo di svolgere la normale attività oppure per prenderne il controllo.

L’IP Spoofing generalmente viene utilizzato per costruire altri tipi di attacchi come i DoS (Denial of Service), che hanno come scopo quello di mandare in tilt un server occupando tutte le risorse a sua disposizione.

Difesa contro IP Spoofing

Una delle difese che si possono attuare contro questo tipo di attacco è l'utilizzo di packet filtering, impostando opportune regole sulla base delle quali viene deciso quali pacchetti dall'esterno possono essere trasmessi all'interno della rete aziendale e viceversa.

Syn Flooding

È un attacco di tipo Denial of Service nel quale un utente malevolo invia una serie di richieste SYN-TCP verso il sistema oggetto dell'attacco. Quando un client cerca di iniziare una connessione TCP verso un server, il client e il server si scambiano una serie di messaggi:

  • Il client richiede una connessione inviando un messaggio SYN (synchronize) al server.
  • Il server risponde a tale richiesta inviando un messaggio SYN-ACK al client.
  • Il client risponde con un ACK e il server dealloca la request fatta al punto 1 dal client consentendo di fatto la riuscita della connessione in maniera corretta.

Tale processo è chiamato TCP three-way handshake.

Three-way handshake e metodo di attacco Syn flooding

Il Syn flooding fa l’utilizzo di varie tecniche di attacco:

  • Spoofing attack: l’attaccante richiede una connessione al server utilizzando lo spoofing, camuffando il proprio indirizzo IP con un indirizzo IP diverso. Il server risponde alla richiesta inviata dal client malevolo con un SYN-ACK all'indirizzo IP non corretto: così facendo la connessione rimarrà aperta perchè non riceverà mai il messaggio di ACK da parte del client; le connessioni sono perciò stabilite solo in parte e utilizzano risorse del server. L'utente che vorrebbe legittimamente connettersi al server non ci riesce, dato che il server rifiuta di aprire una nuova connessione avendone molte in sospeso, realizzando così un attacco Denial of Service.
  • Attacco diretto: l’attaccante invia le richieste in rapida successione senza neanche nascondere il suo indirizzo IP, ma modificando il proprio sistema in modo da non rispondere al SYN-ACK.
  • Attacco distribuito: non si utilizza più una singola macchina, ma si fa affidamento a N macchine, le quali effettuano più attacchi Syn flooding in combinazione con lo spoofing in modo da rendere difficile da parte della vittima difendersi.

Difesa contro Syn Flooding

Negli anni, in seguito a diversi attacchi sferrati da vari utenti malevoli, sono stati implementati diversi metodi di prevenzione volti a evitare o limitare i danni causati da questo tipo di attacco. I diversi metodi sono i seguenti:

  • Inserire timeout entro cui ricevere l'ACK: si stabilisce un tempo limite entro cui il server rimane in attesa di ricevere l'ACK di risposta da parte del cliente, dopo il quale la sessione viene chiusa. Bisogna decidere con cura il valore del timeout: un timeout lungo può dare la possibilità all'attaccante di occupare tutte le risorse, mentre un timeout corto comporta il rischio che anche un utente buono non riesca a a fare in tempo a mandare l'ACK.
  • Riduzione del tempo di connessione: attraverso la riduzione dell'intervallo di connessione si riesce a evitare in parte il SYN flooding, di contro l'attaccante potrebbe aumentare notevolmente la frequenza di invio dei pacchetti.
  • Utilizzo di un IDS: è uno strumento software che è in grado di identificare accessi non autorizzati e di conseguenza, attacchi malevoli.

ARP Spoofing

Il protocollo ARP si occupa di gestire l'associazione tra indirizzi IP e indirizzi MAC che avviene prima di ogni tipo di comunicazione. Un’ipotetico host che vuole comunicare con un altro host manderà una ARP request in broadcast con il proprio MAC, il proprio IP e l’IP di destinazione. Quando il ricevente riceve la request risponderà con un ARP reply destinato al MAC sorgente contenente il proprio MAC. L'ARP Spoofing consiste nell'inviare intenzionalmente e in modo forzato risposte ARP contenenti dati inesatti con lo scopo di ridirezionare i pacchetti destinati ad un host verso un altro al fine di leggere il contenuto di questi per catturare le password che in alcuni protocolli viaggiano in chiaro. Consente ad un attaccante di concretizzare un attacco di tipo man in the middle verso tutte le macchine che si trovano in uno stesso segmento di rete. Questo attacco può essere sfruttato sia per leggere il contenuto che passa nella rete, sia per iniettare codice nei pacchetti. Questo attacco si basa su una debolezza intrinseca nel protocollo ARP, ovvero la mancanza di un meccanismo di autenticazione.

Per completare l'attacco senza essere scoperti è necessario fare attenzione alla fase di chiusura: l'attaccante deve preoccuparsi di comunicare un cambio di indirizzo e ricreare la sessione. Senza questa chiusura, si avrebbe che l'utente non riuscirebbe più ad uscire su Internet e si potrebbe accorgere dell'attacco.

Esempio di ARP Spoofing

Sono presenti due utenti (John e Linus) e un attaccante con i segunti indirizzi:

  • Attaccante: IP: I1, MAC: M1
  • John: IP: I2, MAC: M2
  • Linus: IP: I3, MAC: M3

L’attaccante invierà delle ARP reply opportunamente costruite/modificate:

  • A John invierà una reply che ha come IP quello di Linus e con MAC il proprio (I3,M1)
  • A Linus invierà un reply che ha come IP quello di John e con MAC il proprio (I2,M1)

Per protrarre l’attacco è necessario inviare delle ARP reply ogni 10 secondi, poichè spesso i sistemi operativi cancellano sistematicamente le voci dell’ARP cache dopo un certo periodo di tempo. Quando le due vittime, John e Linus, instaureranno una comunicazione tra loro, crederanno di comunicare reciprocamente, ma in realtà comunicheranno con l'attaccante il quale inoltrerà il traffico proveniente da John verso Linus e viceversa. Inoltre sarà in grado di sniffare tutto il traffico.

Difesa contro ARP Spoofing

Le tracce lasciate dall'attaccante sono costituite dal proprio MAC address contenuto nella ARP cache delle vittime e questo fatto è effettivamente sfruttato in alcune tecniche di protezione da questo tipo di attacco tramite semplice rilevazione delle anomalie. L'utilizzo di IPv6 (utilizza il protocollo NDP invece di ARP per la risoluzione degli indirizzi IP), IPsec o di tabelle ARP statiche sono metodi che possono rivelarsi una difesa efficace contro attacchi di tipo ARP spoofing ma è impensabile mantenere aggiornate le tabelle ARP di ogni host in una rete di grande dimensioni, mentre usare il port security sugli switch, ovvero fare in modo che per ciascuna porta del dispositivo possa esserci solo un MAC address, può essere utile.

Anteprima
Vedrai una selezione di 7 pagine su 29
Appunti Sicurezza protocolli di rete Pag. 1 Appunti Sicurezza protocolli di rete Pag. 2
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Appunti Sicurezza protocolli di rete Pag. 6
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Appunti Sicurezza protocolli di rete Pag. 11
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Appunti Sicurezza protocolli di rete Pag. 16
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Appunti Sicurezza protocolli di rete Pag. 21
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Appunti Sicurezza protocolli di rete Pag. 26
1 su 29
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher elefante1234 di informazioni apprese con la frequenza delle lezioni di Sicurezza dei sistemi informatici e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Ferrara o del prof Carnevali Massimo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community