Aller au contenu

Durcir Microsoft Office : macros, OLE et compléments

Verrouiller Microsoft 365 Apps : bloquer les macros d'Internet, désactiver XLM, analyser le VBA via AMSI, garder le mode protégé, signer les compléments, bloquer OLE/DDE.

Florian Amette9 min de lecture

Les documents Office restent l'un des premiers vecteurs d'intrusion les plus courants. Les macros attirent l'essentiel de l'attention, mais les attaquants utilisent aussi les macros Excel 4.0 (XLM), les packages OLE incorporés, les champs DDE, les compléments malveillants et tout ce qui incite un utilisateur à sortir du mode protégé. Microsoft a beaucoup durci les valeurs par défaut depuis 2022. Il s'agit désormais de transformer ces valeurs par défaut en stratégie imposée et de fermer les portes dérobées.

Ce guide traite du côté Office. Le guide des règles ASR couvre les règles Defender qui confinent Office quand quelque chose s'exécute malgré tout, et la rubrique Réduction de la surface d'attaque fait le lien entre les différents volets.

Prérequis

  • Microsoft 365 Apps (ou Office 2019/2021/2024) sur un canal pris en charge. Les paramètres ci-dessous utilisent le chemin de registre 16.0, commun à toutes les versions actuelles.
  • Les modèles d'administration Office (ADMX/ADML) du Centre de téléchargement Microsoft, copiés dans le magasin central. La plupart des paramètres se trouvent sous User Configuration, car la stratégie Office s'applique par utilisateur.
  • À défaut, le service Cloud Policy (config.office.com) ou le catalogue de paramètres d'Intune, qui exposent les mêmes paramètres et suivent l'utilisateur sur les appareils non gérés.

Le référentiel de sécurité Microsoft 365 Apps du Security Compliance Toolkit contient l'essentiel de ce qui suit ; comparez-le avec votre état actuel avant de l'importer.

Étape 1 : bloquer explicitement les macros provenant d'Internet

Pour Word, Excel, PowerPoint, Access et Visio, définissez :

User Configuration > Policies > Administrative Templates > Microsoft Word 2016 > Word Options > Security > Trust Center > Block macros from running in Office files from the Internet = Enabled

Les chemins sont identiques pour les autres applications (Microsoft Excel 2016 > Excel Options > Security > Trust Center, etc.). La valeur de registre est :

Text
HKCU\Software\Policies\Microsoft\Office\16.0\<app>\Security
  blockcontentexecutionfrominternet   REG_DWORD 1

Le blocage repose sur la Mark of the Web, le flux de données alternatif Zone.Identifier posé par les navigateurs et les clients de messagerie. Deux conséquences :

  • N'ajoutez pas de domaines larges, votre locataire SharePoint ou vos serveurs de fichiers à la zone Sites de confiance simplement pour faire fonctionner une application. Les fichiers provenant de zones de confiance sont exemptés.
  • Les fichiers atteints via un chemin UNC par adresse IP ou FQDN peuvent être traités comme appartenant à la zone Internet. Corrigez la liste de sites de la zone Intranet local au lieu d'affaiblir la stratégie.

Étape 2 : définir une valeur VBA stricte par défaut

Trust Center > VBA Macro Notification Settings = Enabled, Disable all except digitally signed macros (ou Disable all without notification là où personne n'a besoin de macros). Valeur de registre VBAWarnings :

ValeurSignification
1Activer toutes les macros (jamais)
2Tout désactiver avec notification (l'utilisateur peut cliquer sur Activer)
3Tout désactiver sauf les macros signées numériquement
4Tout désactiver sans notification

Pour que les macros signées s'exécutent, signez-les avec un certificat de signature de code et déployez celui-ci dans le magasin Trusted Publishers via Computer Configuration > Policies > Windows Settings > Security Settings > Public Key Policies > Trusted Publishers. Définissez aussi Trust Center > Turn off trusted documents = Enabled, pour qu'un utilisateur qui a cliqué une fois sur Activer le contenu ne fasse pas confiance à ce fichier de façon permanente.

Étape 3 : supprimer les macros XLM et analyser le VBA avec AMSI

Les macros Excel 4.0 sont antérieures au VBA, se logent dans des feuilles masquées et ont contourné de nombreux contrôles pendant des années. Définissez :

Microsoft Excel 2016 > Excel Options > Security > Trust Center > Prevent Excel from running XLM macros = Enabled (valeur de registre XL4MacroOff = 1 sous ...\16.0\Excel\Security).

Permettez ensuite à Defender (ou à tout antivirus compatible AMSI) de voir le comportement des macros à l'exécution :

Microsoft Office 2016 > Security Settings > Macro Runtime Scan Scope = Enable for all documents (valeur de registre MacroRuntimeScanScope = 2 sous HKCU\Software\Policies\Microsoft\Office\16.0\Common\Security).

Sans cela, l'analyse AMSI du VBA ne s'applique qu'aux documents de moindre confiance. Voir AMSI pour le fonctionnement de l'interface.

Étape 4 : garder le mode protégé actif

Le mode protégé ouvre les fichiers à risque en lecture seule dans un bac à sable. Tous les paramètres sous Trust Center > Protected View sont formulés en « Do not... » ou « Turn off... » : la valeur sécurisée est donc Disabled :

ParamètreValeur sécurisée
Do not open files from the Internet zone in Protected ViewDisabled
Do not open files in unsafe locations in Protected ViewDisabled
Turn off Protected View for attachments opened from OutlookDisabled
Set document behavior if file validation failsEnabled, Open in Protected View, sans autoriser la modification

Sous Trust Center > File Block Settings, bloquez l'ouverture des anciens formats binaires que plus personne n'utilise (documents Word 2 et antérieurs, classeurs et feuilles macro Excel 4, et autres formats antérieurs à 97). Ils n'existent plus guère que pour les attaquants.

Étape 5 : compléments, emplacements approuvés et ActiveX

  • Require that application add-ins are signed by Trusted Publisher = Enabled, avec Disable Trust Bar Notification for unsigned application add-ins and block them = Enabled. Inventoriez d'abord les compléments COM et VSTO (Fichier > Options > Compléments sur un échantillon de machines, ou votre inventaire logiciel) ; les compléments internes non signés doivent être signés avant l'application.
  • Emplacements approuvés : définissez Allow Trusted Locations on the network = Disabled et supprimez les emplacements accessibles en écriture par les utilisateurs. Une macro située dans un emplacement approuvé s'exécute sans invite et sans vérification de la Mark of the Web : un emplacement approuvé où les utilisateurs peuvent écrire est donc un contournement.
  • Disable All ActiveX sous Microsoft Office 2016 > Security Settings = Enabled là où aucun contrôle ActiveX n'est utilisé dans les documents.

Étape 6 : packages OLE et DDE

Les objets OLE Package incorporés permettent à un document de transporter un script ou un exécutable qui s'exécute au double-clic. Bloquez leur activation par application :

Text
HKCU\Software\Microsoft\Office\16.0\Word\Security
  PackagerPrompt   REG_DWORD 2   (0 = run without prompt, 1 = prompt, 2 = do not run)

Définissez la même valeur pour Excel et PowerPoint. Déployez-la par préférences de stratégie de groupe ou Intune si votre version des modèles ne propose pas de paramètre ADMX correspondant.

Pour DDE, réglez Don't allow Dynamic Data Exchange (DDE) server launch in Excel et Don't allow Dynamic Data Exchange (DDE) server lookup in Excel sur Enabled. Dans Word, définissez AllowDDE = 0 (REG_DWORD sous HKCU\Software\Microsoft\Office\16.0\Word\Security), ce qui désactive DDE et constitue la valeur par défaut depuis la mise à jour de décembre 2017 ; 1 n'autorise DDE que vers des programmes déjà en cours d'exécution et 2 l'autorise entièrement. Imposez 0 pour que personne ne le réactive.

Outlook dispose de son propre paramètre de macros (Microsoft Outlook 2016 > Security > Trust Center > Security setting for macros). Réglez-le pour avertir sur les macros signées et désactiver les non signées, ou pour ne jamais avertir et tout désactiver.

Étape 7 : identifier la dépendance aux macros avant d'imposer

L'essentiel des difficultés de ce projet vient de l'ignorance de qui utilise des macros. Avant d'imposer le VBA signé uniquement, recherchez les fichiers prenant en charge les macros sur les partages et dans les bibliothèques OneDrive ou SharePoint réellement utilisées par les équipes métier :

PowerShell
Get-ChildItem -Path \\fs01\Departments -Recurse -Include *.xlsm, *.xlam, *.xls, *.docm, *.dotm, *.pptm -ErrorAction SilentlyContinue |
  Group-Object { $_.Directory.FullName } |
  Sort-Object Count -Descending |
  Select-Object Count, Name -First 50

Triez les résultats par dossier et par date de dernière modification. Les fichiers inchangés depuis des années relèvent de l'archive, pas du blocage. Les dossiers actifs vous donnent les noms des équipes à rencontrer : elles font signer leurs macros, les déplacent vers un emplacement approuvé contrôlé ou les remplacent par un outil pris en charge. Notez que les fichiers .xls peuvent eux aussi contenir du VBA : l'extension seule ne prouve rien ; cette liste est un point de départ pour les échanges, pas un inventaire.

Pendant ce temps, imposez immédiatement le blocage des macros d'Internet et la désactivation de XLM. Ils ne cassent presque jamais le travail légitime et ferment le vecteur de livraison le plus courant.

Ce qui casse

  • Les classeurs de partenaires qui reposent sur des macros s'ouvrent désormais sans elles. Demandez au propriétaire de les signer, ou ouvrez-les depuis un emplacement approuvé contrôlé.
  • Les anciens modèles Excel avec des fonctions XLM cessent de calculer. Recherchez sur les partages les fichiers .xlm et les classeurs comportant des feuilles macro avant d'imposer.
  • Les compléments COM non signés (connecteurs CRM, outils PDF) sont bloqués une fois la signature exigée. Obtenez d'abord des versions signées.
  • Les modèles de documents sur un partage réseau utilisés comme emplacements approuvés cessent de fonctionner quand les emplacements approuvés réseau sont désactivés. Déplacez-les vers SharePoint ou vers un chemin local réservé aux administrateurs.
  • Les contrôles ActiveX dans les formulaires ne se chargent plus.

Menez un pilote avec l'informatique et une équipe métier pendant deux semaines, recueillez les réclamations, corrigez-les à la source, puis élargissez.

Vérifier

Sur un appareil pilote, en tant qu'utilisateur :

PowerShell
$base = "HKCU:\Software\Policies\Microsoft\Office\16.0"
foreach ($app in "Word","Excel","PowerPoint") {
  Get-ItemProperty "$base\$app\Security" -ErrorAction SilentlyContinue |
    Select-Object @{n='App';e={$app}}, blockcontentexecutionfrominternet, VBAWarnings, RequireAddinSig
}
Get-ItemProperty "$base\Excel\Security" -Name XL4MacroOff -ErrorAction SilentlyContinue
Get-ItemProperty "$base\Common\Security" -Name MacroRuntimeScanScope -ErrorAction SilentlyContinue

Si vous utilisez Cloud Policy, les valeurs se trouvent plutôt sous HKCU\Software\Policies\Microsoft\Cloud\Office\16.0. Testez ensuite le fonctionnement : téléchargez depuis Internet un document inoffensif contenant des macros et vérifiez que le bandeau rouge Risque de sécurité apparaît sans bouton Activer le contenu. Côté Defender, les détections AMSI sur le contenu des macros apparaissent comme des détections ordinaires (événement 1116) dans le journal Defender Operational.

Liste de contrôle

  • Modèles ADMX Office à jour, ou Cloud Policy / catalogue de paramètres Intune utilisé
  • Blocage des macros d'Internet activé pour Word, Excel, PowerPoint, Access et Visio
  • VBA réglé sur signé uniquement ou désactivé ; documents approuvés désactivés
  • Macros XLM désactivées ; Macro Runtime Scan Scope = tous les documents
  • Tous les paramètres du mode protégé à leur valeur sécurisée ; anciens formats bloqués
  • Compléments soumis à signature ; aucun emplacement approuvé réseau ou accessible en écriture par les utilisateurs
  • Activation des packages OLE et DDE bloquée
  • Règles ASR Office appliquées en complément

Questions fréquentes

Microsoft ne bloque-t-il pas déjà par défaut les macros provenant d'Internet ?

Si : les versions actuelles de Microsoft 365 Apps bloquent les macros VBA dans les fichiers portant la Mark of the Web pour Word, Excel, PowerPoint, Access et Visio. Mais ce comportement par défaut n'est pas une stratégie : des utilisateurs et des builds plus anciennes peuvent encore finir par les autoriser. Définir explicitement la stratégie rend le blocage applicable, mesurable et cohérent sur tous les canaux.

Notre équipe financière a besoin de macros. Quelle est la façon la plus sûre de les autoriser ?

Signez les macros avec un certificat de signature de code, déployez ce certificat comme éditeur approuvé et réglez la notification des macros VBA sur la désactivation de toutes les macros sauf celles signées numériquement. Si la signature est impossible, utilisez un seul emplacement approuvé, étroitement contrôlé, sur un partage où les utilisateurs ordinaires ne peuvent pas écrire, plutôt que d'autoriser les macros partout.

Ces paramètres remplacent-ils les règles ASR pour Office ?

Non, ils les complètent. La stratégie Office empêche une macro de s'exécuter ; les règles ASR limitent ce que peut faire une macro qui s'exécute malgré tout, comme lancer des processus enfants ou appeler des API Win32. Configurez les deux, car utilisateurs et attaquants trouvent régulièrement des moyens de contourner une couche.

Durcir Microsoft Office : macros, OLE et compléments

Guides associés

Réduction de la surface d'attaque

Durcir Microsoft Edge par stratégie de groupe et Intune

Durcir Microsoft Edge par stratégie : SmartScreen imposé, liste d'extensions autorisées, sécurité renforcée, restrictions de téléchargement et mises à jour forcées.

Fondamental
Réduction de la surface d'attaque

Règles ASR : GUID et déploiement sans risque

Référence pratique des règles ASR de Microsoft Defender : ce que bloque chaque règle, son GUID, l'ordre d'activation, le mode audit, les événements et les exclusions.

Fondamental