Le "Cross-Site Printing" ou comment "attaquer" des imprimantes depuis Internet
Date : 28 Février 2008
Cette nouvelle attaque, nommée "Cross-Site Printing",
s'appuie sur les techniques éprouvées et utilisées pour les attaques de type
"Cross-Site Scripting".
Cependant, cette menace reste limitée du fait de la nécessité de connaître au préalable l'adresse IP d'une imprimante interne et du fait du comportement aléatoire de l'imprimante cible vis-à-vis du code d'attaque envoyé.
Analyse :
Le "Cross-Site Printing" s'appuie sur le fait qu'une
imprimante réseau interne possède le port réseau TCP 9100 d'ouvert. Ce
port est associé au service d'impression appelé "JetDirect",
"Raw" ou "AppSocket". Il fait généralement
partie des ports standards présents sur les imprimantes réseau (avec les ports
515/TCP – LPD – et 631/TCP – IPP).
Le port 9100 peut être utilisé pour envoyer des travaux
d'impression vers l'équipement d'édition sans authentification préalable. Ainsi
une simple connexion "telnet" sur ce port permet d'imprimer les
caractères qui seront saisis dans la session courante. L'impression
s'effectuera lors de la fin de session.
Ce type de comportement peut être également reproduit depuis
un navigateur web en se connectant en HTTP sur le port 9100 d'une imprimante réseau
(http://adresse_IP_imprimante:9100).
Dès lors, il devient tout à fait possible de reproduire ce
type d'action via une page web. Pour ce type d'action à l'insu de la victime, l'attaquant
peut insérer dans sa page web une balise HTML de type image (<img>)
contenant une connexion HTTP comme mentionné précédemment. Ainsi, lorsque la
victime visualise une page web de ce type située sur un serveur web ou contenue
dans un e-mail au format HTML, une connexion sur le port 9100 de l'adresse IP
contenue "en dur" dans le code d'attaque est effectuée.
Il est intéressant de noter que déjà à ce niveau-là,
l'attaquant doit préalablement connaître l'adresse IP de l'imprimante cible.
Jusqu'à présent, l'attaquant ne peut imprimer que des caractères
texte sur l'équipement d'édition visé. Cependant en utilisant dans son code
d'attaque le langage PCL ("Printer Control Language " [2] et
[3]), l'attaquant pourra imprimer des pages formatées comme une impression
classique. Des outils existent aujourd'hui afin de permettre le codage de
documents bureautique ou HTML en commandes PCL prêtes à être soumises à une
imprimante.
Il existe également dans le langage PCL des commandes intéressantes
qui permettent d'expédier des fax. L'utilisation de ce type de commandes dans
un code d'attaque peut alors devenir relativement problématique si l'équipement
ciblé est une imprimante multifonctions (imprimante, copieur, fax). Il devient
alors théoriquement possible à un attaquant de faire envoyer un fax par un
utilisateur visitant sa page web malicieuse. Par contre, l'implémentation des
commandes PCL liées aux fonctions de fax reste très dépendante de l'imprimante
cible. Cet état a pour effet de limiter les effets d'une attaque massive.
L'étude sur le "Cross-Site Printing" indique
également que d'autres commandes PCL permettraient d'insérer une page d'en-tête
("banner") lors de chaque impression.
Dès lors, ces techniques peuvent être ainsi utilisées par
des personnes malintentionnées pour mettre en œuvre des activités de spam
version "papier".
Néanmoins, ce type d'attaque ne peut être utilisé que de
manière ciblée et nécessite une très bonne connaissance de l'environnement
attaqué.
Cependant, ces techniques restent intéressantes car elles viennent compléter la panoplie des attaques ciblant les imprimantes réseau et peuvent s'associer à des attaques de type "Cross-Site Request Forgery" (XSRF) [4], théoriquement possibles sur les interfaces d'administration web des équipements d'édition.
Recommandations :
Afin d'éviter ce type de malveillance il est recommandé de :
- Désactiver le port TCP 9100 sur les imprimantes où il n'est pas nécessaire
- Filtrer l'accès aux services d'impression offerts par les imprimantes (limiter l'accès par exemple aux seuls serveurs d'impression)
- Mettre à jour le "firmware" des imprimantes afin de prendre en compte les derniers correctifs de sécurité.
Pour se prémunir des attaques de type "Cross-Site Request Forgery", il est recommandé en plus de :
- Filtrer l'accès aux services d'administration offerts par les imprimantes
- Définir des mots de passe robustes sur les interfaces web d'administration
- Ne pas utiliser des PC bureautiques possédant des connexions vers Internet (web et e-mail) pour l'administration des moyens d'édition (utiliser des stations d'administration dédiées).
Pour plus d'information :
- [1] - Etude sur le "Cross-Site Printing" : http://aaron.weaver2.googlepages.com/CrossSitePrinting.pdf
- [2] - HP PCL Printer Control Language : http://www.piclist.com/techref/language/pcls.htm
- [3] - PCL 5 Printer Language Technical Reference Manual : http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl13210/bpl13210.pdf
- [4] - "Cross-Site Request Forgery" : http://en.wikipedia.org/wiki/Cross-site_request_forgery