web-dev-qa-db-fra.com

Comment visualiser en toute sécurité un PDF malveillant?

J'ai un PDF avec des informations importantes qui peuvent contenir des logiciels malveillants. Quelle serait la meilleure façon de les voir?

43
user11101

Les exploits basés sur des documents ne visent pas le document lui-même, mais plutôt une certaine vulnérabilité dans la visionneuse. 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 spectateur est vulnérable, ce qui signifie généralement savoir précisément ce qu'est l'exploit. Mais il existe d'autres PDF téléspectateurs tels que foxit ou même la visionneuse intégrée de Google Chrome qui n'ont 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 à quoi vous vous embarquez.

MODIFIER
Si vous vous trouvez fréquemment confronté à des matériaux potentiellement malveillants, il serait très judicieux de configurer un environnement virtuel renforcé. Je recommanderais de démarrer sur 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 Host Linux à partir d'une installation en lecture seule (c'est-à-dire Live-CD).

31
tylerl

Faites-le passer par un visualiseur PDF non 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'afficher au format HTML, afin que la charge utile 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). )

18
B-Con

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 s'en sortir.

7
ysdx

Dans cette situation, j'ai toujours utilisé la commande "strings" de la commande Unix/Linux/OSX Shell. 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 d'utilisation sous Windows:

strings ScaryFile | findstr /i TextToSearchFor

Mais pour le reste de ma réponse ici, je suppose que vous êtes sur * nix, car c'est mon expérience avec les cordes. En supposant que tout ce que vous recherchez est du contenu texte (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 les paramètres de formatage dans un autre balisage, ainsi que quelques binaires (comme ascii, pas d'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

Ensuite, appuyez sur la touche "n" pour voir l'instance suivante 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 éléments comme les URL vers lesquelles le document renvoie:

strings ScaryFile.pdf| grep -i "http" | sort | uniq | less

Mais, comme indiqué ci-dessus, 99% de ce que vous verrez de la sortie des "chaînes" va être des métadonnées et des paramètres de formatage.

6
Luke Sheppard

Utilisez une machine virtuelle qui peut être restaurée pour nettoyer l'ardoise après les tests. Si le lecteur PDF est vulnérable, votre véritable poste de travail sera beaucoup moins susceptible d'être affecté.

6
user65388

Un moyen simple et direct d'ouvrir des fichiers PDF potentiellement malveillants sur un ordinateur Windows consiste à utiliser la visionneuse Sumatra PDF. Sumatra est un petit PDF qui ne prend pas en charge les formulaires interactifs à remplir ou javascript dans les fichiers PDF.

Sumatra a également 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 PDF possède de nombreuses fonctionnalités interactives destinées à 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é de interagir avec le localsystème de fichiers - la possibilité d'émettre une requête HTTP vers un serveur distant - la possibilité de transporter un charge utile des pièces jointes arbitraires, y compris les logiciels malveillants - la possibilité de présenter un formulaire à remplir à l'utilisateur, puis de capturer et d'agir sur les informations remplies Ces capacités combinées ensemble font un boîte à outils puissante pour un attaquant. De nombreuses attaques dites de "téléchargement par le biais de lecteur" reposent sur l'utilisation de fichiers PDF.

Common PDF tentent de garantir la sécurité de 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 soumises à leurs propres vulnérabilités) et moins compatibles avec d'autres les produits des parties que la solution plus simple consistant à simplement supprimer entièrement 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 de potentiel) attaques, ces programmes réduisent considérablement le risque de voir des fichiers inconnus PDF.

Un autre avantage de l'utilisation d'une visionneuse moins populaire est que, parce qu'il est à la fois moins courant et moins puissant, c'est une cible moins intéressante.

La visionneuse de Sumatra pourrait être exploitée par un PDF spécialement conçu qui profite d'un bug inconnu pour provoquer un débordement de tampon, par exemple. De tels cas sont cependant rares, et il n'y en a pas eu importants exploits de sécurité pour Sumatra ces dernières années.

4
barbecue

Les dernières versions d'Adobe Reader (version 10.1 et plus) prennent en charge "Mode protégé" ou sandboxing qui peut être utilisé pour afficher des fichiers non fiables PDF PDF. Cela restreint efficacement l'accès le processus affichant le fichier PDF dans %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:

enter image description here

Évidemment, vous voudrez fermer tous les PDF sensibles comme vos relevés bancaires avant d'ouvrir celui qui n'est pas fiable.

2
Dmitry Grigoryev

Une autre option facile et moins longue consiste à l'ouvrir dans l'application Sandboxie, ce qui l'isolerait.

1
Lee

Nous pouvons dire que TOUTES les attaques dans la nature ou ciblées utilisant un fichier PDF PDF sont couvertes de techniques d'obscurcissement pour durcir le processus d'analyse ou de détection.

La plupart des techniques d'obscurcissement utilisent principalement l'obscurcissement JavaScript comme eval (), String.fromCharCode (), arguments.callee (), base64 et même avec PDF valeurs clés telles que/Author,/Mots-clés,/CreationDate et etc.

Nous pourrions ne pas être en mesure d'afficher le contenu du fichier PDF PDF malveillant (ceux qui se trouvent dans le flux d'objet 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 gonflé PDF PDF.

Nous pouvons vous conseiller d'obtenir la dernière version corrigée de PDF lecteur avec fonctionnalité JavaScript désactivée pour ouvrir le fichier, mais la bonne solution est d'obtenir une machine virtuelle où vous pouvez le supprimer ou revenir l'instantané après l'ouverture du fichier.

1
d3t0n4t0r

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 pull chrisdaish/acroread
docker 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 lecteur Acrobat 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.

1
Valer

Vous pouvez utiliser une combinaison visualiseur/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 un VM vous devriez être très sûr.

Afin de nuire, la charge utile non autorisée doit correspondre à la version de la visionneuse, au système d'exploitation et à l'architecture du processeur, bien sûr. Il s'agit vraiment d'un assemblage de bas niveau et de la mémoire (la charge utile s'attend à être placée à une adresse mémoire particulière et attend que certaines fonctions système standard soient disponibles). Si vous modifiez l'un de ces éléments, la charge utile peut ne pas s'exécuter correctement (ou la visionneuse peut simplement se bloquer sans faire de mal).

0
filo