J'ai un PDF contenant des informations importantes qui peuvent contenir des logiciels malveillants. Quelle serait la meilleure façon de l'afficher?
J'ai un PDF contenant des informations importantes qui peuvent contenir des logiciels malveillants. Quelle serait la meilleure façon de l'afficher?
Les exploits basés sur des documents ne sont pas dirigés contre le document lui-même, mais plutôt contre une vulnérabilité dans le visualiseur. Si vous affichez le document dans un programme qui n'est pas vulnérable (ou dans une configuration qui inhibe la vulnérabilité), alors vous ne serez pas exploité.
Le vrai problème est de savoir si votre visionneuse est ou non vulnérable, ce qui signifie généralement savoir précisément ce qu'est l'exploit. Mais il existe des visionneuses PDF alternatives telles que foxit ou même la visionneuse intégrée de Google Chrome qui ne présentent pas nécessairement les mêmes vulnérabilités que la visionneuse officielle d'Adobe. Ce n'est pas nécessairement vrai pour toutes les vulnérabilités, il est donc important de comprendre à l'avance ce à quoi vous vous engagez.
MODIFIER
Si vous avez fréquemment affaire à des matériaux potentiellement malveillants, il serait très judicieux de mettre en place un environnement virtuel renforcé. Je recommanderais de démarrer dans un système Linux et d'exécuter votre système d'exploitation cible (généralement Windows) dans Virtualbox ou un environnement similaire. Enregistrez un instantané du système d'exploitation virtuel, puis revenez à cet instantané une fois que vous avez terminé d'interagir avec le contenu malveillant. De plus, ce n'est pas une mauvaise idée d'exécuter l'environnement Linux hôte à partir d'une installation en lecture seule (c'est-à-dire Live-CD).
Mettez-le dans un visualiseur PDF qui n'est pas vulnérable à l'exploit. Si c'est le spectateur de quelqu'un d'autre, c'est encore plus sûr. Essayez Google Docs, où ils l'analyseront et l'afficheront au format HTML, afin que la charge malveillante ne vous nuise pas. (Je suis sûr que leur analyseur PDF est extrêmement sécurisé, vous ne devriez donc pas vous sentir mal à l'idée de les infecter.)
Utilisez pdf.js avec un navigateur en bac à sable (tel que Chromium) dans une machine virtuelle sans accès au réseau.
Il devrait être assez difficile pour un malware de sortir de ceci.
Dans cette situation, j'ai toujours utilisé la commande shell Unix / Linux / OSX "strings". Sur les systèmes * nix, procédez comme suit:
strings ScaryFile.pdf | less
Vous pouvez également obtenir des "chaînes" pour Windows, comme mentionné par Polynomial, ci-dessous. Vous pouvez le télécharger ici. Fonctionne sur XP ou supérieur. Voici un exemple de son utilisation sous Windows:
strings ScaryFile | findstr / i TextToSearchFor
Mais pour le reste de ma réponse, je suppose que vous êtes sur * nix, puisque c'est mon expérience avec les chaînes. En supposant que tout ce que vous recherchez est du contenu textuel (pas des bitmaps ou des graphiques vectoriels), vous pouvez faire défiler vers le bas ou rechercher et trouver des morceaux du texte dont vous avez besoin. Malheureusement, pour le trouver, vous devez parcourir des tonnes de métadonnées, dont la plupart sont en XML, et des paramètres de formatage dans un autre balisage, ainsi que des binaires (comme ascii, pas des octets bruts). Vous pouvez donc utiliser les capacités de recherche de la commande "less". Pour rechercher dans le document la chaîne sensible à la casse "thingyouwant", utilisez la touche barre oblique + votre chaîne + retour:
/ thingyouwant
Puis appuyez sur la touche "n" pour voir la prochaine instance de "thingyouwant", encore et encore jusqu'à ce que vous trouviez ce que vous voulez. Vous pouvez utiliser le "?" clé pour faire la même chose vers le haut. Voir la page de manuel less (tapez "man less") pour plus de magie.
Vous pouvez également analyser des choses comme les URL vers lesquelles le document renvoie:
strings ScaryFile.pdf | grep -i "http" | trier | uniq | moins
Mais, comme indiqué ci-dessus, 99% de ce que vous verrez à partir de la sortie des "chaînes" va être des métadonnées et des paramètres de formatage.
Utilisez une machine virtuelle qui peut être rétablie pour nettoyer après les tests. Si le lecteur PDF est vulnérable, votre véritable poste de travail sera beaucoup moins susceptible d'être affecté.
Une manière simple et directe d'ouvrir des fichiers PDF potentiellement malveillants sur un ordinateur Windows consiste à utiliser le visualiseur PDF Sumatra. Sumatra est une petite visionneuse de PDF légère qui ne prend pas en charge les formulaires interactifs remplissables ou le javascript dans les fichiers PDF.
Sumatra a également des options de configuration pour le verrouiller encore plus, comme empêcher le système de fichiers ou l'accès à Internet.
Le format de fichier PDF a de nombreuses fonctionnalités interactives destiné à rendre le format plus utile, mais qui créent des risques de sécurité importants, notamment: - L'utilisation de javascript pour fournir un contenu interactif, qui permet l'automatisation de l'interface utilisateur - La possibilité d'interagir avec le système de fichiers local - la possibilité d'émettre une requête HTTP vers un serveur distant - la capacité de transporter une charge utile de pièces jointes arbitraires, y compris des logiciels malveillants - le capacité à présenter un formulaire à remplir à l'utilisateur, puis à capturer et à agir sur les informations renseignées Ces capacités combinées constituent une boîte à outils puissante pour un attaquant. De nombreuses attaques dites de "téléchargement au lecteur" reposent sur l'utilisation de fichiers PDF.
Les lecteurs PDF courants tentent de sécuriser ces fonctionnalités en créant des environnements sandbox ou en donnant des invites à l'utilisateur, mais ces solutions sont à la fois plus complexes (et donc soumis à leurs propres vulnérabilités) et moins compatibles avec les produits d'autres parties que la solution plus simple consistant simplement à omettre complètement cette fonctionnalité.
Sumatra est un exemple de visionneuse PDF qui ne fournit pas la plupart des fonctions les plus couramment utilisées dans les exploits PDF. En éliminant complètement des catégories entières d'attaques potentielles, ces programmes réduisent considérablement le risque de visualiser des fichiers PDF inconnus.
Un autre avantage de l'utilisation d'un lecteur moins populaire est que, comme il est à la fois moins courant et moins puissant, c'est une cible moins intéressante.
Le visualiseur de Sumatra pourrait éventuellement être exploité par un PDF spécialement conçu qui profite d'un bogue inconnu pour provoquer un débordement de tampon, par exemple. De tels cas sont cependant rares et il n'y a pas eu d'exploits de sécurité importants à Sumatra ces dernières années.
Les dernières versions d'Adobe Reader (version 10.1 et plus) prennent en charge le "Mode protégé" ou le sandboxing qui peut être utilisé pour afficher des fichiers PDF non approuvés. Cela restreint effectivement l'accès du processus affichant le fichier PDF à % appdata% \ Adobe \ Acrobat
et à d'autres PDF qui sont explicitement ouverts par l'utilisateur.
Le mode protégé doit être activé en allant dans le menu Edition-> Préférences et en sélectionnant l'onglet Général ou Sécurité, selon la version:
De toute évidence, vous ' Je souhaite fermer tous les fichiers PDF sensibles comme vos relevés bancaires avant d'ouvrir le fichier non fiable.
Nous pouvons dire que TOUTES les attaques sauvages ou ciblées utilisant un fichier PDF malveillant sont couvertes par des techniques d'obfuscation pour durcir le processus d'analyse ou de détection.
La plupart des techniques d'obfuscation utilisent principalement JavaScript obfuscation comme eval (), String.fromCharCode (), arguments.callee (), base64, et même avec des valeurs de clé PDF telles que / Author, / Keywords, / CreationDate et etc.
Nous pourrions ne pas pouvoir afficher le contenu du fichier PDF malveillant (ceux du flux d'objets PDF) car il pourrait être dégonflé couramment avec FlateDecode. Mais il existe des outils disponibles pour nous permettre de gonfler le contenu dans le flux d'objets PDF, tels que pdf-parser (http://blog.didierstevens.com/programs/pdf-tools/) et FileInsight (http: // www. mcafee.com/us/downloads/free-tools/fileinsight.aspx). La plupart du code JavaScript obscurci se trouvera dans le flux PDF gonflé.
Nous pouvons vous conseiller d'obtenir la dernière version corrigée du lecteur PDF avec la fonctionnalité JavaScript désactivée pour ouvrir le fichier, mais la bonne solution est pour obtenir une machine virtuelle où vous pouvez la supprimer ou rétablir l'instantané après avoir ouvert le fichier.
Une autre option simple et moins longue consiste à l'ouvrir dans l'application Sandboxie, ce qui l'isolerait.
Vous pouvez ouvrir le PDF dans un conteneur. Voici une image de docker que vous pouvez utiliser: https://hub.docker.com/r/chrisdaish/acroread/
MY_PDF_DIR = '/ tmp / foobar'docker tirez chrisdaish / acroreaddocker run -v $ MY_PDF_DIR: / home / acroread / Documents: rw \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e uid = $ (id -u) \ -e gid = $ (id -g) \ -e DISPLAY = unix $ DISPLAY \ --name acroread \ chrisdaish / acroread
Cela ouvrira un Acrobat Reader qui s'affichera via le serveur X local .
L'approche réduit la surface d'attaque, mais n'est pas sûre à 100% car elle a accès à votre serveur X.
Vous pouvez utiliser une combinaison visionneuse / système d'exploitation moins populaire. Je suppose que personne ne cible Okular fonctionnant sur FreeBSD (bien qu'il puisse toujours être vulnérable), donc si vous ouvrez le fichier dans une VM, vous devriez être très en sécurité.
Pour nuire, la charge utile non autorisée doit correspondre la version de la visionneuse et l'OS et l'architecture CPU bien sûr. C'est vraiment un assemblage et une mémoire de bas niveau (la charge utile s'attend à être placée à une adresse mémoire particulière et s'attend à ce que certaines fonctions système standard soient disponibles). Si vous modifiez l'un de ceux-ci, la charge utile risque de ne pas s'exécuter correctement (ou le spectateur risque simplement de planter sans nuire).