Documente Academic
Documente Profesional
Documente Cultură
ETUDE DE CAS :
VOIP/SIP & SÉCURITÉ
LUDOVIC MARET
ETR
PROFESSEUR RESPONSABLE :
MR STEFANO VENTURA
Travail de diplôme : VoIP/SIP & Sécurité Ludovic Maret
3 RÉSUMÉ
Avec l'émergence de réseaux convergents et de la VoIP, les systèmes de voix,
traditionnellement isolés du réseau de transmission de données, évoluent pour devenir l'une
de ses applications principale. L'une des conséquences de cette convergence est que le
trafic de voix et ses systèmes associés sont devenus aussi vulnérables aux menaces de
sécurité que n'importe quelle autre donnée véhiculée par le réseau.
En effet, le déploiement de la VoIP en entreprise est très intéressant. Pour de faibles coûts
de mise en place, le service de VoIP permet de téléphoner au sein de l’entreprise et sur
Internet "gratuitement". De plus, l’implémentation de la VoIP avec le protocole de
signalisation SIP (Session Initiation Protocol) [SA01] fournit un service efficace, rapide et
simple d’utilisation. Cependant, SIP est un protocole d’échange de messages basé sur
HTTP. C’est pourquoi SIP est très vulnérable face à des attaques de types DoS (dénis de
service), détournement d’appel, trafic de taxation, etc. (voir point 5 " Vulnérabilités de la
VoIP/SIP à l’intérieur et à l’extérieur de l’entreprise"). De plus, le protocole de transport
audio associé RTP (Real-Time Transport Protocol) [SA02] est lui aussi très peu sécurisé
face à de l’écoute indiscrète ou des DoS.
Si vous souhaitez déployer une plateforme sécurisée de VoIP avec SIP, il faut agir comme
suit :
En premier lieu, il faut faire un choix sur le type d’architecture de VoIP/SIP que l’entreprise
souhaite déployer. Cela dépend en grande partie de l’architecture actuelle du réseau de
l’entreprise, des besoins de l’entreprise et évidemment de son budget (voir point 6
"Architectures de déploiement de la VoIP/SIP").
Une fois cela fait, il faut prendre des mesures de sécurités à plusieurs niveaux si nous
voulons que le service de VoIP/SIP soit sécurisé. Il faut donc avant toute chose sécuriser le
réseau de donnée avec les moyens standard connus de tous les administrateurs réseaux
tels que l’utilisation de firewalls, de NAT, de chiffrement IP, VLAN, etc. Ensuite, il faut
sécuriser le réseau de VoIP/SIP avec des mécanismes de chiffrement de la signalisation de
du flux audio, sécuriser l’accès à tous les serveurs de VoIP, utiliser des VLANs, etc. Pour
finir, il faut réussir à combiner les deux types de réseaux (donnée/VoIP) et sécuriser les
accès au niveau de la passerelle entre les deux réseaux (voir point 7 "Prescriptions de
sécurisation de la VoIP/SIP").
4 INTRODUCTION
Grâce à son mécanisme de création de session simple et rapide, SIP a rapidement envahi
le marché de la VoIP qui était jusqu’à lors dominé par les implémentations adhérant plutôt
au standard complexe de téléphonie par Internet H.323 [SA03]. Tandis que H.323 a été
étroitement modélisé sur le standard des réseaux numériques à intégration de services
RNIS [SA04] de niveau 3 pour la mise en place d’appel et sur le standard de messages
binaires ASN.1 pour la signalisation, SIP est, lui, basé sur le modèle de transaction HTTP
requête/réponse en utilisant des messages textes avec une syntaxe proche de HTTP/1.1
(voir Figure 1).
SIPv1 est un protocole de niveau application qui a été défini par la RFC 2543 en mars 1999.
Il est basé sur UDP ou TCP et est utilisé pour la création de sessions à participants
multiples, comme les applications de vidéo/audio conférence. Il remplit une fonction de
signalisation comparable à SS7 [SA05] dans les réseaux commutés publics de téléphonie
PSTN [SA06]. En juin 2002, le standard SIPv2, défini par la RFC 3261, remplace
complètement SIPv1. Actuellement, SIPv1 n’est plus utilisé puisque cette version n’inclut
aucun mécanisme de défense efficace.
Cependant, d’un point de vue sécurité, SIPv2 n’est de loin pas parfait. En effet, SIPv2 est
autant, voir plus, vulnérable que HTTP. Comme tout système de communication, la
simplicité est souvent liée à des problèmes de sécurité. La clarté des messages SIP en fait
un outil efficace et rapide mais également lisible, compréhensible et modifiable par d’autres
personnes que celles concernées par la session.
Le protocole qui transporte la voix, associé au protocole de signalisation SIP dans la VoIP,
est RTP. Ce protocole de transport de média RTP a été défini par la RFC 1889 en Janvier
1996. RTP fournit RTP fournit des fonctions de transport réseau de bout-en-bout appropriés
pour des applications de transmission de données temps-réel, tel que la voix, la vidéo ou
des données de simulation. RTP peut tout aussi bien utiliser les services réseaux unicast ou
multicast. En Juillet 2003, la nouvelle RFC 3550 remplace l’ancienne. Cette nouvelle version
de RTP est plus fiable et supporte plus de codecs [SA07] audio. RTP est un protocole
efficace et assurant une QoS [SA08] très acceptable. Cependant, RTP n’est pas à l’abris
d’éventuelles attaques au niveau des données audio telle que la capture des paquets de
voix ou l’injection de données audio extérieures à la communication.
Nous sommes donc, ici, devant une combinaison de deux protocoles très peu sécurisés qui
fonctionnent au dessus d’un protocole IP qui est, lui aussi, vulnérable face à beaucoup
d’attaques.
Voyons plus en détail les différentes menaces inhérentes au déploiement de la VoIP avec
SIP auxquelles il faudra faire face après déploiement de ce service en entreprise.
Certaines de ces vulnérabilités semblent être due au fait que, jusqu’à récemment, les
utilisateurs se sont davantage préoccupés de la qualité de la communication et de la
rentabilité de la technologie VoIP que de la synchronisation de ces aspects avec les
mesures de sécurité et les protocoles appropriés. Les préoccupations envisageables
concernant la technologie VoIP comprennent les questions de sécurité habituelles
associées aux technologies d’Internet comme leur capacité à protéger les renseignements
personnels et de l’entreprise, ainsi que de nouvelles préoccupations causées par la création
de dépendances entre les réseaux vocaux et de données.
Comme dans tout réseau IP. Le réseau SIP doit principalement faire face à trois types de
menaces :
• L’acquisition de services
• L’interruption de services
• L’interception de services
La plupart des menaces de sécurité peuvent être classées dans ces trois catégories, mais il
y a toujours de nouvelles menaces à prendre en compte.
La plupart des intrusions de sécurité dans les entreprises ont été faites par les employés de
cette même entreprise. En effet, il est d’autant plus intéressant pour un employé de mettre
son patron "sur écoute" que pour une personne externe à l’entreprise. Il faut donc que la
personne malveillante se trouve physiquement à l’intérieur du réseau de VoIP/SIP et donc à
l’intérieur du réseau de données également.
SIP est un protocole simple et flexible orienté message basé sur les rendez-vous. Les
composants principaux d’un système basé sur SIP sont :
• Terminal SIP (User Agent Client ou UAC) – Peut être aussi bien un SoftPhone
(logiciel) qu’un HardPhone (IP Phone). Les terminaux sont des appareils pouvant
émettre et recevoir de la signalisation SIP. Les autres éléments sont communément
appelés des User Agent Server – UAS.
• Serveur d’enregistrement – Ce serveur essentiel reçoit les inscriptions des utilisateurs
(adresse IP, port, username).
• Serveur de localisation – Mémorise les différents utilisateurs, leurs droits, leurs mots
de passe, position actuelle, etc.
• Serveur de redirection – Redirige les appels vers la position actuelle d’un utilisateur.
• Serveur proxy – Effectue le même travail que le serveur de redirection si ce n’est que
le proxy n’annonce pas à l’agent la localisation actuelle de l’utilisateur mais se
charge de retransmettre les messages vers celui-ci.
• Passerelle (gateway) PSTN/H323/ISDN/PSTN – Permet l’interconnexion de réseaux
différents en convertissant les paquets IP au format désiré.
Nous pouvons remarquer que le flux RTP ne transite pas par les serveurs SIP mais
uniquement entre les deux agents en communications.
Le problème de la sécurité de la VoIP est donc double. Le fait que la voix et les données
partagent le même réseau implique qu’aux vulnérabilités de sécurité des réseaux de
données s’ajouteront les nouvelles vulnérabilités propres à la VoIP.
Les réseaux IP sont de plus en plus déployés et donc de plus en plus connus. Ces réseaux
sont donc facilement accessibles et permettent à de plus en plus de monde d’étudier les
problèmes de sécurité auparavant trouvés et publiés et ceci à l’inverse de l’obscurité qui
caractérise les réseaux PSTN. La téléphonie IP avoue volontiers parler de “Phreaker” afin
de désigner toute personne mal intentionnée qui s’attaque à des réseaux téléphoniques.
Voici donc une liste non exhaustive des vulnérabilités propres aux réseaux de données IP :
• Délai/latence
• Perte de paquet
• Variation du délai de transfert de l'information (jiter)
• Bande passante
• Techniques de codage de la parole
La QoS doit donc faire face à ces nouvelles vulnérabilités propres au service de VoIP, les
éléments SIP vulnérables sont :
Voici les différentes vulnérabilités propres au déploiement d’une plateforme de VoIP avec le
protocole de signalisation SIP.
Il s’agit ici de la privation d’accès à un service réseau en bombardant les serveurs (proxy,
gateway, …) avec des paquets malveillants. Il existe plusieurs moyens d’effectuer un DoS
sur un service de VoIP/SIP :
o Injection de message CANCEL (voir Figure 4 et Figure 5).
o Injection de message BYE (voir Figure 6, Figure 7 - DoS BYE à Bob, Figure 8
et Figure 9).
o Utilisation des codes de réponses 4xx, 5xx ou 6xx.
o Messages INVITE ou REGISTER en masse (Bulk REGISTER/INVITE).
o Manipulation des collisions SSRC (RTP).
o Injection de paquet (RTP).
o Modification de codec audio.
BYE à Bob :
Un pirate peut utiliser différents codes de réponse afin d’introduire une condition de DoS :
Les réponses 4xx définissent les réponses dues à un échec depuis un serveur
particulier. Le client ne doit pas ressayer la même requête sans modification (par
exemple en ajoutant une autorisation particulière). Toutefois, la même requête vers
un serveur différent peut réussir.
Les réponses 5xx sont des réponses d’échec émises quand un serveur a un
problème.
Les réponses 6xx indiquent qu’un serveur a une information définitive sur un
utilisateur particulier et pas juste une instance particulière indiquée dans la requête-
URI.
Bulk REGISTER :
Le fait d’envoyer une très grande quantité de messages REGISTER avec des URI
différentes au serveur d’enregistrement cause le remplissage complet de la liste
d’enregistrement. Ce qui veut dire que tous les téléphones IP non enregistrés ne pourront
s’enregistrer. Cela provoque donc un DoS sur tous ces téléphones.
Bulk INVITE :
Le but est ici d’épuiser les ressources de sessions simultanées sur le proxy. Le nombre de
connexions simultanées maximum dépend du serveur et du réseau. Il nous suffit donc
d’initier plus de n connexions pour que le proxy soit devienne non fonctionnel. Le DoS
s’applique donc à l’entièreté des téléphones SIP se servant de ce proxy pour communiquer.
En injectant des paquets avec le même SSRC mais comportant un numéro de séquence et
un timestamp supérieur par rapport aux valeurs actuelles (voir Figure 10), le contenu truqué
injecté sera lu avant les paquets réels. Cela entraîne donc un DoS sur l’utilisateur ayant le
SSRC considéré.
Utilisé par le
récepteur pour
détecter la perte de
paquet (peut être
aussi utilisé pour
restaurer la
séquence de
paquet)
Indique l’instant
auquel le premier
byte de la
cargaison RTP a
été généré. Le
timestamp est
utilisé pour placer
les paquets RTP
dans un ordre
temporel correct.
Identifie la
source d’un flux
RTP
Le fait de modifier l’encodage audio RTP pendant une session peut être utilisé pour
s’attaquer à la QoS. En effet, aussi bien l’utilisation d’un codec de plus faible qualité va
provoquer non seulement une réduction de la qualité de la voix mais également d’autres
problèmes tels que des DoS, des crashs du système, etc.
Le but est ici de détourner l’appel vers le pirate ou d’enregistrer les communications. Cela
permet également de se joindre à un appel (conférence audio). Ce type d’attaque peut se
faire de plusieurs manières :
• A travers le serveur d’enregistrement (voir Figure 11).
• A l’aide d’attaques de type MITM (Man-in-the-middle attack).
o A travers l’utilisation de codes de réponse SIP 301 (voir Figure 12 et Figure
14) & 302 (déplacement permanent\temporaire, voir Figure 13). Ces codes
réponses peuvent être spoofés comme des réponses venant de n’importe
quel élément SIP, tels que :
• Serveur d’enregistrement – Cela permet d’usurper une identité (fake
identity).
• Serveur proxy – Ceci permet d’obtenir toute la signalisation et donc la
modification, la suppression voir l’ajout de messages SIP permettant
de détourner des appels.
• Serveur de redirection – De manière analogue à un proxy, ceci permet
d’obtenir toute la signalisation.
• UAC SIP – Cela permet de discuter avec le partenaire en se faisant
pour le vrai destinataire (écoute du média).
o Ou plus créatif, à travers l’utilisation du code de réponse SIP 305 (utilisation
du proxy, voir Figure 15).
• Tromper en milieu de session (mid-session tricks).
On peut questionner le serveur d’enregistrement pour obtenir la liste des adresses d’un URI
particulier. On peut ensuite donner la liste des adresses associées à notre URI avec chaque
enregistrement correct. Mais est-ce que notre agent va le dévoiler aux autres ? Cela dépend
si le système de notification est utilisé ou non. En général cela n’est pas le cas. On peut
ensuite donner une priorité plus haute à notre enregistrement que celles des autres en
faisant attention de ne pas supprimer les autres enregistrements.
Ou alors, on peut s’enregistrer avec une priorité plus faible et lancer un DoS sur les entrées
de priorité haute. De cette manière, le proxy ne sera pas capable de délivrer les messages
et va virer sur l’entrée suivante dans le serveur d’enregistrement. Le serveur
d’enregistrement peut s’adresser à l’usager qui est en train de s’enregistrer (l’usager peut
aussi bien être un 3ème usager) afin d’effectuer une authentification avant de recevoir
l’information sur l’enregistrement. Or, étant donné que les caractéristiques d’enregistrement
avec SIP requièrent un enregistrement chaque heure pour le même URI (une heure est
spécifié par défaut), il est peu probable qu’un utilisateur de téléphone SIP doive
s’authentifier au serveur d’enregistrement chaque heure.
Au lieu de cela, ce que la plupart des téléphones SIP font est de stocker les informations sur
le ‘username’ et le ‘password’ avec le téléphone (cela implique d’autres risques
d’attaques…) et exécutent une authentification automatiquement pour l’utilisateur quand
cela est requis.
L’emplacement de l’entité malicieuse peut être n’importe où (le réseau d’Alice, le réseau de
Bob, voire entre les deux). Elle peut alors utiliser le code de réponse 301 (déplacement
permanent) ou 302 (déplacement temporaire) afin de détourner des appels.
En effet, le client qui a émis la requête doit renvoyer la requête à/aux nouvelle(s) adresse(s)
donnée par l’entête de contact. L’URI de la nouvelle requête utilise la valeur du contact
obtenue dans la réponse 301 ou 302. Cette URI s’avère être l’URI de l’attaquant.
La durée de validité de l’URI du contact peut être indiquée à travers une entête d’expiration
ou alors à l’aide d’un paramètre d’expiration dans l’entête du contact. Les deux proxy et
terminaux peuvent dissimuler cet URI pour la durée d’expiration. Si il n’y a pas de durée
d’expiration, l’adresse est uniquement valide une fois et ne doit pas être cachée pour les
transactions futures. Si l’URI dissimulée de l’entête du contact échoue, l’URI de la requête
redirigée doit être ressayée une seule fois.
MITM Attacks – 305 utilisation du proxy, ou l’attaque du “Qui est ton père ?” :
Si un attaquant peut capturer un message REGISTER correct émis par l’un des téléphones,
alors il peut le modifier et renvoyer un nouveau message REGISTER au serveur
d’enregistrement pendant la période définie dans le timestamp original. Il peut alors trafiquer
le serveur d’enregistrement de plusieurs manières.
Cette attaque est utilisée pour modifier l’identité de l’émetteur de messages SIP pour
trafiquer le récepteur légitime. Ceci peut être fait pour différentes raisons (par exemple :
fraude ou taxation). En changeant les entêtes du message, la personne malveillante peut
envoyer une requête forgée qui fait en sorte que le récepteur croit qu’il est en
communication avec une autre personne.
La modification d’identité peut être effectuée sur n’importe quelle requête tel que REGISTER
et INVITE.
Le serveur proxy SIP est habituellement celui qui produit l’enregistrement du détail d’appel
ou CDR (call detail recording) pour la taxation. Ceci est dû au fait que le serveur proxy est
capable d’obliger toute la signalisation et la voix de passer à travers le serveur proxy. Cela
signifie que les messages de signalisation d’initialisation de communication et de
terminaison vont passer à travers le serveur proxy, et ainsi les CDRs vont être produits
correctement.
Afin de pouvoir ce faire, la signalisation doit donc passer à travers le serveur proxy. Cela
n’est pas le cas quand nous traitons avec l’actuel média de transport. Cela veut dire qu’il n’y
a pas d’acquisition de service dans les paquets RTP/RTCP.
Dans ce cas de figure, le serveur proxy SIP ne va voir aucune signalisation échangée entre
les deux partenaires de communication, bien que le flux audio va passer entre ces deux
utilisateurs. Un appel pourra donc être lancé sans qu’aucune information de taxation ne soit
disponible.
Cet exemple met l’accent sur le besoin de comprendre qui arrive en premier. Dans notre
cas, la signalisation arrive en premier, seulement nous avons besoin d’autoriser les paquets
RTP à échanger. Ceci est une restriction qui nécessite d’être introduite dans n’importe quel
système de VoIP basé sur SIP.
Le fait de combiner la VoIP avec les réseaux sans fils afin d’obtenir une très grande liberté
de mouvement avec des téléphones IP sans fils ouvre la porte à de nouvelles vulnérabilités.
En effet, les réseaux sans fils ne sont pas parfaits et il existe plusieurs moyens de pouvoir
s’introduire dans un réseau sans fil plus facilement que dans un réseau IP standard. Cela
permet ensuite au Phreaker de lancer n’importe quelle attaque au niveau VoIP/SIP.
SPAM
1. CALL SPAM : Ce type de SPAM est définit comme une masse non-sollicitée de
tentatives d’initiation de session (avec des messages INVITE), afin de tenter d’établir
des sessions de communication audio. Si l’utilisateur répond, le spammer s’affaire à
relayer ses messages sur le média temps réel. Ceci est le spam classique de
telemarketer, appliqué à SIP.
2. IM SPAM ou SPIM : Ce type de spam est similaire au spam email. Il est définit par
une masse non-sollicitée de messages instantanés, dont le contenu comprend le
message que le spammer cherche à convoyer. Le spam IM est le plus souvent
envoyé en utilisant les requêtes SIP MESSAGE. Toutefois, une quelconque autre
requête qui provoquerait un affichage automatique du contenu sur l’écran de
l’utilisateur devrait également suffire. Il est possible d’inclure des requêtes INVITE
avec des grandes entêtes de sujet ou des requêtes INVITE avec du texte ou un
corps HTML.
3. PRESENCE SPAM : Ce type de spam est similaire au spam IM. Il est définit par une
masse non-sollicitée de requêtes de présence (c'est-à-dire des requêtes SUSCRIBE
dans le but d’être sur la "white list" d’un utilisateur afin de pouvoir lui envoyer des IM
ou pour initier d’autres formes de communications). A la différence du spam IM, le
spam de présence ne doit pas réellement convoyer le contenu dans le message. Il
n’est donc pas évident de trouver l’utilité ou la valeur d’un tel type de spam.
La surveillance des appels permet de déterminer les partenaires faisant partie de l’appel et
le nombre d’utilisateurs en communication.
Si quelqu’un arrive à capturer les DTMFs [SA12] (Dual Tone Multiple Frequencies) avec son
trafic de signalisation, il peut alors avoir l’opportunité de capturer les mots de passes de
voicemail, des informations sur la carte de visite/crédit ou encore d’autres données saisies
par DTMF. C’est pourquoi avec SIP tout ce que nous avons besoin de pister/surveiller est
les messages INVITE. Si le BYE est aussi enregistré, la durée de l’appel peut également
être tracée. Mais d’autres informations ou parties d’information peuvent être surveillée.
Chiffrement :
Avec SIP, il subsiste encore des problèmes lorsque nous désirons chiffrer la signalisation.
En effet, le problème du chiffrement avec DES est que cet algorithme est cassable. De plus,
la clef DES est envoyée en clair avec le paramètre ‘k’.
Et ceci sans compter le fait que le chiffrement entraîne des délais et des interférences (jitter)
supplémentaire qui s’oppose très clairement aux fondements de la QoS.
L’écoute secrète de communications peut être facilement réalisée avec un hub, un couteau,
un clipper et un sniffer. En fait, tous les moyens sont bons tant que l’attaquant arrive à se
placer sur le même chemin que le flux audio avec un hub. Cela peut donc se faire de
plusieurs manières :
Il suffit ensuite de capturer le trafic RTP qui transite entre les deux partenaires en
communications. Après avoir remis les paquets RTP dans le bon ordre et converti le flux
audio en un fichier, il est alors possible d’écouter la communication bidirectionnelle en
différé.
Une autre manière de procéder est d’effectuer d’abord une attaque de type Call Hijacking
pour rediriger le flux vers l’attaquant. Ceci aura pour effet de faire croire à l’appelant que
l’attaquant est bien celui qu’il a voulu appeler. Avec un peu de savoir-faire l’attaquant pourra
donc discuter avec l’appelant et lui soustraire des informations. Notons tout de même que
cette technique est dangereuse pour l’attaquant puisque c’est lui-même qui va discuter et
qu’il fait probablement partie de l’entreprise. Il se peut alors que l’on reconnaisse sa voix.
Il ne faut pas oublier que la signalisation transite sur une voie. Le media sur une autre.
Certains appareils ont besoin de contrôler la création de flux médias mais il n’y pas de flux
média sans la signalisation appropriée (problème de qui vient en premier, voir fooling
billing).
Si il y a une modification du flux média (à travers l’utilisation de RTP ou RTCP, par exemple)
le protocole de signalisation SIP ne va pas en être au courant. Si le codec utilisé par le
protocole de transport du média change, SIP ne le remarque pas. SIP est aveugle face au
protocole de transport du media audio. En effet, dans le cas où le flux média serait
interrompu, les éléments SIP participants à la session (spécialement les serveurs SIP ou
UASs) n’en seront en aucun cas informé jusqu’au moment ou l’un des deux partenaires
raccroche le combiné.
Il n’y a également pas de contrôle du canal utilisé pour le flux média. Nous avons vu qu’un
utilisateur malveillant peut changer le codec utilisé à travers le protocole de média et
spécifier un codec qui demande plus de bande passante (par conséquent son utilisation va
augmenter la perte de paquets et de ce fait va diminuer la qualité de transmission, ou
encore la qualité de la parole).
Enfin, aucun contrôle d’aucune sorte n’est disponible pour le flux média. Ce qui favorise
grandement la manipulation de flux peu scrupuleuse en toute impunité.
Par ailleurs, il est très simple de connaître les routes utilisées pour transmettre les
messages SIP (au travers des champs VIA dans l’entêtes des messages SIP, voir Figure
19). Cela peut par exemple permettre de se faire passer pour l’un des proxy.
Ceci n’est pas toujours possible mais actuellement la plupart des téléphones IP, des
gateways, des firewalls et des logiciels serveurs SIP sont concernés. La validité de ces
vulnérabilités dépend du type de matériel/logiciel (propre aux constructeurs) de déploiement
SIP pour la VoIP ainsi que les différentes version de firmware et d’IOS utilisées (logiciel
système des téléphones, routeurs et autres).
Suivant les constructeurs et suivant les versions de firmware, les vulnérabilités suivantes
peuvent apparaître :
Si le pirate a un accès physique au téléphone et que celui-ci n’a pas changé son mot de
passe administrateur par défaut, il aura un accès total au téléphone et pourra, de ce fait,
faire ce qu’il veut (appels gratuits, changement de mot de passe, téléchargement de
firmware contenant des malwares, etc.).
Par exemple, il est possible d’obtenir les droits administrateurs (Pingtel) en activant l’option
more Æ menu Æ ‘factory default’ le mot de passe par défaut sera null. De cette manière
nous pouvons obtenir les droits administrateurs.
N’importe quel utilisateur authentifié peut, en regardant le téléphone lors d’un appel, d’ores
et déjà récupérer les informations sur le numéro de téléphone et le plus souvent le nom du
participant. Il peut également activer/désactiver les logs de messages SIP ou encore en
lister le contenu et ainsi de découvrir beaucoup d’informations sur les autres partenaires
SIP.
Comme tout logiciel, ceux qui sont utilisés en VoIP sont également vulnérables aux
malwares et aux exploits. Par exemple, Nimda s’attaque au Call Manager de Cisco et peux
engendrer des gros problèmes de sécurité.
Une attaque DoS basée sur DHCP pourrait affamer le réseau d’adresses IP en épuisant le
pool d’adresses IP du serveur DHCP dans un réseau VoIP. Et ainsi tous les téléphones ne
possédant pas encore d’adresse IP ne pourront téléphoner. Par ailleurs, ceci peut
également affecter toutes les stations qui désireraient obtenir une nouvelle adresse IP de
manière dynamique et cela uniquement si il n’y a qu’un seul serveur DHCP pour le réseau
de donnée et le réseau de VoIP.
DoS : Un attaquant peut introduire une condition de DoS en manipulant n’importe lequel
des paramètres suivants :
Attaques TFTP :
Les attaques TFTP sont inhérentes aux HardPhones. Les serveurs TFTP sont donc des
cibles intéressantes pour des personnes mal intentionnées. Les attaques se font
communément en plusieurs étapes :
2. Il faut ensuite découvrir les adresses MAC utilisées par les téléphones IP sur le réseau.
Cela peut se faire de deux manières différentes :
L’adresse MAC d’un téléphone IP pourrait probablement être utilisée pour construire
le nom de fichier de la configuration spécifique du téléphone. L’attaquant a
simplement besoin d’examiner le paramètre ‘tftp_cfg_dir’ dans le fichier de
configuration générique afin de déterminer ou les fichiers de configuration spécifique
sont stockés. Récupérer le fichier est d’office effectué étant donné que TFTP est un
protocole avec authentification.
4. Si il n’y a pas d’accès Telnet sur le téléphone, il est tout de meme possible de :
Avec un accès physique au téléphone tout est possible (par exemple : redémarrer le
téléphone, récupérer l’adresse MAC, etc.).
Il existe encore une multitude de vulnérabilités propres aux systèmes d’exploitations des
constructeurs de téléphone IP. Il ne s’agit ci-dessus que des cas les plus courants. Si vous
désirez une liste exhaustive de ces vulnérabilités je vous invite à aller directement sur les
sites Internet des fabricants.
A chaque fois qu’une panne survient avec notre réseau de données notre réseau de voix va
devenir une forme de réseau de sauvegarde pour notre réseau de donnée. En combinant
les deux réseaux, la fragilité de la disponibilité augmente de manière drastique. N’importe
quel businessman va immédiatement utiliser le téléphone de manière à pouvoir continuer
les opérations, avec au moins le premier appel vers le technicien de service ou une
personne de soutien aussi bien en interne qu’en externe.
Cette situation crée un environnement qui pourrait devenir très attirant pour les pirates. En
utilisant une attaque de type DoS par exemple, il devient très facile d’interrompre deux
services à la place d’un seul, lesquels pourront permettre à un pirate malveillant d’exploiter
très facilement cette opportunité si l’entreprise n’est pas protégée.
Une telle personne qui parvient à s’introduire dans le réseau de l’entreprise peut tout autant
s’attaquer au réseau de donnée qu’au réseau de VoIP. Imaginons qu’une personne
malveillante se trouvant sur son réseau domestique avec un accès Internet via NAT-routeur
ait installé son proxy SIP. Il suffit qu’il connaisse l’adresse IP du outbound proxy de
l’entreprise (avec une attaque de scanning de port et d’adresses IP par exemple afin de
détecter si le port 5060 est ouvert sur une station) pour pouvoir l’utiliser en tant que
passerelle média (en admettant que le outbound proxy se trouve dans la DMZ par exemple).
Cette personne pourra ensuite s’attaquer aux UAs du réseau qui sont gérés par ce proxy. Il
peut par exemple utiliser des attaques de DoS Bulk INVITE, SPAM d’INVITE ou d’IM. En
vérité, toutes les attaques que l’on a vu à l’intérieur de l’entreprise qui ne nécessite pas de
se trouver physiquement sur le même sous-réseau ou sur le même hub sont possibles (IP
spoofing, registration hijacking, épuisement de ressources DHCP, etc.). Il n’est donc pas
possible d’écouter des communications qui transiteraient au sein de l’entreprise, de
détourner des appels en injectant un message 302 Moved Temporarily ou encore d’utiliser
de l’ARP spoofing pour détourner les flux audio et la signalisation SIP.
Un autre danger d’attaque peut survenir si l’entreprise possède un NAT pour sa connexion
Internet et qu’elle a adopté un mécanisme de passage au travers du NAT (voir annexe
Projet de semestre : Traversal FW/NAT). Si ce mécanisme met à contribution un élément
réseau se trouvant sur le réseau public, il suffit que l’attaquant intercepte les messages
transitant entre cette entité et le réseau d’entreprise. Grâce à ces messages, l’attaquant
peut apprendre énormément d’informations sensibles (notamment les adresses IP mappées
sur le NAT) qui peuvent lui permettre de s’attaquer directement aux UAs du réseau
d’entreprise.
Le plus grand danger reste l’attaque du relais RTP de l’entreprise. Si l’attaquant parvient à
capturer ou détourner le trafic transitant à travers le relais (avec de l’IP spoofing par
exemple) alors il pourra écouter toutes les communications entrantes et sortantes de
l’entreprise. De manière analogue, il est possible de capturer tout le trafic de signalisation
entrant et sortant de l’entreprise au niveau de la passerelle de signalisation.
En résumé, n’importe quelle personne s’étant introduite dans le réseau d’une entreprise
ayant déployé le service de VoIP/SIP sans mécanismes de sécurisation peut s’attaquer
aussi bien au service de VoIP lui-même (DoS) qu’aux UAs du réseau.
Ce type d’architecture convient particulièrement bien aux entreprises qui désirent migrer
vers la VoIP de manière progressive. Vous trouverez ci-dessous un exemple d’architecture
IP-enabled adapté à un site unique :
Le site A peut recevoir des appels entrants depuis la société mère à travers le WAN de
manière analogue au site B ou alors directement depuis le PSTN avec un contrôle d’appel à
distance fourni par le switch de la société mère IP-enabled. Pour la plupart des vendeurs,
cette configuration requiert l’addition d’une passerelle média au site A.
Un WAN avec une QoS adéquate est décisif pour un déploiement de VoIP multi-site.
Puisqu’ Internet ne supporte pas la QoS, la plupart des providers de services privés WAN
offrent des conventions de niveau de services et des garanties de performances. Quelques
providers permettent aux utilisateurs de donner un ordre de priorité aux paquets qui
traversent le WAN en utilisant des techniques de QoS standard (par exemple 802.1 p/Q,
DiffServ, MPLS, RSVP et WFQ).
Voici ci-dessous les avantages et les inconvénients des solutions basées sur une
architecture IP-enabled :
Dans le déploiement d’un site unique, un routeur doit jouer le rôle de la passerelle média.
Par la suite, tout le traitement et la commutation des appels sont effectués avec des
paquets. La fonctionnalité de contrôle d’appel est habituellement accomplie par un serveur
séparé et peut être configurée dans un cluster pour assurer la redondance. La gestion des
files d’appels, la musique d’attente et les annonces sont également accomplies via un
serveur séparé : le serveur de média. Des serveurs de média additionnels peuvent être
requis en fonction du nombre de sessions/connexions simultanées. Actuellement, chaque
appel en file, que l’on soit en train d’écouter de la musique ou une annonce, est alloué sur
un flux de VoIP dédié, lequel utilise des cycles CPU.
Les appels PSTN entrants à la société mère sont convertis de TDM en IP via la passerelle
média (IP-PBX ou IPBX). Le serveur de contrôle d’appels établi un flux VoIP avec le serveur
de média pour le traitement en file et ensuite connecte l’appel avec le téléphone IP
approprié.
La communication entre la société mère et les sites distants est similaire à la solution IP-
enabled (voir Figure 24).
Voici ci-dessous les avantages et les inconvénients des solutions basées sur une
architecture IP-centric :
Un ITSP utilise donc Internet comme média de transport principal pour convoyer les
données empaquetées de signalisation et de voix depuis et entre des abonnés. L’ITSP et
ses abonnés seront connectés à Internet ; l’ITSP via des liaisons rapides dédiées tandis que
les abonnés utilisent leurs connexions Internet habituelles (modems téléphoniques
standards, xDSL, etc.) via différents providers de service Internet (ISPs).
Un abonné a la possibilité d’utiliser différentes méthodes afin de passer un appel, toutes ces
possibilités nécessitent que l’abonné présente ses credentials avant que la requête d’appel
puisse être traitée. Un abonné a moyen d’utiliser un SoftPhone, un HardPhone ou d’autres
appareils de téléphonies IP (par exemple des adaptateurs de téléphones pour pouvoir
utiliser un téléphone standard en tant que téléphone IP) afin de passer l’appel.
Vous trouverez ci-dessous un petit schéma illustrant l’utilisation d’ITSP pour communiquer
avec un téléphone se trouvant sur le PSTN :
Voici ci-dessous un exemple d’utilisation de MSN Messenger utilisant SIP à travers un ITSP
Microsoft.
Les ITSP actuels supportent aussi bien des protocoles de signalisation tels que H323, SIP
et MGCP. Cependant la souscription d’un abonnement chez un ITSP n’est véritablement
adaptée qu’a des particuliers ne possédant que très peu de téléphones. En effet, il est vite
intéressant, surtout du point de vue du prix, de mettre en place son propre système de
VoIP/SIP au sein d’une entreprise mais cela est probablement inutile dans le cas de
particuliers ne possédants que peu de téléphones.
Il va donc falloir migrer vers une architecture SIP IP-centric simple. L’architecture devra à
peu près s’apparenter à la Figure 24. Si nous le désirons, il y a même la possibilité de
connecter le gateway ISDN sur le IP-PBX et nous obtenons ainsi une architecture
entièrement centralisée.
C’est donc en fonction de cette architecture que l’on va définir des stratégies et des
mécanismes de sécurisation.
L’architecture de sécurité suivante (voir Figure 27) décrit un type générique de site
d’entreprise avec le service de VoIP/SIP. Cette architecture peut être considérée comme la
référence de base lorsque l’on désire sécuriser un réseau avec le service de VoIP/SIP.
Tous les éléments de VoIP/SIP (serveur proxy, serveur d’enregistrement, terminaux, etc.)
devraient être déployés sur leur propre réseau ou sous-réseau IP privé. Idéalement, ces
sous-réseaux devraient utiliser un espace d’adresses différent de celui utilisé dans les
réseaux de données. Il faudrait, si possible, n’utiliser que des adresses non routables
(privées) [réf. RFC 1918] afin de séparer de manière encore plus forte le réseau de
VoIP/SIP et le réseau de données.
Ceci permet de réduire les chances que le trafic de voix sorte en dehors du segment de
réseau téléphonique et inversement.
Des connexions réseau peuvent être requises entre les segments réseau de VoIP/SIP et de
données afin de fournir des services tels qu’une boîte vocale de messages (voir
"voicemail"). Dans ce cas de figure, afin d’aider à protéger le segment réseau de VoIP/SIP,
le NAT devrait être implémenté sur le point de connexion du segment VoIP/données. Ceci
fournit une protection supplémentaire qui aura comme effet que les hackers situés en
dehors du segment réseau de VoIP/SIP seront incapables de scanner le segment de
VoIP/SIP afin d’en découvrir les vulnérabilités et ceci à moins que le NAT ne soit pas
implémenté ou mal configuré.
7.3 VLANs
Le trafic VoIP/SIP doit être divisé du réseau de données traditionnel en utilisant des réseaux
locaux virtuels (VLAN). Dans un environnement réseau switché, les VLANs créent une
séparation logique des domaines de collisions qui peut s’étendre aux multiples segments du
réseau physique. La séparation des domaines de collisions sert à limiter le risque que des
attaques de type DoS ou packet sniffing sur le réseau de données puissent affecter le
réseau de voix et inversement. De plus, séparer la voix et le trafic de données dans des
domaines de collisions distincts va réduire la concurrence d’accès pour le réseau et, de ce
fait, va réduire également la latence (file/temps d’attente) pour les services de transmission.
Il est inutile de rappeler que la VoIP/SIP est très sensible à cette latence (QoS). Cette
approche de segmentation est donc le moyen le meilleur marché pour améliorer les
performances dans une infrastructure réseau existante.
La mise en place des VLANs peut être configurée sur le principe du VLAN de ports. Les
ports de VLAN pour la VoIP/SIP peuvent être sécurisés en assignant une adresse MAC d’un
téléphone sur un port simple. Les ports VLAN du switch qui ne sont pas utilisés par des
équipements de voix actifs doivent être désactivés ou assignés à un différent VLAN. De
plus, certains téléphones VoIP/SIP possèdent des ports réseaux "built-in" qui ont comme but
de pouvoir y connecter une station.
Il faut également faire attention à la connectique dans le cas où l’on souhaite utiliser un
service de voicemail. En effet, n’importe quelles connexions entre les segments de voix et
de donnée requises par les téléphones pour l’accès à la boîte vocale de messages doivent
être contrôlées en bloquant l’accès direct des données au segment de réseau de voix afin
d’éviter que les vulnérabilités de données et les tunnels de données ne compromettent le
segment de voix. Ceci peut être effectué en plaçant un firewall entre les segments de voix et
de donnée.
7.5 Firewalls
Les systèmes de VoIP/SIP requièrent que de nombreux ports soient “ouverts” dans le
firewall afin d’éviter un délai sensible de remise des paquets. Le protocole utilisé pour
convoyer le trafic (RTP/RTCP) de VoIP/SIP à travers le réseau utilise un large éventail de
ports (10024 à 65535) pour transporter les paquets. La VoIP/SIP requiert quatre ports par
connexion, deux pour la signalisation et deux pour l’émission/réception d’informations utiles
d’utilisateur, la voix dans notre cas. L’ouverture d’un intervalle de ports aussi large va
assurément compromettre tout le réseau. Il y a deux méthodes qui peuvent être utilisées
pour aider à surmonter cette vulnérabilité ; le mapping de ports dynamique et le mapping de
ports statique.
Le mapping de ports dynamique limite la palette de ports qui pourraient être utilisée pour le
trafic de VoIP/SIP. Ceci réduit le nombre de ports qui sont ouverts sur le réseau, mais avec
quatre ports (1023 et plus) requis par connexion, ce nombre pourrait très vite augmenter.
Cette option de configuration requiert un firewall statefull s’occupant de tous les appels de
VoIP/SIP sortant du groupe de VoIP/SIP. Le mapping statique assigne quatre ports pour
chaque ensemble de communication de VoIP/SIP. Cette option demande une quantité
considérable de temps pour configurer les routeurs et doit être modifiée à chaque fois qu’un
utilisateur de VoIP/SIP à besoin d’être ajouté ou retiré. Sans un firewall statefull s’occupant
de toutes les connexions entre les réseaux de données et de voix, nous devrions autoriser
de larges intervalles de ports.
Les firewalls, les routeurs et les switchs doivent être implémentés de manière à
compartimenter les serveurs de VoIP/SIP face aux accès non autorisés. Ceci est
indispensable pour limiter et contrôler les accès depuis le réseau de données au réseau de
téléphonie IP. Les firewalls sont à placer devant tous les réseaux et les composants
supportant les serveurs de VoIP/SIP. Il faut au minimum qu’un filtrage IP soit implémenté
entre les réseaux de donnée/voix. Ceci va diminuer la possibilité d’attaques qui pourraient
provenir depuis le réseau de données.
Le tableau ci-dessous contient tous les ports potentiels et les services qui doivent être pris
en considération dans le filtrage du firewall pour les réseaux et les serveurs de VoIP/SIP :
SERVICE PORT
Skinny TCP 2000-2002
TFTP UDP 69
SIP UDP/TCP 5060
TLS TCP 5061
IPSec UDP/TCP 69, 161, 162,389
HTTP TCP 8080/80
MS Terminal Services TCP 3389
RTP/SRTP UDP/TCP 16384-32767
SNMP UDP 161
SNMPtrap UDP 162
DNS UDP 53
NTP UDP 123
LDAP TCP 389
Echo ICMP echo
Echo-reply ICMP echo-reply
MS-SQL TCP 1433
SSL TCP 443
SMB TCP 445
SCCP TCP 3224
HID agent TCP 5000
ICCS TCP 8002
CTIM (CTI manager) TCP 8003
OSS TCP 18080
Tableau 3 - Services et ports potentiellement utilisés par la VoIP/SIP
Par mesure de sécurité il faudra donc décrire de manière explicite ces quelques règles dans
le firewall :
• Soit bloquer les connexions administrative/gestion soit ouvrir IPSec en utilisant des
VPN (ports 69, 161, 162, 389) sur le périmètre de sécurité VoIP/SIP.
• Bloquer MS-SQL (port 1433) sur le périmètre de sécurité VoIP/SIP.
• Bloquer Network Time Protocol (NTP port 123) sur le périmètre de sécurité VoIP/SIP.
• Tous les Remote Web Access (ports 80, 8080, 443, 8002, 8003, 18080, etc.) sur le
périmètre de sécurité VoIP/SIP sont proxiés. Ceci dépend du matériel et du logiciel
de téléphonie SIP.
• Chiffrement des connexions Web sur le périmètre de sécurité VoIP/SIP.
Dédier et sécuriser les serveurs de VoIP/SIP critiques est la clef de voûte de la sécurisation
de l’environnement de téléphonie IP. Certains vendeurs fournissent des services de
téléphonie IP sur leurs propres systèmes propriétaire tandis que d’autres fournissent ces
services sur les systèmes standard Unix/Linux et Windows. Par conséquent, la sécurisation
du traitement de la voix et des plateformes de signalisation pour y inclure leurs applications
est vitale dans la protection de l’environnement de VoIP/SIP contre les attaques. De plus,
afin de minimiser les risques potentiels, ces serveurs sont dédiés aux applications de
téléphonie IP requises pour les opérations de VoIP/SIP.
7.8 Scalabilité
Les serveurs SIP sont limités en nombre de communications simultanées. C’est pourquoi la
notion de scalabilité est très importante en téléphonie. En effet, si le nombre d’utilisateurs
augmente passablement, il faut que le service soit toujours accessible à tous les utilisateurs
et cela sans modification majeure du réseau. Il est par exemple possible, si le nombre de
téléphones le permet, de simuler un très grand nombre de communications SIP de manière
simultanées. Si le serveur ne supporte pas un grand nombre de communications
simultanées, il va saturer et ceci va créer un DoS au niveau de tous les utilisateurs gérés
par ce serveur.
Il faut donc utiliser des serveurs SIP pouvant gérer un très grand nombre de
communications simultanées tel que Sip Express Router (SER) ou sipXpbx.
Un peu près toutes les règles de niveau 3, 4 et plus sont applicables. Il faut donc faire
attention à bien sécuriser la plateforme de VoIP et pas le contraire.
Méthodes d’authentification :
Authentification
Nous allons voir comment une requête SIP INVITE est authentifiée par le premier serveur
proxy en utilisant ce type d’authentification (challenge d’authentification).
Sur réception du challenge, l’utilisateur renvoie un la requête INVITE d’origine mais sans
oublier d’insérer la réponse au challenge dans l’entête du message SIP (voir Figure 30). La
valeur de réponse contient le digest MD5 du ‘username’, du ‘password’, du ‘nonce’, de la
méthode SIP et de l’URI de l’appelant. Ainsi le ‘password’ n’est pas transmis en clair.
Cependant, le mot de passe doit être connu par le proxy afin d’être capable de vérifier la
réponse d’authentification.
La figure ci-dessous montre comment l’attachement SDP MIME incorporé dans la requête
SIP INVITE de la Figure 30 peut être chiffré et signé avec S/MIME. La structure binaire
envelopedData du type de contenu application/pkcs7-mime encapsule la cargaison SDP
symétrique chiffrée et contient également la clef symétrique qui est chiffrée avec la clef
publique du récepteur. Dans notre exemple, la cargaison chiffrée est également signée en
utilisant la méthode multipart/signed. La signature plus le certificat X.509 optionnel du
signataire sont contenus dans la structure binaire pkcs7-signature, laquelle est attachée
après l’objet MIME à être signé. En tant qu’alternative, une structure binaire PKCS#7
signedData peut être utilisée pour transporter aussi bien les données à signer que la
signature dans l’attachement.
Il est important de noter que l’utilisation de S/MIME pose des problèmes de temps de
traitement des messages SIP/SDP. Lors de chaque réception, il faut extraire le corps et
vérifier la signature de l’émetteur. Cela risque donc de ralentir la signalisation SIP. De plus,
S/MIME ne protège pas contre des attaques de type man-in-the middle. Si quelqu’un arrive
à se mettre entre les deux partenaires de signalisation SIP et que celui-ci possède un
certificat valable il peut très bien intercepter les messages et injecter les siens pour une
quelconque attaque.
L’ouverture de session est ici un peu différente de la Figure 35. En effet, la demande de
certificat de la part du serveur, l’envoi du certificat du client et la vérification de celui-ci par le
serveur ne sont pas présents puisque l’authentification client n’est pas nécessaire.
Le flux TCP suivant représente une connexion TLS à un hôte b.example.com. Notez que le
client propose trois ensembles de protocole (y compris le protocole essentiel
TLS_RSA_WITH_AES_128_CBC_SHA).
Une fois que la session TLS est active, le message SIP MESSAGE suivant est envoyé à
b.example.com. Notez que l’URI est un SIPS URL et que le champ VIA indique que TLS est
utilisé.
>>>Hi<<<
La réponse 200 OK est envoyée depuis b.example.com à a.example.com sur les mêmes
connexions TLS. La voici :
SIP/2.0 200 OK
To: <sips:bob@b.example.com:5081>;tag=514db9e7
From: <sip:alice@example.com>;tag=2639484b
Via: SIP/2.0/UDP b.example.com;
branch=z9hG4bK-c87542-240491824-1-c87542-;received=127.0.0.1
Call-ID: 7ba3572175b0f542
CSeq: 1 MESSAGE
Contact: <sips:bob@b.example.com:5081>
Content-Length: 0
Ce type d’authentification nécessite que le client soit authentifié à l’aide de son certificat
X.509 en plus de l’authentification du serveur. L’ouverture de session ressemble donc à la
Figure 35. Voyons un peu plus en détails un certificat client et la clef associée.
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, ST=California, L=San Jose, O=sipit,
OU=Sipit Test Certificate Authority
Validity
Not Before: Jul 20 14:29:54 2003 GMT
Not After : Jul 19 14:29:54 2004 GMT
Subject: C=US, ST=California, L=San Jose, O=sipit,
CN=alice@a.example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:f0:9f:91:9a:6d:6f:81:b9:9d:67:db:5f:be:95:
3a:29:8a:cc:73:dd:b9:7a:33:c8:f9:52:dd:99:13:
04:2b:f1:9b:c2:f5:93:72:7a:9b:e1:97:fc:c2:d2:
96:d0:76:db:b5:0e:47:b1:59:74:59:5b:b0:73:ad:
c8:64:bd:59:1c:67:1a:82:2f:c2:cf:53:87:d3:2b:
5a:dc:e6:3c:8c:27:a0:ab:6e:7f:4d:86:dd:2b:9b:
e3:69:3b:f0:aa:1b:ad:f2:ab:1e:44:46:b2:8a:ab:
85:2c:81:13:03:98:06:65:57:0c:ff:c3:4f:02:cb:
ed:79:e5:81:19:c7:02:e2:1b
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
email:alice@a.example.com
X509v3 Basic Constraints:
CA:FALSE
X509v3 Subject Key Identifier:
DE:0C:46:FC:B7:4C:CE:6B:73:99:22:C2:3D:A9:DE:53:EC:BF:69:66
X509v3 Authority Key Identifier:
keyid:6B:46:17:14:EA:94:76:25:80:54:6E:13:54:DA:A1:E3:54:14:A1:B6
DirName:/C=US/ST=California/L=San Jose/O=sipit/
OU=Sipit Test Certificate Authority
serial:00
Signature Algorithm: sha1WithRSAEncryption
95:2c:fb:26:83:35:4a:3c:da:20:be:74:1a:1f:80:7f:27:61:
dc:27:f1:a9:7b:2e:a7:24:31:1f:f7:c9:77:cd:0f:bf:02:9b:
8d:d5:35:42:6d:90:60:30:4c:6b:f4:7f:11:4d:a0:3f:1e:9c:
d2:2b:e0:4b:4f:fc:fa:37:43:68:e2:d8:32:29:bd:6e:22:e6:
ef:0e:97:b0:d9:92:49:ae:46:95:38:ab:a5:11:de:fa:dc:1b:
ae:30:6b:48:2c:a3:c5:26:71:a6:23:58:a2:d2:57:4a:b1:ae:
d8:45:c6:9a:71:8b:01:e9:ac:95:5e:9a:2c:67:ae:c3:5d:2b:
7c:9d
Pour résumer, on peut dire que TLS assure une authentification (client)/serveur ainsi que
l’intégrité et la confidentialité des messages SIP. Mais son utilisation n’est pas gratuite. En
effet, l’utilisation de TLS va induire un overhead [SA17] plus ou moins léger suivant le type
d’authentification (mutuelle ou non) et du cipher choisi. Cet overhead est négligeable sur
une petite quantité d’appels simultanés mais peut devenir important pour des grands ITSP
par exemple.
Le protocole IKE (Internet Key Exchange) qui est utilisé pour mettre en place les
associations de sécurité IPSec supporte aussi bien l’authentification basée sur PSK que
PKI. Etant donné que les adresses IP des UAs SIP sont le plus souvent dynamiques et
attribuées en accord avec le droit d’accès au réseau, IKE en mode principal (Main Mode) ne
fonctionnera pas avec des PSS (pre-shared secrets) et qu’IKE en mode agressif
(Aggressive Mode) est chargé de problèmes de sécurité (attaques de types man-in-the-
middle, dictionnaire off-line sur le PSK, etc.), l’authentification basée sur une clef publique
sera une méthode préférable. Cela veut dire que l’établissement d’un état de confiance
globale dans les certificats X.509 est encore le problème récurent majeur.
Il subsiste néanmoins des problèmes de NAT avec IPSec en ce qui concerne la modification
des entêtes IP (niveau 3). Le problème vient du chiffrement de l'en-tête IP par les
participants au tunnel IPSec. Si l'adresse IP est modifiée pendant le trajet du paquet, elle ne
sera pas la même à l'arrivée que celle qui a été encryptée au départ, et après comparaison,
le paquet sera détruit. Cependant, en se plaçant en mode ESP et en faisant du tunneling,
c'est la totalité du paquet qui est chiffrée, et une nouvelle en-tête est ajoutée à celui-ci.
Malheureusement, cette solution n'est pas toujours possible.
Cependant, il existe une réelle solution pour parer à ce problème. Il s'agit d'encapsuler les
données dans un tunnel UDP. Ainsi, de la même façon qu'en mode tunnel et ESP, l'en-tête
modifiée par le NAT ne sera pas utilisée pour le test d'authentification. D'ailleurs la plupart
des constructeurs ont créé leurs propres solutions IPSec pour traverser le NAT.
A cause de ces contraintes temps-réel, la transmission doit être basée sur UDP. Ci-dessous
(voir Tableau 5) sont listés uniquement deux mécanismes de sécurité actuellement
utilisables.
Intégrité des données
Méthodes d’authentification :
Confidentialité
Donc, aussi bien les paquets RTP que RTCP peuvent être respectivement sécurisés de
manière cryptographique par SRTP et Secure Real-Time Transport Control Protocol
(SRTCP). Voyons un peu plus en détail les formats de messages, la génération de clef de
session et la distribution des clefs primaires.
Le format de messages SRTP est représenté à la Figure 36. Comme on peut le voir, seul le
corps de cargaison RTP est chiffré (en incluant un quelconque padding [SA18] RTP). Tant
que toutes les transformations courantes de chiffrement n’ajoutent pas de padding, la taille
de la cargaison RTP n’est pas augmentée par le chiffrement.
Le champ de clef MKI (Master Key Identifier) est optionnel et identifie la clef primaire depuis
laquelle les clefs de session sont dérivées. Le MKI peut être utilisé par le récepteur pour
retrouver la clef primaire correcte quand le besoin d’un renouvellement de clefs survient.
Le numéro de séquence sur 16 bits déjà présent dans le paquet RTP (voir Figure 10) est
utilisé de manière simultanée avec le compteur de rollover de 32 bits (Roll Over Counter),
qui se trouve être une partie du contexte cryptographique, pour la session SRTP afin de se
prévenir contre des replay attacks.
La Figure 37 démontre que les paquets RTCP sont sécurisés de manière similaire que les
paquets RTP. La seule différence réside en l’utilisation obligatoire du tag d’authentification.
Sinon, il peut être possible pour un attaquant malveillant de terminer un flux média RTP en
envoyant un message SIP BYE (DoS par injection de messages). Un champ supplémentaire
est l’index SRTCP qui est utilisé en tant que compteur de séquence afin de se prémunir
contre d’éventuelles replay attacks. Le bit de poids fort ‘E’ du champ index est utilisé en tant
que flag de chiffrement qui est mis à 1 si le corps RTCP est chiffré.
En principe, n’importe quel schéma de chiffrement peut être utilisé avec SRTP. En tant
qu’algorithmes par défaut, le cipher NULL (pas de confidentialité) et AES-CTR (Advanced
Encryption Standard in Counter Mode) sont définis. En effet, le chiffrement par AES
standard ne permet pas de chiffrer des flux. La définition du chiffrement par AES-CTR est
représenté dans la Figure 38.
Cet algorithme de chiffrement joue le rôle de générateur de clefs (sous forme de flux) qui
produit une clef pseudo-aléatoire de longueur arbitraire qui va s’appliquer de manière bit-à-
bit à la cargaison RTP/RTCP. Le chiffrement sera effectué à l’aide d’une fonction logique
XOR de la clef de flux et de la cargaison RTP/RTCP, et travaillera ainsi en tant que cipher
de flux. AES lui-même est un cipher avec un bloc de taille de 128 bits et une taille de clef de
128, 192 ou 256 bits. Afin de pouvoir fonctionner en tant que générateur pseudo-aléatoire,
AES est chargé au début de chaque paquet RTP/RTCP avec un vecteur d’initialisation
distinct (IV). Ce vecteur est obtenu en hashant une salt_key (clef propre à chaque
utilisateur) de 112 bits, le champ SSRC du flux média et l’index du paquet. Le chiffrement de
l’IV abouti en un output de 128 bits pseudo-aléatoires. Ensuite, le IV est incrémenté de 1
puis à nouveau chiffré, cela génère les 128 bits suivants de la clef sous forme de flux. En
continuant de compter tout en incrémentant l’IV de 1, autant de blocs de clefs (sous forme
de flux) peuvent être générés que nécessaire pour chiffrer la totalité de la cargaison
RTP/RTCP. Un quelconque bit en reste du dernier bloc de clef sous forme de flux sera
simplement jeté.
AES utilisé en mode de comptage au lieu du mode le plus habituel cipher block chaining
(CBC) a le grand avantage que la clef sous forme de flux peut être précalculée avant que la
cargaison ne soit disponible et ainsi cela minimise les délais introduits par le chiffrement. De
plus, en utilisant un cipher de flux au lieu d’un cipher de bloc, il n’y a pas besoin d’utiliser de
bits de padding pour augmenter la taille de la cargaison à un multiple de la taille de bloc.
Ceci devra ajouter 15 bytes d’overhead au paquet RTP/RTCP dans le pire des cas.
L’algorithme d’authentification de messages SRTP par défaut est HMAC-SHA-1. Celui-ci est
basé sur la fonction de hash sur 160 bits SHA-1. La sécurité cryptographique est accomplie
en hashant un secret auth_key de 160 bits dans un checksum qui est ensuite tronqué à 80
bits afin de réduire l’overhead du paquet et qui a, de plus, l’avantage de cacher l’état interne
complet de la fonction de hash. Dans les applications où la transmission en bande de base
est un problème, le tag d’authentification peut être réduit à 32 bits.
La Figure 40 représente comment les clefs de session sont calculées à partir de la clef
primaire unique. A nouveau, le cipher de bloc AES est utilisé en mode comptage pour
générer le keying material (clefs, certificats et vecteurs d’initialisations) nécessaire. La clef
primaire, qui peut avoir une taille de 128, 192 ou 256 bits, joue le rôle de clef de chiffrement
AES. Le générateur pseudo-aléatoire est chargé avec un IV qui est lui-même une fonction
d’une valeur master_salt de 112 bits, un byte label et un numéro de clef de session (session
key number). En appliquant les labels 0x00 à 0x05, le chiffrement, l’authentification et les
salting keys pour RTP et RTCP sont dérivés depuis la même clef primaire. Si un taux de
dérivation de clef (key derivation rate) a été défini alors à chaque fois qu’un nombre de
paquets équivalent au taux de dérivation de clef ont été envoyés, un nouveau jeu de clefs
de session RTP et RTCP sont calculés. Si le taux de dérivation de clef est mis à 0 alors le
même jeu de clefs sera utilisé pour toute la durée de la session.
Nous voici devant le problème crucial de distribution de la clef primaire aux UACs en tant
que partie de l’initiation de session. Une approche possible est d’utiliser MIKEY (Multimedia
Internet KEYing) pour établir le contexte cryptographique SRTP. MIKEY est un nouveau
protocole global d’échange de clef similaire à IKE (Internet Key Exchange) d’IPSec mais qui
a été taillé sur les demandes spécifiques d’environnements multimédia. Actuellement,
MIKEY est très peu implémenté et, de ce fait, n’est donc pas une bonne solution étant
donné le peu de références.
Il existe un autre système plus simple pour l’échange de clefs. Le paramètre k ‘key’ définit
par SDP peut être utilisé pour transmettre la clef primaire. La Figure 41 représente un
message SIP INVITE classique qui convoie tous les paramètres nécessaires à
l’établissement de sessions multimédia de manière incorporés dans le corps MIME
application/sdp.
Dans cet exemple, nous voyons apparaître le paramètre k contenant la clef primaire SRTP
de 128 bits. Puisque nous arrivons à lire la clef vous comprenez bien quels problèmes de
sécurité cela implique. C’est pourquoi il serait intéressant de mettre en place des
mécanismes de chiffrement du protocole SIP (avec TLS) et du contenu SDP (avec S/MIME).
Actuellement, c’est l’authentification basique et digest qui sont utilisées dans SIP.
Récemment, le groupe de travail AAA (protocole d’Authorizatrion-Authentifiction-Accounting)
de l’IETF a beaucoup travaillé sur un protocole extensible d’authentification (Extensible
Authentication Protocol) dans le protocole SIP. L’avantage est que de nouveaux modèles
d’authentification peuvent être utilisés sans modifications du protocole SIP. Ceci est dû au
fait que le paquet EAP, pour un modèle d’authentification particulier, est convoyé de
manière transparente par le protocole SIP.
- L’UAC envoie au proxy SIP une requête SIP (1) sans l’entête ‘authorization’ (voir point
7.10.2 "Digest Authentification").
- Ensuite le proxy demande à l’UAC à l’aide d’une réponse "407 Proxy Authentication
required" (2) (voir Figure 29) de renvoyer la requête SIP avec le champ ‘authorization’.
- L’UAC envoie alors au proxy SIP la requête SIP avec l’entête ‘authorization’ (3).
- Le serveur RADIUS répond au proxy SIP avec une réponse "RADIUS Access-
Accept/Access-Reject" (5). Si les credentials sont acceptés, alors le proxy SIP reçoit une
réponse "Access-Accept" et le message envoyé par l’UAC est considéré comme
authentique.
- Si le proxy SIP reçoit une réponse "Access-Reject", le proxy SIP répondra alors à l’UAC
avec une réponse "407 Proxy Authentication required" (6).
D’ici un avenir plus ou moins proche, le système de contrôle d’accès AAA (Authentication,
Authorization et Accounting) pourra lui aussi être combiné avec le service de VoIP afin de
garantir une sécurité d’accès au service la plus robuste que possible puisque AAA gère
également l’accounting (contrairement à RADIUS).
7.17 NAT
L’utilisation de NATs permet à la fois de parer au manque flagrant d’adresses IP publiques
mais aussi bien de cacher le réseau privé au réseau publique. C’est donc un élément de
sécurité très intéressant. Mais cela n’est pas sans frais, en effet, l’utilisation d’un NAT avec
de la VoIP crée des problèmes de translations d’adresses contenues dans la cargaison des
messages SIP. Il est possible de contourner ce problème mais cela peut induire de
nouvelles failles de sécurité. Si la méthode utilisée pour parer au problème du NAT
nécessite la mise en place de systèmes sur le réseau publique (Turn, STUN, etc.), il faudra
alors s’assurer que ces systèmes soient sécurisés de manières à ne pas compromettre la
sécurité du réseau privé (voir annexe : Projet de semestre - Traversal Firewall/NAT).
Le service de voicemail est généralement configuré pour s’exécuter sur des OS ordinaires,
tels que Microsot Windows NT/2000 et Unix/Linux. La marche à suivre doit être faite de telle
manière qu’elle assure que ces OS sont sécurisés. Les applications supportant le service de
voicemail doivent aussi être sécurisés. Par exemple, MS SQL Server peut être utilisé pour
supporter les droits d’accès des abonnés ou MS IIS (serveur Web de Microsoft) peut être
utilisé pour permettre aux abonnés de changer leurs paramètres de voicemail en utilisant un
navigateur Internet via un protocole sécurisé tel que SSL (telnet et HTTP doivent être
désactivés).
8.1 Introduction
Le but est ici d’illustrer au mieux les différentes vulnérabilités d’un réseau VoIP/SIP à
l’intérieur de l’entreprise. On va commencer nos tests avec une plateforme SIP non
sécurisée. Cela va nous permettre d’effectuer des attaques de toute sorte. Par la suite, le
but est de sécuriser le réseau afin de démontrer l’efficacité des mécanismes de défenses
qui ont été mis en place.
Il faut donc tout d’abord installer le serveur SIP proxy/registrar. J’ai choisi d’utiliser un logiciel
libre s’exécutant sous Windows (OnDoSipServer 1.2.7.0) Ce logiciel fait office de proxy et
de registrar avec ou sans authentification (voir annexe Logiciels utilisés).
Une fois l’installation terminée il faut tester si la communication peut s’établir. On installe
donc deux SoftPhones sur une station Windows et Linux. J’ai choisi d’utiliser X-Lite qui est
un logiciel très didactique fonctionnant soit avec Windows soit avec Linux. Après
configuration des deux SoftPhones et la mise en place du switch on peut donc passer notre
premier appel.
Ceci étant fait, il reste à installer les deux téléphones IP CISCO 7960. Il faut tout d’abord
mettre à jour les versions du firmware SIP et ceci à l’aide des fichiers fournis par CISCO. Il
suffit de mettre en place un serveur TFTP avec les fichiers concernés. J’ai choisi d’installer
le serveur TFTP sur la même station que les serveurs proxy/registrar SIP.
La première des attaques qui est à la fois simple et efficace à mettre en place est de type
DoS. En effet, nous avons vu qu’il y a moyen d’effectuer des DoS rien qu’en injectant un ou
des messages SIP dans le réseau au bon moment et à la bonne personne.
Il est également possible de faire l’inverse. C'est-à-dire que l’on peut faire croire à l’appelant
que l’appelé ne désire pas répondre à l’appel.
Remarque :
Pour toutes les attaques nécessitant l’injection de messages dans le réseau, il faut
ABSOLUMENT respecter la conformité de plusieurs champs. En effet, seul six des champs
contenu dans un message SIP sont contrôlés par le proxy ou le registrar. Ces champs sont
les suivants :
v=0
o=CISCO-SIPUA 18170 14660 IN IP4 192.168.0.102
s=SIP Call
c=IN IP4 192.168.0.102
t=0 0
m=audio 28690 RTP/AVP 0 8 18 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
Ceci étant compris, il nous est maintenant possible d’effectuer le DoS – CANCEL. Pour cela,
il suffit d’initier une communication depuis un des téléphones mais sans décrocher à l’autre
bout. C’est à ce moment là qu’il faut injecter le message CANCEL et l’envoyer au partenaire
qui n’a pas encore décroché. Ceci étant fait, le partenaire appelé comprend que l’appelant
désirait raccrocher alors que ce n’était pas le cas. De son côté, l’appelant continue
d’attendre que son partenaire décroche (mais en vain, en fait jusqu’à la fin du ‘time out
INVITE’ du proxy). C’est donc un DoS sur l’appelé et l’appelant. Voici un diagramme
explicatif :
Pour cette attaque, il n’est pas nécessaire de devoir sniffer les messages si l’on connaît déjà
l’URI du proxy.
Remarque : Il est également possible pour l’administrateur de détecter une attaque Bulk
REGISTER en analysant la liste d’enregistrement (voir Figure 47).
En effet, si les entrées ne correspondent pas aux téléphones IP autorisés, alors l’on sait
qu’une attaque a lieu en ce moment ou il y a peu de temps. On peut même en tirer l’adresse
IP de l’attaquant avec le champ ‘Requester’ qui est identique dans toutes les requêtes
venant du pirate.
Comme pour le DoS Bulk REGISTER sans authentification, cette attaque ne nécessite pas
de pouvoir sniffer les messages SIP si on connaît l’URI du téléphone cible.
Il y a donc DoS sur 2222@192.168.0.100 alors qu’en fait les messages INVITE proviennent
d’un générateur de messages SIP. Seulement le partenaire ne le sais pas et crois qu’on l’a
coupé. Dans notre cas l’appel a duré 30 secondes avant la coupure.
De plus, la session est encore réellement perçue par le proxy puisque le téléphone n’a pas
arrêté correctement la session. Voici donc ce que voit le proxy :
Si le téléphone 2222 veut par la suite passer un appel et que la session est encore activée
sur le proxy alors celui-ci lui répondra par un message ‘603 Decline’. Pour un utilisateur
standard, il est impossible d’effacer cette session au niveau du proxy. Elle devra faire appel
à l’administrateur du réseau.
Il serait donc possible d’effectuer ce DoS sur un maximum de téléphones différents et ainsi
de bloquer une grande partie des utilisateurs.
Vous trouverez en annexe le résultat d’un scanning de vulnérabilités de notre proxy SIP
(voir annexe Résultat du test de vulnérabilités de type Buffer Overflow).
Notre générateur de messages ne supporte que le message 302. Il suffit donc d’intercepter
un message INVITE venant d’un des téléphones et d’injecter notre message 302 en
spécifiant dans le champ ‘contact’ qu’il faut transférer l’appel vers notre SoftPhone
1234@192.168.0.100.
Voici le diagramme des communications lorsque la call forwarding est activé sur le
téléphone appelé 2222@192.168.0.100 (l’URI de transfert utilisée ici est
1111@192.168.0.100) et l’appelant est notre SoftPhone (qui ne joue pas ici son rôle
d’attaquant mais de simple appelant) :
Figure 50 - Appel avec transfert d'appel temporaire au moyen du message 302 moved
temporarily
Voici le message 302 que nous allons injecter avec le champ contact qui nous intéresse (les
valeurs de branch, tag, call-ID et CSeq seront mis à jour) :
Remarque :
Il subsiste néanmoins un problème avec les champs ‘tag’ et ‘branch’. En effet, ces champs
sont différents d’une session à l’autre. Cela ne nous permet donc pas de pouvoir injecter
notre message 302 avant que le téléphone appelé sonne (messages 100 trying et 180
ringing).
Voici deux appels successifs démontrant le changement de valeurs des champs ‘tag’ et
‘branch’ d’une session à l’autre :
Rien ne nous empêche alors de nous faire passer pour quelqu’un d’autre au téléphone
puisque l’appelant croit avoir atteint la personne qui désirait appeler. De plus, sur l’affichage
du téléphone le nom d’utilisateur est celui que l’appelant désirait appeler. Il est de coutume
en entreprise que lorsque quelqu’un est absent, il transfert tous les appels vers les
secrétaires. En nous faisant passer pour un secrétaire nous pouvons sûrement en tirer des
informations utiles.
Remarque :
Il faut absolument que la personne appelée ne réponde pas AVANT que l’on ait injecté le
message 302 si l’on ne veut pas que notre tentative de détournement soit vouée à l’échec.
Le temps que cela m’a pris est de quelques secondes, cela peut paraître long mais en
général le téléphone sonne bien quelques secondes avant que l’on décroche et cela surtout
si l’on est occupé. Si la personne répond APRES l’injection de notre message, alors elle se
croira en communication avec la personne appelante alors que ce n’est plus le cas. Il y donc
DoS sur la personne appelée.
Remarque : L’écoute de flux RTP est trop compliquée pour être effectuée en temps réel. Il
va falloir enregistrer ce flux, puis le convertir et écouter la communication en différé.
En ce qui concerne les messages instantanés SIP, le contenu du message instantané se
trouve dans le payload du message SIP, et donc transite sur le réseau en clair.
Pour pouvoir effectuer une écoute non autorisée, il faut donc considérer les deux cas
suivants :
1. Nous nous trouvons physiquement sur le même hub que le téléphone IP cible ou sur
le même hub que le proxy SIP. Dans ce cas il est vraiment très simple d’écouter la
communication en différé ou de lire les messages instantanés. Voici à la Figure 52
un message instantané capturé sur notre hub :
Remarque :
Attention ! Actuellement avec cette version d’Ethereal (0.10.7) seul le codec G.711
est utilisable. D’autres programmes effectuant la même conversion de flux ne
fonctionnent qu’avec ce codec. D’ici quelques temps la plupart des codecs seront
gérés.
Remarque :
Cela fonctionne uniquement si l’attaquant se connecte sur le switch avant les
téléphones IP dont on veut pouvoir écouter les conversations. Si ce n’est pas le cas
alors les adresses MAC des téléphones associées aux différents ports du switch
seront conservées dans la CAM. Il faut alors trouver un moyen de vider la CAM (ce
qui n’est pas du tout trivial d’accéder au switch suivant le type de switch et les
couches OSI implémentée – MAC, IP). Le mieux étant de déconnecter ou de
redémarrer les téléphones (voir point 5.2.1 "Vulnérabilités des systèmes
d’exploitation") et de remplir la CAM.
Il suffit donc de connaître l’adresse MAC du switch pour pouvoir l’attaquer. Voici un
extrait de la CAM après remplissage :
Remarque :
Il est possible de se faire passer pour le proxy à l’aide d’ARP spoofing (en spoofant
l’adresse du vrai proxy et ceci uniquement si nous nous trouvons sur le même sous-
réseau) ou de messages 30x. Nous devons alors modifier l’entête Via pour ajouter
l’adresse IP et le port du proxy comme le fait un vrai proxy et nous devons
également router tous les messages de signalisation SIP aux bon partenaires en
parsant les messages afin de découvrir les adresses IP de destinations.
Si ceci est effectué correctement alors nous ferons office de proxy comme convenu
et nous obtiendrons tous les messages de signalisation (y compris les messages
instantanés) mais aucun paquet RTP. En effet, le flux RTP n’est établit qu’entre les
deux partenaires en communication (voir Figure 2).
Si nous voulons effectuer de l’ARP spoofing au moment ou le flux RTP est transmis
afin de pouvoir récupérer le flux tout en le routant aux bons destinataires il y a un
nouveau problème : en effet, lors d’envoi de paquets RTP les téléphones n’ont plus
besoin d’effectuer des ARP request et cela nous rend impossible le détournement
par ARP spoofing. Ceci est apparemment un problème spécifique aux téléphones
CISCO Catalyst 7960.
Il est également à noter que cette technique d’attaque de switch est valable pour
toute les attaques nécessitant la capture de messages SIP sur le réseau (DoS
CANCEL/BYE, Call Hijacking, etc.).
Remarque :
Si le nombre de téléphone que vous voulons spamer est supérieur à la limite de
communications simultanées admise par le proxy/redirect (environ 25 dans notre cas) alors
notre attaque se soldera, en plus du spam lui-même, par un DoS du proxy/redirect (et donc
du réseau SIP complet sous contrôle de ce serveur) dû à un nouveau type d’attaque Bulk
INVITE sur le serveur.
Figure 54 - Réseau de test SIP sécurisé Digest Authentification, Filtrage d’appel et IDS/IPS
VoIP/SIP
Nous pouvons voir que le mécanisme Digest Authentification est utilisé au niveau des
UACs. Il faut également éviter au maximum les hubs. Nous allons voir juste après quels sont
les différentes utilités de sécurité des différents mécanismes de sécurisation.
8.5.1 Switch :
Comme vu précédemment, les attaques de types DoS CANCEL/BYE et Call Hijacking par
injection de message 302 oblige l’attaquant de respecter les champs qui sont contrôlés ainsi
que de savoir à quel moment il doit injecter ses messages malicieux. Il doit donc, pour cela,
pouvoir capturer ces informations. L’attaquant doit donc se trouver sur le même hub que les
différents partenaires visés par l’attaque ou éventuellement avec le proxy utilisé par ceux-ci.
Il suffit donc de n’utiliser que des switchs afin de rendre ces données inatteignables à
l’attaquant. Si celui-ci décide d’injecter des messages SIP par la force brute en testant
toutes les possibilités de valeurs de champs afin que l’un de ses messages correspondent
bien à la transaction concernée il est très peu probable qu’il y parvienne dans les temps.
Dans le cas d’un DoS CANCEL, l’attaquant n’a comme temps que celui que met le
partenaire appelé à décrocher le combiné. Dans le cas d’un DoS BYE, le temps imparti à
l’attaquant est la durée de communication entre les deux partenaires.
Mais attention ! Il est cependant possible que l’attaquant se procure un petit hub personnel
qu’il se chargera de placer sur le réseau de manière judicieuse, comme par exemple entre
les téléphones et le proxy/regitrar ou encore entre les téléphones et un switch (bien
qu’encore faut-il qu’il aie physiquement accès à ces emplacements stratégiques sur le
réseau). L’attaque de la CAM du switch est également possible mais difficile (voir point 8.4.7
" Ecoute indiscrète d’autres communications (eavesdropping)").
8.5.2 VLANs :
La configuration de deux VLANs séparés (un VLAN donnée et un VLAN VoIP) permet à la
fois de cacher le réseau de VoIP aux utilisateurs du réseau de donnée uniquement mais
cela évite également la propagation de collisions en dehors d’un VLAN.
Nous gardons la plateforme de test sécurisée (voir Figure 54). La station Linux sera utilisée
en tant que SoftPhone et la station Windows XP en tant qu’utilisateur standard sans
téléphone IP. Il faut configurer les VLANs comme suit :
1. Un VLAN VoIP sur lequel sera connectés les deux HardPhones CISCO 7960, le
serveur SIP proxy/registrar et le SoftPhone Linux Debian.
En effet, le SoftPhone doit faire partie des deux VLANs pour avoir accès aux services offerts
par le réseau de donnée (Internet, DHCP, DNS, etc.) ainsi qu’au VLAN de VoIP. Il faut donc
créer un trunk regroupant les deux VLANs pour connecter le SoftPhone.
Dans le menu principal il faut choisir l’option [V] Virtual LAN. Voici le menu de configuration
des VLANs :
Ensuite il faut choisir [A] Add VLAN. Une question est ensuite posée à propos du type de
VLAN à ajouter :
Il faut choisir [1] Ethernet. Ensuite est affiché le menu d’ajout de VLAN Ethernet :
Le numéro par défaut du nouveau VLAN est 2. Nous allons changer le nom du VLAN pour
l’appeler VoIP. Il faut donc sélectionner [V] VLAN Name. Nous pouvons maintenant saisir le
nouveau nom :
Configuration change only takes effect when the VLAN SAVE command is executed.
Nous pouvons ensuite sauver le VLAN avec la commande [S] Save and Exit. La même
marche à suivre est utilisée pour activer le VLAN "Donnee". Nous allons maintenant ajouter
des ports au VLANs. Les trois premier ports seront dans le VLAN VoIP et le port 4 sera dans
le VLAN Donnee. Il faut donc sélectionner le choix [E] VLAN Membership depuis le menu
Virtual LAN Configuration. Ceci va lister les associations de VLAN de tous les ports :
AUI 1 Static
A 1 Static
B 1 Static
Par défaut, tous les ports sont associés au VLAN 1 de manière statique. Le VLAN 1 est un
VLAN par défaut. Nous avons créé le VLAN 2 VoIP et le VLAN 3 Donnee. Il faut donc
maintenant associer les ports correspondants à l’aide du menu [V] VLAN assignment. Voici
ce que nous obtenons :
Après sélection des ports 1-3, il faut sélectionner le VLAN auquel nous désirons associer
ces ports :
La configuration du port 4 se fait de manière analogue. Voici ce que nous obtenons après
configuration complète des ports :
AUI 1 Static
A 1 Static
B 1 Static
Ensuite il faut quitter ce menu et revenir a la configuration des VLANs avec la commande
[X] Exit to Previous Menu. Il faut maintenant configurer le trunk qui va être utilisé pour le
SoftPhone. Ce trunk doit comprendre les VLANs 2 et 3. Il faut choisir l’option [T] Trunk
Configuration. Il nous faut maintenant choisir le trunk à utiliser. Ce choix n’est pas important
mais nous choisirons le trunk A :
[N] Next Trunk [P] Previous Trunk [X] Exit to Vlan Menu
Il faut ensuite utiliser l’option [A] Add Allowed VLAN(s) pour ajouter des VLAN au trunk A. Il
ne reste plus qu’à choisir d’ajouter les VLANs 2-3 :
This command adds one or more VLANs to the allowed VLAN list for this
trunk.
Ensuite nous pouvons quitter le menu et fermer la console. Maintenant nous pouvons tester
les pings entre les différents éléments.
Ce mécanisme est vraiment très intéressant. D’une part, son utilisation est "gratuite" à partir
du moment ou le switch est déjà présent sur le réseau et qu’il permet d’utiliser des VLANs.
D’autre part, les domaines de collisions sont séparés et ainsi le réseau fonctionne plus
efficacement dans chaque VLAN. Mais surtout, ce mécanisme permet d’éviter toutes les
attaques de VoIP/SIP visant directement un élément de VoIP (DoS par injection de
messages, Buffer Overflow, SPAM, détournement d’appel, etc.) et venant de personnes qui
ne font pas partie du VLAN de VoIP. Toutes les attaques de VoIP qui s’effectuent de
manière indirecte (c'est-à-dire en passant par un élément réseau qui n’est pas forcément un
éléments de VoIP), telles que l’épuisement de ressource DHCP et les attaques TFTP par
exemple, ne peuvent pas être évitées sans devoir isoler ces éléments dans le VLAN de
VoIP uniquement. Mais attention, cela n’est pas toujours possible puisque ces éléments
sont souvent utilisés par des éléments du réseau de donnée (en particulier DHCP).
Le système d’authentification implémenté par notre proxy est celui décrit dans la nouvelle
RFC 3261 SIPv2. Avec l’ancienne RFC le système est basé sur une authentification
basique. C'est-à-dire que le ‘Username’ et le ‘Password’ transitaient en clair dans les
messages SIP. Le nouveau système est, lui, basé sur une authentification digest, donc le
‘Username’ et le ‘Password’ font partie intégrante du digest et donc indéchiffrable à un
attaquant qui cherche à capturer des messages SIP.
Avec ce système de contrôle, aucun utilisateur non autorisé ne peut s’enregistrer dans le
serveur. Même si l’attaquant possède un téléphone autorisé dans l’entreprise il ne pourra
pas effectuer de nouvel enregistrement avec d’autres URI que celui de son téléphone (les
enregistrement de même URI n’utilise qu’une place dans la liste). Il faudra bien sûr que le
serveur d’enregistrement permette ce type d’authentification.
Nous pouvons remarquer qu’un agent SIP lors d’un enregistrement agis par défaut comme
suit (ceci s’appelle le challenge d’authentification, voir point 7.10.2 "http Digest
Authentification") :
Il est également à noter que le système d’authentification nécessite que les requêtes INVITE
et CANCEL soient authentifiées. Cela veut dire que cette sécurité supplémentaire permet
par exemple d’éviter le SPAM d’INVITE, le DoS CANCEL et le DoS Bulk INVITE venant de
personnes non authentifiées. Par contre si ces personnes possèdent un téléphone IP avec
autorisation rien ne les empêche de générer les messages adéquats (voir SPAM INVITE et
DoS CANCEL) en se faisant passer pour le téléphone en question, c’est-à-dire avec tous les
champs contrôlés y compris le champ ‘Proxy-Authorization’ des messages INVITE et
CANCEL. Mais cela ne permet pas d’enregistrer des téléphones supplémentaires ne faisant
pas partie de la liste d’enregistrement et de ce fait l’attaque Bulk REGISTER est impossible !
Ce système d’authentification rend également plus difficile les attaques de types SPAM
d’INVITE. En effet, l’étonnante facilité de ce genre d’attaque en rend la défense d’autant
plus ardue. Cependant, comme vu lors de l’eavesdropping, le système d’authentification
oblige l’attaquant à faire partie de la liste autorisée avec son ‘User’ et ‘Password’. De ce fait,
n’importe qui ne peut pas s’amuser à faire du SPAM d’INVITE sans être autorisé au niveau
du serveur d’enregistrement.
Remarque : Cela fonctionne que le téléphone authentifié copié soit enregistré ou non mais
curieusement le registrar ne réponds pas par un 200 OK alors que l’enregistrement est
réellement effectué (voir Figure 57).
Il est donc très difficile de pouvoir effectuer du SPAM d’INVITE avec le système
d’authentification mais cela n’est pas impossible. En effet, une fois la requête INVITE
autorisée capturée, l’attaquant peut alors la modifier pour l’envoyer à un ou plusieurs autre
URI sur le réseau.
Le système d’authentification agit donc comme une WhiteList avec les avantages et les
inconvénients que cela entraîne. Pour chaque nouveau partenaire susceptible de pouvoir
appeler dans l’entreprise il faut effectuer la mise à jour de la liste. Mais comme nous avons
pu le remarquer, cette WhiteList est contournable et cela simplement en se faisant passer
pour quelqu’un faisant partie de cette liste.
Méthode Définition
REGISTER Enregistre l’information contact du user agent
INVITE Invitation à participer à la session. Cela requiert une session ouverte
ACK Quittancement à une réponse qu’une requête INVITE a été reçue
CANCEL Annule la transaction en cours dans la session
INFO Donne des informations de session
OPTIONS Interrogation des capacités du serveur
Tableau 9 - Méthodes principales SIP
Imaginons que quelqu’un de non reconnu dont on connaît l’adresse IP désire utiliser le
service de VoIP. Il suffirait alors d’établir une règle de filtrage qui interdit l’envoi de requêtes
INVITE par la station 192.168.0.1 (la station en question) en y répondant par un messages
603 DECLINE. Cette règle est représentée à la Figure 58.
8.5.5 IDS/IPS :
L’utilité d’un IDS/IPS SIP, placé devant un serveur SIP, est le contrôle de la validité des
messages SIP à destination du serveur en question. L’IDS pourra alors détecter et éemttre
une alerte lorsqu’un message SIP ne respecte pas la RFC 3261 et donc les champs
spécifiques contrôlés au niveau des UAs SIP tel que nous l’avons vu dans les attaques de
types injection de messages SIP. L’IPS quant à lui pourra jeter ces messages corrompus.
Ceux-ci sont principalement utilisés pour des attaques de types Buffer Overflow ou DoS.
Il est également possible pour l’IDS/IPS de détecter l’envoi de plusieurs messages INVITE
sur le même téléphone ou encore de pouvoir analyser des suites de messages SIP afin
d’éviter les attaques par injection de messages. En collaboration avec Mlle Kuhn, nous
avons pu tester son IDS/IPS VoIP/SIP sur notre plateforme de test.
Voici par exemple une requête INVITE sans l’entête To adressée au proxy.
Cette requête ne parvient pas jusqu’au proxy car l’IPS l’a détecté et voici le log qu’il a
généré :
Voyons maintenant ce qui se passe si l’entête To est bien présente mais avec un URI non
valide :
Le proxy n’a jamais reçu ce message. Examinons plus en détail les logs générés par
l’IDS/IPS :
[**] [123:14:1] (spp_sip) process packet failed: malformed packet : parsing error
[**]
11/26-11:00:24.583664 192.168.0.102:3524 -> 192.168.0.100:5060
UDP TTL:128 TOS:0x0 ID:13271 IpLen:20 DgmLen:427
Len: 399
8.5.6 SRTP :
Le chiffrement du flux audio RTP avec le protocole Secure RTP (SRTP) est le meilleur
moyen de contrer les attaques d’écoutes indiscrètes de communication (eavesdropping). En
effet, même si l’attaquant parvient à capturer le flux audio, il lui faudra également connaître
la clef de chiffrement pour décoder les paquets SRTP.
Les HardPhones CISCO 7960 ne supportent actuellement pas SRTP. Il faut donc utiliser
des SoftPhones qui implémentent ce protocole. Il en existe un en particulier, Minisip, qui
supporte à la fois SRTP, TLS et le Digest Authentification. Nous avons donc besoin de deux
stations Linux sur lesquelles installer les SoftPhones. Le portable fait toujours office
d’attaquant. Les serveurs SIP seront un proxy/registrar SER 0.8.14 (Sip Express Router).
La Figure 60 représente notre nouvelle plateforme de test avec les SoftPhones Minisip :
Figure 60 - Réseau de test SIP sécurisé SRTP, Digest Authentification, IDS/IPS VoIP/SIP
Remarque :
Il est également possible de mettre en place des mécanismes supplémentaires tels que
l’encapsulation TLS, S/MIME de SDP, IPSec entre les UAs, la mise en place d’un serveur
d’authentification forte Radius, l’utilisation d’un NAT et d’un firewall VoIP/SIP mais ceux-ci
ne seront pas abordé lors de ce laboratoire.
Pour que les deux partenaires puissent communiquer, il faut qu’ils supportent SRTP et
possèdent soit une clef PSK (voir Figure 61) identique soit une paire certificat/clef Diffie-
Hellman valide (voir Figure 62Figure 63) pour l’authentification.
-----BEGIN CERTIFICATE-----
MIIDUzCCArygAwIBAgIBADANBgkqhkiG9w0BAQQFADB/MQswCQYDVQQGEwJTRTES
MBAGA1UECBMJU3RvY2tob2xtMQ4wDAYDVQQHEwVLaXN0YTEkMCIGA1UEChMbS3Vu
Z2xpZ2EgVGVrbmlza2EgSG9nc2tvbGFuMSYwJAYDVQQLEx1UZWxlY29tbXVuaWNh
dGlvbiBTeXN0ZW1zIExhYjAeFw0wMzA4MjUxMzUxMjhaFw0wNDA4MjQxMzUxMjha
MH8xCzAJBgNVBAYTAlNFMRIwEAYDVQQIEwlTdG9ja2hvbG0xDjAMBgNVBAcTBUtp
c3RhMSQwIgYDVQQKExtLdW5nbGlnYSBUZWtuaXNrYSBIb2dza29sYW4xJjAkBgNV
BAsTHVRlbGVjb21tdW5pY2F0aW9uIFN5c3RlbXMgTGFiMIGfMA0GCSqGSIb3DQEB
AQUAA4GNADCBiQKBgQCvx2HMVc7GGW7jgxPFYUdBsIPKXoYZWqpbQKFYdrbUMkuc
OZCrNDS1uJYbzQhilszSv8O6mS3T2LvHRC1Sv72a5+gRqgq41VxNxQLlGQXN2Kit
15V44KGx2zu1HrqvqddTFVd7EjtOGlqRP3MxzQObg4nHjWSKqtYfENgD04kxdwID
AQABo4HeMIHbMB0GA1UdDgQWBBQdwLHJsfCl+NjzdIgIvUlkepBKFzCBqwYDVR0j
BIGjMIGggBQdwLHJsfCl+NjzdIgIvUlkepBKF6GBhKSBgTB/MQswCQYDVQQGEwJT
RTESMBAGA1UECBMJU3RvY2tob2xtMQ4wDAYDVQQHEwVLaXN0YTEkMCIGA1UEChMb
S3VuZ2xpZ2EgVGVrbmlza2EgSG9nc2tvbGFuMSYwJAYDVQQLEx1UZWxlY29tbXVu
aWNhdGlvbiBTeXN0ZW1zIExhYoIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEB
BAUAA4GBAFufvbXksRXbhVhMbUm3OW5uDc81XNQsAAvd15Uqhn/JhhyblWw+uxPi
1J5OSD5BY2K7Ru2oU//Zjam/CaROqp+3ERzWdGZ5GinRTx8eYhOgheU4WYqDQu2o
F6rUyAmh60jnmntvqHyAtOP58lyPeiwq5GLfr74//tvcQvdHy187
-----END CERTIFICATE-----
Voyons maintenant plus en détail comment la signalisation a changé. Dans notre cas les
informations se rapportant au chiffrement du flux audio se trouvent dans les corps SDP des
messages INVITE et 200 OK :
v=0
o=- 3344 3344 IN IP4 192.168.0.2
s=Minisip Session
c=IN IP4 192.168.0.2
t=0 0
m=audio 1046 RTP/AVP 0
a=rtpmap:0 PCMU/8000/1
a=key-mgmt:mikey
AQAFgHbd/XMCAAAS24zhAAAAAAAAAAAAAAAAAAsAxVm0Fs5U5uIBELOdsTk26kweFUoJDcIASdMAAADEDCH
82DmVnyVDKndaIffjZD45zTgzYlGYxizqDhupCvk+pZrJRRSo4DHZvodmwN2o0LNExwzrfOhHMPUwvMVUd4
NQeHwnHjGIexmsxEUR+sItJuOrNzEB9pskBtMoNJYKFBDNfh2iFGTk9m+4PW3zZWX8A6PW30+S7qQ+r3GX5
2K5DR62NZY/0SaAOFnQ7opwhg8YEY3jdLT1eI00KLObBkDUQMQfMFhrBzJ8ii2gVFCyb0NLm3KH/j1FTF3h
xmd0XNTG5AA8Ict5u2mEs10vftKvcEcWdOJiog==
C’est le dernier champ a (zero or more session attribute lines) qui définit le type de
gestionnaire de clef (key-mgmt).
Remarque : SRTP protège donc contre l’écoute indiscrète mais pas contre les attaques
utilisant des messages SIP sans corps SDP. Il est donc toujours possible de détourner des
appels (si le téléphone de l’attaquant supporte SRTP seulement) et d’effectuer des DoS
BYE/CANCEL par exemple.
Il est intéressant de regarder les logs générés par Minisip en utilisant PSK :
setSdpOffer started
Authentification successful, controlling the certificate
OSSSoundDevice format set toOssSoundDevice: number of channels set to 16
OssSoundDevice: number of channels set to 2
DSP speed set to 8000
OssSoundDevice: number of channels set to 2
DSP speed set to 8000
SSRC: 1525186955 - TEK: bdc65e0b9cef5acb4299cc8e23321923
SSRC: 1525186955 - SALT: 55d33ade178cc03f131341ef188a
SSRC: 106317066 - TEK: 989eab5083b35bb16ce6855e69ff33ce
SSRC: 106317066 - SALT: 7077132f23f9698b41d49b899be3
Et voici ci-dessous ce qui se passe si la clef PSK ne correspond pas à celle du partenaire
appelé :
Figure 64 - Réponse 606 NOT ACCEPTABLE pour une clef PSK non valide
Voici ce qui se passe si l’on essaie d’appeler un téléphone supportant SRTP avec un
téléphone RTP :
Nous avons donc le choix de répondre à cet appel en mode non protégé RTP ou alors de
rejeter l’appel. Ce choix doit faire partie des politiques de sécurité de l’entreprise. Il est
fortement conseillé de ne pas accepter d’appels non sécurisés.
8.5.7 TLS :
Le chiffrement TLS (SSLv3) permet de sécuriser la signalisation au niveau transport (TCP).
Les SoftPhones Minisip supportent TLS mais malheureusement je n’ai pas réussi à installer
correctement un proxy gratuit qui supporte ce protocole (VOCAL, sipXpbx, sipd). De plus en
plus de proxy supportent TLS mais la plupart sont encore payants (M5T, CISCO SIP Proxy
Server, Ingate SIP proxy, etc.). D’ici quelques mois, l’utilisation de TLS au niveau des
serveurs SIP sera chose aisée et peu chère, notamment grâce à l’open source.
9 CONCLUSION
La VoIP est une technologie récente mais surtout très attractive. En effet, cet outil de
communication est de plus en plus utilisé par les secteurs privé et public. Afin d’améliorer les
services de télécommunications, telles que les communications unifiées, on prévoit une
utilisation accrue de la VoIP en se fondant sur les avantages perçus : le coût, l’efficacité, la
rentabilité et la capacité d’évolution de la VoIP. Toutefois, comme dans toutes les nouvelles
technologies, les questions concernant la sécurité sont souvent soulevées seulement qu’une
fois que son utilisation est très répandue. En outre, le système téléphonique est une cible
très intéressante pour des personnes sans scrupules désireuses de profiter d’un tel service
gratuitement ou simplement pour en gêner son utilisation.
Actuellement, les mécanismes de sécurisation d’un réseau IP sont très connus et efficace.
Mais cela ne s’est pas fait du jour au lendemain. C’est l’ancienneté du protocole IP et son
immense utilisation qui en a fait une cible idéale d’attaque. Avec le temps, des outils de
défense de plus en plus performants ont été mis en place partout dans le monde. C’est
pourquoi il faut toujours avoir à l’esprit que la sécurisation de réseaux de VoIP/SIP est, de
par son implémentation toute récente, de loin pas parfaite. De plus, beaucoup de
vulnérabilités ne sont pas encore connues. C’est pourquoi, il faut apporter une attention toute
particulière à la sécurisation du service de VoIP/SIP.
La plus grande erreur que commettent généralement les entreprises est de déployer le
service de VoIP le plus vite possible afin de pouvoir l’amortir et en profiter immédiatement.
Ce principe est défendable du point de vue de l’efficacité et de la rentabilité de l’entreprise.
Cependant, les coûts engendrés par la mise en place du service dans l’entreprise sont
négligeables par rapport à ce que les attaques pourraient coûter. Il faut donc y réfléchir à
deux fois avant de mettre le système en fonction. En effet, le meilleur moyen de se prémunir
contre les attaques est de déployer le système de VoIP/SIP de manière indépendante du
réseau de l’entreprise et instaurer les mécanismes de sécurisation que nous avons vu dans
les prescriptions de sécurisation de la VoIP/SIP. Une fois cela fait, le service peut être
étendu au niveau de l’entreprise en premier lieu, puis au niveau international en dernier lieu.
Ensuite, il faut que les administrateurs du réseau soient perpétuellement à l’écoute des
vulnérabilités de la VoIP/SIP afin de pouvoir y ajouter le mécanisme de sécurisation adapté.
10 RÉFÉRENCES
Bill Douskalis : IP Telephony – The Integration of Robust VoIP Services. Edition Hewlett-Packard
Professional Book
Ofir Arkin et Josh Anderson : Multiple Vulnerabilities with Pingtel xpressaSIP Phones
http://lists.virus.org/vulnwatch-0207/msg00023.html
Johan Bilien, Erik Eliasson and Jon-Olov Vatn : Call establishment delay for secure VoIP
http://www.minisip.org/publications/secvoip.pdf
Israel M. Abad Caballero, Gerald Q. Maguire Jr., Pedro G. Vilda - Royal Institute of Technology
(KTH) : Secure Mobile Voice over IP
ftp://ftp.it.kth.se/Reports/DEGREE-PROJECT-REPORTS/030626-Israel_Abad_Caballero-final-
report.pdf
11 SYMBOLES ET ABRÉVIATIONS
[SA01] SIP : Session Initiation Protocol. Protocole de signalisation multimédia (audio, vidéo,
autres)
[SA02] RTP : Real-Time Transport Protocol. Protocole utilisé pour convoyer de l’information
temps réel (audio, vidéo, autres)
[SA04] ISDN : Integrated Services Digital Network. Modèle de téléphonie numérique qui permet
à des utilisateurs de se connecter à Internet sur une ligne téléphonique standard
à des vitesses supérieures à 56K
[SA05] SS7 : Signalling System 7. Protocole de signalisation utilisé dans les réseaux
téléphoniques publics commutés (PSTN)
[SA08] QoS : Quality of Service. Terme utilisé pour mesurer la “qualité de service” d’un produit
ou d’un service
[SA09] MGCP : Media Gateway Control Protocol. Protocole de voix qui fonctionne en conjonction
avec SS7 et les protocoles IP tels que SIP ou H323. MGCP est utilisé en tant que
passerelle entre les réseaux à circuits commutés et les réseaux de paquets.
MGCP sépare la signalisation et le contrôle d’appel pour la passerelle de media.
[SA10] SDP : Session Description Protocol. SDP est utilisé pour décrire les paramètres de flux
utilisés dans les sessions multimédia
[SA11] RTCP : RTP Control Protocol. RTCP fournit un feedback sur la qualité de la distribution
des données convoyées par RTP
[SA12] DTMF : Dual Tone Multi-Frequency. Tonalité des touches lors d’appel téléphonique
[SA13] PBX : Private Branch Exchange. Réseau téléphonique commute privé, souvent utilisé
en enterprise pour fournir une connectique téléphonique interne et un accès au
PSTN
[SA14] IP-PBX : Internet Protocol Branch Exchange. Réseau téléphonique fonctionnant avec le
protocole IP.
[SA15] TDM : Time Division Multiplexing. Technologie qui transmet des signaux multiples
simultanément sur un circuit de transmission unique
[SA16] nonce : Terme cryptographique. Paramètre qui varie dans le temps, tel qu’un compteur, et
qui est utilisé dans les protocoles de gestion de clefs pour se prévenir contre les
attaques message replay et d’autres types d’attaques
[SA17] overhead : En cryptographie, ce terme désigne l’augmentation de la taille d’une trame après
chiffrement.
[SA18] padding : En téléinformatique, ce terme désigne les bits additionnels de bourrage ajoutés
pour finir le dernier paquet
12 FIGURES ET TABLEAUX
12.1 Figures
[1 | 4-19]
Ofir Arkin : VoIP - The Next Generation of Phreaking
http://www.sys-security.com/html/projects/VoIP.html
[20-24 | 27]
DISA : VoIP - Security Technical Implementation Guide
http://csrc.nist.gov/pcig/STIGs/VoIP-STIG-V1R1R-4PDF.pdf
[25]
Tutorial – VoIP/SIP & Security
/I. Tutorial - VoIP-SIP Security/visio
[26]
CISCO : Adding MSN Messenger Services to Cisco Packet Voice Networks
http://www.cisco.com/en/US/tech/tk652/tk701/technologies_white_paper09186a0080092946.shtml
[28]
Projet de semestre Olivier Frider : CISCO CME
[29-31 | 36-41]
Andreas Steffen, Daniel Kaufmann, Andreas Stricker : SIP Security
http://security.zhwin.ch/DFN_SIP.pdf
[32-35]
Sécurisation des communications avec SSLv3
http://securit.free.fr/ressources/ssl_v3.pdf
[42]
Draft Sterman : RADIUS Extension for Digest Authentication
http://www.softarmor.com/wgdb/docs/draft-sterman-aaa-sip-00.txt
[2-3 | 43-66]
Laboratoire – Vulnérabilités et mesures de sécurité
/III. Laboratoire - Vulnérabilités et mesures de sécurité/visio
12.2 Tableaux
[1-3]
DISA : VoIP - Security Technical Implementation Guide
http://csrc.nist.gov/pcig/STIGs/VoIP-STIG-V1R1R-4PDF.pdf
[4-5]
Andreas Steffen, Daniel Kaufmann, Andreas Stricker : SIP Security
http://security.zhwin.ch/DFN_SIP.pdf
[6-9]
Brekeke : OnDo SIP Server Tutorial – Dial plan
http://www.brekeke-sip.com/download/oss/oss_tutorial_dialplan_e.pdf
13 ANNEXES
[7] Affichette
Ludovic Maret