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.
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.
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.
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.
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
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
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.
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.
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ì 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.
| Livello | Protocollo | Porta / Ident | Funzione | Rilevanza sicurezza |
|---|---|---|---|---|
| Application | HTTP | TCP/80 | Trasferimento pagine web in chiaro | Intercettabile, injection, cookie theft |
| Application | HTTPS | TCP/443 | HTTP cifrato con TLS | Protetto — solo metadati visibili senza key |
| Application | DNS | UDP/53 | Risoluzione nomi → IP | DNS poisoning, DNS exfiltration, DNSSEC |
| Application | SSH | TCP/22 | Shell remota cifrata | Brute force, key theft, MFA bypass |
| Application | SMTP | TCP/25,587 | Invio email | Spoofing mittente, phishing, spam, BEC |
| Transport | TCP | — | Connessione affidabile, ordinata | SYN flood, session hijacking, RST injection |
| Transport | UDP | — | Datagrammi veloci, senza garanzie | UDP amplification DDoS (DNS/NTP) |
| Internet | IPv4/IPv6 | — | Indirizzamento e routing | IP spoofing, IP fragmentation evasion |
| Internet | ICMP | — | Diagnostica (ping, unreachable) | Ping flood, Smurf, tunneling covert |
| Net. Access | ARP | — | IP → MAC in LAN | ARP spoofing → MitM, detection: arp -a |
| Net. Access | Ethernet / Wi-Fi | — | Trasmissione frame su mezzo fisico | MAC flooding, Evil Twin, port security |
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.
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 tipici | Attacco tipico |
|---|---|---|---|---|
| Application | 7 | Application | HTTP, HTTPS, DNS, SSH, FTP, SMTP | SQLi, XSS, Phishing |
| Presentation | 6 | TLS/SSL, MIME, ASCII/Unicode | TLS downgrade, padding oracle | |
| Session | 5 | NetBIOS, RPC, TLS session | Session hijacking L7 | |
| Transport | 4 | Transport | TCP, UDP, QUIC | SYN flood, port scan |
| Network | 3 | Internet | IPv4, IPv6, ICMP, BGP, OSPF | IP spoofing, BGP hijack |
| Data Link | 2 | Network Access | Ethernet, Wi-Fi 802.11, ARP | ARP spoofing, VLAN hopping |
| Physical | 1 | Cavi, fibra ottica, segnali radio | Tapping, jamming Wi-Fi |
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:
- Trova la query DNS: che Transaction ID ha? Quale IP ti risponde? Il pacchetto è UDP o TCP? A quale livello TCP/IP appartiene DNS?
- 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?
- 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?
- 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?
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.
8. Riepilogo e concetti chiave
📚 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!