CY L1 M1 L02 - Il Modello TCP/IP: Stack Protocollare e Flusso dei Pacchetti | Prof. Giagnotti
Cybersecurity • Livello 1 • Modulo 1 • Lezione 2
Autore: Prof. Giagnotti • Cybersecurity Academy

Il Modello TCP/IP: Stack Protocollare e Flusso dei Pacchetti

Dal click al cavo: come un pacchetto attraversa 4 livelli, dove si annidano ARP spoofing, IP spoofing e SYN flood, e perché conoscere incapsulamento e decapsulamento è la prima arma di difesa.

// Obiettivi di apprendimento
✓Descrivere i 4 livelli del modello TCP/IP e la loro funzione nella comunicazione in rete
✓Spiegare il processo di incapsulamento e decapsulamento dei dati attraverso lo stack
✓Mappare i principali protocolli (HTTP, DNS, TCP, UDP, IP, Ethernet) al livello corretto
✓Identificare a quale livello dello stack agiscono i principali vettori di attacco

1. Perché i modelli a strati esistono

La comunicazione in rete è un problema straordinariamente complesso: un messaggio deve trasformarsi da bytes nel tuo browser in segnali elettrici su un cavo, attraversare router in mezzo mondo, e riapparire come HTML nel browser di qualcun altro. Per gestire questa complessità, i progettisti di rete hanno inventato i modelli a strati.

L'idea è semplice: ogni strato si occupa di un solo problema e offre servizi allo strato sopra tramite un'interfaccia ben definita. Questo significa che puoi cambiare la tecnologia di un livello (es. sostituire Ethernet con Wi-Fi) senza toccare gli altri. In cybersecurity questo è cruciale: isolare il livello significa isolare dove inserire il controllo di sicurezza.

📌 Definizione da ricordare

Un modello a strati è un'astrazione che divide la comunicazione in livelli indipendenti: ogni livello incapsula i dati del livello superiore aggiungendo il proprio header e comunica logicamente solo con il livello pari sull'host remoto.

🎯 Esempio in classe

Immagina di spedire un documento segreto: lo metti in una busta (HTTP), poi in una scatola blindata con lucchetto e numero di tracking (TCP), poi ci incolli l'etichetta con indirizzo IP sorgente/destinazione (IP), infine lo affidi al corriere con furgone e targa (Ethernet). Ogni busta viene aperta solo dal livello corrispondente a destinazione. Se il corriere è compromesso (ARP spoofing), non vedi il contenuto ma puoi dirottare la scatola.

2. I 4 livelli TCP/IP — dalla prospettiva della sicurezza

Ogni livello è sia un'astrazione utile che una potenziale superficie d'attacco. Conoscere come funziona ogni strato ti permette di capire dove un attacco colpisce e come difendersi. Il modello TCP/IP è il modello di riferimento utilizzato per descrivere la suite di protocolli Internet.: Application, Transport, Internet, Network Access.

4 — APPLICATION HTTP · HTTPS · DNS · SMTP · SSH · TLS PDU: Messaggio — SQLi / XSS / Phishing qui ↕ incapsulamento 3 — TRANSPORT TCP · UDP · Porte 0-65535 PDU: Segmento / Datagramma — SYN Flood / Port Scan ↕ 2 — INTERNET IPv4 · IPv6 · ICMP · BGP PDU: Pacchetto — IP Spoofing / ICMP Flood ↕ 1 — NETWORK ACCESS Ethernet · Wi-Fi 802.11 · ARP · Fibra PDU: Frame — ARP Spoofing / Evil Twin

Livello 4 — Application

È il livello con cui interagiscono le applicazioni utente. Definisce cosa comunicare e in quale formato. Quando digiti un URL nel browser stai usando HTTP/HTTPS (livello applicazione). È il livello più visibile per l'utente ed è anche dove avvengono molti attacchi:

  • SQL Injection — l'attacco sfrutta un'applicazione web mal programmata
  • Phishing — email e siti falsi operano a livello applicazione (HTTP, SMTP)
  • Cross-Site Scripting (XSS) — iniezione di codice nel browser tramite HTTP
💬 Io ho pensato di fare così

Quando analizzo un alert applicativo, la prima cosa che faccio è chiedermi: il payload è arrivato davvero al server web o è stato bloccato prima da WAF/TLS? Io ho pensato di fare così per non confondere un tentativo di SQLi bloccato con un attacco riuscito. Guarda sempre i log di livello 4 insieme a quelli di livello 7.

Livello 3 — Transport

Si occupa della comunicazione end-to-end tra processi sugli host. TCP garantisce affidabilità, ordine e controllo di flusso. UDP è veloce e senza garanzie. Le porte logiche (0–65535) permettono a più applicazioni di usare la rete contemporaneamente sullo stesso host.

  • SYN flood — attacco DoS che inonda il server di richieste TCP SYN senza completare l'handshake
  • Port scanning — scoperta di servizi attivi tramite probe TCP/UDP sulle porte
  • Session hijacking — furto di una sessione TCP tramite predizione o intercettazione dei numeri di sequenza

Livello 2 — Internet (Network)

Gestisce l'indirizzamento logico (indirizzi IP) e il routing dei pacchetti attraverso reti diverse. IP è un protocollo best-effort: non garantisce consegna, ordine o protezione dalla falsificazione. Questa apertura è la fonte di diversi attacchi storici:

  • IP spoofing — falsificare l'indirizzo sorgente IP per nascondere l'identità o ingannare il destinatario
  • ICMP flood (Ping flood) — DDoS tramite pacchetti ICMP Echo Request massivi
  • Routing attacks (BGP hijacking) — alterazione delle tabelle di routing per dirottare il traffico

Livello 1 — Network Access (Link)

Il livello più basso: si occupa della trasmissione fisica dei bit su un mezzo (cavo, Wi-Fi, fibra). Usa indirizzi MAC per identificare i dispositivi sulla stessa rete locale. Qui non esiste crittografia nativa né autenticazione forte per default:

  • ARP spoofing — risponde a richieste ARP con il proprio MAC per intercettare traffico destinato ad altri (Man-in-the-Middle)
  • MAC flooding — riempie la tabella CAM degli switch per costringerli in modalità broadcast (sniffing)
  • Evil Twin (Wi-Fi) — AP malevolo con lo stesso SSID di uno legittimo per intercettare connessioni
⚠️ Errore comune in verifica

Confondere porta fisica e porta logica: la porta Ethernet sul muro è Livello 1, la porta TCP 443 è Livello 3/4. Dire "apro la porta 80 sul router" è logico, non fisico. Altro errore: dire che "l'IP contiene il MAC" — sono header diversi: IP è al Livello 2 (Internet), Ethernet/MAC al Livello 1 (Network Access). In TCP/IP possono sembrare fusi ma la separazione logica rimane e gli attacchi cambiano livello.

3. L'incapsulamento — come un dato attraversa lo stack

Quando la tua applicazione invia dati, ogni livello aggiunge una propria intestazione (header) che contiene le informazioni necessarie per quel livello. Questo processo si chiama incapsulamento. Il ricevente fa l'operazione inversa: decapsulamento. Ogni livello parla solo con il suo pari sull'altro host.

📌 Definizione da ricordare

Incapsulamento = ogni livello avvolge il PDU del livello superiore con il proprio header (e trailer). Decapsulamento = a destinazione ogni livello legge il proprio header e passa il resto su. È così che HTTP ignora di essere su Wi-Fi o fibra.

FLOW · INCAPSULAMENTO DI GET / HTTP/1.1
① Application → [ HTTP Header + Body ] "GET / HTTP/1.1\r\nHost: profgiagnotti.it\r\n..."② Transport → [ TCP Header | HTTP ] SRC Port: 54321 DST Port: 443 SEQ: 1001 ACK:0 FLAGS:SYN③ Internet → [ IP Header | TCP | HTTP ] SRC IP: 192.168.1.10 DST IP: 185.199.110.153 TTL:64 Proto:TCP④ Net Access → [ Eth Header | IP | TCP | HTTP | FCS ] SRC MAC: aa:bb:cc:11:22:33 DST MAC: router-mac Type:0x0800 FCS:CRC32Ricezione (inverso): ④ Verifica FCS → rimuove Eth → ③ Verifica IP DST → rimuove IP → ② Verifica porta TCP → riordina → ④ Passa a App → HTTP parser
🎯 Wireshark — cosa vedresti

In Wireshark per https://profgiagnotti.it vedi: frame 2 = DNS query (UDP 53) verso 8.8.8.8, frame 5-7 = TCP three-way handshake SYN / SYN-ACK / ACK su porta 443, frame 8+ = Client Hello TLS, poi Application Data cifrati. Se clicchi su un pacchetto, il pannello centrale mostra esattamente gli header aggiunti: Ethernet II → IPv4 → TCP → TLS. Ogni riga è un livello. Se l'attaccante ha fatto ARP spoofing, vedrai MAC anomalo già a livello Ethernet.

💬 Io lo farei così

Io lo farei così per ricordarlo all'interrogazione: parto dal basso. Senza cavo/Wi-Fi non parte nulla (L1), senza IP non esco dalla LAN (L2), senza TCP non ho affidabilità (L3), senza HTTP non ho una pagina (L4). Disegnalo come torre con 4 mattoni, scrivi accanto PDU e attacco tipico. Il prof. capisce subito che ragioni da analista, non da pappagallo.

4. Protocolli chiave per livello — tabella di riferimento

Mappare protocollo → livello è una skill da SOC analyst. Ti serve per capire quale log guardare e quale firewall regola applicare. Questa tabella è la tua cheatsheet compressa.

LivelloProtocolloPorta / IdentFunzioneRilevanza sicurezza
ApplicationHTTPTCP/80Trasferimento pagine web in chiaroIntercettabile, injection, cookie theft
ApplicationHTTPSTCP/443HTTP cifrato con TLSProtetto — solo metadati visibili senza key
ApplicationDNSUDP/53Risoluzione nomi → IPDNS poisoning, DNS exfiltration, DNSSEC
ApplicationSSHTCP/22Shell remota cifrataBrute force, key theft, MFA bypass
ApplicationSMTPTCP/25,587Invio emailSpoofing mittente, phishing, spam, BEC
TransportTCP—Connessione affidabile, ordinataSYN flood, session hijacking, RST injection
TransportUDP—Datagrammi veloci, senza garanzieUDP amplification DDoS (DNS/NTP)
InternetIPv4/IPv6—Indirizzamento e routingIP spoofing, IP fragmentation evasion
InternetICMP—Diagnostica (ping, unreachable)Ping flood, Smurf, tunneling covert
Net. AccessARP—IP → MAC in LANARP spoofing → MitM, detection: arp -a
Net. AccessEthernet / Wi-Fi—Trasmissione frame su mezzo fisicoMAC flooding, Evil Twin, port security
⚠️ Attenzione SOC

UDP non ha handshake: un firewall stateless che blocca solo SYN non ferma un attacco UDP amplification. Se vedi migliaia di risposte DNS da 4000 byte per una query di 60 byte, è amplification, non normale. Controlla sempre sorgente spoofabile + rapporto risposta/richiesta > 10x.

5. Una richiesta web vista dallo stack — esempio completo

Proviamo a seguire cosa accade quando digiti https://profgiagnotti.it nel browser. Questo esempio mostra come tutti i livelli cooperino per fare una cosa apparentemente semplice — e dove si incastra ogni difesa.

FLOW · HTTPS REQUEST STEP-BY-STEP
[01 App] Browser non conosce IP → query DNS (UDP 53) al resolver locale [02 Internet] Query DNS impacchettata in pacchetto IP: SRC=192.168.1.10 DST=8.8.8.8 [03 NetAccess] Pacchetto in frame Ethernet/Wi-Fi verso MAC default gateway [04 App] Resolver risponde con 185.199.110.153 → inizia TCP 3-way handshake su 443 SYN (client→server, SEQ=0) → SYN-ACK (server→client) → ACK (client→server) [05 Transport] TCP stabilita → parte TLS handshake: ClientHello, ServerHello, cert verify [06 App] TLS negozia AES-GCM, verifica cert. Browser invia GET / HTTP/1.1 cifrata [07 App] Server risponde 200 OK + HTML cifrato → browser decifra, renderizza, scarica CSS/JSSuperficie attacco per step: 01 = DNS spoofing se no DNSSEC | 03 = ARP spoofing in LAN | 04/05 = SYN flood, downgrade TLS 06 = se HTTP invece di HTTPS, sniffing in chiaro | 07 = XSS se HTML malevolo
🛡️ Dove metti la difesa?

Passo 01 → Usa DoH (DNS over HTTPS) o DNSSEC validation per bloccare DNS spoofing. Passo 03 → Abilita Dynamic ARP Inspection sullo switch e usa rete cablata autenticata 802.1X. Passo 05 → Configura firewall con SYN cookies e rate limiting TCP. Passo 06 → HSTS sul server e certificato sempre valido. Capire il flusso ti dice quale contromisura mettere e dove loggarla.

6. ISO/OSI e TCP/IP — confronto e corrispondenza

Nella pratica si usa TCP/IP, ma quando senti dire "attacco di livello 7" o "firewall L4" ci si riferisce alla numerazione OSI. Conoscere la corrispondenza è linguaggio comune nei team SOC/NOC.

ISO/OSI (7 livelli)#TCP/IP (4 livelli)Protocolli tipiciAttacco tipico
Application7ApplicationHTTP, HTTPS, DNS, SSH, FTP, SMTPSQLi, XSS, Phishing
Presentation6TLS/SSL, MIME, ASCII/UnicodeTLS downgrade, padding oracle
Session5NetBIOS, RPC, TLS sessionSession hijacking L7
Transport4TransportTCP, UDP, QUICSYN flood, port scan
Network3InternetIPv4, IPv6, ICMP, BGP, OSPFIP spoofing, BGP hijack
Data Link2Network AccessEthernet, Wi-Fi 802.11, ARPARP spoofing, VLAN hopping
Physical1Cavi, fibra ottica, segnali radioTapping, jamming Wi-Fi
📌 Nota didattica — perché due modelli?

ISO/OSI (1984) è più granulare: 7 livelli. È il vocabolario universale dei certificati e dei vendor. TCP/IP è l'implementazione reale: 4 livelli, nato negli anni '70 e usato da ogni host Internet. Quando dici "firewall L4" intendi OSI L4 = TCP/UDP. Quando configuri iptables -p tcp --dport 443 stai agendo su TCP/IP Transport + Application.

7. Verifica / Analisi pacchetti

🔬 Attività — Wireshark mini-lab

Apri Wireshark, cattura su Wi-Fi/Ethernet, poi naviga su https://profgiagnotti.it. Ferma la cattura e rispondi:

  1. Trova la query DNS: che Transaction ID ha? Quale IP ti risponde? Il pacchetto è UDP o TCP? A quale livello TCP/IP appartiene DNS?
  2. Isola il three-way handshake: quali sono SEQ e ACK numbers? Quanto dura tra SYN e SYN-ACK? Cosa succederebbe se l'attaccante inondasse il server di SYN senza ACK?
  3. Seleziona un pacchetto TLS Application Data: riesci a leggere il contenuto HTTP? Perché sì/no? Cosa vedrebbe un attaccante con ARP spoofing al livello 1?
  4. Mappa: se un IDS segnala "ARP reply without request for 192.168.1.1 → aa:bb:cc:dd:ee:ff" — a quale livello è l'attacco e quale contromisura attiveresti sullo switch?
✅ Soluzione ragionata

1) DNS è Application (L4 TCP/IP, ma trasportato su UDP 53). Transaction ID esempio 0x4a3b, resposta da resolver (es. 8.8.8.8). È normale UDP, non TCP, perché veloce e query piccole.
2) SYN SEQ=0 (relativo), SYN-ACK SEQ=0 ACK=1, ACK finale ACK=1. Se flood SYN, tabella connessioni half-open si riempie → DoS, difesa SYN cookies.
3) No, non leggi HTTP perché TLS cifra payload con chiave ephemera. Con ARP spoofing vedi solo frame Ethernet con IP cifrati, non contenuto, a meno di TLS stripping.
4) Livello 1 — Network Access (Data Link OSI). Attacco ARP spoofing. Contromisure: Dynamic ARP Inspection (DAI), port security, monitoraggio arpwatch, segmentazione 802.1X.

✓4 livelli TCP/IP: Application (Messaggio), Transport (Segmento), Internet (Pacchetto), Network Access (Frame) — ogni livello ha PDU, header e attacchi propri
✓Incapsulamento: Application → Transport → Internet → Net Access aggiunge header; ricezione fa decapsulamento inverso. Ogni livello parla solo col pari remoto
✓Superficie d'attacco per livello: L1 ARP/Evil Twin, L2 IP spoofing/BGP hijack, L3 SYN flood/port scan, L4 SQLi/XSS/Phishing — la difesa si posiziona dove colpisce l'attacco
✓Flusso HTTPS: DNS (UDP 53) → TCP handshake 443 → TLS handshake → GET cifrata → 200 OK. Senza TLS tutto in chiaro intercettabile a L1
✓OSI vs TCP/IP: OSI 7 livelli = vocabolario (L7 = app, L4 = transport, L2 = data link). TCP/IP 4 livelli = realtà Internet. Saper mappare è lingua franca SOC

📚 Prossimo passo — DNS, HTTP/S e Sessioni: come comunicano le applicazioni

Ora che sai come viaggia un pacchetto, nella prossima lezione vediamo cosa dice a livello applicazione: DNS resolution, HTTP methods, cookie di sessione e perché un header mancato diventa vulnerabilità. Tieni Wireshark aperto!