Un examen de la structure des documents propriétaires montre
une croissance rapide de leur complexité interne au fil des versions.
Ils sont sans cesse plus structurés et contiennent de plus en plus
d'informations de nature diverse. Enfin, par définition, leur
modèle objet n'est pas documenté. Dans ces conditions, nous
avons observé la tentation de plus en plus grande des éditeurs
d'incorporer, parfois à l'insu de l'utilisateur, des éléments
spécifiques à celui-ci et à son environnement,
conduisant à la divulgation d'informations importantes.
D'autre part, les documents propriétaires pouvant contenir du
contenu actif, on ne peut en garantir la non altération. En effet, l'apparence du document au moment de sa création
et au moment de sa relecture peut différer complètement,
ce qui pose notamment un problème en cas de signature du document.
Cet article illustre certaines des vulnérabilités
induites par les documents propriétaires afin de se protéger
contre la fuite d'informations dans les documents complexes.
Le format PDF, développé par la firme Adobe [1], est un format de document maintenant largement utilisé dans le monde tant par sa grande portabilité que par le génie marketing de la firme Adobe, qui a su le faire adopter peu à peu par un très grand nombre d'utilisateurs. Le logiciel de lecture Acrobat Reader est gratuit et quasi systématiquement fourni avec la plupart des logiciels et drivers de périphériques. De plus en plus de manuels et documentations techniques sont également fournis sous ce format, de préférence au format DOC.
Pour générer de tels documents, il faut disposer du logiciel Acrobat. Il est alors possible de produire très facilement des documents PDF par conversion de fichiers en langage Postscript (également créé par la firme Adobe) grâce au module Acrobat Distiller, ou tout document produit par la suite Office de Microsoft, grâce au module PDF Maker.
Une autre alternative très intéressante est celle qui permet de numériser un document directement au format PDF. Or cette fonctionnalité présente une caractéristique (à la connaissance des auteurs, non connue jusqu'à présent du public et semble t-il des professionnels) qui permet à la fois, selon les cas, de faire de la stéganographie, c'est-à-dire de cacher des informations dans un document pour les transmettre sans qu'un éventuel attaquant puisse soupçonner leur présence, ou, plus grave de l'évasion de données. Dans ce dernier cas de figure, l'utilisateur ne se doute pas que le document contient des données cachées.
Un exemple a été créé pour illustrer cette caractéristique, que le lecteur trouvera dans [2]. Un texte a été caché dans ce document PDF. Essayez de reproduire ce qui suit avec ce fichier.
Nous nous plaçons dans le cas de l'évasion de données. Le lecteur trouvera facilement comment utiliser cela pour faire de la stéganographie. Alice scanne un document pour produire un fichier que nous nommons note.pdf. Elle souhaite transmettre une partie seulement de ce fichier à Bob. Par exemple, ses propres annotations manuscrites en marge du document doivent rester confidentielles. Pour cela, elle va dans le menu Document/Recadrer des pages du logiciel Acrobat et recadre les pages de sorte à faire disparaître ses annotations, puis sauvegarde le document et l'envoie à Bob.
Ce dernier, à réception du document, l'ouvre avec Acrobat Reader, cas le plus fréquent. Mais s'il l'ouvre avec le logiciel Acrobat, et qu'il va dans Document/Recadrer des pages, il lui suffit de cliquer sur la case Remettre à zéro pour découvrir ce qu'Alice voulait lui cacher. Les annotations ne sont malheureusement plus confidentielles.
Autre situation tirée d'un cas réel : une entreprise de services a
fourni à ses clients un exemple de rapport de statistiques client
qu'elle rédige régulièrement pendant la durée de ses prestations. Cet
exemple de rapport était un rapport réel dans lequel le nom du client
d'origine et les informations confidentielles de celui-ci étaient
masquées par des rectangles noirs. Manque de chance : ces rectangles
noirs avaient été ajoutés manuellement dans Acrobat et le document
obtenu était insuffisamment protégé. Il était alors facile de
supprimer ces rectangles afin d'avoir accès aux informations
confidentielles d'origine, ce qui a provoqué la fureur du client pris
comme exemple.
En plus du nom de l'auteur et de son entreprise, certains renseignements peuvent déjà être déduits : par exemple, il est clair que si le document fait 100 pages et qu'il a un temps d'édition de 5 minutes, c'est que l'auteur a procédé à un copier-coller brutal !
Maintenant, ouvrons ce fichier non pas avec Word mais avec un éditeur hexadécimal (l'un des meilleurs est UltraEdit, que le lecteur pourra télécharger sur [5] en licence gratuite pendant 45 jours ; le produit est excellent et la licence annuelle peu onéreuse). Ce type d'éditeur nous montre la face cachée du fichier, c'est-à-dire tous les caractères sans les interpréter.
Le modèle objet des documents Word est complexe et non documenté. Plusieurs personnes ont tenté avec plus ou moins de succès un reverse engineering partiel des documents Word afin de coder et décoder certains attributs spécifiques. Par exemple, certaines fins de header Word sont identifiées par les codes hexadécimaux suivants :
L'analyse du document révèle les données suivantes, dissimulées lorsque le document est lu avec Word :
\\SRV_PDC\HPPCL5MS HP LaserJet 4 PlusIci, le serveur d'impression est également PDC, information extrêmement précieuse pour un attaquant ;
Le lecteur constatera donc que le document révèle déjà de
nombreuses informations que le créateur du document, et l'organisme
qui l'emploie, ne souhaitent pas communiquer. Le fichier
ex_nihil.doc [3] reprend le cas présenté ici.
Mais il y a plus grave. Ce cas a été illustré par une affaire réelle concernant la société Alcatel qui, à l'époque (année 2001), avait fait grand bruit. Une vulnérabilité de ses modems ADSL ayant été rendue publique, Alcatel a diffusé un communiqué de presse sous forme d'un document Word remanié par plusieurs personnes au sein d'Alcatel.
Reprenons le fichier précédent et remanions le : des données sont ajoutées, d'autres sont effacées. Sauvegardons le fichier sous un autre nom. Puis répétons cette opération sur des machines différentes et avec des utilisateurs différents. Nous simulons là ce qui se passe fréquemment dans une entreprise ou une administration où un document circule, est retouché par plusieurs personnes avant d'être adopté puis est diffusé sous forme électronique. Faisons à présent parler le document.
Que trouvons-nous ? (Pour des raisons de place, les données ne sont pas reproduites ici mais le lecteur pourra reproduire l'expérience ou travailler sur les fichiers donnés en [3]).
Pour ce dernier item, il s'agit là d'une fonctionnalité très grave. La diffusion inconsciente des données intermédiaires peut se révéler fatale pour une société ou une administration. Lorsque Alcatel diffusa un document produit avec Word concernant la vulnérabilité trouvée dans ses modems ADSL, se trouvaient cachées dans le document des informations effacées, qui furent autant de révélations sur la stratégie réelle (et certainement justifiée) de la société (pour plus de détails voir par exemple [5]). Les concurrents d'Alcatel n'ont certainement pas manqué d'exploiter ces données au détriment de l'entreprise française. Le lecteur trouvera les fichiers originaux dans [3].
Nous donnons maintenant deux autres exemples réels particulièrement édifiant. Par souci de discrétion, nous changerons les noms des acteurs concernés.
Les Word bugs sont un autre type d'astuce qui permet cette fois à l'auteur d'un document Word d'obtenir des renseignements sur les lecteurs de son document. Il s'agit donc du processus inverse de ceux vus précédemment.
Le fonctionnement d'un Word bug est le même que celui d'un Web bug : un lien HTML caché dans le document (élément Word de type HYPERLINK) récupère sur internet un élément invisible (une image par exemple) sur un site Web contrôlé par la personne qui cherche à obtenir des renseignements sur les lecteurs de son document (ou de sa page Web dans le cas des Web bugs). Le schéma suivant détaille le processus :
Principe du Word bug
En analysant les logs du serveur Web, l'auteur du document détermine alors :
L'auteur effectue un suivi extrêmement précis de l'usage qui est fait de son document. Si, en plus, il personnifie de manière unique le lien caché dans les différents exemplaires de son document, il pourra faire un tracking nominatif de tous les accès aux copies de son document. Même si ce type de procédé s'avère utile lorsqu'il s'agit de documents classifiés, il peut bien sûr aussi porter atteinte à la vie privée.
On peut considérer le Word bug (et le Web bug) comme un mouchard,
et comme le premier niveau de "spyware", famille de logiciels tournant
à l'insu de l'utilisateur et destinés à l'espionner
(voir plus loin).
Un autre type de vol de données à l'initiative de l'auteur d'un document Word peut être effectué par inclusion automatique de données dans le document lors de sa sauvegarde. En effet, le champ INCLUDETEXT permet d’inclure automatiquement un document entier du disque dur dans le document courant. Par exemple, si vous créez un champ contenant le code suivant, le document C:\confidentiel.txt sera intégré dans le document en cours d'édition, et ce, de manière transparente pour l'utilisateur :
{ IF { INCLUDETEXT { IF { DATE } = { DATE } « C:\\confidentiel.txt" « C:\\confidentiel.txt" } \* MERGEFORMAT } = "" "" \* MERGEFORMAT }
Lors de la sauvegarde du document, le contenu du document confidentiel.txt fera partie intégrante du document Word. Un scénario d'exploitation pourrait donc être le suivant : l'attaquant prépare un document Word à adresser à ses victimes, accompagné d'une bonne histoire pour que celles-ci ouvrent le document sur leur machine, le modifient et le lui renvoient. Notez bien qu'aucun programme anti-virus ne verra quoi que ce soit, car le document est tout à fait normal. Il ne contient qu'un champ, et en particulier aucune macro.
Word n'offre à ce jour aucune protection contre cette attaque. Si vous ouvrez, modifiez et renvoyez un document, comme c'est souvent le cas en entreprise, vous pouvez être victime d'un vol de données.
De plus, d'autres éléments actifs peuvent modifier le contenu du document Word à leur guise. En particulier, le code suivant inséré dans un champ placé à la fin du document affiche le mot "blanc" si le document est nommé contrat.doc, et le mot "noir" sinon :
{ IF { FILENAME \* MERGEFORMAT { DATE } } = "contrat.doc" "blanc" "noir" \* MERGEFORMAT }
Les fichiers WordPerfect enregistrent les différentes étapes d'édition des documents. On peut donc revenir aux états antérieurs du document simplement en annulant les dernières modifications une par une !
Il existe certains cas où Outlook et Exchange divulguent des données sur les utilisateurs de manière erronée. Si un message est envoyé au format RTF depuis un client Outlook, un fichier nommé winmail.dat est aussi envoyé en attachement. Si le message est envoyé par l'intermédiaire d'un serveur Exchange 5.5 ou 2000, le fichier winmail.dat est supprimé lors de son traitement. Mais si le message est envoyé via un autre serveur de messagerie et si le destinataire ouvre le message avec un client autre que Outlook, le fichier winmail.dat est visible, et il pourra le détacher. Or winmail.dat contient des données importantes, comme le chemin complet de la boîte aux lettres de l'expéditeur (fichier .PST). Par défaut, ce fichier est localisé dans le profil de l'expéditeur, dont le chemin d'accès révèle le nom de login, le type de système, parfois le nom de domaine, etc...
Pour plus d'informations sur ce bug et les moyens de l'éviter, consultez les articles Q298917, Q259037 et Q138053 de la base de connaissance de Microsoft [6].
Même les fichiers images peuvent contenir des données sensibles à
l'insu des utilisateurs. En effet, plusieurs formats d'images
possèdent dans leur en-tête un champ de commentaires où peut être
stockée une chaîne de caractères, à l'initiative du créateur de
l'image ou de l'application ayant servi à éditer l'image.
Par exemple, les fichiers .JPG créés par un appareil
photo numérique contiennent dans leur champ de commentaires des
informations du type :
OLYMPUS DIGITAL CAMERA, OLYMPUS OPTICAL CO.,LTD C300Z, D550Z [pictureInfo] Resolution=1 [Camera Info] Type=SX577
D'autre fichiers, comme ceux de Photoshop 7.0, contiennent
encore plus d'informations, et cela se généralise à beaucoup
d'autres types de fichiers multimédia (son, vidéo, ...). De plus, les
applications chargées de lire ces fichiers se chargent souvent de
faire des vérifications de légalité à leur sujet, se rapprochant ainsi
des logiciels de la famille des "spywares".
La notion de "spyware" désigne tout programme installé à votre insu ou sans votre consentement, qui tourne en tâche de fond de manière plus ou moins masquée et qui utilise votre machine et votre connexion Internet pour collecter des informations sur vous et les envoyer à un service de centralisation de données.
On peut considérer que le fait que MediaPlayer et RealPlayer, par exemple, se connectent à des sites Web pour vérifier les droits numériques que vous possédez sur vos fichiers multimédia, et y laissent au passage des traces des fichiers que vous possédez et quelques informations individuelles, constitue une première caractéristique de spyware. Or de plus en plus de logiciels prennent ce genre d'initiatives et font une utilisation de plus en plus intensive de la connexion Internet de la machine, connexion qui est de plus en plus souvent permanente.
Ainsi, Windows XP utilise Internet pour de nombreuses opérations :
Le sujet des spywares mériterait un article entier à lui tout
seul. De plus, se profile à l'avenir le Trusted Computing
avec TCPA/Palladium : il est fort probable que les logiciels et les
machines procéderont à des actions à l'insu des utilisateurs, dont de
l'évasion de données individuelles. Pour plus d'informations sur
TCPA/Palladium, vous pouvez vous référer à l'excellente FAQ de Ross
Anderson [7].
Les cas évoqués dans cet article sont d'autant plus effrayants qu'ils se reproduisent sans l'ombre d'un doute dans de nombreuses entreprises ou administrations, qui ne suspectent même pas ces "fonctionnalités". Combien d'entreprises mettent quotidiennement en péril leur activité ? Combien de services de l'administration, même parmi les plus sensibles, mettent en danger les données de l'État ?
Si le lecteur veut modifier le document afin d'enlever à la main les données sensibles, soit le document Word devient inutilisable, certainement en raison de la présence d'un contrôle d'intégrité, soit les modifications manuelles ne sont pas prises en compte, les données semblant être camouflées ailleurs. La désactivation de la sauvegarde d'enregistrement automatique ne résout qu'une toute petite partie du problème.
Quelle est alors la solution pour l'utilisateur ? La règle est de
ne jamais diffuser une document retouché. Il doit être créé ex
nihilo et d'un seul jet. L'ergonomie du produit est alors réduite
à néant. L'autre solution est d'opter pour un traitement de texte
libre et parfaitement compatible (en export et import) avec la suite
Office (voir [4] pour un panorama de ces logiciels). Nous
avons effectué les mêmes expériences avec StarOffice. Outre
la parfaite compatibilité avec la suite Office, les
"fonctionnalités" présentées ici n'existent plus. Signalons que
l'ergonomie des produits comme StarOffice ou encore Open
Office est telle qu'un utilisateur "nourri" avec la suite
Office depuis son plus jeune âge, saura les maîtriser en
moins d'une journée !
Patrick Chambet
http://www.chambet.com
Consultant Senior - Edelweb - Groupe ON-X
http://www.edelweb.fr - http://www.on-x.com
Eric Detoisien
valgasu@rstack.org