Vous êtes sur le site public du Cert-IST
"Skype" et la sécurité des systèmes d'information

Date :04 Novembre 2005

Publication: Article

"Skype" est le logiciel de téléphonie sur IP (ou VoIP) qui a fait la "Une" de l'actualité informatique française au mois de septembre-octobre 2005 suite à l'interdiction de ce logiciel dans le monde de la recherche et de l'enseignement supérieur français.

 "Skype", qui est de plus en plus utilisé dans le monde, fait aujourd'hui aussi son entrée dans les entreprises, et cela parfois à l'insu des administrateurs du système d'information (SI). Ce type d'outil est à rapprocher d'autres logiciels bien connus (et offrant des fonctionnalités de communication "Peer-to-Peer" similaires) comme MSN et AIM (AOL Instant Messaging) pour lesquels les problématiques de sécurité restent sensiblement les mêmes.

 Nous allons dans cet article présenter les mécanismes utilisés par "Skype", et étudier les mesures techniques qui pourraient permettre aux responsables des SI qui le souhaitent d'interdire l'utilisation de "Skype" au sein d'une entreprise.

Présentation de "Skype" :
 
"Skype" est un logiciel gratuit de téléphonie sur IP de type "Peer-To-Peer". Il s'appuie sur un réseau collaboratif (maillé) de plus en plus évolué afin d'assurer son fonctionnement à travers Internet. "Skype" a été conçu par les auteurs du logiciel d'échange de fichier "KaZaA", et dont la société vient d'être récemment rachetée par le groupe américain "eBay".

Il existe aujourd'hui peu d'informations sur le fonctionnement de ce logiciel de téléphonie. L'éditeur reste très silencieux sur certains aspects importants (communications réseaux, serveurs utilisés, …) ; néanmoins on arrive au moyen de tests à déterminer certaines des propriétés clefs du logiciel.

Une des difficultés ici est que ces dernières évoluent de manière constante et au fur et à mesure des mises à jour du logiciel. En particulier, certaines des informations fournies par Salman A. Basset et Henning Schulzrinne lors d'une observation du comportement de "Skype" en février-avril 2004 (Cf. partie "Pour plus d'information") n'ont pas été retrouvées dans l'analyse sommaire faite par le Cert-IST de la version 1.4.0.8.7 (octobre 2005).

Cependant, on peut, à ce jour, indiquer que l'architecture "Skype" est basée sur un réseau collaboratif où se trouvent :

  • des clients "Skype" (PC utilisateurs)
  • des "super-nœuds" qui sont en fait des clients "Skype" ayant une adresse IP publique et des ressources (bande passante, CPU) assez conséquentes (voire des serveurs détenus par la société "Skype"). Leur fonction est de permettre aux clients :
    • de pouvoir rester "en attente" de communication, fonctionnalité pour les clients situés derrière un garde-barrière ou un équipement faisant de la translation d'adresses (NAT), ceci en établissant une connexion permanente vers le "super-nœud".
    • d'effectuer une recherche pour contacter un autre utilisateur.
    • d'effectuer des transferts de fichier (le "super-nœud" joue le rôle d'intermédiaire).
  • un serveur d'authentification d'IP 80.160.91.5 (cette information n'a pas pu être vérifiée lors de l'analyse du Cert-IST). Les échanges chiffrés d'authentification qui ont été observés lors des tests s'établissaient entre un client et un "super-nœud" dédié (?).
  • un serveur de mise à jour ("ui.skype.com" - 212.72.49.131) appartenant au domaine "skype.com".

 
Fonctionnement sommaire de "Skype" :

Lorsqu'un utilisateur lance "Skype" d'innombrables connexions en mode UDP (ou TCP si le trafic UDP est bloqué) s'effectuent vers une liste de "super-nœuds" (à peu près 150 adresses) dont les couples "(adresse IP, port)" sont stockés dans le fichier XML "shared.xml" contenu dans le répertoire '' C:Documents and Settings[Utilisateur]Application DataSkype" du poste de l'utilisateur. Les informations sur les machines mentionnées dans ce fichier sont amenées à évoluer soit par des mises à jour à la volée, soit par la publication de nouvelles versions de "Skype".

Afin de se connecter au réseau "Skype", le client nécessite théoriquement peu de ports réseau ouverts.

# Ideally, outgoing TCP connections to all ports (1..65535) should be opened. This option results in the most reliable connection for Skype.

# If the above is not possible, open up outgoing TCP connections to port 443. This will only work if you are using Skype version 0.97 or later.

# If the above is not possible, open up outgoing TCP connections to port 80. Some firewalls restrict traffic to port 80 to HTTP protocol, and in this case Skype can not use it since Skype does not use HTTP. In some firewalls it is possible to open up all traffic to port 80, not just HTTP, and in this case Skype will work.

# If the above is not possible, Skype versions 0.97 or later can use a HTTPS/SSL proxy. In order to do that, you have to configure the proxy address in Internet Explorer options. Then Skype will be able to use it as well.

http://support.skype.com/index.php?_a=knowledgebase&_j=questiondetails&_i=114


Le Cert-IST a voulu tester le dernier point indiqué avec un PC muni d'un garde-barrière personnel configuré afin que seul le trafic HTTP/HTTPS pour l'application "Skype" soit autorisé. Il a été constaté que la connexion du client au réseau "Skype" était impossible (et aucun trafic notable n'a été constaté sur le port 443 ou 80). Ce résultat pourrait signifier que le client "Skype" testé nécessite au moins une connexion UDP ou TCP (hors HTTP/HTTPS) vers Internet afin d'être opérationnel. Ce qui serait en contradiction avec les propriétés énoncées par l'éditeur.

 
Car, selon le site officiel de l'éditeur (et comme mentionné dans l'encadré ci-dessous), "Skype" est capable d'utiliser les relais HTTP de l'entreprise, car il récupère sous Windows les paramètres de connexions (adresse du relais web et identifiant mot de passe éventuels) configuré au niveau du navigateur Internet Explorer. A défaut, l'utilisateur peut saisir ces informations dans une boite de dialogue ad-hoc.

Does Skype support connections through proxies and authenticating firewalls?

Yes, Skype supports regular HTTP or HTTPS proxies, and authenticating HTTPS/SSL and SOCKS5 proxies. In Windows, the Internet Explorer settings are used. See Skype for Linux FAQ about how to set them in Skype for Linux. You can fine-tune proxy settings in Skype Options.

http://support.skype.com/index.php?_a=knowledgebase&_j=questiondetails&_i=149

Lorsque les machines externes répondent aux requêtes du client "Skype", ce dernier en choisit une (par un algorithme "secret") et initie (vraisemblablement) une connexion TCP/TLS (port 443) avec cette dernière afin de s'authentifier. Comme la communication est chiffrée, on ne peut connaître la nature des données envoyées au serveur distant.

Ensuite le client se met en attente de connexions sur les ports 31480 (port configuré par défaut dans l'interface graphique de "Skype"), 80 et 443, ou, si le PC est derrière un garde-barrière ou un équipement NAT, le client garde une connexion permanente avec un "super-nœud" afin de pouvoir être contacté par un autre utilisateur.

A ce stade, le client "Skype" va automatiquement vérifier sur le serveur "ui.skype.com" la présence de mise à jour logicielle via une connexion HTTP. Cette connexion peut être identifiée par la présence dans l'en-tête HTTP au niveau du champ "User-Agent" du mot clé "skype".

Nota : Ce même type de connexion HTTP est également effectué vers un serveur du domaine "skype.com" ou "skype.net" lors de la première connexion du client "Skype" au réseau pour s'annoncer.


Dès lors, le client "Skype" est prêt pour communiquer (en direct ou via un "super-nœud" en mode "TCP") avec un autre utilisateur :

  • en mode VoIP,
  • ou au travers d'une messagerie instantanée (IM),
  • ou même au travers des transferts de fichiers.

 
Comme on le voit, le protocole utilisé par "Skype" pour établir une communication avec Internet est théoriquement fortement adaptatif. Il est donc très probable que si l'entreprise met en place un filtrage sur les flux sortants, "Skype" se replie vers des flux TCP HTTP ou HTTPS qui ont eux de fortes chances d'être autorisés.

Voici ci-dessous un exemple de trafic généré par le logiciel "Skype" (en mode "super-nœud" vraisemblablement) sur un MacIntosh en mars 2005 (source : liste SOS-Virus – CNRS)

  • trafic avec 800 adresses IP sur Internet par jour,
  • un flux de 100 à 300 Mo par jour, réparti continument dans la journée (volume de paquets IP dans les 2 sens),
  • toutes les minutes, ouverture de connexion TCP du Mac vers "sss1.skype.net" (1 Mo dans la journée),
  • ouverture des connexions TCP vers le port 54045 de 20 destinations,
  • réception d'ouvertures de connexion TCP port 54045 depuis 850 sources, jusqu'à 100 ouvertures par heure (ces connexions restent actives quelques minutes),
  • augmentation de trafic (de 10 Mo par jour à 200 à 300 Mo par jour) correspondant exactement au jour de l'installation de "Skype".


De plus de récentes vulnérabilités du client "Skype" sont venues compléter la problématique de l'utilisation de ce type d'outil (Cf. la note dans la liste "Vuln-Coord" du 26 octobre 2005).

Face à ce phénomène contraignant, comment interdire en pratique l'utilisation de "Skype" si une décision a été prise en ce sens ?

Les réponses à cette question restent relativement difficiles, en particulier parce que "Skype" (et ses moyens de communications) évolue de version en version, et même comme on l’a vu (plage de ports, port 80, proxy), semble s’adapter aux restrictions constatées sur le terrain.


Recommandations :

Cependant, on peut dès à présent donner quelques pistes de réflexions qui pourront être recoupées par une expérimentation sur le terrain.

Ces recommandations s'établissent à partir d'une configuration de base de "Skype" (version 1.4.0.8.7) observée sur un système Microsoft Windows XP (SP2).

  • Filtrer l'accès au domaine "skype.com" (plage d'adresses 212.72.49.128 – 212.72.49.159) ou "skype.net" (adresses IP chez différents fournisseurs "Verio", " Elion Ettevotted Aktsiaselts", …). Ce filtrage peut permettre de détecter les installations des clients "Skype" lors de leur connexion au serveur de mise à jour ("ui.skype.com" - 212.72.49.131). Les téléchargements des versions de "Skype" via le site officiel "download.skype.com" sont à ce jour initiés sur différents serveurs web hors domaine "skype.com" : 195.215.8.138, 198.63.211.251 et 198.63.211.252). Dans ce cas de figure, il est préférable de filtrer si possible le nom de domaine que des adresses IP.
  • Filtrer les adresses IP contenues dans le fichier "shared.xml" du client "Skype" (fichier disponible auprès du Cert-IST pour la version en date d'octobre 2005 - 1.4.0.8.7). Il est à noter que cette liste peut évoluer rapidement par des mises à jour du logiciel. Néanmoins, elle peut permettre de détecter les nouvelles installations de "Skype" sur le réseau.
  • Filtrer les connexions entrantes vers le port TCP 31480 (port par défaut utilisé par le client "Skype" de la version observée).
  • Filtrer les connexions TCP/UDP sortantes des PC utilisateurs vers des ports hauts non communs (ex : 33033).
  • Filtrer les connexions HTTP/HTTPS contenant le mot clé "skype" dans le champ "User-Agent" de leur en-tête (filtrage de contenu).

 

Conclusion :

L'interdiction de l'utilisation "Skype" dans un SI reste aujourd'hui difficile à contrôler de part l'absence de documentation précise sur son fonctionnement et l'évolution récurrente des techniques de communications qu'il utilise. Néanmoins, certaines précautions peuvent être mises en œuvre pour déceler (ou plus) la présence de ce type de logiciel. Cependant les recommandations énoncées dans le présent article peuvent se révéler un jour obsolètes suite à l'évolution de "Skype".

Il est à noter qu'aujourd'hui des solutions commerciales de filtrage axent leur effort publicitaire sur les possibilités de filtrage de "Skype" et des autres logiciels de ce type comme MSN. Cependant, il est conseillé de garder un regard critique vis-à-vis de ce type d'argument car, du fait de l'évolution constante des produits, le filtrage "étanche" proposé aujourd'hui pourrait se révéler caduque demain.

 
Pour plus d'information :