Nous devons parler rapidement de la sécurité des macros, car c'est un problème crucial. En effet, des utilisateurs mal intentionnés, comme des concepteurs de virus, peuvent concevoir des macros néfastes pour le système. En effet, il n'est pas très compliqué d'effacer le contenu d'un dossier, ou de supprimer ou d'altérer des fichiers avec VBA.
Avant de commencer, sachez que je ne suis pas un spécialiste de la sécurité, c'est pourquoi vous pourriez avoir l'impression que cette leçon ne couvre pas l'ensemble de la notion de certificats.
Un peu de théorie
sur les macro-virus
Activer ou désactiver les macros
?
Niveaux de sécurité des macros
Certificats
Un peu de théorie sur les macro-virus
Vous arrivez au bureau un lundi matin. Comme chaque jour, en arrivant, vous relevez vos e-mails. Parmi la masse, un certain "Jean Dupont", dont vous n'avez jamais entendu parler vous envoie un message disant en substance "Here's the annual report, for your comments.". A ce message est attaché un fichier Excel : Report.XLS. Vous cliquez deux dois dessus pour l'ouvrir, et à peine l'avez-vous ouvert que votre ordinateur affiche un écran bleu fatal vous obligeant à redémarrer le PC. Et la machine ne redémarre pas. Et c'est à cet instant que vous vous dites que vous auriez dû mettre votre antivirus à jour, comme on vous l'a moult fois conseillé.
Trop tard, le mal est fait, et votre PC est maintenant bien malade !
Vous venez d'être victime d'un virus de macro. Si vous désirez en savoir plus sur les virus de macro, reportez vous à cette page de Microsoft (en français). Le moteur de recherche Google renvoie beaucoup de pages lorsqu'on recherche "Virus de macro".
Certaines macros s'exécutent dès l'ouverture du fichier Excel (nous verrons ça ultérieurement), c'est ce qui est le plus dangereux. Voici un autre scénario : vous recevez un fichier Excel d'une personne que vous connaissez. Lorsque vous l'ouvrez, vous constatez que c'est simplement un calendrier de femmes dénudées, un quizz, un jeu, ou que sais-je encore ? Toujours est-il que, trouvant le fichier amusant, vous le renvoyez vous même à tout votre carnet d'adresses.
Ce que vous ignorez, c'est qu'une macro néfaste s'est exécutée à l'ouverture de ce fichier. Mais les actions de ce virus ne sont pas immédiatement visibles : ce sera seulement au prochain redémarrage de votre machine que vous constaterez que vous avez été infecté. Non seulement vous, mais également toutes les personnes à qui vous avez expédié ce fichier et qui ne sont pas regardantes sur la sécurité.
Si votre antivirus est à jour, normalement (je dis bien normalement, pas absolument), il va vous empêcher d'ouvrir le fichier infecté.
En outre, si vous travaillez dans une grande structure, il y a fort à parier que les adimistrateurs système bloquent les virus en amont, sans même que vous en soyez informé.
Activer ou désactiver les macros ?
Une sécurité incluse dans Excel va vous permettre de vous prémunir
des Macro-Virus. Lors de l'ouverture d'un fichier contenant au moins une macro,
vous avez normalement cette boîte de dialogue qui apparaît :
Si vous cliquez sur "Désactiver les Macros", vous ne pourrez
pas exécuter les macros. Essayez d'ouvrir votre fichier Cours.XLS
en désactivant les macros. Allez ensuite dans le menu Outils/Macros/Macros.
Vos macros apparaissent alors comme ceci :
Il y a le nom du fichier juste devant les macros. Elles sont "en quarantaine".
Vous pouvez les voir, mais pas les exécuter. Si vous essayez d'en exécuter
une des deux, ce message d'erreur apparaîtra :
Cette fenêtre provient d'Excel 2003, et diffère quelque peu des versions précédentes. En gros, il vous informe que comme vous avez désactivé les macros à l'ouverture, vous ne pouvez donc pas les exécuter.
Lorsque vous recevez des fichiers Excel dont l'auteur n'a pas une réputation exemplaire, il reste sage de désactiver les macros. Si maintenant vous ouvrez un classeur Excel pourvu de macros que vous avez créé vous-mêmes, vous pouvez bien entendu activer les macros (sinon, quel intérêt d'en créer?)
Niveaux de sécurité des macros
Maintenant, si vous travaillez intensivement avec vos classeurs Excel bourrés de macros, vous risquez d'en avoir marre de sans arrêt devoir confirmer que vous êtes d'accord d'exécuter vos macros. Il est alors possible de zapper directement le message d'attention, et d'ouvrir instantanément vos fichiers.
Pour ce faire, rendez-vous dans le menu Outils/Macros/Sécurité.
Avec Excel 2000, il y avait seulement 3 niveaux de sécurité, qui étaient d'ailleurs beaucoup plus facile à comprendre. Le niveau de sécurité "Très élevée" est apparu avec XP ou 2003.
Par défaut, lors d'une installation Excel standard, le niveau de sécurité est défini à "Moyen", c'est à dire qu'à chaque ouverture d'un classeur contenant au moins une macro, vous devrez préciser si vous devez activer ou désactiver les macros.
Cochez le niveau de sécurité "Faible", cliquez sur OK, fermez votre classeur et rouvrez-le.
A la réouverture, vous n'avez plus aucun message, et toutes vos macros sont exécutables.
Maintenant, retournez dans le menu Outils/Macros/Sécurité, et cochez "Niveau de sécurité élevé", fermez votre classeur et rouvrez-le.
Vous n'avez pas non plus de message, MAIS si vous essayez d'exécuter une macro, vous ne pourrez simplement pas.
Si vous aviez coché "Très élevé", le résultat aurait été identique.
A vous de voir maintenant comment vous désirez travailler... Evidemment, pour la bonne marche de la suite du cours, je vous déconseille le niveau "Elevé" !
Avec l'avènement d'Office XP est apparu le concept de "Signature numérique", et d'"éditeurs approuvés".
Qu'est ce que ça veut dire ? En gros, ça se passe de la même façon que le courrier. Lorsque vous recevez une lettre, elle est signée : vous savez que la lettre provient bien de telle personne. Encore que la signature papier peut se falsifier... Lorsque vous relevez votre courrier, vous avez les lettres mélangées a la publicité. Il suffit de placer un autocollant "Pas de pub SVP", et ainsi tous les "Editeurs non-approuvés", c'est à dire les prospectus publicitaires ne vous parviennent pas.
Informatiquement parlant, si le principe ressemble un peu à celui-là, le maniement est nettement plus complexe !
Dans le menu Outils/Macros/Sécurité,
regardons ce niveau de plus près : .
"Seules les macros signées pourront être exécutées". C'est à dire que vous pouvez vous certifier vous-même. Vous pourrez alors mettre ce niveau de sécurité élevé, mais seuls les classeurs dont vous êtes l'auteur accepteront d'exécuter leurs macros incluses.
A partir de maintenant, vous pourrez laisser le niveau de sécurité élevé, et malgré tout ouvrir votre classeur pourvu de macro sans message d'attention.
Ce certificat n'est valable que pour vous, ou plus exactement pour votre PC. Je n'ai pas testé ce qui se passe si on ouvre le même classeur depuis un autre PC avec son propre Login.
L'intérêt d'un certificat va bien au delà des frontières de votre propre PC. L'idée est de se faire certifier par un organisme externe reconnu (Une liste de fournisseurs de certificats est donnée par Microsoft à cette adresse.), et de signer numériquement vos macros avec ce certificat officiel, ce qui vous permettra d'échanger des classeurs pourvu de macros par e-mail entre deux succursales d'une banque par exemple, alors que vous et vos correspondants ont défini le niveau de sécurité élevé. Mais c'est une autre histoire, le but de cette leçon étaant juste de comprendre les bases de la sécurité. Et pout être totalement franc avec vous, je ne possède pas moi-même de certificat numérique officiel, n'en ayant jamais réellement eu le besoin.
Un article
paru sur le site de Microsoft, en français, vous en dit beaucoup plus
long sur ces principes de sécurité par signature numérique.
Le plus connu de tous les fournisseurs de certificat numériques est à
ma connaissance Verisign.
Vous pouvez télécharger ici Cours.XLS tel qu'il devrait être à la fin de cette leçon
Les macros sont très puissantes, mais comme toute invention puissante, livrées à des mains indélicates, elles peuvent s'avérer dangereuses. En effet, il est tout à fait possible, dans une macro, d'effacer des fichiers importants, voire de déstabiliser complètement votre PC. C'est pourquoi il y a la possibilité de demander à Excel d'accepter d'exécuter les macros de ses classeurs, ou pas. Dès la version Excel XP, vient la nbotion de "Certificat numérique" qui permet d'authentifier formellement l'"auteur-fournisseur" d'une macro afin de rétablir la confiance avec son "Client-exécuteur" de la macro.
Créez votre propre certicifat avec SELFCERT.EXE, si ce n'est déjà fait.