Un PDF peut-il contenir un virus ?
Est-il prudent d’ouvrir un PDF que je n’attendais pas ?
Enregistrez vos outils favoris
Créez un compte iBuildPDF gratuit pour conserver vos outils favoris et les retrouver rapidement à tout moment.
Compte gratuit. Les outils PDF eux-mêmes n’en demandent jamais.
Réponse courte
Un PDF peut transporter plus que des marques sur une page : le format autorise des scripts, une action déclenchée à l’ouverture, des liens vers n’importe où et des fichiers entiers à l’intérieur. Mais la plupart des PDF nuisibles ne contiennent rien de tout cela : ce sont des documents ordinaires dont le rôle est de vous faire suivre un lien et taper un mot de passe ailleurs. Ce qui détermine surtout votre exposition, c’est le programme avec lequel vous ouvrez le fichier et son degré de mise à jour. Ouvrez un fichier inattendu dans un navigateur et n’acceptez rien de ce qu’il demande.
Ce qu’un PDF a le droit de contenir en plus d’une page
La partie d’un PDF qui dessine la page est inerte. C’est une liste d’instructions — prends cette police, place ces glyphes à ces coordonnées, remplis ce rectangle, peins cette image — et un programme qui les suit pose des marques sur une surface puis s’arrête. Rien dans cette description ne peut faire quoi que ce soit à votre ordinateur, d’où la réputation de sûreté du format.
A PDF may carry more than marks on a page
- The page itself: instructions for putting marks on a surface. Every reader follows these, and they are inert.
- The format also allows these, and none of them is needed to draw the page — an action that runs when the file opens, a script, and whole other files carried inside.
- Your reader decides what to do with them. That decision, rather than the file, is where most of the exposure actually sits.
- Drawing the page always happens. Acting on the rest may not: a browser’s built-in viewer implements far less of it than a full desktop reader does.
Le format autorise aussi bien davantage, et la norme ISO 32000-1 définit tout cela. Un document peut transporter :
- Une action exécutée à l’ouverture du fichier, avant même que vous ayez fait quoi que ce soit, et d’autres actions attachées à des pages précises, au clic, et même au survol d’une zone.
- Du JavaScript, rangé dans une table rattachée au catalogue du document, ou attaché à un champ de formulaire pour qu’un total se calcule tout seul à mesure que vous tapez. C’est ainsi que les formulaires interactifs font leurs calculs, et c’est une vraie fonction au usage légitime.
- D’autres fichiers, intégrés entiers. Une pièce jointe affichée comme un trombone sur la page, un ensemble de fichiers listés dans le catalogue du document, ou un portfolio dont tout le contenu est une collection d’autres documents. La note de la PDF Association sur le sujet vaut la lecture si vous voulez les nuances ; la version courte est qu’un PDF peut être un conteneur.
- Des liens, et des actions demandant au système d’exploitation de lancer quelque chose. Un lien n’est qu’une adresse écrite à côté d’un rectangle sur la page.
- Du multimédia et des objets 3D, pris en charge par du code qui n’est pas celui qui dessine la page.
Deux conséquences en découlent, et elles comptent plus que la liste.
D’abord, rien de tout cela n’est nécessaire pour lire le document. Un PDF avec une action d’ouverture et un PDF sans sont identiques à l’œil, et retirer toute fonction interactive d’un document de travail ordinaire ne lui coûte rien.
Ensuite, que l’une de ces choses se produise relève de votre lecteur, pas du fichier. Le format dit ce qu’un document peut contenir. Il n’oblige aucun programme à en tenir compte, et les lecteurs courants en implémentent des proportions très différentes : un fichier qui fait quelque chose dans l’un peut ne rien faire du tout dans un autre. C’est le fait le plus utile de cet article, et le reste en découle.
Les trois façons dont cela tourne vraiment mal
On imagine une seule menace — un fichier contenant un virus — et il y en a en réalité trois, de formes très différentes.
The split that matters: harm that needs you, and harm that does not
- Of the three routes described here, two are drawn: the one that asks nothing of you, and the one that asks everything. On the left, a file malformed to trip a bug in the program opening it. Nothing in it looks unusual and there is no prompt to decline, which is why which reader you use, and how current it is, matters more than the file does.
- On the right, the route that needs you: a link on the page takes you somewhere that asks for a password, and the PDF itself may be an entirely ordinary document. The third route — active content the reader genuinely runs — sits between these two, and always gives you a prompt to refuse.
- Which is why the most common harmful PDF is not infected at all. It is a leaflet — and there is nothing in it for any scanner to find.
Un défaut dans le programme qui l’ouvre
Un lecteur de PDF est un analyseur pour un format vaste, ancien et permissif, et les analyseurs ont des défauts. Un fichier délibérément malformé pour en déclencher un peut faire exécuter du code à l’intérieur du lecteur, et cette voie ne vous demande rien d’autre que d’ouvrir le document. Rien dans le fichier n’a besoin de paraître inhabituel, et il n’y a aucune invite à refuser.
C’est la voie qui plaide pour un lecteur tenu à jour et pour en préférer un qui tourne dans un bac à sable. Ce n’est pas une raison d’éviter les PDF ; c’est une raison de se soucier du programme auquel vous les confiez.
On vous persuade de faire quelque chose
Le document est un prospectus. Il dit que votre facture est jointe, ou que votre compte demande attention, et il porte un lien — ou un QR code, c’est-à-dire un lien que vous ne pouvez pas lire avant de le suivre. Vous le suivez, vous arrivez quelque part qui a l’air correct, et vous tapez un mot de passe.
Rien n’est malveillant dans le fichier, ici. Pas de code, pas d’exploit, pas de script ; chaque octet est un document ordinaire. C’est la voie qui ne demande aucune astuce, et celle dont aucun scan ne peut rien retirer, parce qu’il n’y a rien à trouver. Un lien dans un PDF mérite exactement la méfiance qu’on accorde à un lien dans un courriel, et pour les mêmes raisons.
Du contenu actif que le lecteur exécutera vraiment
La plus étroite des trois, et celle qui inquiète le plus. Un script dans un PDF n’a rien de la portée d’une macro dans un document bureautique, les lecteurs courants n’exécutent pas d’action de lancement sans demander, et la visionneuse intégrée d’un navigateur n’implémente d’emblée qu’une petite part du modèle interactif. Ce n’est pas rien — un script peut réécrire la page que vous regardez, ou vous pousser vers un lien — mais un document qui a besoin de votre accord pour fonctionner est un document qui vous a laissé l’occasion de refuser.
L’invite est le signe. Activer ce contenu. Autoriser ce document à se connecter. Ce fichier est protégé — cliquez pour l’afficher. Un document obligé de demander demande pour une raison.
Ouvrir un fichier dont vous doutez
À peu près par ordre d’utilité :
- Mettez votre lecteur à jour, et arrêtez-vous là si vous ne faites rien d’autre. La voie de l’exploit est la seule que vous ne pouvez pas refuser, et un lecteur à jour en est toute la défense. Cela vaut aussi pour les navigateurs : la visionneuse PDF intégrée se met à jour avec le navigateur.
- Ouvrez-le d’abord dans un navigateur. La visionneuse d’un navigateur est une implémentation distincte du format, elle tourne dans le bac à sable où le navigateur place le contenu web, et elle n’a pas vos documents et vos réglages sous la main comme une application de bureau. Elle implémente aussi bien moins du modèle interactif, ce qui est ici un avantage. Un bac à sable réduit l’exposition sans rien garantir, mais pour une pièce jointe inattendue c’est un meilleur premier coup d’œil qu’un double-clic.
- N’acceptez rien. Pas d’activation, pas d’autorisation, pas de confiance accordée au document. Si le fichier refuse de montrer son contenu sans la permission de faire quelque chose, vous avez appris ce qu’il fallait savoir.
- Traitez chaque lien comme un lien venu d’un inconnu. Lisez l’adresse avant de la suivre. S’il veut que vous vous connectiez, ne le faites pas depuis le lien : allez sur le site comme d’habitude et cherchez-y la même chose. C’est un conseil ennuyeux et c’est celui qui marche.
- Laissez les pièces jointes tranquilles. Une icône de trombone sur la page est un fichier venu de celui qui a envoyé le PDF. L’ouvrir, c’est ouvrir une pièce jointe, avec tout ce risque et rien de l’inertie du format PDF.
- S’il ne vous faut que les mots, ne prenez que les mots. PDF vers texte lit le fichier avec PDF.js dans votre propre onglet et vous rend le texte ; le document n’est jamais ouvert de façon interactive et aucune action n’y est suivie. Cela tourne dans votre navigateur, donc le fichier n’est pas envoyé — comment fonctionnent les outils PDF du navigateur explique comment le vérifier vous-même.
Et celui qui n’a rien à voir avec les PDF : si le document parle d’argent, d’identifiants ou d’un changement urgent de coordonnées bancaires, confirmez-le par un canal auquel vous faites déjà confiance. Ce n’est pas un contrôle technique et c’est celui qui évite réellement la perte.
Ce que ce site peut et ne peut pas vous dire d’un fichier
Clairement : iBuildPDF n’a aucun antivirus, et aucun outil ici n’indique si un PDF contient un script, une action d’ouverture ou un fichier intégré. Cela mérite d’être dit plutôt que sous-entendu, car un site plein d’outils PDF est exactement l’endroit où l’on s’attendrait à en trouver un.
Ce que les outils d’inspection rapportent, et rien de plus :
- Nombre de pages et informations du fichier — le nombre de pages, la taille, les dimensions en millimètres avec le décompte de chacune, portrait contre paysage, et s’il existe une couche de texte. La vérification du texte échantillonne les vingt premières pages plutôt que de toutes les lire, parce que pour la question posée vingt pages suffisent et qu’un document de neuf cents pages répond quand même instantanément.
- L’éditeur de métadonnées — le titre, l’auteur, le sujet, les mots-clés, et quelle application s’est inscrite comme productrice du fichier. Ce dernier point est souvent le plus parlant d’un document, et c’est aussi un champ où n’importe qui peut écrire n’importe quoi. Ce que contiennent les métadonnées d’un PDF le parcourt.
Il existe un effet de bord bon à connaître et mauvais à prendre pour une garantie. Presque tous les outils d’ici construisent un nouveau document et y recopient les pages, pour une raison qui n’a rien à voir avec la sécurité : la bibliothèque PDF utilisée par ce site gère mal une source enregistrée en mise à jour incrémentale et écrit un fichier qu’Acrobat refuse ensuite d’ouvrir. Une reconstruction part d’un catalogue de document vide, donc ce qui vivait dans l’ancien — l’action d’ouverture, la table de scripts du document, les fichiers intégrés — n’est pas dans la sortie.
N’y voyez pas un nettoyage du fichier. Les annotations appartiennent aux pages et sont copiées avec elles, liens compris. L’outil ne cherche rien, donc il ne peut pas vous dire s’il y avait quelque chose à trouver. Et le fichier de départ est toujours sur votre machine. Si vous soupçonnez vraiment un document, le bon instrument est un antivirus ou un logiciel de protection conçu pour cela, ou un service d’analyse en environnement isolé. Ceci est un ensemble d’outils documentaires, et un outil documentaire qui laisserait entendre le contraire serait la chose la plus dangereuse de la page.
Si c’est vous qui l’envoyez
L’essentiel des ennuis côté destinataire est créé, sans la moindre intention, par des expéditeurs ordinaires.
- Ne construisez pas un document obligé de demander une permission. Si votre PDF a besoin d’un script pour afficher son propre contenu, certains destinataires ne verront rien et les autres ont été entraînés à refuser.
- N’envoyez pas un PDF dont le seul contenu est « cliquez ici pour voir le document ». C’est exactement la forme d’un appât d’hameçonnage, les filtres de messagerie le traitent comme tel, et ceux qui le remarquent ne l’ouvriront pas. Envoyez le document.
- Aplatissez un formulaire rempli avant de l’envoyer. Aplatir un PDF écrit les valeurs des champs dans la page, donc rien n’a besoin d’être actif pour que le destinataire voie ce que vous avez tapé — et un formulaire rempli qui arrive vide, c’est tout un après-midi à part. Comment fonctionnent les formulaires PDF et ce que fait l’aplatissement expliquent le mécanisme.
- Envoyez les pièces jointes comme pièces jointes. Un tableur intégré dans un PDF est plus difficile à atteindre, plus susceptible d’être retiré en route, et plus susceptible d’être refusé par ce à quoi le destinataire l’envoie. Pourquoi un formulaire d’envoi refuse votre PDF traite de ce dernier point.
- S’il faut un mot de passe, envoyez-le autrement. Les deux dans le même message ne protègent rien. Protéger un PDF peut en appliquer un, et cela tourne sur un serveur, donc le document est envoyé pour être chiffré ; ce qu’un mot de passe PDF protège vraiment vaut la lecture avant de décider que c’est le contrôle que vous voulez.
Enfin, ce qu’un expéditeur peut faire de plus utile : dites ce que vous envoyez, dans le message, avant la pièce jointe. Un destinataire qui attendait un document n’a pas à deviner, et c’est dans la devinette que tout cela tourne mal.
Les outils traités dans cet article
Sources
Documentation primaire des affirmations ci-dessus.