networking

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

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:

text
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 ChunkValoreDescrizione
DATA0Dati applicativi
INIT1Apertura associazione
INIT-ACK2Risposta INIT
SACK3Selective ACK
HEARTBEAT4Keepalive
ABORT6Chiusura brusca
SHUTDOWN7Chiusura ordinata
COOKIE-ECHO10Handshake fase 3
COOKIE-ACK11Handshake fase 4
ERROR9Notifica 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:

bash
# 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:

PortaServizio
2905M3UA (SS7 over SCTP)
2944H.248/MEGACO
3565M2PA
3868Diameter
5060SIP (opzionale su SCTP)
9082M2UA
36412S1-MME (LTE)
38412NGAP (5G)

Enumeration con scapy #

Scapy supporta SCTP nativamente:

python
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:

bash
tcpdump -i eth0 -nn sctp

Con Wireshark:

text
sctp
sctp.chunk_type == 1    # INIT
sctp.chunk_type == 0    # DATA
sctp.chunk_type == 6    # ABORT

Vulnerabilità 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:

bash
# Verificare se SCTP è permesso dove TCP non lo è
nmap -sY -p 80 <target>    # Porta 80 su SCTP — insolito ma possibile

Se 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.

python
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:

python
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 #

bash
# Server SCTP
socat SCTP-LISTEN:9999,fork -

# Client SCTP
socat - SCTP:localhost:9999

Scan completo SCTP con Nmap #

bash
# 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 #

bash
# Linux — bloccare il modulo SCTP
echo "install sctp /bin/true" >> /etc/modprobe.d/disable-sctp.conf

Su molti server Linux, SCTP è un modulo del kernel caricabile ma non necessario. Disabilitarlo riduce la superficie di attacco.

Firewall esplicito su protocol 132 #

bash
# iptables
iptables -A INPUT -p 132 -j DROP    # Blocca tutto SCTP in entrata
iptables -A OUTPUT -p 132 -j DROP   # Blocca tutto SCTP in uscita

Aggiornare 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:

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

#sigtran #diameter

DIVENTA PARTE DELL’ÉLITE DELL’HACKING ETICO.

Accedi a risorse avanzate, lab esclusivi e strategie usate dai veri professionisti della cybersecurity.

Non sono un robot

Iscrivendoti accetti di ricevere la newsletter di HACKITA. Ti puoi disiscrivere in qualsiasi momento.