Les PDF signés sont-ils vraiment sécurisés ?

PDF signature sécurité

Des chercheurs attirent l’attention sur la possibilité de contourner la protection qu’est censée garantir la signature électronique des PDF.

Un PDF signé est-il réellement protégé contre toute modification indésirable ? Des chercheurs de l’université de la Ruhr répondent par la négative.

Leur rapport à ce sujet présente plusieurs attaques destinées à créer des documents « à deux visages ». D’un côté, le contenu « légitime » auquel s’attendent les parties signataires. De l’autre, du contenu qui n’apparaît qu’après signature.

La spécification PDF définit trois éléments principaux :

  • Le corps du document
    Les objets y sont stockés, chacun identifié par un nombre. L’objet principal (racine) est nommé « catalogue ». Lié à tous les autres objets, il définit la structure du PDF.
  • La table des références croisées (Xref)
    Elle contient des références aux objets (premier octet, longueur, statut…).
  • Le trailer
    Il regroupe des informations telles que le premier objet à lire et l’identifiant du catalogue.

La modification d’éléments au sein de cette structure se fait avec la fonction dite de « sauvegarde incrémentale » (IS). Chaque IS ajoute ses objets dans un nouveau corps (placé immédiatement après le dernier trailer), puis ajoute une table Xref et un trailer.

Dissimuler…

Les signatures – avec identification ou certificat numérique – s’ajoutent aussi sous forme d’objets. Traditionnellement, elles commencent au premier octet et terminent au dernier. De manière générale, elles changent lorsqu’un PDF subit une modification. Mais ce n’est pas toujours le cas, expliquent les chercheurs : une multitude d’actions sont considérées comme sans danger par les principales visionneuses.

Le premier type d’attaque qu’ils présentent consiste à cacher le contenu indésirable derrière un autre contenu (overlay) avant la signature. Et à le faire apparaître ensuite aux yeux des victimes.

Deux déclinaisons de cette attaque figurent dans le rapport :

  • Créer un objet de type « Page » qui reprend tous les objets du PDF signé… sauf l’overlay 
  • Pour contourner les visionneuses qui ne considèrent pas ce type de changement comme sans danger, on peut mettre à jour la table Xref en associant à l’overlay l’attribut « free ». Et, si cela ne suffit pas, agir au niveau de l’IS. Ce en utilisant le même identifiant d’objet, mais en définissant un autre type d’objet. Par exemple, passer de « image » à « XML/Metadata » (l’ajout de métadonnées à un PDF ne déclenche pas d’alerte). Puis ajouter, dans la table Xref, un pointeur vers cet objet en conservant l’identifiant de l’overlay. Ce dernier n’apparaît pas à l’ouverture du fichier, les métadonnées ne pouvant être affichées.

… ou remplacer

Autre type d’attaques : celles qui permettent de remplacer du contenu au vol.

  • De type overlay
    Elle exploite une propriété des champs de texte dans les formulaires dynamiques. Ces champs peuvent afficher deux valeurs : la « vraie » et un overlay qui disparaît dès qu’on sélectionne le champ.
    La « vraie » valeur est stockée dans un objet /V. Le contenu de l’overlay, dans un objet /BBox. Il est comparable aux indices qu’on peut insérer dans des formulaires HTML pour aider les utilisateurs à les remplir. Sauf que dans les PDF, il n’existe aucune différence visuelle avec les « vraies » valeurs.
    Pour les attaquants, il suffit, avant signature, de renseigner les « vraies » valeurs et les overlays. Puis, une fois le document signé, de modifier les /BBox. La signature des /V reste ainsi valide et c’est elle que les visionneuses affichent, les valeurs /BBox ne correspondant pas à celles signées.
  • De type overwrite
    Il s’agit là d’associer une police de caractères spécifique à un contenu, puis, une fois le document signé, de remplacer cette police par une autre.

Plus puissante encore, l’attaque qui combine les aspects « cacher » et « remplacer ». Fondées sur la création de PDF liés de manière dissimulée à d’autres documents, elles mettent à profit les tables de références croisées. Objectif : faire pointer le catalogue du document légitime vers les ressources malveillantes une fois le PDF signé.

Le tableau ci-dessous résume la situation des visionneuses PDF avant éventuelle applications de correctifs.

visionneuses PDF vulnérables

Photo d’illustration © Pei Ling Hoo – Fotolia