Comment ajouter ou supprimer le marqueur « Mark-of-the-Web » sur un fichier ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à manipuler le marqueur "Mark-of-the-Web" sur un fichier afin de pouvoir indiquer qu'il provient d'Internet ou non. L'intérêt est de pouvoir prendre un fichier local, lui attribuer le marqueur MOTW pour faire comme s'il venait d'Internet, et ensuite tester une fonctionnalité de sécurité (par exemple, le blocage des macros Office).
Windows s'appuie sur une fonctionnalité nommée "Mark-of-the-Web" (MOTW ou "Marque du Web" en français), pour déterminer si un fichier provient d'Internet ou non grâce à un identifiant de zone. Quand un fichier provient d'Internet, cet attribut est associé au fichier, ce qui permet aux applications qui prennent en charge ce marqueur de l'exploiter et, éventuellement, d'adapter leur comportement.
Sur son site, Microsoft donne la liste des zones prises en charge avec le nom et l'ID correspondant à chaque fois. Ce qui donne :
Valeur (ID) Setting ------ ------------------------ 0 Mon ordinateur 1 Zone intranet locale 2 Zone des sites de confiances 3 Zone Internet 4 Zone des sites restreints
Pour appliquer le marqueur Mark-of-the-Web sur un fichier, il faut lui attribuer la zone Internet, c'est-à-dire la zone avec l'ID "3".
II. Ajouter "Mark-of-the-Web" à un fichier
Par l'intermédiaire de PowerShell et du cmdlet Set-Content, nous allons pouvoir modifier les propriétés du fichier. En l'occurrence, c'est l'attribut "Zone.Identifier" qui va être modifié pour basculer le fichier sur la zone "3". Ainsi, si l'on veut ajouter le marqueur sur un fichier nommé "TestMacro.xlsm" qui se trouve dans le répertoire courant, on utilise :
Set-Content -Path ".\TestMacro.xlsm" -Stream Zone.Identifier -Value '[ZoneTransfer]','ZoneId=3'
Ensuite, si l'on regarde dans les propriétés du fichier, on peut voir la présence de la section "Sécurité" qui atteste de la présence du marqueur. Sur un fichier local, cette section n'est pas présente. Mon fichier créé en local est désormais considéré comme en provenance d'Internet !
III. Supprimer "Mark-of-the-Web" d'un fichier
Pour supprimer le marqueur MOTW, il est possible de cocher l'option "Débloquer" dans les propriétés du fichier et de valider. Pour continuer sur notre lancée et le faire en PowerShell, il suffit d'utiliser un cmdlet adapté : Unblock-File. Grâce à la présence de ce cmdlet, il n'est pas nécessaire de réutiliser Set-Content.
Ce cmdlet s'utilise très facilement, car il suffit de préciser le nom du fichier :
Unblock-File ".\TestMacro.xlsm"
Ensuite, si l'on regarde les propriétés du fichier, on voit bien que la section "Sécurité" n'apparaît plus.
Voilà, vous êtes désormais capable de gérer l'ajout et la suppression du marqueur "Mark-of-the-Web" sur des fichiers, que ce soit un fichier Excel, un script PowerShell ou tout autre type de fichiers.