Skip to main content
  1. Concetti/

OSI Model - Il Modello a Layer

·10 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cos'è
#

Modello concettuale creato da ISO nel 1984 per standardizzare la comunicazione tra sistemi di produttori diversi. Divide la comunicazione di rete in 7 layer con responsabilità precise. Oggi TCP/IP ha vinto nella pratica comprimendo i 7 layer in 4, ma OSI rimane il linguaggio universale per ragionare sui problemi di rete e sicurezza.

OSI vs TCP/IP — la guerra e il compromesso
#

OSI (1984 — teorico)        TCP/IP (reale — quello che gira)
────────────────────────────────────────────────────────────
7  Application   ┐
6  Presentation  ├─────────► Application   HTTP, HTTPS, FTP,
5  Session       ┘                         SMTP, DNS, SSH
                                           (cifratura, sessione,
                                           presentazione: tutto qui)

4  Transport     ──────────► Transport     TCP, UDP
                                           (porte, affidabilità)

3  Network       ──────────► Internet      IP, ICMP
                                           (indirizzi, routing)

2  Data Link     ┐
1  Physical      ┴─────────► Network       Ethernet, Wi-Fi,
                             Access        cavi, bit fisici
────────────────────────────────────────────────────────────
7 layer teorici              4 layer reali

OSI ha perso la guerra pratica, vinto quella concettuale. Tutti usano TCP/IP. Tutti pensano in layer OSI.


I 7 Layer — chi c'è dentro
#

                    SOFTWARE / HARDWARE
                    ───────────────────
┌─────────────────────────────────────────────────────────┐
7  APPLICATION   SOFTWARE                              │
│                   Browser, client email, curl, ssh      │
│                   Protocolli: HTTP, FTP, SMTP, DNS, SSH │
"Cosa vuole l'utente?"├─────────────────────────────────────────────────────────┤
6  PRESENTATION  SOFTWARE                              │
│                   Librerie SSL/TLS, codec               │
│                   Cifratura, compressione, crypto     │
"In che formato sono i dati?"│                   → In TCP/IP vive dentro layer 7├─────────────────────────────────────────────────────────┤
5  SESSION       SOFTWARE                              │
│                   OS, librerie di rete                  │
│                   Apre, mantiene, chiude connessioni    │
"La connessione è ancora viva?"│                   → In TCP/IP vive dentro layer 7├─────────────────────────────────────────────────────────┤
4  TRANSPORT     SOFTWARE (kernel OS)│                   TCP — affidabile, verifica consegna   │
│                   UDP — veloce, non verifica            │
│                   Porta src/dst                         │
"A quale servizio vanno i dati?"├─────────────────────────────────────────────────────────┤
3  NETWORK       SOFTWARE (kernel OS) + HARDWARE       │
│                   IP — indirizzo logico                 │
│                   Router — instrada tra reti diverse    │
│                   ICMP — diagnostica (ping)"Qual è il percorso verso il dest?"├─────────────────────────────────────────────────────────┤
2  DATA LINK     SOFTWARE (driver) + HARDWARE          │
│                   MAC — indirizzo fisico                │
│                   Switch — instrada nella LAN           │
│                   Ethernet, Wi-Fi — protocolli frame    │
"Chi sono fisicamente sulla LAN?"├─────────────────────────────────────────────────────────┤
1  PHYSICAL      HARDWARE puro                         │
│                   Cavi, connettori, onde radio          │
│                   Schede di rete, antenne               │
│                   Bit → segnale elettrico/ottico/radio  │
"Come viaggio fisicamente?"└─────────────────────────────────────────────────────────┘

Mnemonico — Come ricordare i layer
#

Dal basso verso l'alto (1→7) — come viaggiano i dati dal cavo all'utente:

"Please Do Not Throw Sausage Pizza Away"

1  Physical      → Please
2  Data Link     → Do
3  Network       → Not
4  Transport     → Throw
5  Session       → Sausage
6  Presentation  → Pizza
7  Application   → Away

Dall'alto verso il basso (7→1) — come scendono i dati dal server al cavo:

"All People Seem To Need Data Processing"

7  Application   → All
6  Presentation  → People
5  Session       → Seem
4  Transport     → To
3  Network       → Need
2  Data Link     → Data
1  Physical      → Processing

PDU — Protocol Data Unit
#

Ogni layer chiama la propria unita' di dati con un nome diverso:

Layer OSINome PDU
7 ApplicationMessaggio (HTTP request, DNS query)
4 TransportSegmento (TCP) / Datagramma (UDP)
3 NetworkPacchetto (IP)
2 Data LinkFrame (Ethernet)
1 PhysicalBit

Quando incapsuli: prendi la PDU del layer sopra come payload e aggiungi il tuo header. Quando decapsuli: togli il tuo header e passi la PDU al layer superiore.

Esempio concreto — DNS request lato client
#

Packet Tracer mostra tutti e 7 i layer, ma in TCP/IP reale i layer 5-6-7 sono un unico blocco applicativo. Il browser o il resolver DNS non "sa" di essere a layer 5, 6 o 7 — costruisce il messaggio e lo passa al kernel.

LAYER OSI         PDU              COSA SUCCEDE NEL PC

7 Application  ┐
6 Presentation ├─► Messaggio       Il resolver costruisce la DNS query:
5 Session      ┘                   "Risolvi example.com, tipo A"
                                   In pratica: un unico blocco software

4 Transport    ──► Datagramma UDP  Aggiunge porta src (es. 54321)
                                   e porta dst (53 — DNS)

3 Network      ──► Pacchetto IP    Aggiunge IP src (192.168.1.10)
                                   e IP dst (8.8.8.8)

2 Data Link    ──► Frame Ethernet  Aggiunge MAC src (scheda di rete)
                                   e MAC dst (MAC del gateway)

1 Physical     ──► Bit             Converte il frame in segnale
                                   elettrico/ottico sul cavo

Il MAC dst non e' il MAC di 8.8.8.8 — e' il MAC del router di casa (gateway). Il router prendera' il pacchetto, cambiera' i MAC per il prossimo hop, e inoltrera' verso 8.8.8.8.

Ciclo decapsula → elabora → incapsula per dispositivo
#

Ogni dispositivo lungo il percorso sale solo fino al layer che gli serve:

PC (mittente)
  Crea tutta la pila da zero: HTTP → TCP → IP → Ethernet

Switch
  Sale fino a L2 (legge MAC src/dst)
  Decide la porta di uscita
  Rincapsula e inoltra — non tocca IP ne' TCP

Router
  Sale fino a L3 (legge IP src/dst)
  Consulta la routing table
  Decrementa TTL, aggiorna MAC src/dst per il prossimo hop
  Rincapsula con nuovi header L2

Server DNS/HTTP
  Sale fino a L7 (legge la richiesta)
  Elabora e costruisce la risposta
  Rincapsula tutto da zero con header invertiti (IP/porte src↔dst)

Il MAC cambia ad ogni hop (L2 serve solo per il salto fisico corrente). L'IP non cambia mai — e' la destinazione finale.

Encapsulation — come i dati scendono i layer
#

SERVER (7→1)                          CLIENT (1→7)
────────────────────────────────────────────────────

"GET /index.html"                     "GET /index.html"
        │                                     ▲
        ▼                                     │
[HTTP header | DATI]              [HTTP header | DATI]
        │                                     ▲
        ▼                                     │
[TCP header | HTTP | DATI]        [TCP header | HTTP | DATI]
porta src/dst, seq                porta src/dst, seq
        │                                     ▲
        ▼                                     │
[IP header | TCP | HTTP | DATI]   [IP header | TCP | HTTP | DATI]
IP src/dst, TTL                   IP src/dst, TTL
        │                                     ▲
        ▼                                     │
[MAC | IP | TCP | HTTP | DATI | FCS] [MAC | IP | TCP | HTTP | DATI]
MAC src/dst                       MAC src/dst
        │                                     ▲
        ▼                                     │
01010101010101010101 ─────────────────────────┘
        bit sul cavo


LEGENDA
────────────────────────────────────────────────────
Layer 7  HTTP header   metodo, path, host, cookie, status code
         DATI          contenuto: HTML, JSON, immagini

Layer 4  TCP header    porta src/dst → identifica il servizio
                       seq/ack       → ordine e conferma consegna
                       flags         → [S] SYN [.] ACK [F] FIN [R] RST

Layer 3  IP header     IP src/dst    → indirizzo mittente e destinatario
                       TTL           → max hop prima dello scarto
                       Protocol      → cosa c'è dentro (6=TCP, 17=UDP)

Layer 2  MAC header    MAC src/dst   → indirizzo fisico sulla LAN
                                       cambia ad ogni hop
         FCS           checksum      → verifica integrità frame
                                       se corrotto → frame scartato

Layer 1  bit sul cavo  01010101...   → segnale elettrico/ottico/radio
                                       nessun header, solo bit grezzi

Ogni layer aggiunge il suo header (encapsulation). Ogni layer rimuove il suo header alla ricezione (decapsulation).

Analogia: IP → il furgone di consegna (sa solo indirizzo) TCP → raccomandata con ricevuta (verifica consegna) UDP → volantino nella buca (manda e non controlla) HTTP/DNS → il contenuto della lettera

Checksum per layer — chi verifica cosa
#

Layer 2 → FCS        verifica l'intero frame Ethernet
Layer 3 → checksum   verifica SOLO header IP (non i dati dentro)
Layer 4 → checksum   verifica header TCP + dati
Layer 7 → TLS MAC    verifica i dati cifrati (solo HTTPS/TLS)

Ogni layer si verifica da solo — indipendente dagli altri. Se il frame Ethernet e' corrotto (cavo rovinato, interferenze):

FCS calcolato ≠ FCS nel pacchetto
Frame scartato silenziosamente da Layer 2
TCP al Layer 4 non riceve l'ACK
TCP ritrasmette il segmento
Note

UDP non ritrasmette. Se il frame viene scartato, il dato e' perso. Per questo UDP si usa dove la velocita' conta piu' dell'affidabilita': video streaming, gaming, VoIP.

MTU — Maximum Transmission Unit
#

Maximum Transmission Unit — la dimensione massima in byte che un frame può avere su un determinato link fisico. Non è una proprietà del router. Non è una proprietà del cavo. È una proprietà del protocollo di Layer 2 usato su quel link.

Ethernet ha un MTU di default di 1500 byte — la dimensione massima del payload in un frame Ethernet (escluso il 14-byte header).

Se i dati superano 1500 byte → IP Fragmentation:

Dati originali: 4000 byte

Frammento 1: offset 0    → byte 0-1479    (1480 byte di dati)
Frammento 2: offset 1480 → byte 1480-2959
Frammento 3: offset 2960 → byte 2960-3999

Ogni frammento ha il suo header IP con Fragment Offset diverso.
Il destinatario riassembla i frammenti nell'ordine corretto.

Guarda il modello OSI:

Layer 1 → fisico: cavi, segnali elettrici
Layer 2 → data link: Ethernet, MAC, frame
Layer 3 → network: IP, pacchetti

MTU è la dimensione massima del frame che il Layer 2 può trasportare. Quindi: Ethernet (Layer 2) dice: "non posso trasportare frame più grandi di 1500 byte".

IP (Layer 3) deve rispettare questo limite — non può mettere un pacchetto più grande di quello che il Layer 2 sotto di lui riesce a trasportare.

Warning

La frammentazione IP e' stata storicamente usata per attacchi:

  • Teardrop attack: frammenti sovrapposti che crashano il SO
  • IDS evasion: payload malevolo spezzato in frammenti che il firewall/IDS non riconosce come attacco Oggi la maggior parte dei firewall riassembla i frammenti prima dell'ispezione — ma rimane un vettore da conoscere.

Implicit Trust — il problema fondamentale
#

Ogni layer si fida CIECAMENTE del layer sotto. Zero verifica. Zero controllo.

Layer 3 riceve da Layer 2: "MAC dice 00:AA:BB → ok, mi fido" non sa che il MAC è stato spoofato

Layer 4 riceve da Layer 3: "IP dice 192.168.1.1 → ok, mi fido" non sa che l'IP è stato spoofato

Questa fiducia implicita è la radice di quasi tutti gli attacchi di rete. Internet è stato costruito per la fiducia, non per la sicurezza.


Attacchi e difese per layer
#

Layer  Attacco                    Difesa
──────────────────────────────────────────────────────────
  1    Wiretapping, Wi-Fi jamming  Cavi schermati, WPA3
  2    MAC spoofing, ARP poisoning Port security, DAI
  3    IP spoofing, routing attack Firewall L3, RPF check
  4    SYN flood, port scan        Firewall L4, rate limit
  7    SQLi, XSS, prompt injection WAF, input validation

Regola:

Vuoi attaccare/difendere X?
→ capisci su quale layer vive X
→ agisci su quel layer
→ tutto sopra e sotto non vede niente

Dispositivi e il loro layer
#

HARDWARE            LAYER    VEDE FINO A
────────────────────────────────────────
Hub (obsoleto)        1      Solo bit — ripete a tutti
Switch                2      MAC address
Router                3      IP address
Firewall L3/L4        3-4    IP + porta
Proxy / WAF           7      Tutto — HTTP, cookie, payload
IDS/IPS               7      Tutto — analizza il contenuto

TCP vs UDP — i due protocolli di Layer 4
#

TCP (Transmission Control Protocol)
→ affidabile — verifica che i pacchetti arrivino
→ lento — handshake, acknowledgment, retry
→ usato per: HTTP, SSH, FTP, SMTP

UDP (User Datagram Protocol)
→ veloce — manda e non controlla
→ inaffidabile — pacchetti possono perdersi
→ usato per: DNS, streaming video, VoIP, gaming

TCP = lettera raccomandata con ricevuta di ritorno
UDP = volantino buttato dalla finestra

Perché è importante per Blue Team
#

Ogni alert, ogni attacco, ogni anomalia vive su un layer preciso. Sapere su quale layer stai guardando ti dice quale tool usare, cosa cercare nei log, e dove intervenire. "Problema a layer 3" e "problema a layer 7" sono scenari completamente diversi con strumenti completamente diversi.

Scenario Reale
#

Un analista SOC vede traffico anomalo. Prima domanda: su quale layer? tcpdump mostra pacchetti IP verso IP sconosciuto — layer 3. Wireshark apre il payload — layer 7, vede richieste HTTP verso un dominio C2. Due layer, due tool, due livelli di analisi. Senza OSI come framework mentale, l'analisi sarebbe caotica.

Dove l'ho incontrato
#

  • network-fundamentals — TryHackMe modulo 2
  • icmp-mac-ip — ICMP vive a Layer 3, MAC a Layer 2
  • lan-topologies — switch (L2), router (L3)

Collegato a
#

Related