Adobe Reader X : la fonction « bac à sable » est-elle efficace ?
Date : 03 Mai 2012
En novembre 2010, Adobe a publié la version X de son lecteur PDF Adobe Reader. Cette nouvelle version ajoute au lecteur PDF une protection de sécurité en intégrant une fonction de « bac à sable » qui limite les actions que peut entreprendre un fichier PDF malveillant. Il s’agit d’une avancée majeure du modèle de sécurité d’Adobe Reader. Plus d’un an après cette entrée en service, nous faisons un point sur son efficacité.
1) Présentation de la fonction « bac à sable »
Cette fonction s’appelle officiellement « Protected Mode » dans Adobe Reader, et « Protected View » dans Adobe Acrobat (voir le paragraphe 3 pour plus d’explications sur Adobe Acrobat). Elle existe uniquement pour les versions Windows de ces produits (les versions Mac OSX et Linux/Unix du Reader n’en bénéficient pas). Elle confine l’exécution du Reader dans un environnement contrôlé dans lequel :
- le Reader a des privilèges restreints (abandon de certains privilèges Windows).
- certaines opérations sont interdites. Par exemple toutes les tentatives d’écriture (création de fichier, modification de la Base de Registre) sont interceptées et interdites. Il existe cependant des exceptions à cette interdiction, définies au moyen de « Policies » dans le fichier « ProtectedModeWhiteList.txt ».
L’objectif premier que s’est fixé Adobe en concevant cette fonction est d’empêcher un PDF malveillant de déposer un fichier sur le disque, ou d’espionner les interactions utilisateurs (pour contrer les PDF malveillants de type « keylogger »).
D’un point de vue technique, Adobe indique que le « Protected Mode » a été implémenté en prenant comme modèle le bac à sable défini par Google pour Chrome et s’appuie sur les techniques de sandboxing proposées par Microsoft sur Windows. Au lancement d’Adobe Reader un premier processus est lancé : le « Broker ». Celui-ci configure puis lance un second processus qui est la « Sandbox » proprement dite. Toutes les opérations interdites interceptées dans la Sandbox (par des mécanismes de « hooking » classique, cf. notre article d’avril 2006 qui expliquait le principe du « hooking ») sont transmises au Broker (via un mécanisme IPC – Inter Process Communication - basé sur de la mémoire partagée) afin que celui-ci décide de les bloquer ou non, en fonction de la Policy.
Nota : pour restreindre les privilèges accordés au Reader, Adobe utilise plusieurs techniques disponibles sur Windows, dont l’une d’entre elles est la notion de niveaux d’intégrité (un processus lancé avec un niveau d’intégrité bas ne peut pas communiquer avec des processus ayant un plus haut niveau d’intégrité). Dans le cas où une attaque parviendrait à exécuter du code arbitraire dans la Sandbox, ce code arbitraire s’exécuterait à un bas niveau d’intégrité ce qui limite les actions malveillantes possibles sur la plate-forme. Ce mécanisme de niveaux d’intégité n’existe qu’à partir de Windows Vista et les utilisateurs d’Adobe Reader sur Windows XP n’en bénéficient donc pas. Cela ne remet pas en question l’intérêt de la Sandbox pour Windows XP puisque l’objectif premier de la Sandbox est de bloquer les écritures et que les niveaux d’intégrités ne sont qu’un mécanisme supplémentaire de protection.
2) Ce bac à sable est-il efficace ?
Selon Adobe, à ce jour (voir le dernier paragraphe de cette annonce faite en février 2012), aucune attaque réelle n’a réussi à mettre en défaut le mécanisme de bac à sable implémenté par Adobe Reader X. Plusieurs études ont été publiées lors de conférences à propos de la sécurité d’Adobe Reader X (voir la section « Pour plus d’information » en fin d’article). Il en ressort que :
- Les attaques classiques (consistant à exploiter une vulnérabilité dans le Reader pour installer un malware sur le poste de la victime) sont effectivement arrêtées par cette protection.
- Mais que des attaques, conçues en prenant en compte et en contournant les restrictions du « Protected Mode » d’Adobe, restent possibles.
- La première consiste pour le code malveillant à ne pas chercher à s’échapper de la Sandbox et d’en accepter les limitations. Dans sa version actuelle, la sandbox n’empêche pas les accès réseaux, l’accès en lecture sur le système de fichier et sur la base de registre, ou l’accès en lecture et écriture sur le presse-papier. Cela offre donc un certain nombre de possibilités d’actions pour un code malveillant s’exécutant dans la Sandbox.
- La seconde consiste pour le code malveillant à attaquer le mécanisme de Sandbox. Par exemple on peut tenter d’attaquer le Broker en déposant des messages malformés dans l’espace IPC réservé à la communication entre la Sandbox et le Broker. On peut aussi tenter d’exploiter les faiblesses dans le moteur chargé de controler les « policies » pour changer les restrictions définies par défaut. La vulnérabilité CVE-2011-1353 (Adobe Reader X Sandbox Bypass Vulnerability) corrigée en septembre 2011 pourrait permettre une attaque de ce type.
3) Autres technologies utilisant le bac à sable
Adobe a implémenté cette technique de bac à sable tout d’abord sur Adobe Reader 10 (disponible depuis novembre 2010), puis l’a inclus dans Adobe Acrobat 10.1 (disponible depuis juin 2011). Dans le cas d’Acrobat, Adobe a baptisé cette fonctionnalité « Protected View ». Lorsque l’option « Protected View » est activée (elle ne l’est pas par défaut) les fichiers PDF sont ouverts dans un mode « Read-only » en utilisant le même mécanisme de bac à sable que le « Protected Mode » de Adobe Reader. Une fois le document ouvert, l’utilisateur peut ensuite s’il le souhaite sortir du mode « Protected View » et bénéficier alors de toutes les fonctionnalités d’Acrobat (la fonction « bac à sable » étant alors désactivée). L’article suivant d’Adobe décrit en détail la fonction « Protected View » : Protected View in Acrobat X, Version 10.1
En parallèle, Adobe travaille également à ajouter la fonction de bac à sable à son autre produit phare : Adobe Flash Player. Dans ce cas cette fonction est implémenté par le navigateur web (car Flash est un plugin qui s’insère dans le navigateur web de l’internaute) :
- Pour Internet Explorer, Flash Player est compatible avec le « Mode Protégé » d’Internet Explorer sur Windows Vista et Seven. Cela lui confère une protection similaire à la Sandbox d’ Adobe Reader.
- Flash Player fonctionne aussi en mode bac à sable sur le navigateur Google Chrome depuis décembre 2010 (voir cette annonce sur le blog d’Adobe).
- Le fonctionnement sur le navigateur Firefox a lui été annoncé en février 2012 (voir cette annonce sur le blog de Adobe).
Au dela des solutions Adobe, la technique de bac à sable a aussi été implémentée par plusieurs autres produits. Les lecteurs intéressés trouveront en fin d’article un pointeur vers une étude comparée du niveau de sécurité des bacs à sable des produits suivants : Microsoft Internet Explorer, Adobe Reader et Google Chrome.
4) Conclusion
Tout le monde s’accorde à dire que la fonction de bac à sable introduite dans la version 10 de Adobe Reader est un progrès notable en termes de sécurité. Elle n’est pas une panacée et les études publiées montrent qu’il reste possible de mettre au point des attaques passant outre cette amélioration de sécurité. Elle change cependant radicalement le paysage de la menace et selon Adobe, jusqu’à présent aucun code d’attaque classique (consistant à utiliser un PDF piégé pour déposer un fichier malveillant sur le poste de la victime) n’a réussi à fonctionner dans les environnements où la fonction de bac à sable était active.
On pourra noter qu’il existe cependant quelques restrictions à l’usage de cette fonction (décrites dans cette note d’Adobe) : incompatibilités connues avec certaines versions d’antivirus (McAfee et Symantec), ou sur Windows XP avec les logiciels d’aides pour les malvoyants. Elle n’est de plus pas disponible sous Linux et Mac OSX.
Enfin, il parait souhaitable de continuer à désactiver le support de JavaScript dans Adobe Reader, même sur les configurations utilisant ce bac à sable (deux précautions valant mieux qu’une !).
Pour plus d’information
Présentation du « Protected Mode » d’Adobe Reader X par Adobe
http://blogs.adobe.com/asset/2010/11/adobe-reader-x-is-here.html
Etudes de la robustesse du « Protected Mode » d’Adobe Reader X :
- Mars 2011 – CanSecWest : A Castle Made of Sand: Adobe Reader X Sandbox (SourceFire)
http://cansecwest.com/csw11/A%20Castle%20Made%20of%20Sand%20-%20Johnson.pptx - Aout 2011 – Blackhat US : Playing in the Reader X Sandbox (IBM X-Force)
http://www.blackhat.com/html/bh-us-11/bh-us-11-archives.html
- Mars 2011 - BlackHat Europe 2011 - Compte rendu de Stanislas Quastana - partie 1
(voir le paragraphe consacré à la session « Escaping from Microsoft Windows Sandboxes »)
http://blogs.technet.com/b/stanislas/archive/2011/03/22/blackhat-europe-2011-compte-rendu-de-quelques-sessions-partie-1.aspx