======================================================================== 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 Hervé Schauer Consultants