Audit Dun Reseau VoIP Et Implementation
Audit Dun Reseau VoIP Et Implementation
Audit Dun Reseau VoIP Et Implementation
Dédicaces
Je dédie ce travail
A mon père Mahamat Saleh Abdoulaye et à ma mère Radia Mahamat Taher, pour vos
sacrifices, votre soutien et vos encouragements,
A toi, D…
Remerciements
Je remercie Dieu tout puissant pour tous ses bienfaits et pour la santé qu’Il m’a accordé.
Je remercie particulièrement Docteur Abdoul Aziz Ciss, mon encadreur qui n’a pas ménagé
ses efforts tout le long de ce travail, et qui m’a permis de le réaliser.
Je remercie Mr Diankha, Mr Gueye et Mr Sow ainsi que toute l’administration, pour les
programmes de qualité et l’encadrement pédagogique qu’ils nous ont offerts,
Merci à mes camarades de la promotion et mes amis, qui ont contribué plus qu’ils ne le
croient.
Glossaire
Liste de figures :
Figure 1 Processus d’appel entre deux clients SIP .................................................................................................. 9
Figure 2 Concept de la numérisation de la voix .................................................................................................... 11
Figure 3 Communication pc to pc ......................................................................................................................... 13
Figure 4 Communication pc to phone ................................................................................................................... 13
Figure 5 Communication phone to phone ............................................................................................................. 13
Figure 6 Architecture VoIP classique ................................................................................................................... 15
Figure 7Architecture VoIP classique .................................................................................................................... 15
Figure 8 Chiffrement Déchiffrement ..................................................................................................................... 17
Figure 9 Etapes d'un audit VoIP............................................................................................................................ 23
Figure 10 Diagramme du réseau ........................................................................................................................... 24
Figure 11Vulnérabilités de la VoIP ....................................................................................................................... 31
Figure 12 Attaque de récupération d'informations ................................................................................................ 32
Figure 13 Attaque Man In The Middle ................................................................................................................. 33
Figure 14 Attaque sniffing et capture .................................................................................................................... 33
Figure 15 Attaque écoute clandestine et enregistrement ....................................................................................... 34
Figure 16 Attaque DoS 1....................................................................................................................................... 35
Figure 17 Attaque DoS 2....................................................................................................................................... 35
Figure 18 Fonctionnement SIP .............................................................................................................................. 39
Figure 19 Fonctionnement TLS ............................................................................................................................ 41
Figure 20 Fonctionnement SRTP .......................................................................................................................... 44
Figure 21 Compilation sous C# ............................................................................................................................. 45
Figure 22 Comparatif SDK VoIP .......................................................................................................................... 47
Figure 23 Présentation Visual Studio .................................................................................................................... 49
Figure 24 Identification des boutons ..................................................................................................................... 49
Figure 25 Configuration TLS asterisk 1 (certificat serveur) ................................................................................. 54
Figure 26 Configuration TLS asterisk 2 (certificat client) .................................................................................... 55
Figure 27 Configuration TLS asterisk 3 ................................................................................................................ 55
Figure 28 Configuration sip.conf .......................................................................................................................... 56
Figure 29 Test d'enregistrement ............................................................................................................................ 56
Figure 30 Test d'enregistrement 2 ......................................................................................................................... 57
Figure 31 Test émission appel ............................................................................................................................... 58
Figure 32 Test appel établi .................................................................................................................................... 58
Figure 33 Test appel entrant .................................................................................................................................. 59
Figure 34 test écoute clandestine avec SRTP ........................................................................................................ 59
Dédicaces ................................................................................................................................... 1
Remerciements ........................................................................................................................... 2
Liste de figures : ......................................................................................................................... 4
Table des matières ...................................................................................................................... 5
Problématique............................................................................................................................. 6
I. Introduction générale .......................................................................................................... 8
1. VoIP (Voice over Internet Protocole) ............................................................................. 8
1.a Protocoles de signalisation ............................................................................................ 8
1.b Protocoles de transport ................................................................................................ 10
1.c Codecs ......................................................................................................................... 11
1.d Fonctionnement........................................................................................................... 11
1.e Architecture ................................................................................................................. 12
1.f Equipements ................................................................................................................ 14
2. Cryptographie ................................................................................................................ 16
2.a Les systèmes de chiffrements symétriques ................................................................. 18
2.b Les systèmes de chiffrements symétriques ................................................................. 19
2.c Les algorithmes de hachage ........................................................................................ 20
II. Audit Technique VoIP .................................................................................................. 22
Introduction à l’Audit ........................................................................................................... 22
1. Caractérisation du système ............................................................................................ 24
2. Analyse des menaces ..................................................................................................... 25
Interruption de service ...................................................................................................... 26
Ecoute clandestine (eavesdropping).................................................................................. 26
Interception et modification .............................................................................................. 27
Abus de services ............................................................................................................... 27
Détournements .................................................................................................................. 27
Capture de paquets ............................................................................................................ 27
Intrusion physique ............................................................................................................. 27
SPAM ................................................................................................................................ 27
3. Analyse des contrôles .................................................................................................... 28
4. Analyses des vulnérabilités ........................................................................................... 28
Outils ................................................................................................................................. 28
SIPdump ............................................................................................................................ 29
SIPcrack : .......................................................................................................................... 29
SIPVicious ........................................................................................................................ 29
Tests de pénétration : ........................................................................................................ 31
Capture de paquet ................................................................................................................. 33
Ecoute clandestine ................................................................................................................ 34
Capture et cracking de comptes SIP ..................................................................................... 34
Déni de service ..................................................................................................................... 35
Liste des vulnérabilités présentes et non couvertes par les contrôles. .............................. 36
5. Analyses des risques ...................................................................................................... 36
6. Recommandations ......................................................................................................... 37
III. Implementation Client SIP Sécurisé ............................................................................. 39
Introduction .......................................................................................................................... 39
TLS ....................................................................................................................................... 40
SRTP ..................................................................................................................................... 43
C#.......................................................................................................................................... 44
1. Fonctionnement ............................................................................................................. 48
2. Implémentation.............................................................................................................. 48
3. Tests .............................................................................................................................. 56
Conclusion ................................................................................................................................ 60
Bibliographie ............................................................................................................................ 61
Webographie ............................................................................................................................ 61
Problématique
Comme tout service lié à au réseau IP, la VoIP peut être sensible à des attaques pouvant
causer des pertes pour une entreprise. L’utilisation de cette technologie est en pleine
expansion, vu les chiffres suivant :
- En 2005, les services de téléphonie sur internet (VoIP) ont attiré 25 millions d’abonnés dans
le monde, selon l'Institut de l'audiovisuel et des télécoms en Europe (Idate). Soit un triplement
de la base d'abonnés par rapport à 2004.
- In-Sat a évalué dans un rapport récent que le nombre total des utilisateurs VoIP mobile
atteindra 288 millions à la fin de cette année
- Juniper Research affirme dans une autre étude que ce chiffre atteindra le milliard
- Infonetics prédit également que le marché de la VoIP pourrait valoir 74,5 milliards en 2015.
Au vu de ces chiffres qui interpellent, il est d’autant plus important de penser à la sécurité des
réseaux utilisant cette technologie.
L’audit technique de la securité entre en jeu pour répondre aux questions principales :
I. Introduction générale
L’objectif de la Voix sur IP est d’appliquer à la voix le même traitement que les autres
types de données circulant sur Internet. Grâce au protocole IP, des paquets de données,
constitués de la voix numérisée, y sont transportés. En effet, à force de transférer des fichiers
d’information en temps de plus en plus réel, les utilisateurs d’Internet en vinrent à transférer
de la voix, en temps suffisamment réel pour faire compétition au téléphone. Les principales
caractéristiques de cette technologie sont ses protocoles de signalisation et de transport, les
codes qu’ils utilisent ainsi que ses équipements particuliers.
SIP
Mode Point à point : on parle dans ce cas-là « d’unicast » qui correspond à la communication
entre 2 machines
Mode diffusif : on parle dans ce cas-là de « multicast » (plusieurs utilisateurs via une unité de
contrôle MCU – Multipoint Control Unit)
H.323
Il a pour but de transmettre sur Internet des données qui ont des propriétés temps réel
(audio, vidéo etc.). RTP permet d’organiser les paquets à l’entrée du réseau et de les contrôler
à la sortie.
C’est un protocole de contrôle utilisé conjointement avec RTP pour contrôler les flux
de données et la gestion de la bande passante. RTCP véhicule périodiquement des
informations
1.c Codecs
Le mot Codec est construit d'après les mots codeur et décodeur, et fait souvent appel à
la Compression et Décompression des données. Il s'agit d'un procédé permettant de
compresser et de décompresser un signal, de l'audio ou de la vidéo, le plus souvent en temps
réel, permettant une réduction de la taille du fichier original. Le codec numérise et compresse
la voix de l’émetteur, ainsi les données numériques sont encapsulées dans des paquets IP et
acheminées vers le destinataire. A l’arrivée au destinataire, ce dernier grâce au même codec
décompresse et restitue le son.
1.d Fonctionnement
Le principe de la voix sur IP est de faire circuler sur Internet, grâce au protocole IP,
des paquets de données correspondant à des échantillons de voix numérisée. Reste ensuite à
acheminer ces paquets dans le bon ordre et dans un délai raisonnable pour que la voix soit
correctement restituée.
Numérisation : dans le cas où les signaux téléphoniques à transmettre sont sous forme
analogique, ces derniers doivent d’abord être convertis sous forme numérique suivant le
format PCM (Pulse Code Modulation) à 64 Kbps.
Compression : le signal numérique PCM à 64 Kbps est compressé selon l’un des formats de
Il est nécessaire pour cela d’utiliser le même codec que pour la compression puis reconverties
1.e Architecture
PC To PC
Figure 3 Communication pc to pc
PC to Phone/Phone to PC
Si un correspondant utilisant un PC souhaite appeler une personne sur son téléphone, il doit
passer par un fournisseur de service sur Internet. Ce dernier met en place une passerelle, entre
Internet et le RTC (réseau téléphonique commuté), qui gèrera les échanges de données.
Phone to Phone
Si les deux correspondants possèdent chacun un téléphone normal (analogique, ils devront
chacun passer par une passerelle. Ensuite, les deux passerelles communiquent entre elles par
un réseau de type Internet.
1.f Equipements
Routeur
Switch
Mbits/s. Suivant les modèles, il peut intégrer la télé alimentation des ports Ethernet à la norme
Elle assure la commutation des paquets d'un PC vers un réseau RTC ou RNIS.
MCU
IP-Phone
C'est un terminal téléphonique fonctionnant sur le réseau LAN IP à 10/100 avec une
norme soit propriétaire, soit SIP, soit H.323. Il peut y avoir plusieurs codecs pour l'audio, et il
peut disposer d'un écran monochrome ou couleur, et d'une ou plusieurs touches soit
programmables, soit préprogrammées. IL est en général doté d'un hub passif à un seul port
pour pouvoir alimenter le PC de l'utilisateur (l’IP-PHONE se raccorde sur la seule prise
Ethernet mural et le PC se raccorde derrière l’IP-PHONE).
Softphones
C'est un logiciel qui assure toutes les fonctions téléphoniques et qui utilise la carte son
et le micro du PC de l'utilisateur, et aussi la carte Ethernet du PC. Il est géré soit par le Call
Manager, soit par le PABX-IP.
2. Cryptographie
Le mot dérive du grec kruptos (caché) et graffein (écrit). C’est une science appliquée qui date
de l’antiquité qui permet de protéger le secret de l’information.
Avec la cryptanalyse, qui est la science qui cherche à percer le secret de l’information, il
constitue la cryptologie (kruptos logos) qui est la science du secret, basée sur les techniques
du chiffre et qui met en œuvre les mécanismes suivants :
- L’intégrité
C’est un service cryptographique qui permet de s’assurer que l’information n’a été ni altérée
ni modifiée, par des personnes non autorisées, pendant sa transmission ou son stockage
- l’authentification
- La confidentialité
C’est un service cryptographique qui permet d’assurer le secret des informations afin qu’elles
ne soient ni rendues accessibles, ni divulguées à un utilisateur, une entité ou un processus non
autorisé
- La non répudiation
Unités de Chiffrement (x) =information claire à chiffrer ; elle est divisée en parties
élémentaires {x1, x2,…..x n} où xi =unités claires ou unités de chiffrement (lettres,
bigrammes, trigrammes, …ngrammes, bits, groupes de bits de longueur donnée…. Etc) ;
Clef de chiffrement : Une clef de chiffrement est une fonction de chiffrement, une
convention secrète ou un ensemble de conventions secrètes qui fixent la manière de chiffrer
(ou de déchiffrer).
Canal sûr : Moyen de communication sûr entre deux entités tel qu’un adversaire
(éventuellement un décrypteur) ne puisse pas changer l’ordre, supprimer, insérer ou lire de
l’information.
information chiffrée.
Fonction de hachage : une fonction de hachage est une fonction à sens unique qui produit un
résumé (une empreinte) d’un message qui ne peut pas être inversé pour reproduire l’original.
Basé sur l’algorithme original Rijndael, conçu par Joan Daemen et Vincent Rijmen. Crypto
système à blocs itératif mais n’utilise pas de schéma de feistel
P est la clé publique (le cadenas), que vous pouvez révéler à quiconque. Si Louis veut
vous envoyer un message, il vous transmet P(message).
S est la clé secrète (la clé du cadenas), elle reste en votre seule possession. Vous
décodez le message en calculant S(P(message))=message.
La connaissance de P par un tiers ne compromet pas la sécurité de l'envoi des
messages codés, puisqu'elle ne permet pas de retrouver S. Il est possible de donner
librement P, qui mérite bien son nom de clé publique.
Bien sûr, il reste une difficulté : comment trouver de telles fonctions P et S? Diffie et
Hellman n'ont pas eux-mêmes proposé de fonctions satisfaisantes, mais dès 1977, D. Rivest,
A. Shamir et L. Adleman trouvent une solution possible, la meilleure et la plus utilisée à ce
jour, la cryptographie RSA. Le RSA repose sur la dichotomie suivante :
il est facile de fabriquer de grands nombres premiers p et q (pour fixer les idées, 500
chiffres).
étant donné un nombre entier n=pq produit de 2 grands nombres premiers, il est très
difficile de retrouver les facteurs p et q.
La donnée de n est la clé publique : elle suffit pour chiffrer. Pour déchiffrer, il faut connaitre p
et q, qui constituent la clé privée. Le problème de factorisation de grands entiers étant très
difficile, la connaissance de la clé publique n ne permet pas de retrouver les entiers p et q, qui
constituent la clé secrète.
Cela dit, les algorithmes à clé publique (on parle aussi de chiffrement asymétrique) sont
rarement utilisés pour chiffrer complètement un long message. Ils sont en effet très lents,
beaucoup plus lents que leurs homologues symétriques. Pour des applications où il faut
échanger de nombreuses données, ils sont inutilisables en pratique. On a alors recours à des
crypto systèmes hybrides. On choisit un chiffre symétrique (AES,…) pour l'échange du
message. La cryptographie à clé publique est alors utilisée pour l'échange de la clé de ce
chiffrement symétrique. De nombreux protocoles utilisés en pratique (protocole SSL pour le
commerce électronique, logiciel PGP pour le courrier électronique) fonctionnent sur ce
principe.
Une fonction de hachage est aussi appelée fonction de hachage à sens unique ou "one-way
hash function" en anglais. Ce type de fonction est très utilisé en cryptographie, principalement
dans le but de réduire la taille des données à traiter par la fonction de cryptage. En effet, la
caractéristique principale d'une fonction de hachage est de produire un haché des données,
c'est-à-dire un condensé de ces données. Ce condensé est de taille fixe, dont la valeur diffère
suivant la fonction utilisée : nous verrons plus loin les tailles habituelles et leur importance au
niveau de la sécurité.
Exemples : MD5 (Message Digest 5) et SHA-1 (Secure Hash Algorithm ) sont des fonctions
de hachage cryptographique à sens unique. Le résultat de l'application de cette fonction sur un
ensemble de données de longueur quelconque (par exemple un fichier) est un ensemble
beaucoup plus petit et de longueur fixe, caractéristique de l'objet de départ, appelé
diversement :
somme de contrôle
chiffre clé
condensat
condensé
empreinte cryptographique
hash code
fingerprinting (empreinte)
Unicité
Cet ensemble caractéristique de l'objet initial permet de "signer" un objet de manière
unique (voir la réserve à propos des collisions) d'où :
o 2 objets différents n'auront jamais la même signature
o 2 signatures différentes ne peuvent que signer (désigner) 2 objets différents.
Cette particularité est très employée en informatique et est utilisée pour produire des
signatures numériques qui seront exploitées afin de s'assurer de l'intégrité d'un contenu
(authentification). Ainsi :
Introduction à l’Audit
Un audit est par définition un examen professionnel qui consiste en une expertise par un agent
compétent et impartial aboutissant à un jugement sur les états financiers, le contrôle interne,
l'organisation, la procédure, ou une opération quelconque d'une entité.
- d’effectuer de tests techniques détaillés sous forme de check-lists pour les différents
aspects de la sécurité d’un réseau VoIP,
- d’analyser les résultats des tests et d’identifier des risques de sécurité,
- d’estimer le risque de différentes attaques,
- de développer des recommandations concrètes pour améliorer la sécurité du réseau
VoIP (personnes, procédures et technique).
La méthodologie d’audit utilisée dans ce document est applicable aux réseaux VoIP basés sur
le protocole SIP. Tous les services de base (SIP, interconnexion VoIP-PSTN, localisation,
proxy, routage, numérotation) ainsi que certains services supplémentaires (comptabilisation,
redirection d’appels, NAT, …) sont considérés.
Les réseaux VoIP sont réalisés sur une infrastructure de réseaux LAN et IP classiques.
Bien que la sécurité VoIP soit fortement influencée par la sécurité de l’infrastructure LAN/IP
sous-jacente, nous nous limitons à l’analyse des mécanismes directement liés à la VoIP. Où
nécessaire, des références aux méthodes d’audit de réseaux LAN/IP sont données.
1. Caractérisation du système
Dans cette étape, nous répertorions les composants du réseau, les services réalisés et les
données gérées par les différents services. Ceci permet de documente la politique de sécurité
en place (s’il y en a).
Procédure :
Résultats
Cette étape permet de déterminer les menaces à considérer dans les phases suivantes et
d’identifier les sources de menaces. Une menace est une violation potentielle de la politique
de service à cause d’une attaque ou d’une action involontaire ou négligente qui compromet la
sécurité. Des sources de menaces sont donc des personnes malintentionnées ou les utilisateurs
normaux. Les sources de menaces peuvent être internes ou externes au réseau VoIP.
Procédure
Cette étape part de la liste complète des menaces liées à la VoIP. En discussion avec les
responsables de la société, les sources de menaces les plus probables sont identifiées. Ensuite,
un niveau de protection requis est assigné à chaque menace ou à chaque source de menace.
Résultats
Une liste des menaces à considérer. La liste indique les sources possibles d’une
Interruption de service
Dans une communication entre deux agents SIP, on peut avoir plusieurs types de
DoS :
DoS REGISTER : Le serveur Registrar peut accepter des enregistrements de tous les
dispositifs. Un nouvel enregistrement avec une «*» dans l'entête remplacera tous les
précédents enregistrements pour ce dispositif. Les attaquants, de cette façon, peuvent
supprimer l’enregistrement de quelques-uns des utilisateurs, ou tous, dans un domaine,
empêchant ainsi ces utilisateurs d'être invités à de nouvelles sessions.
DoS CANCEL : L’attaquant surveille l’activité du proxy SIP et attend qu’un appel
arrive pour un utilisateur spécifique. Une fois que le dispositif de l’utilisateur reçoit la
requête INVITE, l'attaquant envoie immédiatement une requête CANCEL. Cette
requête produit une erreur sur le dispositif de l’appelé et termine l'appel. Ce type
d'attaque est employé pour interrompre la communication.
L’écoute clandestine peut se faire en se plaçant à un endroit choisi sur le réseau et, à l’aide
d’un sniffer, capturer des flux RTP. La conversion de ce flux en fichier audio (.wav, .au)
permet alors d’écouter toutes les conversions téléphoniques du réseau.
Interception et modification
Il s’agit de paquets interceptés et dont les entêtes ou les corps sont modifiés pour servir à
d’autres fin.
Abus de services
Dans ce genre de cas, une personne peut utiliser les infos glanées pour se servir des ressources
de l’agence et en abuser, vu qu’aucun contrôle ne s’applique à elle (surfacturation).
Détournements
Le Call Hijacking consiste à détourner un appel : le pirate redirige le flux vers son
propre poste ou vers une autre destination de son choix.
Exemple: quand un agent SIP envoie un message INVITE pour initier un appel, l'attaquant
envoie un message de redirection 3xx indiquant que l’appelé s'est déplacé et par la même
occasion donne sa propre adresse comme adresse de renvoi. A partir de ce moment, tous les
appels destinés à l’utilisateur sont transférés et c’est l’attaquant qui les reçoit. Un appel
détourné en lui-même est un problème, mais c’est encore plus grave quand il est porteur
d'informations sensibles et confidentielles.
Capture de paquets
Le renfilage ou Sniffing est la plus courante et facile des attaques. Elle consiste à
lancer une écoute passive sur le réseau afin de capturer des trames du flux passant dans le
réseau. Ceci permet à un pirate de récolter des informations, avec pour conséquences
possibles le vol d’identité et l’exposition de données confidentielles.
Intrusion physique
SPAM
Le but de cette étape est d’analyser les mécanismes de sécurité en place dans le système. Les
contrôles en place ont été documenté dans la première phase de l’audit, la caractérisation du
système.
Procédure :
Cette étape se base sur la liste des contrôles en place, établie dans la première étape de l’audit.
Pour chaque contrôle, son effet est défini, donc les menaces prévenues par ce contrôle.
L’efficacité du contrôle doit être évaluée, par l’évaluation de la configuration et le test
du contrôle.
Résultats
Dans la méthodologie NIST, cette étape est effectuée après l’identification des vulnérabilités.
Or, le test des vulnérabilités est une procédure qui demande beaucoup de travail et qui peut
interrompre le service normal du réseau. Elle doit donc être limitée à un minimum. Le fait
d’analyser les contrôles d’abord permet de réduire le nombre de vulnérabilités à tester.
Le but de cette étape est d’identifier toutes les vulnérabilités à considérer qui :
Outils
. Pour notre étude, nous allons utiliser Backtrack 4. Backtrack est une distribution linux
entièrement dédié aux tests de sécurité sur les réseaux. Il possède un panel entier d’outils
consacrés aux tests de sécurité, dont 28 rien que pour la VoIP.
SIPcrack : il utilise le dumpfile généré par SIPdump pour attaquer le compte cibler et obtenir
son mot de passe
Wireshark : C’est l’un des logiciels les plus utilisés pour ce qui est de la surveillance,
intrusion et capture dans les réseaux. Non seulement il peut capturer et analyser des trames,
mais aussi, dans le cas de conversations téléphoniques, convertir ces trames en fichiers audio.
Wireshark permet à l'utilisateur de mettre les interfaces de réseau qui supportent le mode
« promiscuous », pour essayer de voir tout le trafic passant sur le réseau.
Ettercap : Il est capable d'accomplir des attaques sur le protocole ARP pour se positionner
en tant que "man in the middle". Une fois placé en tant que tel, il permet:
Caïn & Abel : C’est un logiciel développé pour les systèmes d’exploitation Windows. Il
possède une interface graphique simple et un vaste panel d’outils. Il a été développé dans le
but d’aider les administrateurs et auditeurs de sécurité, mais peut également être une arme aux
mains de pirates.
Il permet de
SiVus : c’est un logiciel dédié aux tests de vulnérabilité sur les réseaux de VoIP utilisant le
protocole SIP. Il possède une base de données d’attaques pour les simulations.
Ce scanner offre plusieurs outils puissants pour vérifier la robustesse de la sécurité d’une
implémentation d’équipement SIP. Il propose entre autres:
Procédure :
Partir d’une liste des vulnérabilités connues (utiliser NIST NVD, CVE)
Interview, questionnaires
Scanning
Tests de pénétration :
Récupération d’infos
Enumeration extension
SVWAR
ENUMIAX
Surveillance
Capture de paquet
Ecoute clandestine
Déni de service
Résultats
- Récupération et identification
- Ecoute clandestine
- Dénis de service
- Empoisonnement ARP
Cette étape vise à prioriser les dangers constatés en déterminante la probabilité d’une attaque
et son impact.
Procédure
Dans une deuxième phase, l’impact d’une menace réalisée est évalué (valeurs 0 – 100).
l’impact
Résultat
Récupération d’infos,
DoS
Ecoute clandestine,
Vols
usurpation,
Détournement
6. Recommandations
Le but de cette étape est de proposer des contrôles supplémentaires, des procédures (pour
augmenter l’efficacité des contrôles) qui permettent de réduire les risques pour l’entreprise.
Résultat
Vulnérabilités.
Sécurisation de l’IPBX
SIP ALG Proxy analysant les Efficace contre les Inefficace contre un
paquets de types SIP attaques externes attaquant interne
qui entrent et sortent
Client SIP Sécurisé Softphone Open source, Doit être portable sur
implémentant des évolution contrôlée, n’importe quel
methodes implémentation système
d’authentification et
de chiffrement
Introduction
SIP (session initiation Protocol) est devenu l’un des principaux protocoles utilisés en VoIP.
Un aspect intéressant (et aussi une vulnérabilité) est que le flux de communication entre deux
clients SIP passe directement de l’un à l’autre, de façon claire.
C’est pourquoi le flux RTP doit être protégé. D’autre part, par défaut l’authentification au
serveur n’est pas sécurisée. Pour pallier à ces deux faiblesses, deux protocoles sécurisés ont
été lancés.
C’est la raison pour laquelle l’implémentation d’un client SIP sécurisé nous a semblé le plus
adapté comme solution de securité. Il doit implémenter TLS pour s’authentifier au serveur, et
SRTP pour sécuriser les communications.
TLS
Transport Layer Security (TLS), anciennement nommé Secure Socket Layer (SSL), est un
protocole de sécurisation des échanges sur Internet, développé à l'origine par Netscape (SSL
version 2 et SSL version 3). Il a été renommé en Transport Layer Security (TLS) par l'IETF
suite au rachat du brevet de Netscape par l'IETF en 2001.
TLS diffère de SSL pour la génération des clés symétriques. Cette génération est plus
sécurisée dans TLS que dans SSLv3 dans la mesure où aucune étape de l'algorithme ne repose
uniquement sur MD5 pour lequel sont apparues quelques faiblesses en cryptanalyse.
TLS fonctionne suivant un mode client-serveur. Il fournit les objectifs de sécurité suivants:
l'authentification du serveur ;
la confidentialité des données échangées (ou session chiffrée) ;
l'intégrité des données échangées ;
de manière optionnelle, l'authentification ou l'authentification forte du client avec
l'utilisation d'un certificat numérique ;
la spontanéité, c.-à-d. qu'un client peut se connecter de façon transparente à un
serveur auquel il se connecte pour la première fois ;
la transparence, qui a contribué certainement à sa popularité.
Random - Un horodatage de 32 bits et une valeur aléatoire de 28 octets générée par le client.
Le nombre obtenu va servir la signature des messages.
CipherSuite - Une liste, par ordre décroissant de préférence, des algorithmes que supporte le
client. Il s'agit des algorithmes d'échange de clé et de chiffrement.
Random - Un horodatage de 32 bits et une valeur aléatoire de 28 octets générée par le client.
Maintenant que les algorithmes sont choisis, le serveur va s'authentifier auprès du client. Il
envoie pour cela son ou ses certificats (X.509) au client. Il peut pendant cette étape demander
un certificat au client. Le client vérifie l'authenticité du serveur : si cette authenticité est mise
en doute, la transaction est interrompue.
3 - Génération des clés de chiffrement symétrique. Le client génère de son côté une préclé qui
servira à produire les clés utilisées
par la suite. Cette clé est envoyée au serveur, chiffrée à l'aide de sa clé publique. A l'aide de
cette pré clé, le serveur et le client génèrent quatre clés pour la session :
Server write mac secret - utilisée dans la signature des messages du serveur.
Server write key - pour chiffrer les données émises par le serveur.
Ces clés ne sont pas échangées. Si besoin est, le serveur vérifie l'authenticité du client.
5 - Le serveur procède de même. Ces messages sont dénis par le sous protocole Change
Cipher Spec (c'est d'ailleurs tout ce que définit ce protocole).
SRTP
Le protocole SRTP (Secure Real time Transport Protocol) définis un type de profil RTP dans
l’intention de fournir le chiffrement, l’authentification et l’intégrité des messages et la
protection contre le rejeu. Il fut développé par un petit groupe d’experts en protocole IP et
cryptographie de CISCO et Ericsson parmi lesquels David Oran, David McGrew, Mark
Baugher, Mats Naslund, Elisabetta Carrara, James Black, Karl Norman, et Rolf Blom. La
première publication par l’IETF fut en mars 2004 sous le nom RFC 3711.
Mode Segmented Integer Counter : De type counter, il permet l’accès aléatoire aux blocs,
ce qui est essentiel pour le trafic RTP. Par défaut, la clé est de 128 bits.
C#
Le C# est un langage de programmation créé par Microsoft en 2002. Nous l’avons choisi pour
ce projet car nous voulions un langage simple, accessible, avec des bibliothèques qui nous
permettraient de faire à la fois de la Voix sur IP et d’implémenter TLS et SRTP.
Le C# est un langage dont la syntaxe ressemble un peu au C++ ou au Java qui sont d’autres
langages de programmation très populaires. Le C# est le langage phare de Microsoft. Il fait
partie d’un ensemble plus important. Il est en fait une brique de ce qu’on appelle le «
Framework .NET ».
Le code en langage intermédiaire (CIL) correspond au programme que vous allez distribuer.
Sous Windows, il prend l'apparence d'un .exe comme les programmes habituels, mais il ne
contient en revanche pas de binaire.
Lorsqu'on exécute le programme CIL, celui-ci est lu par un autre programme (une machine à
analyser les programmes, appelée CLR) qui le compile cette fois en vrai programme binaire.
Donc, en théorie, il est possible d'utiliser n'importe quelle application compilée en langage
intermédiaire à partir du moment où il y a une implémentation du CLR disponible.
En réalité, il n'y a que sous Windows qu'il existe une implémentation complète du CLR. Il
existe cependant une implémentation partielle sous Linux : Mono. Cela veut dire que si votre
programme utilise des fonctionnalités qui ne sont pas couvertes par Mono, il ne fonctionnera
pas. Il est possible de créer des programmes (.exe) qui pourront directement être exécuté par
le CLR, mais il est également possible de créer des bibliothèques sous la forme d'un fichier
possédant l'extension « .dll ». On appelle ces deux formes de programmes des assemblages,
mais on utilise globalement toujours le mot anglais « assembly ».
Concrètement, cela signifie que le fichier .exe servira à lancer une application et qu'une dll
pourra être partagée entre plusieurs applications .exe afin de réutiliser du code déjà écrit.
On peut voir le framework .NET comme ces matériaux, c’est un ensemble de composants que
l’on devra assembler pour réaliser notre application. Certains sont spécifiques pour la
réalisation d’applications web, d’autres pour la réalisation d’applications Windows, etc.
Le framework .NET est un framework créé par Microsoft en 2002, en même temps que le C#,
qui est principalement dédié à la
programmes qui fonctionnent sous Windows, ou bien des sites web ou encore des applications
qui fonctionnent sur téléphone
mobile, etc.
C# et VoIP
Voici un tableau comparatif de SDK (Software Development Kit) sous C# permettant de faire
de la VoIP. Un SDK est une bibliothèque contenant des fonctions pour aider un développeur à
créer des applications spécifiques.
PortSIP SDK est celui que nous avons choisi, car sa documentation est très fournit et ses
methodes plus faciles à appréhender.
C# et cryptographie
Propriété Key : permet de définir ou d'obtenir la clé secrète, c'est elle qui permet le
chiffrement et le déchiffrement.
Propriété IV : permet de définir ou d'obtenir le vecteur d'initialisation. Un vecteur
d'initialisation n'est pas utilisé systématiquement, il dépend du mode, le mode ECB
n'en utilise pas.
Propriété BlockSize : permet de définir ou d'obtenir la taille des blocs utilisés lors
d'une opération de chiffrement ou de déchiffrement. Cette taille de bloc définit la taille
maximale de données qui peuvent être chiffrées ou déchiffrées en une seule opération.
1. Fonctionnement
L’application dispose de plusieurs methodes dont les principales sont celles qui permettent de
s’enregistrer au niveau du serveur, d’émettre un appel, d’y répondre, de choisir le mode de
transport (UDP, TCP ou TLS), et le mode de chiffrement pour SRTP (aucun, préféré, forcé).
En ce qui concerne TLS, l’application exige que le certificat soit placé au niveau d’un
« Trusted Root Certification Authorities area », c’est-à-dire une autorité de certification sous
windows serveur.
2. Implémentation
Nous avons utilisé Microsoft Visual Studio 2010, avec le framework .NET version
4.50.50709 et le SDK PortSIP.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using PortSIP;
Chargement de chiffrement :
//Choix chiffrement
private void SetSRTPType()
{
if (_SIPInited == false)
{
return;
}
switch (ComboBoxSRTP.SelectedIndex)
{
case 0:
SRTPPolicy = SRTP_POLICY.SRTP_POLICY_NONE; //par defaut, pas de chiffrement
pendant les appels RTP
break;
case 1:
SRTPPolicy = SRTP_POLICY.SRTP_POLICY_PREFER; //le systeme essaiera de
chiffrement, mais ne le fera pas si l'un des
break; //communiquants n'a pas activé SRTP
case 2:
SRTPPolicy = SRTP_POLICY.SRTP_POLICY_FORCE; //Dans ce cas la communication
sera chiffrée obligatoirement
break;
}
_core.setSrtpPolicy(SRTPPolicy);
}
_CallSessions[i].reset();
}
if (_SIPLogined == true)
{
_core.unRegisterServer();
_SIPLogined = false;
}
if (_SIPInited == true)
{
//
// Appellé avant _core.unInitliaze();
//
_core.shutdownCallbackHandlers();
_core.unInitialize();
_core.releaseCallbackHandlers();
_SIPInited = false;
}
Log.Items.Clear();
ComboBoxLines.SelectedIndex = 0;
_CurrentlyLine = LINE_BASE;
ComboBoxSpeakers.Items.Clear();
ComboBoxMicrophones.Items.Clear();
//ComboBoxCameras.Items.Clear();
}
//
// CLAVIER
//
private void Button3_Click(object sender, EventArgs e)
{
TextBoxPhoneNumber.Text = TextBoxPhoneNumber.Text + "1";
if (_SIPInited == true && _CallSessions[_CurrentlyLine].getSessionState() == true)
{
_core.sendDtmf(_CallSessions[_CurrentlyLine].getSessionId(), '1');
}
}
if (_CallSessions[_CurrentlyLine].getSessionState() == true ||
_CallSessions[_CurrentlyLine].getRecvCallState() == true)
{
MessageBox.Show("Cette ligne est occupée, veuillez en choisir une autre", "Information",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
if (_core.isAudioCodecEmpty() == true)
{
InitDefaultAudioCodecs();
}
// SDP
Boolean hasSdp = true;
// if (CheckBoxSDP.Checked == true)
// {
// hasSdp = false;
// }
_core.setAudioDeviceId(ComboBoxMicrophones.SelectedIndex,
ComboBoxSpeakers.SelectedIndex);
int errorCode = 0;
int sessionId = _core.call(callTo, hasSdp, out errorCode);
if (errorCode != 0)
{
Log.Items.Add("L'appel ne peut aboutir");
return;
}
_CallSessions[_CurrentlyLine].setSessionId(sessionId);
_CallSessions[_CurrentlyLine].setSessionState(true);
//reception d'appel
public Int32 onInviteIncoming(Int32 callbackObject,
Int32 sessionId,
String caller,
String callerDisplayName,
String callee,
String calleeDisplayName,
String audioCodecName,
String videoCodecName,
Boolean hasVideo)
{
int i = 0;
bool state = false;
string Text = string.Empty;
if (hasVideo == true)
{
if (state == false)
{
string reason = "Occupé";
_core.rejectCall(sessionId, 486, reason);
return 0;
}
3. Tests
Conclusion
Ce travail nous a permis de nous familiariser avec le domaine de l’audit, qui est tout
aussi intéressant qu’important. L’audit de la VoIP en particulier, n’est pas seulement un
ensemble de tests de pénétration, mais toute une démarche méthodique et rationnelle, dont la
finalité peut apporter énormément à l’entreprise.
Evidemment, toute entreprise humaine n’est pas parfaite, et cette application attend
encore beaucoup d’améliorations.
Bibliographie
VoIP Security and Privacy Threat Taxonomy Public Release 1.0 (24 October
2005)
Portsip voip sdk user manual net
Network Infrastructure Security Technical Implementation Guide Version 7,
Release 1
Audit de la securité des réseaux VoIP
Practical VoIP security, Thomas Porter
Hacking VoIP Exposed, David Endler, Mark Collier
VoIP et sécurité : Retour d'expérience d'audits de sécurité, Herve Schauer
Linux administration tome 3 sécuriser un serveur linux, Jean François Bouchaudy
Protocoles réseau : grandeur et décadence, Pierre B´etouin1, Cédric Blancher, et
Nicolas Fischbach
Etude du protocole ARP ... et de ses failles, Maladrie Julien
Webographie
http://www.voipfr.com
http://fr.wikipedia.org/wiki/Portail:Informatique
http://www.vulnerabilite.com
http://www.alliedtelesis.com/solutions
http://www.symantec.com/connect/articles/two-attacks-against-voip
http://www.linuxfrance.org/prj/inetdoc/securite/tutoriel/tutoriel.securite.attaquesprotoc
oles.html
http://www.voipsa.org/Resources/tools.php
http://www.backtrack-linux.org/wiki/index.php/Pentesting_VOIP