<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>XLSX vs. XLSM on File Format Blog</title>
    <link>https://blog.fileformat.com/fr/tag/xlsx-vs.-xlsm/</link>
    <description>Recent content in XLSX vs. XLSM on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>fr</language>
    <lastBuildDate>Mon, 28 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/fr/tag/xlsx-vs.-xlsm/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Sécurité des fichiers Excel expliquée : XLSX, XLSM et risques de macros</title>
      <link>https://blog.fileformat.com/fr/spreadsheet/excel-file-security-explained-xlsx-xlsm-and-macro-risks/</link>
      <pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/fr/spreadsheet/excel-file-security-explained-xlsx-xlsm-and-macro-risks/</guid>
      <description>Comprenez les véritables différences de sécurité entre les fichiers XLSX et XLSM, le fonctionnement des attaques basées sur les macros, et comment protéger votre organisation contre les feuilles de calcul malveillantes.</description>
      <content:encoded><![CDATA[<p><strong>Dernière mise à jour</strong> : 28 sept. 2026</p>
<figure class="align-center ">
    <img loading="lazy" src="images/excel-file-security-explained-xlsx-xlsm-and-macro-risks.png#center"
         alt="XLSX vs. XLSM Security: How Spreadsheet Macros Expose Your Network"/> 
</figure>

<h2 id="sécurité-des-fichiers-excel-expliquée--xlsx-xlsm-et-risques-de-macros">Sécurité des fichiers Excel expliquée : XLSX, XLSM et risques de macros</h2>
<p>Depuis des décennies, Microsoft Excel est le moteur universel des opérations commerciales. Il équilibre les budgets d&rsquo;entreprise, visualise des ensembles de données complexes, suit les stocks et alimente les pipelines analytiques dans pratiquement tous les secteurs.</p>
<p>Pourtant, cette même flexibilité computationnelle fait des feuilles de calcul un favori durable des cyber‑adversaires. Les attaquants utilisent les feuilles de calcul comme arme depuis les débuts des virus macro à la fin des années 1990. Bien que Microsoft et les administrateurs système aient introduit plusieurs couches de défense — comme la ségrégation des formats de fichiers et le blocage par défaut des macros — l&rsquo;ingénierie sociale et les risques architecturaux subtils continuent de maintenir les attaques ciblant Excel pertinentes.</p>
<p>Pour établir une posture de sécurité résiliente, les développeurs, les administrateurs et les utilisateurs avancés doivent regarder au‑delà de l’interface du classeur. Comprendre le fonctionnement du format OpenXML sous‑jacent, la différence architecturale entre les fichiers <code>.xlsx</code> et <code>.xlsm</code>, ainsi que les mécanismes d’exécution des macros est essentiel pour protéger les points de terminaison modernes.</p>
<h2 id="1-anatomie-des-fichiers-excel-modernes--openxml-décomposé">1. Anatomie des fichiers Excel modernes : OpenXML décomposé</h2>
<p>Avant la sortie de Microsoft Office 2007, Excel enregistrait les fichiers principalement au moyen de formats binaires propriétaires, notamment le format <code>.xls</code> (régis par le Binary Interchange File Format, ou BIFF8). Dans les fichiers <code>.xls</code>, les enregistrements de données, les définitions de mise en forme, les formules et les flux de macros Visual Basic for Applications (VBA) étaient regroupés dans un seul conteneur de stockage structuré. Cela rendait l’inspection programmatique difficile et permettait aux attaquants de dissimuler des scripts de charge utile malveillants à l’intérieur de secteurs binaires opaques.</p>
<p>À partir d’Excel 2007, Microsoft a introduit la norme <strong>Office Open XML (OOXML)</strong> (normalisée sous les références ECMA-376 et ISO/IEC 29500). Avec OOXML, les classeurs Excel ne sont plus de simples blocs binaires monolithiques. Ils sont plutôt des archives compressées contenant une structure hiérarchique de documents XML, de tables de relations et de ressources multimédias intégrées.</p>
<h3 id="à-lintérieur-du-conteneur-zip">À l&rsquo;intérieur du conteneur ZIP</h3>
<p>Si vous prenez n&rsquo;importe quel classeur Excel moderne standard et que vous renommez son extension en <code>.zip</code>, vous pouvez extraire son contenu avec n&rsquo;importe quel utilitaire de décompression standard :</p>
<pre tabindex="0"><code>my_workbook.xlsx (extracted)
│
├── [Content_Types].xml        &lt;-- Registry of MIME types and structural parts
├── _rels/                     &lt;-- Package-level relationship mappings
│   └── .rels
├── docProps/                  &lt;-- Metadata (author, creation date, revision)
│   ├── app.xml
│   └── core.xml
└── xl/                        &lt;-- Core spreadsheet contents
    ├── workbook.xml           &lt;-- Workbook-level parameters and sheet list
    ├── styles.xml             &lt;-- Cell styles, fonts, and borders
    ├── sharedStrings.xml      &lt;-- Unique string index for performance optimization
    ├── _rels/
    │   └── workbook.xml.rels  &lt;-- Sheet and component dependencies
    └── worksheets/
        ├── sheet1.xml         &lt;-- Raw cell values, formulas, and grid geometry
        └── sheet2.xml
</code></pre><p>Ce changement structurel a apporté des avantages de sécurité immédiats :</p>
<ol>
<li><strong>DPI (Inspection Profonde des Paquets) &amp; Visibilité de la Passerelle :</strong> Les appareils de sécurité, les proxys et les agents de point de terminaison peuvent décompresser l&rsquo;archive à la volée et analyser les arbres XML en texte clair pour identifier des chaînes suspectes, des URL externes ou des objets intégrés.</li>
<li><strong>Validation Déterministe des Fichiers :</strong> Si un fichier prétend être un document OpenXML mais enfreint les contraintes du schéma, Excel refuse de l&rsquo;ouvrir ou l&rsquo;exécute en mode de récupération sandboxé.</li>
<li><strong>Séparation des Formats :</strong> Microsoft a dissocié les feuilles de calcul computationnelles classiques des fichiers capables d&rsquo;exécuter des scripts procéduraux intégrés.</li>
</ol>
<h2 id="2-xlsx1-vs-xlsm7-la-frontière-architecturale">2. <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> vs. <a href="https://docs.fileformat.com/spreadsheet/xlsm/">XLSM</a> : La frontière architecturale</h2>
<p>La distinction principale entre <code>.xlsx</code> et <code>.xlsm</code> réside dans le fait que la structure du fichier autorise ou non l&rsquo;inclusion de projets de macros exécutables.</p>
<table>
<thead>
<tr>
<th style="text-align:left">Fonctionnalité / Dimension</th>
<th style="text-align:left"><code>.xlsx</code> (Feuille de calcul Excel OpenXML)</th>
<th style="text-align:left"><code>.xlsm</code> (Feuille de calcul Excel avec macros)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>Type de contenu MIME</strong></td>
<td style="text-align:left"><code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></td>
<td style="text-align:left"><code>application/vnd.ms-excel.sheet.macroEnabled.12</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>Conteneur de stockage VBA</strong></td>
<td style="text-align:left"><strong>Strictement interdit.</strong> Impossible de stocker <code>vbaProject.bin</code></td>
<td style="text-align:left"><strong>Autorisé.</strong> Contient <code>xl/vbaProject.bin</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>Risque d&rsquo;exécution native</strong></td>
<td style="text-align:left">Négligeable pour l&rsquo;exécution de macros ; limité à l&rsquo;injection de formules/DDE</td>
<td style="text-align:left">Élevé ; peut exécuter du code VBA automatisé lors de l&rsquo;interaction avec le classeur</td>
</tr>
<tr>
<td style="text-align:left"><strong>Schéma OpenXML Strict</strong></td>
<td style="text-align:left">Conforme aux définitions XML strictes, sans macro</td>
<td style="text-align:left">Inclut les définitions des extensions d&rsquo;automatisation héritées et modernes</td>
</tr>
<tr>
<td style="text-align:left"><strong>Indicateur visuel utilisateur</strong></td>
<td style="text-align:left">Icône de feuille de calcul verte standard</td>
<td style="text-align:left">Icône de feuille de calcul marquée d&rsquo;un point d&rsquo;exclamation</td>
</tr>
</tbody>
</table>
<h3 id="le-mécanisme-dapplication-pourquoi-le-xlsx-ne-peut-pas-exécuter-de-macros">Le mécanisme d&rsquo;application : pourquoi le XLSX ne peut pas exécuter de macros</h3>
<p>Une question fréquente parmi les administrateurs et développeurs juniors est : <em>Que se passe-t-il si un attaquant prend un fichier <code>.xlsm</code> malveillant, y injecte du code exécutable et renomme l&rsquo;extension du fichier en <code>.xlsx</code> ?</em></p>
<p>La réponse courte : <strong>Le fichier n&rsquo;exécutera pas la macro.</strong></p>
<p>Excel ne se base pas exclusivement sur l&rsquo;extension du fichier pour déterminer les règles d&rsquo;exécution. Lors de l&rsquo;ouverture d&rsquo;un fichier nommé <code>.xlsx</code> :</p>
<ol>
<li>Excel inspecte le contenu zip et fait référence à <code>[Content_Types].xml</code>.</li>
<li>Dans un fichier <code>.xlsx</code> authentique, tous les types de contenu définis représentent des éléments de données standard (comme <code>worksheet</code>, <code>sharedStrings</code> ou <code>styles</code>).</li>
<li>Si un attaquant injecte manuellement un flux VBA compilé (<code>xl/vbaProject.bin</code>) dans un package <code>.xlsx</code> et met à jour les relations, Excel rencontre une contradiction explicite du schéma :
<ul>
<li>Il voit une extension <code>.xlsx</code> liée à des types de contenu indiquant la capacité de macro.</li>
<li>Excel génère une erreur d&rsquo;intégrité fatale : <em>&ldquo;Excel ne peut pas ouvrir le fichier &lsquo;filename.xlsx&rsquo; car le format du fichier ou son extension n&rsquo;est pas valide. Vérifiez que le fichier n&rsquo;a pas été corrompu&hellip;&rdquo;</em></li>
</ul>
</li>
<li>Si l&rsquo;attaquant laisse les types internes intacts sans enregistrer le binaire, Excel considère <code>vbaProject.bin</code> comme une pièce jointe non référencée et orpheline dans l&rsquo;archive zip et la supprime entièrement pendant le cycle de chargement.</li>
</ol>
<p>En conséquence, <strong>un fichier fonctionnant strictement comme un véritable conteneur <code>.xlsx</code> ne peut pas exécuter de code VBA natif.</strong> Cependant, cela ne signifie pas que les fichiers <code>.xlsx</code> sont exempts de tous les vecteurs d&rsquo;attaque, comme exploré plus loin dans ce guide.</p>
<h2 id="3-risques-des-macros--le-cycle-dattaque">3. Risques des macros &amp; le cycle d&rsquo;attaque</h2>
<p>Les macros ont été conçues pour automatiser des tâches répétitives de comptabilité, de modélisation financière et de manipulation de données via Visual Basic for Applications (VBA). Parce que VBA a été créé pour l&rsquo;automatisation en milieu professionnel, il bénéficie d&rsquo;un accès étendu au système d&rsquo;exploitation Windows sous-jacent via le Component Object Model (COM), Windows Script Host (WSH) et les appels directs à l&rsquo;API Win32.</p>
<p>Lorsqu&rsquo;une macro non fiable s&rsquo;exécute, elle fonctionne avec les <strong>exactes mêmes privilèges que l&rsquo;utilisateur connecté</strong>. Elle n&rsquo;est pas confinée dans un bac à sable de navigateur virtualisé de type JavaScript.</p>
<pre tabindex="0"><code>+--------------------------------------------------------------------------------+
|                             ATTACK LIFECYCLE                                   |
+--------------------------------------------------------------------------------+
                                       │
                                       ▼
  [ Delivery &amp; Evasion ]  ──────► Spear-phishing email with .xlsm, .xlam, or .zip.
                                       │
                                       ▼
  [ Social Engineering ]  ──────► Lures victim to bypass Protected View (&#34;Enable Content&#34;).
                                       │
                                       ▼
  [ Auto-Execution ]      ──────► Auto_Open() or Workbook_Open() triggers automatically.
                                       │
                                       ▼
  [ System Invocation ]   ──────► VBA creates COM objects (WScript.Shell, WinHttp.WinHttpRequest).
                                       │
                                       ▼
  [ Payload Retrieval ]   ──────► Spawns hidden PowerShell/cURL to fetch staging binary.
                                       │
                                       ▼
  [ Post-Exploitation ]   ──────► In-memory execution, credential theft, lateral movement.
</code></pre><h3 id="techniques-courantes-dintrusion-de-macros">Techniques courantes d&rsquo;intrusion de macros</h3>
<ol>
<li>
<p><strong>Crochets d&rsquo;auto-exécution :</strong>
Les attaquants placent leur point d’entrée dans les gestionnaires d’événements intrinsèques tels que <code>Sub Auto_Open()</code> ou <code>Private Sub Workbook_Open()</code>. Dès que l’utilisateur accorde les autorisations d’exécution, ces routines se déclenchent sans nécessiter de clics dans la feuille de calcul.</p>
</li>
<li>
<p><strong>Obfuscation et Stomping :</strong></p>
<ul>
<li><strong>Obfuscation de chaînes :</strong> Les charges utiles cachent les URL et les appels système en utilisant des tableaux de caractères, le codage XOR, le décodage Base64 ou la concaténation de variables d’environnement (par ex., <code>Chr(112) &amp; Chr(111) &amp; Chr(119)...</code>).</li>
<li><strong>VBA Stomping :</strong> Le VBA existe sous deux formes dans <code>vbaProject.bin</code> : le code source interprété et le p‑code compilé (pseudo‑code ciblant la version spécifique d’Office qui l’a compilé). Les attaquants peuvent effacer complètement le code source en clair, ne laissant que le p‑code compilé. De nombreuses solutions antivirus de base et les analyseurs statiques n’inspectent que le flux source, laissant le p‑code non détecté jusqu’à ce qu’il soit exécuté par une version d’Office correspondante.</li>
</ul>
</li>
<li>
<p><strong>Living off the Land (LotL) :</strong>
Les macros malveillantes modernes déposent rarement un fichier <code>.exe</code> directement sur le disque, ce qui alerterait immédiatement les agents de détection et de réponse des points de terminaison (EDR). À la place, elles interagissent avec les outils système intégrés :</p>
<ul>
<li>Instanciation de <code>WScript.Shell</code> pour exécuter des arguments en ligne de commande.</li>
<li>Invocation de <code>PowerShell.exe</code> avec contournement de la stratégie d&rsquo;exécution (<code>-ExecutionPolicy Bypass -WindowStyle Hidden</code>).</li>
<li>Appeler les API Win32 natives via <code>Declare PtrSafe Function CreateProcess</code> ou <code>VirtualAlloc</code> pour injecter du shellcode directement dans la mémoire système.</li>
</ul>
</li>
</ol>
<h2 id="4-autres-vecteurs-de-menace-des-feuilles-de-calcul-audelà-du-vba-standard">4. Autres vecteurs de menace des feuilles de calcul (au‑delà du VBA standard)</h2>
<p>Sécuriser un environnement contre les fichiers <code>.xlsm</code> n&rsquo;est que la moitié du combat. Les adversaires utilisent également des mécanismes qui fonctionnent indépendamment du VBA traditionnel.</p>
<h3 id="échange-dynamique-de-données-dde-et-injection-de-csv11">Échange dynamique de données (DDE) et injection de <a href="https://docs.fileformat.com/spreadsheet/csv/">CSV</a></h3>
<p>Excel propose un protocole hérité appelé Dynamic Data Exchange (DDE), conçu pour permettre le partage de données entre applications en cours d&rsquo;exécution (par exemple, diffuser en temps réel des données de cours boursiers depuis un programme séparé vers une cellule Excel).</p>
<ul>
<li><strong>Comment fonctionne l&rsquo;injection de formules :</strong>
Lorsqu&rsquo;une cellule de feuille de calcul commence par des caractères tels que <code>=</code>, <code>@</code>, <code>+</code> ou <code>-</code>, Excel interprète le contenu comme une formule. Si un attaquant contrôle les données exportées vers une feuille de calcul (par exemple, un champ &ldquo;Commentaires&rdquo; non désinfecté dans une application web exporté en CSV ou XLSX), il peut injecter :
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>=cmd|&#39;/C powershell.exe -w hidden -enc &lt;base64_payload&gt;&#39;!A0
</span></span></code></pre></div></li>
<li>Lors de l&rsquo;ouverture, Excel évalue la formule, alerte l&rsquo;utilisateur avec une invite concernant le lancement d&rsquo;une application externe et, si elle est approuvée, exécute le shell système.</li>
</ul>
<h3 id="macros-héritées-dexcel-40-xlm">Macros héritées d&rsquo;Excel 4.0 (XLM)</h3>
<p>Avant l&rsquo;introduction de VBA en 1993, Excel utilisait un système de macros basé sur des formules appelé <strong>macros Excel 4.0 (XLM)</strong>. Ces macros résident dans des feuilles de macro dédiées plutôt que dans un projet VBA séparé.</p>
<p>Comme les macros XLM sont écrites sous forme de formules de cellule (par exemple <code>=EXEC(&quot;calc.exe&quot;)</code>), elles contournent de nombreux moteurs d&rsquo;inspection statique VBA standard. Les attaquants ont privilégié les macros XLM à la fin des années 2010 et au début des années 2020 pour échapper à la détection automatisée avant que Microsoft ne les désactive par défaut dans les versions d&rsquo;entreprise modernes.</p>
<h3 id="connexions-externes-malveillantes-et-objets-ole">Connexions externes malveillantes et objets OLE</h3>
<p>Un classeur <code>.xlsx</code> ordinaire peut encore présenter un risque via des ressources externes :</p>
<ul>
<li><strong>Packages OLE intégrés :</strong> Un attaquant peut insérer un exécutable déguisé en icône PDF intégrée directement dans la feuille de calcul.</li>
<li><strong>Liens externes de classeur &amp; requêtes Web :</strong> Un XLSX peut contenir des références externes qui déclenchent automatiquement des requêtes HTTP GET vers des serveurs de commandement et contrôle (C2) contrôlés par l&rsquo;attaquant lors de l&rsquo;ouverture du fichier, principalement utilisées pour la reconnaissance ou les attaques de collecte de hachages netNTLM.</li>
</ul>
<h2 id="5-renforcement-dentreprise-et-stratégies-de-défense-en-profondeur">5. Renforcement d’entreprise et stratégies de défense en profondeur</h2>
<p>Se défendre contre les menaces provenant d&rsquo;Excel nécessite une approche en couches couvrant l&rsquo;inspection réseau, la configuration du système, les contrôles d&rsquo;accès et les processus opérationnels.</p>
<pre tabindex="0"><code>+─────────────────────────────────────────────────────────+
|                  ENTERPRISE DEFENSE LAYERS               |
+─────────────────────────────────────────────────────────+
|  PERIMETER: Drop inbound .xlsm, .xla, and .xltm at mail |
|  gateway unless cryptographically signed or exempted.   |
+---------------------------------------------------------+
|  IDENTITY &amp; POLICY: Enforce ASR rules and apply         |
|  Mark of the Web (MotW) macro execution blocks.         |
+---------------------------------------------------------+
|  RUNTIME: Hook AMSI into Office to evaluate dynamic     |
|  VBA buffers directly before execution.                 |
+---------------------------------------------------------+
|  STORAGE: Restrict macro execution exclusively to       |
|  managed, centralized Trusted Locations.                |
+─────────────────────────────────────────────────────────+
</code></pre><h3 id="1-appliquer-le-marquage-du-web-motw-pour-le-blocage-des-macros">1. Appliquer le Marquage du Web (MotW) pour le blocage des macros</h3>
<p>En 2022, Microsoft a mis à jour le comportement par défaut des applications Office : les macros dans les fichiers provenant d’Internet sont <strong>bloquées par défaut</strong>.</p>
<p>Lorsque qu’un utilisateur télécharge un fichier via un navigateur ou un client externe, Windows étiquette le fichier avec un flux de données alternatif (ADS) nommé <code>Zone.Identifier</code> (la zone 3 indique Internet). Pour les fichiers portant cette marque, Excel désactive complètement les macros et affiche une bannière de sécurité rouge : &gt; <em>&ldquo;RISQUE DE SÉCURITÉ : Microsoft a bloqué l’exécution des macros car la source de ce fichier n’est pas fiable.&rdquo;</em></p>
<p><strong>Action administrative :</strong> Assurez-vous que ce comportement est appliqué via la stratégie de groupe et ne peut pas être contourné par les utilisateurs finaux :</p>
<ul>
<li><strong>Chemin GPO :</strong> <code>User Configuration &gt; Administrative Templates &gt; Microsoft Excel 2016 &gt; Excel Options &gt; Security &gt; Trust Center</code></li>
<li><strong>Paramètre :</strong> Activez <em>&ldquo;Bloquer l’exécution des macros dans les fichiers Office provenant d’Internet&rdquo;</em>.</li>
</ul>
<h3 id="2-configurer-les-règles-de-réduction-de-la-surface-dattaque-asr">2. Configurer les règles de réduction de la surface d’attaque (ASR)</h3>
<p>Les organisations utilisant Microsoft Defender for Endpoint devraient activer les règles principales de réduction de la surface d’attaque conçues spécifiquement pour les applications Office :</p>
<ul>
<li><code>Bloquer les applications Office de créer des processus enfants</code> (GUID : <code>D4F940AB-401B-4EFC-AADC-AD5F3C50688A</code>)
<ul>
<li><em>Empêche Excel de lancer PowerShell, CMD ou des moteurs de script.</em></li>
</ul>
</li>
<li><code>Bloquer les applications Office d’injecter du code dans d’autres processus</code> (GUID: <code>75668C1F-73B5-4CF0-BB93-3ECF5CB7CC84</code>)</li>
<li><code>Bloquer les appels API Win32 des macros Office</code> (GUID: <code>92E6390C-CF9E-43CE-BD8C-0E6F0FE66680</code>)</li>
</ul>
<h3 id="3-exploiter-linterface-de-numérisation-antimalware-amsi">3. Exploiter l’interface de numérisation antimalware (AMSI)</h3>
<p>Les versions modernes de Microsoft 365 intègrent l’exécution VBA directement avec AMSI. Même si un attaquant applique une obfuscation de chaînes complexe ou du « VBA stomping », le moteur d’exécution VBA transmet les commandes reconstruites et non chiffrées à votre moteur antivirus/EDR installé à la milliseconde exacte précédant l’exécution. Assurez-vous que votre protection des points de terminaison surveille activement les événements d’exécution AMSI.</p>
<h3 id="4-passer-aux-emplacements-de-confiance-et-aux-certificats-numériques">4. Passer aux emplacements de confiance et aux certificats numériques</h3>
<p>Pour les organisations qui dépendent de feuilles de calcul automatisées pour leurs opérations quotidiennes :</p>
<ul>
<li><strong>Éliminer les fichiers XLSM non contrôlés dans les dossiers Téléchargements ou Bureau des utilisateurs.</strong></li>
<li><strong>Utiliser les emplacements de confiance :</strong> Restreindre l’exécution des macros exclusivement aux partages réseau en lecture seule gérés par les administrateurs informatiques.</li>
<li><strong>Signature de code :</strong> Obliger toutes les macros développées en interne à être signées cryptographiquement à l’aide d’un certificat délivré par une infrastructure à clé publique (PKI) d’entreprise. Configurer Excel pour exécuter <strong>uniquement</strong> les macros signées numériquement et bloquer silencieusement les non signées.</li>
</ul>
<h2 id="6-perspective-du-développeur-créer-une-automatisation-sécurisée">6. Perspective du développeur : créer une automatisation sécurisée</h2>
<p>Si vous développez un logiciel qui analyse, génère ou consomme des fichiers Excel (par exemple, des pipelines Python utilisant <code>pandas</code>/<code>openpyxl</code>, des microservices Node.js ou des applications C#/.NET), appliquez ces mesures de sécurité de développement :</p>
<ol>
<li>
<p><strong>Rejeter les formats de fichiers inattendus à la frontière de téléchargement :</strong>
Si votre application attend des rapports financiers, validez strictement que les fichiers entrants sont conformes à <code>.xlsx</code>. Inspectez les octets magiques internes (l’en-tête zip standard <code>50 4B 03 04</code>) et vérifiez qu’aucune entrée <code>vbaProject.bin</code> n’existe dans l’index de l’archive avant de les enregistrer dans des buckets cloud ou des bases de données.</p>
</li>
<li>
<p><strong>Assainir les données contre l’injection de formules :</strong>
Lors de l’exportation d’entrées générées par les utilisateurs vers des fichiers CSV ou XLSX, préfixez d’une apostrophe (<code>'</code>) ou d’un espace toute cellule commençant par des caractères dangereux (<code>=</code>, <code>+</code>, <code>-</code>, <code>@</code>, <code>\t</code>, <code>\r</code>) :</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">def</span> <span style="color:#a6e22e">sanitize_for_spreadsheet</span>(value: str) <span style="color:#f92672">-&gt;</span> str:
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> value <span style="color:#f92672">and</span> value[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">in</span> (<span style="color:#e6db74">&#39;=&#39;</span>, <span style="color:#e6db74">&#39;+&#39;</span>, <span style="color:#e6db74">&#39;-&#39;</span>, <span style="color:#e6db74">&#39;@&#39;</span>, <span style="color:#e6db74">&#39;</span><span style="color:#ae81ff">\t</span><span style="color:#e6db74">&#39;</span>, <span style="color:#e6db74">&#39;</span><span style="color:#ae81ff">\r</span><span style="color:#e6db74">&#39;</span>):
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">return</span> <span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;&#39;</span><span style="color:#e6db74">{</span>value<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">return</span> value
</span></span></code></pre></div></li>
<li>
<p><strong>Migrer de VBA vers Office Scripts ou des compléments Web :</strong>
Pour une automatisation d’entreprise moderne, éliminez complètement le VBA hérité :</p>
<ul>
<li><strong>Office Scripts :</strong> Écrits en TypeScript, les Office Scripts s’exécutent dans un environnement cloud sandboxé et fonctionnent de manière fluide sur les éditions web et desktop sans exposer les appels système natifs de l’OS.</li>
<li><strong>Office Web Add-ins:</strong> Construit à l&rsquo;aide du HTML, CSS standard et du JavaScript moderne, les compléments Web communiquent via des API JavaScript gérées et sont isolés du système d&rsquo;exploitation local.</li>
</ul>
</li>
</ol>
<h2 id="7-liste-de-contrôle-récapitulative-pour-la-sécurité-des-feuilles-de-calcul">7. Liste de contrôle récapitulative pour la sécurité des feuilles de calcul</h2>
<ul>
<li><input disabled="" type="checkbox"> <strong>Appliquer <code>.xlsx</code> par défaut :</strong> Exiger que tous les flux de travail utilisateur standard enregistrent au format <code>.xlsx</code> sans macro.</li>
<li><input disabled="" type="checkbox"> <strong>Bloquer les macros d&rsquo;origine Internet :</strong> Confirmer que l&rsquo;application de la politique MotW est déployée dans votre organisation via GPO ou Intune.</li>
<li><input disabled="" type="checkbox"> <strong>Activer les règles ASR :</strong> Interdire aux produits Office de lancer des interprètes de commandes ou des processus enfants.</li>
<li><input disabled="" type="checkbox"> <strong>Déprécier Excel 4.0 (XLM) :</strong> S&rsquo;assurer que les moteurs de macros XLM hérités sont désactivés de façon permanente sur toutes les stations de travail.</li>
<li><input disabled="" type="checkbox"> <strong>Assainir les exportations d&rsquo;application :</strong> Protéger les routines de génération CSV et Excel contre les injections CSV/formules.</li>
<li><input disabled="" type="checkbox"> <strong>Passer aux Office Scripts :</strong> Faire migrer les macros administratives héritées vers des Office Scripts pilotés par TypeScript et des API gérées.</li>
</ul>
<p>En considérant les feuilles de calcul non seulement comme des fichiers documentaires, mais comme des conteneurs logiciels structurés dotés de capacités d&rsquo;exécution, les équipes de sécurité et les développeurs peuvent neutraliser efficacement l&rsquo;un des vecteurs d&rsquo;attaque les plus anciens de l&rsquo;informatique d&rsquo;entreprise.</p>
<h1 id="foire-aux-questions-faq">Foire aux questions (FAQ)</h1>
<h3 id="q1-un-fichier-se-terminant-par-xlsx-peutil-exécuter-une-macro-malveillante">Q1 : Un fichier se terminant par <code>.xlsx</code> peut‑il exécuter une macro malveillante ?</h3>
<p>Non, la norme OpenXML interdit strictement le code macro dans les fichiers <code>.xlsx</code>, et Excel rejettera ou supprimera tout projet VBA injecté dans un véritable conteneur <code>.xlsx</code>.</p>
<h3 id="q2-que-doisje-faire-si-un-fichier-excel-me-demande-dactiver-la-modification-ou-dactiver-le-contenu">Q2 : Que dois‑je faire si un fichier Excel me demande d&rsquo;« Activer la modification » ou d&rsquo;« Activer le contenu » ?</h3>
<p>N&rsquo;accordez les autorisations que si vous connaissez l&rsquo;expéditeur et attendiez le fichier ; cette invite est le point de contrôle principal qui permet aux macros non fiables d&rsquo;exécuter du code.</p>
<h3 id="q3-comment-microsoft-excel-déterminetil-si-un-fichier-provient-dinternet">Q3 : Comment Microsoft Excel détermine‑t‑il si un fichier provient d&rsquo;Internet ?</h3>
<p>Windows ajoute un flux caché « Mark of the Web » (Zone.Identifier) aux fichiers téléchargés, ce qui indique à Excel de les ouvrir en mode Affichage protégé et de bloquer les macros par défaut.</p>
<h3 id="q4-les-fichiers-csv-sontils-plus-sûrs-que-les-fichiers-xlsx1-et-xlsm7">Q4 : Les fichiers CSV sont‑ils plus sûrs que les fichiers <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> et <a href="https://docs.fileformat.com/spreadsheet/xlsm/">XLSM</a> ?</h3>
<p>Les fichiers CSV ne peuvent pas contenir de macros VBA natives, mais ils restent vulnérables aux attaques d&rsquo;injection de formules s&rsquo;ils contiennent des commandes malveillantes exécutées par Excel lors de l&rsquo;ouverture.</p>
<h3 id="q5-en-quoi-les-office-scripts-modernes-diffèrentils-des-macros-vba-traditionnels">Q5 : En quoi les Office Scripts modernes diffèrent‑ils des macros VBA traditionnels ?</h3>
<p>Les Office Scripts s&rsquo;exécutent en TypeScript dans un environnement d&rsquo;exécution sandboxé, les empêchant d&rsquo;accéder à votre système de fichiers local, à la ligne de commande ou aux API du système d&rsquo;exploitation.</p>
<h2 id="voir-aussi">Voir aussi</h2>
<ul>
<li><a href="https://blog.fileformat.com/en/spreadsheet/csv-vs-xlsx-vs-ods-in-2026-best-spreadsheet-format-for-developers/">CSV vs XLSX vs ODS en 2026 : le meilleur format de feuille de calcul pour les développeurs</a></li>
<li><a href="https://blog.fileformat.com/en/spreadsheet/xls-vs-xlsx-vs-xlsm-vs-xlsb-choosing-the-right-spreadsheet-format/">XLS vs XLSX vs XLSM vs XLSB - Choisir le bon format de feuille de calcul</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/what-is-excel/">Qu&rsquo;est-ce qu&rsquo;Excel ? Informations clés à connaître</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/excel-file-extensions-xlsx-xlsm-xls-xltx-xltm/">Formats de fichiers Excel : XLSX, XLSM, XLS, XLTX, XLTM</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/xls-vs-xlsx/">Différence entre XLS et XLSX</a></li>
</ul>
<!-- raw HTML omitted -->
]]></content:encoded>
    </item>
    
  </channel>
</rss>
