Les PDF – Pas si sûr que ça
Lorsque l’on reçoit un fichier PDF, que ce soit dans le milieu professionnel ou non, on ne se rend pas compte de la dangerosité de ces derniers. En effet, on pense a priori qu’un fichier PDF est sans danger. Cela n’est malheureusement pas le cas. Les fichiers PDF sont tout aussi dangereux que d’autres fichiers que l’on vous envoie et nous allons voir dans cet article pourquoi.
Structure d’un fichier PDF
Un fichier PDF est composé :
- d’un en-tête, qui indique la version du fichier.
- d’une collection d’objets, qui constitue le corps du fichier. Chaque objet décrivant du texte, des styles …
- d’une table de références, permettant au logiciel en charge de l’affichage de retrouver rapidement les objets nécessaires au traitement.
- d’un trailer, contenant les adresses dans le fichier des éléments importants pour la lecture.
Les éléments qui composent un fichier PDF correspondent à des objets. Chacun de ces objets est défini par :
obj<< … >>endobj
Chacun des objets possèdent un numéro de référence permettant d’appeller cet même objet où que l’on soit dans le document. Chacun des objets possède aussi un type permettant de définir l’information que l’objet va contenir. Ce qui va nous intéresser est liée au objet permettant de réaliser des actions dynamiques.
Les actions dynamiques
Adobe introduit des actions dynamiques. Pour ce faire, nous avons à notre disposition plusieurs types d’objets tels que des formulaires ou bien des objets JavaScript. Les actions que l’on va pouvoir mettre en place vont être réalisées dès lors d’une action de la part de l’utilisateur. L’action peut être lors de l’ouverture du document, du clic de l’utilisateur … Cependant, certaines de ces actions volontaires peuvent déclencher une fenêtre d’erreurs. En revanche, on peut supprimer ces fenêtres d’erreurs. En effet, en fonction des droits que l’utilisateur aura accordé, l’action sera indétectable. Cependant, nous n’allons pas dans cet article développer davantage cette partie.
Exploitation
Tout d’abord, il faut savoir que lors d’un chiffrement d’un fichier PDF uniquement les objets de type « strings » et « steams » sont chiffrés. De plus, l’antivirus ne vérifie pas le fichier uniquement s’il a à sa disposition le mot de passe. Dès lors, nous pouvons essayer de tromper l’antivirus. De plus, nous pouvons aussi cacher des informations dans le fichier PDF. Pour cela, on pourrait simplement insérer du texte derrière une image par exemple. On pourrait aussi créer un fichier polymorphe qui soit à la fois lisible en PDF et aussi en JPEG.
L’une des failles notables au niveau des fichiers PDF est l’accès à des requêtes notamment avec les objets de type formulaire ou même avec du JavaScript.
Enfin, la dernière faille notable est l’appel d’un script malveillant directement dans l’url. En effet, avec un fichier PDF, vous avez la possibilité d’exécuter des commandes directement dans l’url en passant par exemple : #zoom=200
Lors de ce document, nous avons vu l’architecture d’un fichier PDF, sa composition sous forme d’objets, mais aussi diverses failles. Nous vous conseillons vivement de faire attention au fichier que vous ouvrez même s’ils peuvent vous paraître sans risque.
✅ @rerere, I gave you an upvote on your post! Please give me a follow and I will give you a follow in return and possible future votes!
Thank you in advance!
Ton article est vraiment passionnant.
Par contre, ça serait pas mal de faire un #introduceyourself pour te présenter à la communauté francophone #fr.
Merci pour l'article !
aurais-tu des livres à conseiller par rapport à ta thématique @rerere ?
Je ne connais pas ton expertise dans ce domaine, mais si tu souhaites avoir un aperçu global, je te conseille : Sécurité informatique - Ethical Hacking : Apprendre l'attaque pour mieux se défendre (5e édition) Il introduit très bien le sujet tout en permettant une approche complexe sur le sujet.
Que du basique en terme d'expertise, mais ça m'intéresse. Surtout que j'apprends à coder depuis peu. Je veux juste avoir les bases et connaissances nécessaires dans le cas où je dois parler et manager un Developper. Merci pour le partage du livre 👍🏼
Très bon article qui fait un état des lieux des failles de sécurités au sein d'un fichier PDF. Il serait aussi intéressent d'en savoir un peu plus sur vous par le biais d'un topic de présentation ! Upvoté à 100% !