Others

Pouvez-vous savoir si un PDF contient un code de suivi caché

Un PDF peut contenir plus que ce que vous voyez sur la page. Le JavaScript intégré, les champs de formulaire masqués, les appels de ressources à distance et les métadonnées personnalisées peuvent tous être utilisés pour suivre le moment où un document est ouvert, d'où il est ouvert et ce que le lecteur en fait. Les analyses PDF Security pour les mécanismes de suivi deviennent une étape standard de la diligence raisonnable des entreprises, en particulier lors de la réception de fichiers PDF provenant de sources inconnues ou non fiables. La question n’est pas seulement de savoir si le code de suivi existe, mais si vous disposez des outils nécessaires pour le détecter avant d’ouvrir un document sensible.

Le code de suivi dans les PDF se divise en deux catégories : intentionnel et inoffensif. Le suivi intentionnel utilise JavaScript pour téléphoner à la maison lorsque le document est ouvert, envoyant l'adresse IP de l'ouvreur, son emplacement approximatif et la durée de lecture à un serveur de suivi. Le suivi inoffensif inclut des fonctionnalités telles que les accusés de lecture intégrés aux factures PDF ou la gestion des droits numériques qui vérifie une licence avant d'afficher le contenu. Les deux types utilisent des mécanismes techniques similaires et les méthodes de détection décrites ici fonctionnent pour les deux.

Les fonctionnalités PDF Privacy de WukongPDF incluent des outils d'inspection de sécurité qui analysent les documents à la recherche de scripts intégrés avant leur traitement. Effectuer une vérification rapide avant d'ouvrir un PDF provenant d'un expéditeur inconnu ajoute une couche de protection contre le suivi que la plupart des lecteurs PDF ne fournissent pas par défaut.

Can You Tell If a PDF Contains Hidden Tracking Code

Comment fonctionne techniquement le code de suivi PDF

Les fichiers PDF prennent en charge JavaScript via l'API JavaScript d'Acrobat, un sous-ensemble de JavaScript qui s'exécute dans le moteur de script du lecteur PDF. Les scripts au niveau du document s'exécutent automatiquement lorsque le PDF est ouvert, lorsqu'une page est affichée, lorsque le document est imprimé ou lorsqu'il est fermé. Un script de suivi s'exécute généralement sur l'événement DocOpen, collecte les informations disponibles via l'API JavaScript, telles que l'adresse IP du lecteur via une requête HTTP, et envoie ces données à un serveur distant à l'aide des méthodes app.launchURL ou Net.HTTP.request.

Les données que PDF JavaScript peut collecter sont limitées par rapport au JavaScript du navigateur. Il ne peut pas accéder aux fichiers sur l'ordinateur de l'utilisateur, lire les cookies du navigateur ou interagir avec d'autres documents ouverts. Il peut cependant effectuer des requêtes réseau, ce qui constitue la capacité principale permettant le suivi. Un PDF ouvert dans Adobe Acrobat Reader avec JavaScript activé exécutera le script de suivi en silence. Un PDF ouvert dans une visionneuse basée sur un navigateur qui ne prend pas en charge l’API JavaScript d’Acrobat n’exécutera pas le script et la tentative de suivi échouera silencieusement.

WukongPDF

Essayez de protéger le PDF

Aucune installation nécessaire. Fonctionne directement dans votre navigateur.

Commencer →

Méthode 1 : Vérifier JavaScript dans Adobe Acrobat Pro

Le moyen le plus direct de vérifier le code de suivi consiste à inspecter le contenu JavaScript du PDF. Dans Adobe Acrobat Pro, ouvrez le PDF, accédez au menu Edition, sélectionnez Préférences, puis cliquez sur la catégorie JavaScript. Décochez Activer Acrobat JavaScript pour désactiver globalement toute exécution de JavaScript dans le lecteur. Cela empêche l'exécution de tout script de suivi lorsque vous ouvrez le fichier. Avant de désactiver JavaScript, vous pouvez inspecter les scripts existants sans les exécuter.

Pour inspecter les scripts, ouvrez le PDF dans Acrobat Pro et accédez à Outils, puis JavaScript, et sélectionnez Documenter les JavaScripts dans la liste déroulante. La boîte de dialogue répertorie chaque script au niveau du document par son nom. Sélectionnez un nom de script et cliquez sur Modifier pour afficher son code source. Recherchez des modèles qui indiquent un suivi : URL pointant vers des domaines externes, appels app.launchURL, appels Net.HTTP.request ou références à des événements this.docOpened ou this.docClosed. Si le script effectue des requêtes réseau et que vous ne vous attendiez pas à ce que le document ait besoin d'un accès réseau, traitez-le comme un code de suivi potentiel.

Vous pouvez supprimer des scripts individuels de la boîte de dialogue Document JavaScript. Sélectionnez le nom du script et cliquez sur Supprimer. Après avoir supprimé tous les scripts suspects, enregistrez le PDF sous un nouveau nom de fichier pour conserver l'original comme preuve. Le PDF nettoyé conserve tout le contenu visible et les fonctionnalités du formulaire, mais n'exécute plus les scripts supprimés.

Méthode 2 : Inspecter les éléments internes du PDF avec un éditeur de texte

Pour une inspection plus approfondie qui ne nécessite pas Acrobat Pro, examinez la structure interne brute du PDF. Les fichiers PDF utilisent un format d'objet basé sur du texte dans lequel des chaînes et des mots-clés lisibles par l'homme sont entrelacés de données binaires. Ouvrez le PDF dans un éditeur de texte capable de gérer des fichiers volumineux, tels que VS Code, Notepad++ ou Sublime Text. Recherchez la chaîne /JavaScript ou /JS. Ces mots-clés marquent le début des objets de code JavaScript. Le code source du script suit le mot-clé, généralement entre parenthèses ou entre les marqueurs de flux et de fin.

Recherchez également /URI ou /URL pour trouver les adresses Web codées en dur intégrées dans le PDF. Un script de suivi peut inclure l'URL d'un serveur de suivi. Recherchez /AA ou /OpenAction, qui sont des clés de dictionnaire PDF qui spécifient les actions à effectuer lors de l'ouverture du document. Une entrée /OpenAction pointant vers un objet JavaScript est le mécanisme le plus courant pour déclencher un code de suivi à l'ouverture d'un document.

Cette approche d'inspection manuelle nécessite une certaine familiarité avec la syntaxe PDF, mais détecte le code de suivi que les outils automatisés pourraient manquer. Il s'agit de la même technique que celle utilisée par les chercheurs en sécurité pour analyser les pièces jointes PDF suspectes dans le cadre d'enquêtes de phishing. Si vous trouvez des structures de suivi et souhaitez les neutraliser sans Acrobat Pro, vous pouvez supprimer les objets pertinents du PDF brut à l'aide d'un outil tel que qpdf avec l'indicateur --remove-restrictions, bien que cette approche nécessite de prendre soin d'éviter de corrompre la structure du fichier.

Méthode 3 : Scanners de sécurité PDF automatisés

Plusieurs outils gratuits et commerciaux automatisent la détection du suivi et du code malveillant dans les PDF. DID-SIEM et des outils d'analyse de sécurité similaires analysent la structure PDF et signalent les objets contenant du JavaScript, des URL externes, des actions de lancement et des fichiers intégrés. Les vérificateurs de sécurité PDF en ligne acceptent le téléchargement d'un fichier et renvoient un rapport répertoriant tous les éléments potentiellement traçables. Pour la vérification de routine des PDF reçus de sources externes, un scanner automatisé est plus rapide et plus approfondi qu'une inspection manuelle.

IndicateurCe que cela signifieComment vérifier
Documenter JavaScriptScripts qui s'exécutent lorsque le PDF s'ouvre, se ferme ou s'imprimeAcrobat : Édition, Préférences, panneau JavaScript
Appels de ressources externesLe PDF charge des images, des polices ou des données à partir d'URL distantes lors de son ouvertureVérifier les propriétés du document pour les URL intégrées
Champs de formulaire masquésChamps invisibles pré-remplis avec des identifiants de suivi ou des jetonsOuvrez le panneau Formulaires et recherchez les indicateurs de champ masqués
Scripts de métadonnéesMétadonnées XMP contenant des identifiants de suivi personnalisésAfficher les propriétés du document et les données XMP brutes

Que faire si vous trouvez un code de suivi

Trouver un code de suivi dans un PDF que vous avez reçu ne signifie pas nécessairement que l'expéditeur agit de manière malveillante. Les factures PDF incluent généralement des scripts de confirmation de lecture qui avertissent l'expéditeur lorsque la facture est ouverte. Les supports marketing peuvent inclure un suivi de l'engagement similaire aux pixels de suivi de l'ouverture des e-mails. La question est de savoir si le suivi est divulgué et adapté au type de document. Une confirmation de lecture dans une facture est attendue. Un tracker caché dans un contrat envoyé lors d’une négociation pose problème.

Si vous devez partager le document avec d'autres personnes sans le code de suivi, supprimez le JavaScript comme décrit dans la méthode 1 et enregistrez une copie vierge. Si le code de suivi fait partie d'un système DRM ou d'application de licence, sa suppression peut violer les conditions d'utilisation du document. Pour les documents juridiquement sensibles, consultez l'équipe juridique ou de sécurité de votre organisation avant de supprimer tout code intégré, car les mécanismes de suivi peuvent faire partie d'un système de conformité ou de piste d'audit que vous êtes contractuellement tenu de préserver.

Le code de suivi PDF est détectable avec les bons outils. L'exécution d'une inspection JavaScript rapide avant d'ouvrir des PDF provenant de sources inconnues prend moins d'une minute et détecte la majorité des mécanismes de suivi. Intégrer cette vérification à votre routine standard de traitement des documents réduit la probabilité de partager sans le savoir votre activité de lecture avec des parties externes. Pour les organisations traitant des documents sensibles, une politique consistant à désactiver JavaScript dans le lecteur PDF par défaut et à l'activer uniquement pour les documents fiables fournit une défense de base solide sans effort d'inspection continu par document.

Désactivation de JavaScript sur tous les lecteurs PDF d'une organisation

L'inspection individuelle de chaque PDF à la recherche du code de suivi est pratique pour une utilisation occasionnelle, mais ne convient pas à une organisation recevant quotidiennement des centaines de PDF externes. Une approche plus systématique consiste à désactiver l’exécution de JavaScript au niveau du lecteur sur tous les appareils. Dans Adobe Acrobat Reader, le paramètre se trouve sous Édition, Préférences, JavaScript, où décocher Activer Acrobat JavaScript bloque toute exécution de script. Ce paramètre peut être déployé via la stratégie de groupe sous Windows, via un profil de configuration sur Mac et via des préférences gérées sur les déploiements d'entreprise d'Acrobat Reader.

La désactivation globale de JavaScript a un impact fonctionnel. Certains formulaires PDF utilisent JavaScript pour la validation des champs, les calculs automatiques et le comportement dynamique des formulaires. Ces fonctionnalités cessent de fonctionner lorsque JavaScript est désactivé. Pour les organisations qui s'appuient sur des formulaires PDF interactifs, l'approche devrait consister à désactiver JavaScript par défaut et à l'activer uniquement pour les formulaires provenant de sources internes fiables, plutôt que d'accepter le risque de sécurité lié à l'exécution de JavaScript sur chaque PDF provenant de chaque expéditeur externe. L'inspection de sécurité PDF pour le suivi du code est une compétence moderne en matière de maîtrise des documents. Prendre une minute pour vérifier JavaScript, les URL externes et les champs de formulaire masqués avant d'ouvrir ou de partager un PDF à partir d'une source inconnue évite une forme subtile de fuite d'informations dont la plupart des utilisateurs de PDF ignorent même l'existence. Une approche soucieuse de la sécurité de la gestion des PDF protège à la fois la confidentialité des individus et la sécurité des informations organisationnelles sans nécessiter de logiciel spécialisé ou de connaissances techniques avancées.

WukongPDF

Essayez de protéger le PDF

Aucune installation nécessaire. Fonctionne directement dans votre navigateur.

Commencer →