Vous êtes sur le site public du Cert-IST
Détail de la publication
Utiliser Microsoft MOICE  pour se protéger des fichiers Office malveillants

Date :11 Mai 2009

Publication: Article

Depuis 2006 de nouvelles vulnérabilités découvertes dans la suite Office de Microsoft sont régulièrement utilisées pour réaliser des attaques ciblées. Pour ce faire, un pirate utilise un document piégé (qui exploite une vulnérabilité jusque là inconnue) et l'envoie à sa victime. Lorsque ce fichier est ouvert, il exécute alors des actions malveillantes sur le poste de la victime.

En réponse à ce phénomène, Microsoft a publié en 2007 deux outils complémentaires pour Office 2003 et 2007 :

  • MOICE (Microsoft Office Isolated Conversion Environment) qui est un outil de pré-traitement lancé automatiquement avant que Word, Excel ou Powerpoint n'ouvrent certains fichiers.
  • "File Blocker" qui permet d'interdire l'ouverture de certains fichiers par Word, Excel ou Powerpoint (par exemple ceux qui ne sont pas pris en charge par MOICE).

Ces outils sont désormais régulièrement recommandés par Microsoft pour réduire la possibilité d'attaques ciblées mais ils semblent encore assez peu connus. Nous en examinons ici les principes ainsi que l'utilisation qui peut en être faite dans les environnements Office 2000, XP, 2003 et 2007.

 

MOICE

MOICE est un utilitaire qui permet d'analyser un fichier binaire Office avant d'appeler l'application Office proprement dite (Word, Excel ou Powerpoint).  MOICE s'exécute dans un environnement protégé (qui limite les actions que pourrait faire un document piégé qui exploiterait une éventuelle vulnérabilité dans MOICE), analyse le fichier d'entrée, produit un fichier résultat équivalent, et appelle enfin l'application Office adéquate pour éditer ce fichier résultat. Le fait que MOICE réécrive le fichier apporte un bon niveau de garantie pour qu'une tentative d'attaque soit stoppée. En effet, la plupart des documents piégés sont des documents malformés (incluant par exemple des champs trop longs, ou des références internes incohérentes) : MOICE est conçu pour ne pas être perturbé par ces malformations et pour les supprimer.

MOICE a été construit en utilisant les convertisseurs développés pour Office 2007. Il produit donc des fichiers résultats au format "Office 2007" c'est à dire utilisant le nouveau format XML introduit par Microsoft à partir de cette version.

Nota :

  • On peut se rendre compte que le nouveau format de fichier de "Office 2007" est basé sur XML en renommant un fichier ".docx" (suffixe du format natif des fichiers "Word 2007") en ".zip" puis en l'ouvrant ce fichier : on voit alors que le fichier ZIP contient toute une série de fichiers au format XML.
  • MOICE ne traduit pas les macros des documents ouverts (ce qui peut être considéré comme une précaution, puisque les macros peuvent être dangereuses)  et ne sait pas traiter les fichiers protégés par mot de passe ou par DRM (Digital Right Management).

Pour que les applications MS Office lancées ensuite par MOICE (Office 2000, XP, 2003 ou 2007 suivant les environnements) soient capable d'ouvrir le document converti il est indispensable que le "Pack de compatibilité Microsoft Office pour les formats de fichier Word, Excel et PowerPoint 2007" ait été installé (ou que le poste soit équipé directement d'Office 2007). Ce point n'est en fait pas gênant puisque ce pack est disponible gratuitement pour Office 2000, XP et 2003. D'ailleurs MOICE lui-même fait partie de ce pack de compatibilité.

Nota : Le pack de compatibilité Office est disponible pour Office 2000, XP et 2003. Par contre Microsoft indique que MOICE (qui est fourni avec ce pack) ne peut fonctionner que dans les environnements Office 2003 et 2007.

Voici les fichiers que sait traiter MOICE et les fichiers résultats qu'il produit :

 Fichier d'entrée  Fichier de sortie 
.doc (Word document) .docx
.xls (Excel spreadsheet) .xlsx
.xlt (Excel Template) .xltx
.xla (Excel Addin) .xlam
.ppt (Powerpoint document) .pptx
.pot (Powerpoint Template .potx
.pps (PowerPoint slideshow)  .ppsx

 

Limites de MOICE

Si MOICE a été installé sur un poste, dès que l'on double clique sur un fichier ayant une de ces extensions, MOICE est automatiquement appelé pour transformer le document et appeler l'application Office appropriée. Le fichier produit par MOICE est stocké dans le répertoire "%TEMP% (c'est-à-dire " C:Documents and Settings{username}Local SettingsTemp") et c'est ce fichier qui est ouvert ensuite par l'application Office.

Ce comportement est assez troublant parce que si l'on modifie ce fichier, il faut alors le déplacer du répertoire "%TEMP%" vers un répertoire plus approprié et penser à détruire le fichier d'origine. En effet, si un utilisateur conserve dans le même répertoire le fichier ".doc" et ".docx" (cas d'un document Word) il a de fortes chances d'éditer par la suite le ".doc" sans se rappeler qu'il avait sauvegardé des modifications dans le ".docx".

En fait, le déploiement de MOICE sur les postes de travail des utilisateurs ne nous parait confortable que dans les organisations ayant décidé de migrer leurs document Office vers les nouveaux formats de fichiers introduits par "Office 2007". Dans ce cas en effet, l'utilisateur a sur son poste en grande majorité des fichiers ".docx", et le fait qu'un fichier ".doc" (reçu par exemple de l'extérieur) soit automatiquement converti lors de son ouverture en un fichier ".docx" devient alors assez naturel. Bien qu'il soit possible d'utiliser les nouveaux formats de fichiers introduits par "Office 2007" avec les environnements précédents (par exemple Office 2003) cette migration prend tout son sens pour les organisations ayant adopté Office 2007.

Nota : MOICE n'est pas automatiquement installé avec Office 2007. Le fait de l'installer renforce la sécurité d'Office 2007 puisque les fichiers utilisant les anciens formats (.doc, .xls, .ppt, etc…) sont alors convertis par MOICE en environnement restreint plutôt qu'ouverts directement dans Office 2007 lui-même.

Pour les organisations n'ayant pas décidé de migrer leurs documents dans le nouveau format Office 2007, une solution pourrait être, plutôt que de déployer MOICE sur tous les postes, de mettre en place à l'entrée du réseau une "passerelle MOICE". Typiquement celle-ci serait chargée d'appliquer la conversion MOICE sur tous les documents entrant dans l'entreprise. MOICE étant "scriptable" (on peut l'invoquer par une ligne de commande) il parait en effet  assez facile sur une passerelle de messagerie (principal vecteur utilisé lors des attaques ciblées) d'appliquer MOICE à tous les fichiers ".doc", ".xls", ".ppt", etc… entrant dans l'entreprise pour les transformer en fichiers neutralisés ".docx", ".xlsx" et ".pptx". Bien que ce principe ait été évoqué dès la première publication de MOICE (par  exemple en fin de ce document du DOE) nous n'avons pas trouvé de retour d'expérience d'entreprises ayant mis en place ce type de passerelle.

 

 

File Block

"File Block" est une fonctionnalité de Office 2003 et 2007 totalement indépendante de MOICE mais qui complète la protection procurée par ce dernier. Elle permet d'indiquer aux outils Word, Excel et Powerpoint qu'ils doivent refuser d'ouvrir certains types de fichiers jugés dangereux. Il est par exemple possible par ce moyen d'interdire à Word d'ouvrir les fichiers ".rtf". ou ".doc". L'activation du "File Block" se fait en positionnant une clé dans la base de registre de Windows.

La fonction "File Block" peut être vue comme rendant le même type de service que la fonction de "Kill bit" qui permet d'interdire à Internet Explorer d'exécuter certains contrôles ActiveX jugés dangereux.

Le "File Block" complète MOICE par deux aspects :

  • Il permet tout d'abord d'indiquer à Word, Excel et Powerpoint qu'ils ne doivent plus ouvrir les fichiers que MOICE ne sait pas convertir (par exemple interdire à Word le format RTF).
  • Il permet aussi d'interdire à ces mêmes outils d'ouvrir des fichiers qui n'auraient pas été convertis par MOICE parce qu'ils auraient été ouverts en utilisant une méthode contournant MOICE.

A propos de ce second point, il est important de signaler que seul le double clic sur un fichier provoque l'appel à MOICE (et la transformation d'un ".doc" en ".docx"). Il reste alors plusieurs méthodes de contournement permettant par exemple de faire ouvrir un fichier ".doc" par Word. Les deux plus évidentes sont :

  • Faire "Fichier/Ouvrir" depuis Word lui-même,
  • Ou sélectionner le fichier, faire un clic droit pour invoquer le menu contextuel, et choisir dans le menu "Ouvrir Avec" l'option "Microsoft Office Word".

Interdire par "File block" l'ouverture de fichiers ".doc" par Word empêche ces méthodes de contournement de MOICE.

Nota : Il est prévu également dans "File Block" un mécanisme d'exception permettant d'ouvrir un fichier qui normalement devrait être bloqué. Pour cela on définit un répertoire particulier appelé "emplacement d'exemption" ("exempt location") sous Office 2003 et "emplacement de confiance" ("trusted location") sous Office 2007, qui échappe aux règles d'interdiction définies par "File Block".

 

Conclusion

Le mécanisme de MOICE, utilisé en conjonction avec "File Block", permet de limiter de façon très importante le risque d'attaque au moyen d'un fichier Office malveillant. Cependant ce mécanisme ne nous semble facile à déployer que dans les organisations ayant migrés vers Office 2007. La mise en place d'une passerelle MOICE en périphérie de l'entreprise nous semble une alternative intéressante pour un déploiement de ce type de protection dans des environnements Office 2000, XP et 2003.

 

Pour plus d'information