↓ 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