Extrait de l'émission CPU release Ex0193 : Datamatrix, QR-code et autres damiers.
Dès qu'il est question d'utiliser une caméra ou un scanner, la lecture de QR-Code est maintenant embarquée dans nombre d'applications, parfois sans même que l'utilisateur ou même l'assembleur de l'appareil ne soient informés. Pourquoi ? Parce que reconnaître un QR-Code est devenu de facto la première étape pour valider un logiciel de reconnaissance de forme, et donc de caractères, car le code source est en licence libre, et qu'il est un bon test applicatif.
Donc, supposons que vous êtes une municipalité qui a acquis un système de vidéo-surveillance. Euh pardon vidéo-protection
. Avec une solution genre lecture OCR (reconnaissance de caractère) de plaque minéralogiques de voitures, ou reconnaissance de visages de piéton et cyclistes.
Il se trouve que ces deux solutions sont fortement encadrées par la CNIL, mais il semble que nombre de collectivités locales s'en contrefiche. Passons sur des détails
.
Les deux features en question sont basées sur de la reconnaissance de forme. Or, il est bien plus facile pour un logiciel lecteur de reconnaître un datamatrix ou un QR-code, qu'une lettre ou un visage. Donc le logiciel derrière implémente souvent la reconnaissance de damier avant celle des pare-chocs ou des lunettes. S'il voit sur une vidéo un code-barre 2D, il va l'extraire, le décoder à la volée et l'enregistrer dans un fichier temporaire sans y penser.
La plupart de ces systèmes de reconnaissance de forme tournent sur un Windows pour la facilité supposée d'administration d'une flotte informatique. Et donc y sont installés des antivirus pour éviter que le système informatique se fasse véroler et mette en rade toute l'infrastructure derrière.
Bon, maintenant que je vous ai présenté les ingrédients, vous mettez tout ça dans un shaker, vous prenez un hacker qui a envie de faire une démo percutante lors d'une prestigieuse conférence de hacking. Et vous secouez de rire. [Avec la musique du film « Cocktail »
Plantage !
Voilà comment le hacker Richard Henderson a imprimé la signature de test de virus EICAR sur un QR Code, et a raconté lors de la conférence DEF CON29 à Las Vegas ce qu'il a découvert.
Les résultats sont assez comiques, sauf pour ceux qui opèrent ces solutions.
Le gag est tellement simple et montre bien les effets de bords des SDK (les couches logicielles) empilés et sur-empilés ; trois logiciels à priori totalement inoffensifs : un numériseur d'image, un service de reconnaissance de forme (OCR), et donc un antivirus.
On a donc fait entrer un troisième ingrédient, le test EICAR. Il se trouve que pour tester les antivirus, on a une méthode standard, édictée par l'EICAR (European Institute for Computer Anti-Virus Research), un fichier de 68 octets qui porte justement le nom d'EICAR, et qui est supposé être reconnu par tout antivirus qui travaille sur une base de signature. En gros, EICAR est inoffensif, c'est un exécutable MS-DOS minimal assez remarquable qui s'il est exécuté, ne fait qu'afficher le message EICAR-STANDARD-ANTIVIRUS-TEST-FILE!
.
La possession de cet exécutable riquiqui est légale : son usage est prévu pour tester les procédures anti-intrusion dans les réseaux informatiques sans mettre ceux-ci en danger. Donc vous pouvez l'importer dans un réseau d'entreprise sans craindre d'être poursuivi légalement ou que votre assureur vous sonne les cloches. Si en la présence d'EICAR, un système protégé ne se met pas en alerte et ne passe pas immédiatement en quarantaine en sa présence, alors on a un très gros soucis et là, votre assureur peut légitimement faire les gros yeux.
Donc EICAR est un fichier test volontairement tueur
car l'antivirus testé doit justement en sa présence démontrer qu'il met au maximum les systèmes en sécurité en les verrouillant. Et que se passe-t-il si le fichier EICAR est inclus dans un QR-Code en tant que fichier binaire ?
Le QR-Code est reconnu par le logiciel OCR. Le fichier de test EICAR contenu dedans est extrait et sauvé dans un fichier par le logiciel de reconnaissance de forme, afin de le passer à la brique logicielle suivante. L'antivirus découvre que ce fichier vient d’apparaître dans un espace permissif et se dit qu'un vrai virus pourrait aussi passer par le même procédé, et donc, il interrompt immédiatement les logiciels de caméra intelligente
par où le virus a pénétré
, voire met en sécurité l'ensemble du système informatique.
Résultat : des bornes de caisse d'hypermarché, de lecture de passeport en aéroport, mais aussi des caméras de vidéosurveillance dans des galeries commerciales tombent immédiatement en rade, bloquées par leur antivirus.
Si cela vous arrive, devant l'écran de plantage, n'oubliez pas de vous exprimer Oh ! la belle bleue
.
Petit aparté puisque durant l'été où nous enregistrons cette émission, la ville de Toulouse met en circulation des véhicules de verbalisation automatique de stationnement non payé, et que ça marche avec des caméras et de l'OCR de plaques minéralogiques reliés à la base des plaques entrées dans les parcmètres... On n'encourage en rien à ce que vous amusiez à mettre un QR Code avec l'EICAR accolé sur des pare-chocs de voiture. Si effectivement la collecte automatique de données personnelles plante lors d'une telle situation, nous ne pourrons que féliciter la Mairie de Toulouse d'avoir choisi un prestataire en Partenariat Public Privé qui a une sécurité informatique terriblement efficace
.
Attention : cette chronique n'est pas une incitation à tester ainsi leur équipement, l'équipe de l'émission CPU et Radio <FMR> ne recommandent absolument pas d'effectuer ce genre de test d'intrusion passive : nous rappelons qu'exercer un pen-testing, un test d'intrusion, sans la sollicitation de l'opérateur dudit système est répréhensible pénalement en France, article 323-3-1 du Code Pénal, suite à une jurisprudence de 1999 de la cour d'appel de Toulouse.
Je tiens personnellement à ajouter qu'un tel fichier peut devenir compliqué à supprimer une fois mis en quarantaine par un antivirus, une circonstance aggravante car vous vous maintenez dans l'infrastructure victime.
Au-delà des QR-Code et des tentatives de déni de service sur des systèmes de vidéo-surveillance, l'exercice est intéressant : les briques logicielles deviennent tellement complexes qu'on connaît rarement toutes les fonctionnalités activées par défaut.
Et donc, oui, même si la blague est potache et peut mettre en rade nombre de services, notamment des lecteurs de médicaments dans un hôpital, il doit faire réfléchir sur notre manière d'assembler des Legos matériels, logiciels et API cloud : Toujours lire la doc en détail avant. Toujours
Des fois, ça aide.
Texte : Da Scritch
Illustrations musicales : extrait de la chanson « Terriblement efficace » de Tessa Martin
Illustration graphique : a japanese person using its mobile phone on a qr-code
généré via Dall-E 2, reversé en CC-NC-SA