|
|
by Stéphane Milani (11/07/2006)
========================================================================
Brève sur le GPRS et les attaques Overbilling entre autre
========================================================================
1 --- Introduction
========================================================================
Cette brève s'efforcera de vulgariser l'architecture GPRS et un problème
de sécurité se nommant attaque Overbilling (surfacturation) et pouvant
survenir du côté des clients abonnés. La sécurité du GPRS en elle-même
ou les problèmes de sécurité interne au fournisseur et inhérents au GPRS
ne sont pas abordés. Cette brève ne fait donc preuve d'aucune
exhaustivité.
2 --- Vue d'ensemble
========================================================================
Le GPRS (General Packet Radio Services) est une architecture de réseau
informatique (technologie orientée paquets) qui est conçue pour
s'intégrer avec les réseaux GSM existants (technologie de commutation
de circuits). Ceci permet aux abonnés mobiles d'avoir accès à des
réseaux d'entreprises et à Internet. L'apport du GPRS est donc la
compatibilité avec les protocoles TCP/IP, ce qui permet d'utiliser des
programmes utilisant TCP/IP (http, smtp, pop3, imap4, ftp,...) sur les
périphériques mobiles. La technologie GPRS autorise une connexion
permanente au réseau et donc aussi à Internet.
Les opérateurs GSM ou UMTS utilisent cette architecture avec le
protocole GTP (GPRS Tunneling Protocol) pour convertir les signaux
radios des abonnés en paquets de donnés. Ces derniers sont transportés
dans des tunnels non chiffrés et aucune authentification n'est
effectuée. GTP ne fournit donc pas de sécurité.
Les opérateurs mobiles ajoutent l'Internet mobile et des services de
réseaux privés virtuels (Virtual Private Network - VPN) à leurs
services mobiles de voix. Les réseaux GPRS sont connectés à plusieurs
réseaux informatiques externes comprenants ceux des partenaires
d'itinérance (roaming), les clients, les fournisseurs GRX (Global
Roaming Exchange) et l'Internet.
3 --- Architecture
========================================================================
Une station mobile (ou Mobile Station - MS) s'attache à un noeud SGSN
(Serving GPRS Support Node). La fonction principale du SGSN est de
fournir des services de supports de données à la station mobile. Le
SGSN est connecté à une passerelle GGSN (Gateway GPRS Support Node)
via le GTP.
La connexion GTP dans un PLMN (Public Land Mobile Network) s'appelle
l'interface Gn. La connexion entre deux PLMN différents est
l'interface Gp qui est principalement utilisée pour l'itinérance
(roaming) entre fournisseurs. Le GGSN permet le passage de données vers
les réseaux externes (comme Internet ou les réseaux d'entreprise) via
l'interface Gi.
GTP encapsule les données de la station mobile et inclut également des
mécanismes pour établir, déplacer et supprimer les tunnels entre le SGSN
et le GGSN lors des scénarios d'itinérance.
L'interface utilisée pour connecter un fournisseur à sa comptabilité et
à sa facturation interne s'appelle l'interface Ga.
L'architecture réseau du GPRS peut être simplifiée de la façon
arbitraire suivante:
GRX - Partenaire Roaming
|
Border Gateway
|
Interface Gp
|
|
Interface Gb - SGSN - Interface Gn -- GGSN -- Interface Gi -- Internet
| |
| |
BSC Interface Ga
| |
BTS Billing / Accounting
|
Mobiles (MS)
Gi: interface entre le réseau GPRS et un réseau externe comme Internet.
Gp: interface entre deux réseaux d'opérateurs mobiles (PLMN et PLMN),
principalement utilisée pour l'itinérance.
Ga: interface pour les systèmes de comptabilité et de facturation.
Gn: interface qui sécurise le réseau interne des fournisseurs (réseau
backbone GSN).
Gb: interface entre BSS et SGSN.
Gr: interface entre SGSN et HLR.
Gs: interface entre SGSN et MSC.
BSS: Base Station Subsystem (BTS + BSC).
BTS: Base Transceiver Station.
BSC: Base Station Controller.
4 --- Interfaces Gp et Gi
========================================================================
Les interfaces Gp et Gi sont les points principaux des interconnexions
entre les opérateurs et les réseaux externes de non-confiance. Les
principales attaques proviennent donc de ces réseaux externes et il
convient que les opérateurs doivent prendre les mesures adéquates afin
de sécuriser leur réseau.
L'interface Gp est donc la connexion logique vers les partenaires qui
supportent l'itinérance pour leurs utilisateurs. GTP étant utilisé pour
établir la connexion entre le SGSN et le GGSN des partenaires
d'itinérance, seul le trafic suivant doit être permis depuis/vers un
réseau d'opérateurs sur l'interface Gp:
- GTP: pour permettre la connectivité logique entre le SGSN et le GGSN
des partenaires d'itinérance.
- BGP: pour fournir les informations de routage entre l'opérateur et le
GRX et/ou les partenaires d'itinérance.
- DNS: pour fournir la résolution de noms pour un APN.
Gi est l'interface permettant à une station mobile d'accéder à Internet
ou bien à un réseau d'entreprise et toute sorte de trafic peut
virtuellement y être utilisé étant donné que toutes sortes
d'applications peuvent se trouver sur la station mobile.
5 --- Attaques sur les interfaces Gp et Gi
========================================================================
Nous n'aborderons pas ici les attaques concernant l'infrastructure de
l'opérateur (Déni de service, DNS Flood, GTP Flood, Spoofed Create PDP
Context Request, ...). Nous nous attacherons à expliquer une attaque
touchant les abonnés, telle que l'attaque Overbilling (surfacturation).
Cette dernière consiste pour un attaquant à utiliser l'adresse IP d'une
autre station mobile et à effectuer un téléchargement depuis un serveur
malveillant sur Internet. Une fois le téléchargement commencé,
l'attaquant sort de la session et le serveur malveillant garde le
pare-feu Internet ouvert en envoyant des drapeaux TCP FIN. La station
mobile attaquée reçoit alors du trafic qu'elle n'a pas sollicitée. Un
attaquant peut également envoyer du trafic non sollicité vers la victime
et donc la spammer. La victime se voit alors facturée pour des données
et du trafic qu'elle n'a pas sollicité et qu'elle n'a pas voulu.
L'attaque Overbilling peut se produire sur l'interface Gp mais
également sur les interfaces Gi ou Gn.
6 --- Explication du TCP FIN émis par le serveur malveillant
========================================================================
Le drapeau TCP FIN est la méthode polie pour terminer une session TCP.
Elle se passe en deux parties et chaque hôte doit émettre un FIN et
acquitter le FIN de l'autre du fait qu'une connexion TCP est full
duplex.
Si un seul des hôtes termine la session, la connexion est alors dite
semi-fermée. C'est un comportement normal puisque les données sont
envoyées de manière aynchrone. Les deux parties de la connexion ont
donc besoin d'être individuellement terminées.
1ere partie - le serveur malveillant envoie un FIN et le pare-feu
répond avec un ACK:
serveur malveillant --> FIN --> pare-feu Internet
serveur malveillant <-- ACK <-- pare-feu Internet
2eme partie - le pare-feu envoie un FIN mais le serveur malveillant
ne répond pas:
pare-feu Internet --> FIN --> serveur malveillant
Le serveur malveillant n'envoie alors pas de réponse au pare-feu
Internet. La session est dite "semi-fermée".
Exemple:
Lancement du serveur:
# ./Serveurmalveillant_OverbillingGPRS_FINflood
Serveur démarré
Depuis une machine illustrant la victime:
# sudo hping -S -s 445 -p 135 -c 1 viewlexx.hsc.fr
HPING viewlexx.hsc.fr (eth0 192.70.106.78): S set, 40 headers + 0 data
bytes len=46 ip=192.70.106.78 ttl=64 DF id=0 sport=135 flags=SA seq=0 win=5840 rtt=0.2 ms
Sur le serveur, le message suivant s'affiche:
Début de l'attaque contre 192.70.106.111:445 seq 1060534074
L'administration du serveur s'effectue via Telnet:
$ nc localhost 8080
Victimes actuelles
-1486718032,192.70.106.111,460700
En analysant le trafic sur la machine illustrant la victime:
# tethereal -n -i eth0 | grep 192.70.106.78
0.343502 192.70.106.78 -> 192.70.106.111 TCP 135 > 445 [FIN, ACK] Seq=0 Ack=0 Win=16384 Len=0
0.343513 192.70.106.78 -> 192.70.106.111 TCP 135 > 445 [FIN, ACK] Seq=0 Ack=0 Win=16384 Len=0
L'inondation (Flood) de paquets FIN est bien effective depuis le serveur
malveillant.
7 --- Protection contre l'Overbilling sur l'interface Gn
========================================================================
La solution classique et propriétaire pour se prévenir d'une attaque
Overbilling est d'utiliser un pare-feu Gn GTP afin de notifier un
pare-feu Gi d'une attaque. Ce dernier doit alors terminer les sessions
ou les tunnels ainsi que couper le trafic non voulu.
Ce mécanisme peut très bien être utilisé pour une autre interface telle
que Gp.
Le pare-feu Gn crée et maintient les états de sessions GTP, les paquets
GTP sont alors interceptés entre le SGSN et le GGSN. De cette façon, le
pare-feu Gn GTP peut immédiatement détecter quand un utilisateur mobile
se détache du réseau. Quand l'abonné mobile termine sa session, le
pare-feu Gn utilise un protocole de contrôle afin d'alerter le pare-feu
Gi et de fermer les connexions IP.
GRX - Partenaire Roaming
|
Border Gateway
|
FW GTP
|
Interface Gp
|
|
SGSN --- Interface Gn - FW GTP - GGSN --- Interface Gi -- FW Gi -- Internet
|
|
Interface Ga
|
Billing / Accounting
8 --- Références
========================================================================
- GPRS Overbilling attack - Using Unclosed Connections
Eric Gauthier - Orange Communications SA - 25 Février 2003
http://www.orange.ch/
- Deploying Enhanced NAT Services in GPRS Networks
(Mitigating Overbilling Attack)
Ariff Premji - Juniper Networks
http://www.juniper.net/solutions/literature/app_note/350076.pdf
- Firewall-1 GX
Check Point
http://www.checkpoint.com/products/firewall-1_gx/index.html
- GPRS Security
Charles Brookson - Decembre 2001
http://www.brookson.com/gsm/gprs.pdf
- Attacks and Counter Measures in 2.5G and 3G
Ollie Whitehouse & Graham Murphy - @Stake - Mars 2004
http://www.atstake.com/
- GPRS from IP security point of view
Stéphane Aubert - HSC - FIRST Conference 2001
http://www.hsc.fr/ressources/presentations/gprs/
- Malicious Server
Dimo Velev
http://home.in.tum.de/~velev/projects/malicious_server/
- RFC 793 - TRANSMISSION CONTROL PROTOCOL
http://www.ietf.org/rfc/rfc0793.txt
========================================================================
Stéphane Milani <Stephane.Milani@hsc.fr>
Hervé Schauer Consultants
|