web-dev-qa-db-fra.com

Est-il théoriquement possible de pirater l'imprimante à l'aide du plateau du scanner?

Si le plateau du scanner est considéré comme une interface et qu'il accepte les entrées (en gros, c'est sa principale fonctionnalité), pourrait-il être piraté en utilisant du code malveillant écrit sur un morceau de papier?

48
Gravemind

La réponse dépend entièrement de la mise en œuvre du processus de numérisation dans l'imprimante. Les imprimantes modernes sont essentiellement des ordinateurs et elles sont beaucoup plus puissantes que leurs prédécesseurs des premiers jours.

Donc, la question se résume à "est-il possible de pirater un ordinateur en utilisant une image"?

La réponse est oui , car la création de logiciels sans exploit est presque impossible comme décrit dans les réponses ici: n logiciel sans exploit est-il possible?

Les bibliothèques de gestion d'images présentent des vulnérabilités. Un attaquant pourrait inciter un utilisateur à ouvrir une image spécialement conçue qui exploiterait une vulnérabilité sur l'ordinateur de la victime, et donc l'affecterait d'une manière ou d'une autre.

Donc, si le processus de numérisation de l'imprimante implique une sorte de traitement des images numérisées et que son logiciel contient des bogues, nous pouvons supposer que cette vulnérabilité peut être exploitée par un attaquant averti.

pourrait-il être piraté en utilisant du code malveillant écrit sur un morceau de papier?

L'imprimante n'exécutera pas de code écrit sur un morceau de papier. Cependant, il existe une probabilité que le logiciel de l'imprimante utilisé pour le traitement des images numérisées contienne des bogues qui font que l'imprimante se comporte mal si elle rencontre une certaine image.

La surface d'attaque dépend du niveau de traitement de l'imprimante avec les documents numérisés.

Le résultat est difficile à dire. Cela dépend beaucoup de l'imprimante et de ses logiciels, de ses capacités.

46
VL-80

La réponse du VL-80 est bonne, mais il y a des conditions dans lesquelles la réponse serait clairement non pour "est-il possible de pirater un ordinateur en utilisant une image?" - par exemple, si tout le traitement de code de l'image n'a pas de branches ou de décalages de tableau dépendant des valeurs du contenu de l'image. Si l'imprimante n'a fait que copier l'image ou la stocker sous forme non compressée, cela pourrait être le cas.

Cependant, il existe au moins 3 emplacements dans lesquels il existe des chemins de code potentiellement exploitables en fonction du contenu de l'image:

  • Compression de l'image pour l'enregistrer ou comme étape de transport inutile en interne.
  • Prendre des décisions sur les motifs de tramage pour reproduire le contenu de la manière la plus précise visuellement.
  • OCR.
  • Code de porte dérobée dans l'imprimante placée par le fabricant pour évaluer si l'image que vous numérisez est de l'argent et, dans l'affirmative, modifier le résultat ou refuser de la numériser afin d'empêcher son utilisation dans la contrefaçon.

Ce dernier est presque sûrement plein de code complexe et de mauvaise qualité qui est mal compris par les personnes qui y travaillent, et c'est là que je m'attendrais à trouver des vulnérabilités exploitables. Les exploiter impliquerait de reproduire partiellement les signatures visuelles en devises, mais d'une manière que les algorithmes ne s'attendent pas à voir.

Je serai le contrarian ici.

pourrait-il être piraté en utilisant du code malveillant écrit sur un morceau de papier?

Absolument pas

Bien que des bogues se produisent dans les bibliothèques de traitement d'image, écrire du code sur une feuille de papier, le numériser et s'attendre à ce qu'il s'exécute sur le scanner à des fins de piratage est le genre de chose qui ne se produit que dans les (mauvais) films. Surtout quand il s'agit de faire en sorte que le scanner exécute littéralement du code écrit sur un morceau de papier, nous sommes loin du domaine de la probabilité de bugs accidentels et d'entrer dans un domaine où cela devrait être programmé intentionnellement - et même alors, il ne le serait pas ne sois pas très utile.

Bien sûr, nous pouvons assouplir cette exigence et poser des questions sur des faiblesses plus "standard" au lieu d'exécuter littéralement du code sur une page. De ce point de vue, il existe trois principaux sujets de préoccupation:

Vulnérabilités dans le matériel d'imagerie - hautement improbable

Vous aurez le plus de succès si vous pouvez faire quelque chose pour "tromper" le matériel d'imagerie afin qu'il se comporte de manière inattendue. Si vous avez un contrôle total sur le matériel, bien sûr, c'est tout à fait plausible - tirez dessus avec des lasers, remplacez les puces, etc. Sauf que ce n'est évidemment pas de cela dont nous parlons. Nous parlons de reprendre le système en scannant une page "malveillante" en utilisant les opérations normales du système.

En réalité, il n'y a aucune raison de penser que vous trouverez de l'aide pour les problèmes matériels. Je parle ici de mes propres années d'expérience en effectuant un traitement d'image étendu sur des images brutes directement à partir du matériel (dans mon cas, j'effectuais un traitement d'image sur des données provenant de CCD, donc un cas d'utilisation légèrement différent). D'après mon expérience avec les CCD, les CCD généreraient toujours des images valides (valide dans ce cas signifie seulement qu'il produit des images au format approprié - pas que l'image elle-même soit nécessairement significative). Il leur était tout à fait impossible de faire autre chose en raison des limitations physiques du matériel, même lorsqu'ils étaient exposés à des sources avec lesquelles ils n'étaient pas destinés à être utilisés (ce qui n'est pas une option ici de toute façon).

Notez que je n'essaye pas de dire que le matériel pourrait ne pas avoir de problèmes ou de "hoquets". Cependant, il n'y a aucune raison de penser qu'un morceau de papier spécialement conçu pourrait causer des problèmes au matériel d'imagerie réel - généralement, ils ne fonctionnent tout simplement pas comme ça.

Vulnérabilités dans les bibliothèques de traitement d'images - également à éviter

Cela a été mentionné dans les réponses précédentes. Il y a eu un certain nombre d'exemples de vulnérabilités de sécurité dans les bibliothèques de traitement d'image, parfois même dans la mesure d'une vulnérabilité d'exécution de code.

Cependant, cela ne signifie pas qu'il s'agit d'une grave préoccupation pour les scanners - en fait, ce n'est pas le cas. Le problème est que, pour que les vulnérabilités des bibliothèques de traitement d'image soient exploitables, l'attaquant doit avoir un contrôle substantiel sur l'entrée dans la bibliothèque de traitement d'image. Ce n'est tout simplement pas le cas ici. Au lieu de cela, l'attaquant a le contrôle sur l'entrée du matériel d'analyse. La bibliothèque de traitement d'image fonctionne alors à partir de ce qu'elle est donnée par le matériel. Par conséquent, pour exploiter un bogue dans la bibliothèque de traitement d'image, il faudrait non seulement un bogue dans la bibliothèque de traitement d'image, mais également une faille dans le matériel d'imagerie qui permet à la "charge utile" de l'attaquant de survivre en quelque sorte au processus d'imagerie (qui est lui-même sujet à de nombreux sources d'erreurs et de biais aléatoires, rendant probablement impossible un exploit cohérent).

Puis-je "prouver" qu'une telle chose est impossible? Bien sûr que non. Des choses folles se produisent après tout, et de nombreux exploits du monde réel se produisent à la suite d'échecs à plusieurs niveaux. Cependant, ce n'est pas parce que quelque chose peut être considéré comme "plausible" qu'il doit s'agir d'un réel problème de sécurité, ni même que cela s'est déjà produit. Je ne perdrais certainement pas mon temps à essayer de vérifier la sécurité de mes scanners/copieurs de bureau pour ce type de vulnérabilités.

Capacités OCR - pas non plus un problème

La possibilité de faiblesses dans l'OCR a été évoquée. Ce n'est pas non plus une préoccupation sérieuse. Il y a deux réalités importantes qui en font un non-démarreur:

  1. La plupart des copieurs ne sont pas livrés avec un logiciel OCR intégré
  2. Les vulnérabilités RCE dans les logiciels d'OCR sont pratiquement inconnues.

Honnêtement, je vais en rester là.

Sommaire

Bien sûr, des vulnérabilités ont été trouvées dans des endroits très inattendus, et vous ne savez jamais quelles choses folles finiront dans le code/matériel. Cependant, c'est security.stackexchange, pas worldbuilding.stackexchange, donc je pense qu'une réponse fondée sur la réalité est importante. Par conséquent, je tiens à souligner que, bien que pratiquement tout soit possible en ce qui concerne les faiblesses de sécurité, il s'agit d'une tentative de pirater un système au point le plus efficace. Le matériel d'imagerie est effectivement un puissant système de normalisation des entrées, et il devrait être presque impossible d'obtenir une charge utile malveillante. De plus, les types de faiblesses qui sont généralement présents dans les bibliothèques de traitement d'image reposent sur la modification des images d'une manière que quelqu'un "attaquant" physiquement ne peut pas effectuer.

Possible? Seulement dans le sens où tout événement avec une probabilité non nulle est possible. Une préoccupation légitime? Définitivement pas. Je ne dirais même pas que c'est "théoriquement" possible.

4
Conor Mancone

En 2017, des chercheurs du Cyber ​​Security Research Center de l'Université Ben Gourion en Israël ont démontré une attaque de scanner à l'aide de lasers. Des lasers montés sur drone contrôlés par un attaquant ont été utilisés pour communiquer avec des logiciels malveillants installés derrière un système à écartement, par ex. par une fenêtre dans un bureau.

Article ici: https://arxiv.org/abs/1703.07751

Ce n'est pas exactement ce qui est demandé et cela n'implique pas de codes papier, mais cela peut être pertinent concernant les vulnérabilités du scanner.

Article pop-sci connexe ici: https://www.digitaltrends.com/cool-tech/hacked-scanner-laser-drone-method/

4
Nat

Théoriquement possible? Oui bien sûr

Avec le scanner exécutant le texte lisible par l'homme qui y est écrit? Pas vraiment, comme mentionné dans d'autres réponses. Vous auriez besoin d'avoir une imprimante programmée pour faire quelque chose au moins légèrement similaire. Par exemple, si ce scanner avait un assistant Alexa qui attendait des requêtes écrites.

Cependant, je ne pense pas qu'un "code malveillant écrit sur un morceau de papier" doive être pris de cette façon. Le code peut prendre plusieurs formes. En fait, le principal problème pour une explosion dans le monde réel sera, une fois que vous aurez lancé des données numérisées X de lancer votre exploit, d'obtenir un morceau de papier numérisé vers ce code, car une différence d'un bit se traduira par un shellcode complètement différent. (un qui ne fonctionne pas, en fait). Avec une numérisation monochrome à basse résolution, vous aurez besoin d'une haute précision pour créer le morceau de papier.

En ce qui concerne le code vulnérable qui pourrait être exploité, et cela entre plus dans le domaine de la construction du monde, je suggérerais la fonctionnalité pour empêcher les photocopies d'argent.

De nombreuses photocopies détectent un motif sur les billets de banque (la " constellation EURion ) afin de refuser de copier de l'argent.

Cela signifie qu'il existe une spécification secrète de la façon dont les cercles peuvent être localisés (bien qu'une grande partie ait été inversée), un algorithme secret correspondant utilisé par le fabricant du scanner pour les détecter (dont la publication pourrait montrer comment `` jouer '' la détection) et en général un code assez secret (probablement seulement quelques personnes y auront accès) qui ne sera pas très testé (en particulier, pour les raisons ci-dessus, les tests consisteront probablement à scanner un billet de banque ou un certain papier de test ).

Notez également que ce code sera exécuté après le matériel a copié l'image. Vous pouvez donc imaginer un modèle d'exploit situé de cette manière (par exemple au début/à la fin des données de numérisation), avec un code EURion naïf qui, lors de la recherche d'un candidat de cercle, en recherche un autre à l'emplacement X pour le trouver - avec pas de vérification des limites. Si cette vulnérabilité entraînait l'exécution de code, il vous suffirait de sauter n'importe où dans les données d'image (en mémoire à ce stade), où il y aurait un grand traîneau nop menant au shellcode (que, s'il s'agit d'une imprimante, il pourrait alors exécuter une étape postérieure ultérieure).

1
Ángel