SCTP nel pentest telco: multi-streaming, multi-homing e superfici d’attacco

SCTP Cos'è: come funziona, four-way handshake, multi-streaming, multi-homing, scan con Nmap, rischi su SIGTRAN, Diameter e reti 4G/5G.
- Pubblicato il 2026-03-25
- Tempo di lettura: 6 min
SCTP è il protocollo di trasporto dimenticato. Capire cos’è SCTP e come funziona il multi-streaming e il multi-homing è importante per chi fa pentesting su infrastrutture di telecomunicazione, VoIP, e sistemi di signaling: SCTP trasporta SS7, Diameter, e altri protocolli critici delle reti telco, spesso senza autenticazione e con implementazioni che non ricevono patch da anni.
Cos’è SCTP #
SCTP (Stream Control Transmission Protocol) è definito nell’RFC 4960 del 2007. Opera al livello 4 del modello OSI (Transport Layer), come TCP e UDP, ma con caratteristiche ibride che lo rendono unico.
Nato per il trasporto di segnalazione SS7 su IP (SIGTRAN), SCTP combina:
- Affidabilità di TCP: consegna garantita e ordinata
- Message-orientation di UDP: preserva i confini dei messaggi
- Multi-streaming: più stream indipendenti in una singola associazione
- Multi-homing: una singola associazione può usare più indirizzi IP per ridondanza
Non è stato progettato per il web generalista — è il protocollo di trasporto delle telco che sono migrate da SS7 su TDM a SS7 su IP.
Come funziona SCTP #
Il four-way handshake #
A differenza del three-way handshake di TCP, SCTP usa un four-way handshake con un meccanismo anti-SYN-flood integrato:
Client Server
| |
|--- INIT -------------------------> | "Voglio aprire un'associazione"
| |
|<-- INIT-ACK ---------------------- | "OK, ecco un cookie"
| (contiene State Cookie) |
| |
|--- COOKIE-ECHO -----------------> | "Ti rimando il cookie"
| (rimanda il cookie ricevuto) |
| |
|<-- COOKIE-ACK ------------------- | "Associazione stabilita"
| |
| === ASSOCIAZIONE SCTP === |Il State Cookie è crittograficamente firmato dal server: se il client lo rimanda invariato, il server sa che l’handshake è legittimo senza dover mantenere stato durante la fase iniziale. Mitiga nativamente il SYN flood.
Chunk: l’unità base di SCTP #
SCTP non trasmette segmenti (TCP) né datagrammi (UDP) ma chunk. Un singolo pacchetto SCTP può contenere più chunk di tipi diversi:
| Tipo Chunk | Valore | Descrizione |
|---|---|---|
| DATA | 0 | Dati applicativi |
| INIT | 1 | Apertura associazione |
| INIT-ACK | 2 | Risposta INIT |
| SACK | 3 | Selective ACK |
| HEARTBEAT | 4 | Keepalive |
| ABORT | 6 | Chiusura brusca |
| SHUTDOWN | 7 | Chiusura ordinata |
| COOKIE-ECHO | 10 | Handshake fase 3 |
| COOKIE-ACK | 11 | Handshake fase 4 |
| ERROR | 9 | Notifica errori |
Multi-streaming #
Una singola associazione SCTP (equivalente di una connessione TCP) può contenere stream multipli e indipendenti. Ogni stream ha il proprio ordinamento — un messaggio perso su uno stream non blocca gli altri.
In TCP, un pacchetto perso blocca tutti i dati successivi finché non viene ritrasmesso (head-of-line blocking). SCTP elimina questo problema per stream diversi.
Multi-homing #
Un endpoint SCTP può avere più indirizzi IP associati alla stessa associazione. Il traffico normalmente usa il path primario; se cade, SCTP commuta automaticamente su un path secondario senza interruzione della sessione.
Questo è fondamentale in telco dove l’uptime è critico: il failover avviene in millisecondi senza dover riaprire la sessione applicativa.
Dove viene usato SCTP nelle reti #
SCTP è quasi esclusivamente un protocollo delle telecomunicazioni:
- SIGTRAN: trasporto di SS7 su IP (M2PA, M2UA, M3UA, SUA) — il segnaling delle reti telefoniche legacy migrate su IP
- Diameter: protocollo AAA delle reti LTE/4G e 5G, trasportato su SCTP (o TCP)
- S1-MME: interfaccia tra eNodeB e MME in LTE (4G)
- X2: interfaccia tra eNodeB in LTE per handover
- NGAP: Next Generation Application Protocol in 5G (tra gNB e AMF)
- WebRTC: supporto opzionale per data channel (raramente usato in pratica)
In sintesi: se stai guardando l’infrastruttura di un operatore mobile o fisso, SCTP è ovunque.
Perché SCTP è importante in cybersecurity #
SCTP è quasi completamente ignorato dai security tool mainstream. La maggior parte degli scanner e dei firewall è configurata per TCP e UDP — SCTP passa spesso non filtrato e non monitorato.
In ambienti telco e carrier, le implementazioni SCTP sono vecchie, raramente aggiornate, e trasportano protocolli critici come SS7 e Diameter che hanno vulnerabilità note e gravi (intercettazione chiamate, tracking posizione, bypass autenticazione).
Per un pentester che lavora su:
- Infrastrutture telco: SCTP è il trasporto di tutto il piano di controllo
- Reti 4G/5G enterprise: le interfacce tra core network usano SCTP
- Sistemi di roaming e interconnessione: SCTP su GRE o IP pubblico
Per i protocolli di livello superiore trasportati da SCTP in telco, la superficie di attacco principale è SS7 e Diameter — argomenti che richiedono articoli dedicati.
SCTP in un engagement di pentesting #
Reconnaissance: identificare endpoint SCTP #
La maggior parte degli scanner non testa SCTP di default. Con Nmap:
# SCTP INIT scan (equivalente del SYN scan TCP)
nmap -sY <target>
# SCTP COOKIE-ECHO scan (più stealth)
nmap -sZ <target>
# Scan su porte SCTP specifiche
nmap -sY -p 2905,3868,36412 <target>
# Combinato con OS detection
nmap -sY -O <target>Porte SCTP comuni:
| Porta | Servizio |
|---|---|
| 2905 | M3UA (SS7 over SCTP) |
| 2944 | H.248/MEGACO |
| 3565 | M2PA |
| 3868 | Diameter |
| 5060 | SIP (opzionale su SCTP) |
| 9082 | M2UA |
| 36412 | S1-MME (LTE) |
| 38412 | NGAP (5G) |
Enumeration con scapy #
Scapy supporta SCTP nativamente:
from scapy.all import *
# SCTP INIT per verificare se un endpoint risponde
init = IP(dst="target_ip") / SCTP(sport=20000, dport=2905) / SCTPChunkInit()
response = sr1(init, timeout=3)
if response:
response.show()Analisi del traffico SCTP #
Con tcpdump:
tcpdump -i eth0 -nn sctpCon Wireshark:
sctp
sctp.chunk_type == 1 # INIT
sctp.chunk_type == 0 # DATA
sctp.chunk_type == 6 # ABORTVulnerabilità note su implementazioni SCTP #
Diverse CVE documentano vulnerabilità nel kernel Linux e in implementazioni SCTP embedded:
- CVE-2019-8956: kernel Linux — uso di memoria dopo free in SCTP
- CVE-2021-3772: kernel Linux — bypass della verifica SCTP INIT
- CVE-2022-20141: Android kernel — race condition in SCTP
Su appliance telco con firmware vecchio, le probabilità di trovare implementazioni SCTP non patchate sono elevate.
SCTP come bypass firewall #
Molti firewall enterprise sono configurati per filtrare TCP e UDP ma ignorano SCTP (IP protocol number 132). In ambienti con policy di sicurezza costruite solo su TCP/UDP:
# Verificare se SCTP è permesso dove TCP non lo è
nmap -sY -p 80 <target> # Porta 80 su SCTP — insolito ma possibileSe SCTP passa dove TCP è bloccato, può essere usato come canale alternativo in alcuni scenari di tunneling avanzato.
Attacchi e abusi possibili su SCTP #
ABORT Injection #
Come TCP RST injection ma per SCTP: inviare chunk ABORT con Verification Tag corretto chiude forzatamente un’associazione. Il Verification Tag è visibile nel traffico se si è in posizione di sniffing.
from scapy.all import *
# ABORT injection (richiede conoscenza del Verification Tag)
abort = IP(dst="target") / SCTP(sport=20000, dport=2905, tag=vtag) / SCTPChunkAbort()
send(abort)INIT Flood #
Equivalente SCTP del SYN flood. Inviare massicci INIT esaurisce le risorse del server se il meccanismo anti-flood (State Cookie) non è implementato o è disabilitato:
from scapy.all import *
send(IP(dst="target", src=RandIP()) / SCTP() / SCTPChunkInit(), count=10000, inter=0)Exploitation di vulnerabilità del kernel #
Su Linux, il subsystem SCTP del kernel ha avuto multiple vulnerabilità. Se il target è un server Linux con SCTP esposto e kernel non aggiornato, è il primo posto dove cercare.
Esempi pratici con SCTP in laboratorio #
Creare un’associazione SCTP con socat #
# Server SCTP
socat SCTP-LISTEN:9999,fork -
# Client SCTP
socat - SCTP:localhost:9999Scan completo SCTP con Nmap #
# Scan stealth con COOKIE-ECHO
nmap -sZ -p 1-65535 --open <target>
# Con version detection
nmap -sY -sV -p 2905,3868,36412 <target>Detection e difesa SCTP #
- Filtrare IP protocol 132 sui firewall perimetrali se SCTP non è necessario
- Monitorare SCTP ABORT inattesi: indicatore di injection attack
- Aggiornare il kernel Linux: molte CVE SCTP sono nel subsystem kernel
- Segmentare le interfacce SCTP telco dalla rete IT generale
- IDS: Suricata e Snort supportano rule SCTP — abilitarle esplicitamente
Hardening e mitigazioni SCTP #
Disabilitare SCTP se non usato #
# Linux — bloccare il modulo SCTP
echo "install sctp /bin/true" >> /etc/modprobe.d/disable-sctp.confSu molti server Linux, SCTP è un modulo del kernel caricabile ma non necessario. Disabilitarlo riduce la superficie di attacco.
Firewall esplicito su protocol 132 #
# iptables
iptables -A INPUT -p 132 -j DROP # Blocca tutto SCTP in entrata
iptables -A OUTPUT -p 132 -j DROP # Blocca tutto SCTP in uscitaAggiornare kernel e firmware #
In ambienti telco dove SCTP è necessario, mantenere kernel Linux aggiornati e applicare patch firmware degli appliance è la difesa principale contro le CVE note.
Errori comuni su SCTP #
“SCTP non mi riguarda, non lavoro in telco” In ambienti enterprise moderni con infrastruttura 4G/5G interna (campus mobile, private LTE), le interfacce del core network usano SCTP. Non è esclusivo degli operatori pubblici.
“Se non vedo SCTP nei risultati Nmap, non c’è”
Nmap di default non scansiona SCTP. Bisogna usare esplicitamente -sY o -sZ. Molti endpoint SCTP esistono in reti mai verificate.
“SCTP è sicuro perché nessuno lo conosce” Security through obscurity non è sicurezza. Le implementazioni SCTP vecchie hanno CVE documentate e tool come Scapy permettono di costruire pacchetti SCTP in poche righe.
“TCP è sempre preferibile a SCTP” In ambienti telco no. SCTP offre multi-homing e multi-streaming che TCP non ha. Per applicazioni di signaling con requisiti di alta disponibilità, SCTP è superiore.
FAQ su SCTP #
Cos’è SCTP e come si differenzia da TCP? SCTP (Stream Control Transmission Protocol) è un protocollo di trasporto orientato alla connessione come TCP, ma aggiunge multi-streaming (più flussi indipendenti in una singola associazione), multi-homing (più IP per ridondanza), e message-orientation (preserva i confini dei messaggi come UDP). Nato per il trasporto di segnalazione SS7 su IP.
Dove viene usato SCTP in pratica? Principalmente in reti di telecomunicazione: trasporto di SS7 (SIGTRAN), Diameter (4G/LTE AAA), interfacce S1-MME e X2 in LTE, NGAP in 5G. In ambienti enterprise con infrastruttura mobile privata.
Come si scansionano le porte SCTP?
Con Nmap usando -sY (SCTP INIT scan) o -sZ (SCTP COOKIE-ECHO scan). Di default Nmap non scansiona SCTP — va specificato esplicitamente.
SCTP bypassa i firewall? In molti ambienti sì. I firewall configurati solo per TCP e UDP ignorano IP protocol 132 (SCTP). Verificare esplicitamente che le policy firewall includano regole per SCTP.
Cos’è il four-way handshake SCTP? È il meccanismo di apertura di un’associazione SCTP: INIT, INIT-ACK (con State Cookie), COOKIE-ECHO, COOKIE-ACK. Il cookie crittograficamente firmato previene SYN flood nativamente, a differenza di TCP che necessita di SYN cookies opzionali.
Conclusione su SCTP #
SCTP è invisibile nella maggior parte degli assessment di sicurezza perché nessuno lo cerca. Eppure è il protocollo su cui viaggia il piano di controllo delle reti telefoniche, LTE, e 5G. In ambienti telco, una scansione SCTP rivela interfacce critiche completamente scoperte.
Anche fuori dal mondo telco, la semplice verifica che i firewall blocchino IP protocol 132 è una check che dovrebbe essere in ogni assessment di sicurezza perimetrale.
Approfondisci i protocolli correlati:
- TCP: il protocollo di trasporto principale
- UDP: trasporto connectionless
- TLS/SSL: cifratura applicabile anche su SCTP
- IP Internet Protocol: il livello sottostante
- IPSec: cifratura per traffico SCTP in telco
- SIP/RTP: VoIP spesso trasportato su SCTP
- GRE: tunneling per traffico SCTP
Riferimento ufficiale: RFC 4960 — Stream Control Transmission Protocol
Se gestisci infrastruttura telco o reti con componenti LTE/5G e non hai mai fatto un assessment SCTP, è il momento: hackita.it/servizi
HackITA copre anche i protocolli che gli altri ignorano. Se lo apprezzi: hackita.it/supporto







