Le saviez-vous ? Le paramètre "Private" des rendez-vous dans Outlook ne protège pas contre un utilisateur qui a des droits de lecture sur votre agenda (comme c'est souvent le cas au sein d'une même équipe ou d'un même département). Ceci est clairement documenté par Microsoft et n'est pas une vulnérabilité.
Le paramètre "Private" est un "flag" interprété par Outlook. Mais un client tiers ou un plugin Outlook peuvent être configurés / développés pour ignorer ce paramètre et ainsi permettre à un tiers de voir tous les détails d'un rendez-vous "privé". C'est ce que nous allons démontrer ici.
Introduction
Navixia, en tant que société spécialisée dans la sécurité informatique, se doit de garder un œil sur les différentes technologies et logiciels utilisés en entreprise. Ce rôle implique aussi parfois de vérifier ou contrôler le fonctionnement de ces éléments.
Outlook, le client de messagerie de Microsoft et son pendant côté serveur, Exchange, font partie des outils incontournables aujourd'hui dans les réseaux d'entreprise.
Afin de séparer l'univers professionnel de l'univers personnel à l'intérieur de ces outils, plusieurs méthodes sont à la disposition des employés.
Pour ce qui concerne les mails, le conseil est souvent de trier ou d'indiquer clairement le caractère personnel d'un message en créant un dossier "Privé/Personnel" ou en indiquant par exemple dans le titre du mail "[Private/Personal]".
Pour les rendez-vous du calendrier, l'activité professionnelle entraîne souvent un partage de facto du calendrier avec au moins une partie de l'entreprise (même équipe, même département...).
Pour répondre à la fois au besoin de partage et de masquage des rendez-vous privés, Microsoft offre depuis le début un mécanisme très simple qui permet de masquer les rendez-vous privés des autres employés: un simple bouton à cliquer afin de définir ce rendez-vous comme privé.
L'affaire semble claire: Microsoft a fourni une solution technique à un problème existant. Néanmoins, en regardant un peu plus en détails la documentation Microsoft, on déchante un peu:
Source: Make an appointment or meeting private
Cette phrase, clairement indiquée dans la documentation éditée par Microsoft pour Outlook, nous l'indique : le fait de marquer un rendez-vous comme privé ne dissimule pas vraiment l'information si la personne a déjà accès en lecture à votre agenda (ce qui est nécessaire en général à la collaboration au sein d'une même équipe ou d'un même département).
Afin de vérifier cette affirmation de Microsoft et d'évaluer le risque pour nos clients, nous avons donc cherché à investiguer plus en profondeur le fonctionnement de ce mécanisme d'Outlook.
Analyse
Outlook est le client Microsoft qui permet de dialoguer avec les serveurs Exchange. Pour dialoguer, les éléments utilisent:
- MAPI/RPC: Protocole propriétaire de Microsoft pour le dialogue Outlook/Exchange.
- Exchange WebService (EWS)): Introduit avec Exchange Server 2007, protocole ouvert basé sur du SOAP (XML web API).
Nous allons nous intéresser plus en détails au protocole EWS .
Quand un client EWS fait la demande de la liste des rendez-vous, le serveur Exchange renvoie une liste d'objets. Ces objets correspondants aux rendez-vous sont des AppointmentItem et possèdent de nombreux paramètres, en particulier le paramètre "Sensitivity" qui peut prendre 4 valeurs:
- Normal
- Personal
- Private
- Confidential
Ce paramètre Sensitivity est modifié à Private quand l'utilisateur indique que le rendez-vous est privé.
Outlook, en recevant un rendez-vous avec une Sensitivity de valeur Private, masquera les informations et indiquera un rendez-vous privé (comme ci-dessous):
Cependant, tout autre client capable d'utiliser le protocole peut ignorer le paramètre Sensitivity et dispose de toutes les informations sur le rendez-vous, qui sont aussi envoyées par le serveur Exchange.
Nous avons par exemple écrit un petit plugin UnPrivate pour Outlook qui permet d'aller questionner le serveur Exchange et d'afficher les informations qu'Outlook nous masque..
Conclusion
Microsoft n'a jamais caché que les rendez-vous privés n'étaient qu'un mécanisme très simple de protection, facilement contournable.
Quelle est la leçon à tirer de tout cela ?
Il faut toujours garder à l'esprit que les technologies que nous utilisons au quotidien ne protègent pas forcément nos données privées aussi bien que nous le pensons. Mieux vaut faire preuve de prudence, s'informer sur les spécificités des outils auquels nous confions nos informations - et ne pas être trop confiant.