t´ el´ ephonique S´ ecurit´ e des syst` emes VoIP Ou comment tester ses ´ equipements. . . Nicolas Bareil [email protected] EADS Corporate Research Center SSI Department Suresnes, FRANCE 18 Janvier 2007 GITSIS Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 1/35
t´ el´ ephonique Banc de torture Montage d’un banc d’essai Un Cisco Callmanager 4.x, Deux t´ el´ ephones Cisco (7960 et 7970) ; =⇒ ´ Etude de type (( blackbox )) Boˆ ıte noire Configuration inconnue ; Version des firmwares inconnue ; Protocole peu connu ; Aucun manuel fourni. Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 2/35
t´ el´ ephonique Plan 1 T´ el´ ephones Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau 2 S´ ecurit´ e r´ eseau Architecture TCP Hijacking Man in the middle 3 ´ Ecoute t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 3/35
t´ el´ ephonique Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau Plan 1 T´ el´ ephones Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau 2 S´ ecurit´ e r´ eseau Architecture TCP Hijacking Man in the middle 3 ´ Ecoute t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 4/35
t´ el´ ephonique Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau Mat´ eriel pr´ esent Avec un peu d’intuition et de curiosit´ e : Processeur MIPS ( ? ? ?) ; L’espace de stockage ne d´ epasse pas les 4 Mo ; Ports switch et PC bridg´ es par d´ efaut. Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 5/35
t´ el´ ephonique Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau Configuration r´ eseau : VLAN VLAN & CDP R´ ecup´ eration des informations sur les VLAN disponibles (voix ou donn´ ees) via le protocole propri´ etaire Cisco. En abuser, ¸ ca craint Les annonces CDP ne sont pas authentifi´ ees. Sur un r´ eseau n’utilisant pas les VLAN, que se passe-t-il si on annonce un faux VLAN ? =⇒ Cr´ eation d’un r´ eseau virtuel ? Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 6/35
t´ el´ ephonique Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau Configuration r´ eseau : IP Simplement R´ ecup´ eration de l’adresse IP via une requˆ ete DHCP. L’option 150 identifie l’adresse IP du serveur TFTP (le Call Manager en fait). Si aucune r´ eponse DHCP, r´ eutilisation de la derni` ere configuration utilis´ ee. Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 7/35
t´ el´ ephonique Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau Chargement de la configuration T´ el´ echargement de fichier Les fichiers sont t´ el´ echarg´ es par TFTP au d´ emarrage uniquement. Plusieurs types de fichiers : Extension Description .tlv certificate trust list .loads universal application loader .sbn secure universal application loader .cnf configuration .bin firmware non sign´ e .sb2 firmware sign´ e .jar Java Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 8/35
t´ el´ ephonique Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau Fichier de configuration Le Call Manager, un serveur TFTP particulier Composition du nom de fichier : SEP.<adresse mac>.cnf.xml Les configurations ne sont pas stock´ ees mais g´ en´ er´ ees ` a la vol´ ee ! Fichier XML ; Logique invers´ ee : 0 ⇒ vrai , 1 ⇒ faux ; Aucune signature cryptographique pr´ esente. Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 10/35
t´ el´ ephonique Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau Chargement du firmware Extrait de strings P00307010200.sb2 (( The Moving Finger writes ; and, having writ, Moves on : nor all thy Piety nor Wit Shall lure it back to cancel half a Line, Nor all thy Tears wash out a Word of it. )) — Omar Khayyam D´ esassemblage impossible Processeur inconnu ; Format de fichier inconnu : ni ELF, ni PE, etc ; O` u est le point d’entr´ ee du fichier ? Probl` eme de l´ egalit´ e. Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 13/35
t´ el´ ephonique Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau Scan des t´ el´ ephones : TCP Ports TCP Interesting ports on CCM: Not shown: 1678 closed ports PORT STATE SERVICE 80/tcp open tcpwrapped Device type: VoIP phone Running: Cisco embedded OS details: Cisco IP Phone 7970G Protocoles Interesting protocols on phoneA: Not shown: 252 closed protocols PROTOCOL STATE SERVICE 1 open icmp 2 open|filtered igmp 6 open|filtered tcp 17 filtered udp Maigre r´ esultat mais. . . Beaucoup d’informations utiles sur le t´ el´ ephone via l’interface Web. Bien prot´ eg´ e Une fois la connexion TCP vers le Call Manager ´ etablie, on est bloqu´ e. Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 14/35
t´ el´ ephonique Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau Jute pour rire. . . nmap Call Manager PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS webserver 5.0 102/tcp open iso-tsap? 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 443/tcp open ssl/http Microsoft IIS webserver 5.0 445/tcp open microsoft-ds Microsoft Windows 2000 microsoft-ds 1433/tcp open ms-sql-s? 1720/tcp open tcpwrapped 2000/tcp open callbook? 2001/tcp open dc? 2002/tcp open globe? 3389/tcp open microsoft-rdp Microsoft Terminal Service 8009/tcp open ajp13? Non ! On ne tire pas sur les ambulances ! Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 15/35
t´ el´ ephonique Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau Jute pour rire. . . nmap Call Manager PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS webserver 5.0 102/tcp open iso-tsap? 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 443/tcp open ssl/http Microsoft IIS webserver 5.0 445/tcp open microsoft-ds Microsoft Windows 2000 microsoft-ds 1433/tcp open ms-sql-s? 1720/tcp open tcpwrapped 2000/tcp open callbook? 2001/tcp open dc? 2002/tcp open globe? 3389/tcp open microsoft-rdp Microsoft Terminal Service 8009/tcp open ajp13? Non ! On ne tire pas sur les ambulances ! Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 15/35
t´ el´ ephonique Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau Cisco Discovery Protocol c´ ed´ ep´ e. nom compos´ e masculin. protocole de d´ ecouverte r´ eseau Protocole ferm´ e, propri´ etaire, utilis´ e uniquement par les ´ equipements Cisco. Espoir ? Impl´ ementation d’un add-on CDP pour [scapy] : Fuzzing possible ; Injection de fausses annonces ; Debugging du r´ eseau plus ais´ e. Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 16/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle Plan 1 T´ el´ ephones Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau 2 S´ ecurit´ e r´ eseau Architecture TCP Hijacking Man in the middle 3 ´ Ecoute t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 18/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle ´ Equipements Un r´ eseau VoIP est constitu´ e de : T´ el´ ephones adapt´ es ; Call Manager. ´ Equipement IP =⇒ Pile IP =⇒ Complexe =⇒ Int´ eressant ! Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 19/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle ´ Equipements Un r´ eseau VoIP est constitu´ e de : T´ el´ ephones adapt´ es ; Call Manager. ´ Equipement IP =⇒ Pile IP =⇒ Complexe =⇒ Int´ eressant ! Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 19/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle ´ Equipements Un r´ eseau VoIP est constitu´ e de : T´ el´ ephones adapt´ es ; Call Manager. ´ Equipement IP =⇒ Pile IP =⇒ Complexe =⇒ Int´ eressant ! Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 19/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle ´ Equipements Un r´ eseau VoIP est constitu´ e de : T´ el´ ephones adapt´ es ; Call Manager. ´ Equipement IP =⇒ Pile IP =⇒ Complexe =⇒ Int´ eressant ! Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 19/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle Pile TCP/IP correcte Robustesse de la pile TCP/IP G´ en´ eration des ISN : (( compl´ etement al´ eatoire )), IP ID incr´ ementaux, Protection anti-DDoS : Bonne gestion des num´ eros de s´ equence : Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 20/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle Pile TCP/IP correcte Robustesse de la pile TCP/IP G´ en´ eration des ISN : (( compl´ etement al´ eatoire )), IP ID incr´ ementaux, Protection anti-DDoS : Requˆ ete/R´ eponse ARP, SYN / SYN+ACK ; Bonne gestion des num´ eros de s´ equence : Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 20/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle Pile TCP/IP correcte Robustesse de la pile TCP/IP G´ en´ eration des ISN : (( compl´ etement al´ eatoire )), IP ID incr´ ementaux, Protection anti-DDoS : Bonne gestion des num´ eros de s´ equence : D´ etection d’une d´ esynchronisation, R´ e´ ecriture des donn´ ees non acquitt´ ees ; Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 20/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle Pile TCP/IP correcte Robustesse de la pile TCP/IP G´ en´ eration des ISN : (( compl´ etement al´ eatoire )), IP ID incr´ ementaux, Protection anti-DDoS : Bonne gestion des num´ eros de s´ equence : Pile TCP/IP d´ eriv´ ee d’un IOS ? Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 20/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle TCP Hijacking Avis de tempˆ ete Blind TCP Hijacking non trivial. =⇒ L’insertion na¨ ıve de paquets entraˆ ıne un ACK-storm ! The lazy way Utilisons la possibilit´ e de r´ e´ ecrire des paquets non acquitt´ es ! 1 Anticiper la taille du prochain segment, 2 Envoyer le paquet, 3 R´ eussir ` a ce qu’il soit trait´ e avant la r´ eception du vrai paquet, 4 Attendre :) Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 21/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle Suite de paquets Comment anticiper ? Il y a constamment des suites de paquets : D´ emarrage, Keep Alive, D´ ecrochage du t´ el´ ephone, R´ eception d’un appel, . . . Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 22/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle Applications du TCP Hijacking Applications possibles : Modification des num´ eros de t´ el´ ephone compos´ es, Impossible de modifier les options de s´ ecurit´ e ainsi, =⇒ Car modifi´ ees par le fichier de configuration (via TFTP) Too easy ! L’utilisation de [scapy] et de son add-on Skinny facilite ce type d’interception. Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 23/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle Applications du TCP Hijacking Applications possibles : Modification des num´ eros de t´ el´ ephone compos´ es, Impossible de modifier les options de s´ ecurit´ e ainsi, =⇒ Car modifi´ ees par le fichier de configuration (via TFTP) Too easy ! L’utilisation de [scapy] et de son add-on Skinny facilite ce type d’interception. Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 23/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle Applications du TCP Hijacking Applications possibles : Modification des num´ eros de t´ el´ ephone compos´ es, Impossible de modifier les options de s´ ecurit´ e ainsi, =⇒ Car modifi´ ees par le fichier de configuration (via TFTP) Too easy ! L’utilisation de [scapy] et de son add-on Skinny facilite ce type d’interception. Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 23/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle ICMP Redirect Message ICMP Redirect Redirection d’un routeur par un autre routeur. Support de l’ICMP insuffisant dans [scapy], R´ eimpl´ ementation de l’ICMP, Mais les t´ el´ ephones ne suivent pas les redirections ICMP :-( Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 24/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle ICMP Redirect Message ICMP Redirect Redirection d’un routeur par un autre routeur. Support de l’ICMP insuffisant dans [scapy], R´ eimpl´ ementation de l’ICMP, Mais les t´ el´ ephones ne suivent pas les redirections ICMP :-( Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 24/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle Modes Gratuitous ARP Gratuitous ARP C’est une r´ eponse ARP non d´ esir´ ee afin de mettre ` a jour les caches. Les t´ el´ ephones peuvent autoriser cette fonctionnalit´ e ou non. Avec GARP, toutes les attaques ARP sont possibles, Sans GARP, rien n’est possible Une fois la premi` ere r´ esolution faite, l’entr´ ee du cache est fig´ ee Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 25/35
t´ el´ ephonique Architecture TCP Hijacking Man in the middle Modes Gratuitous ARP Gratuitous ARP C’est une r´ eponse ARP non d´ esir´ ee afin de mettre ` a jour les caches. Les t´ el´ ephones peuvent autoriser cette fonctionnalit´ e ou non. Avec GARP, toutes les attaques ARP sont possibles, Sans GARP, rien n’est possible Une fois la premi` ere r´ esolution faite, l’entr´ ee du cache est fig´ ee Sauf une fois. . . Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 25/35
t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You Plan 1 T´ el´ ephones Syst` eme physique D´ emarrage du t´ el´ ephone R´ eseau 2 S´ ecurit´ e r´ eseau Architecture TCP Hijacking Man in the middle 3 ´ Ecoute t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 27/35
t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You Les protocoles mis en jeux Un r´ eseau VoIP est g´ er´ e via : Un protocole de signalisation Un protocole de transport de la voix Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 28/35
t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You Skinny Client Control Protocol Skinny : Utilise TCP/2000 Protocole binaire (contrairement ` a SIP) Champs ` a positions fixes Skinny : Le Yin ? Analyse difficile sans sp´ ecifications : Plus de trois cents types de messages ; Champs compos´ es complexes ; Beaucoup de champs (( r´ eserv´ es )) ; =⇒ Impl´ ementation partielle dans [scapy] Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 29/35
t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You Real Time Protocol : le Yang RTP : Le Yang Protocole simple et g´ en´ eraliste standardis´ e par la RFC 3550. =⇒ Utilis´ e par (presque) toutes les solutions VoIP Les num´ eros de ports ne sont pas fixes et sont assign´ es dynamiquement via le protocole de signalisation. Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 30/35
t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You Real Time Protocol : voix Apr` es les en-tˆ etes. . . la voix ! La voix n’est pas chiffr´ ee, juste cod´ ee ; Si on intercepte ces paquets, on peut alors ´ ecouter. ´ Etat de l’art des logiciels d’´ ecoute t´ el´ ephonique vomit (N. Provos) ; voipong (M. Balaban) ; cain (M. Montoro). Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 31/35
t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You I’m listening to you ! ilty : I’m listening to you ! Logiciel Libre, Inteface user friendly D´ evelopp´ e en Python, Fonctionnalit´ es ´ Ecouter une conversation en direct, Logguer les appels, Surveille le protocole de signalisation, Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 32/35
t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You La signalisation Surveiller le protocole de signalisation permet : Reconnaˆ ıtre pr´ ecisemment les appels : Acc` es aux informations de l’annuaire, Num´ ero de t´ el´ ephone, Extension du num´ ero de t´ el´ ephone ; Voir les touches compos´ ees : Capture du code de messagerie vocale, Num´ eros de carte bleue ; Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 33/35
t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You Des questions ? Si on avait eu plus du temps. . . V´ erification de la solidit´ e du code cryptographique. Remerciements Phil, Serpilliere, Sid, Arnaud, news0ft, Kostya, Stf et tout le reste de l’´ equipe d’EADS CCR DCR/STI/C ! Plus d’information ? [email protected] Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 34/35
t´ el´ ephonique Protocole de signalisation Protocole de transport I’m Listening To You Bibliography P. Biondi, scapy Interactive packet manipulation program http://secdev.org/projects/scapy/ N. Bareil, ilty I’m listening to you http://chdir.org/∼nico/ilty/ SSTIC 2005 — http://actes.sstic.org/SSTIC05/ N. Provos, vomit http://vomit.xtdnet.nl/ M. Balaban, voipong http://www.enderunix.org/voipong/ M. Montoro, Cain http://www.oxid.it/cain.html Nicolas Bareil S´ ecurit´ e des syst` emes VoIP 35/35