[Espionnage] – Les méthodes de détection d’outils « physiques » de surveillance
Bonjour à tous,
Je reviens d'une semaine de vacances, reposé, et prêt à reprendre du service !
Aussi, durant mes vacances une personne qui bosse dans une agence "top méga secrète de la mort qui tue", m'a demandé s'il était possible de lui construire une "valise" de "contre-espionnage" !
J'ai donc, avant de me jeter tête baissée dans un nouveau projet, pris le temps d'analyser un peu la complexité de la demande ...
L'Objectif étant ici de détecter la présence de Caméra et de Micro dans une pièce.
Alors, concrètement, et pour ne froisser personne, j'ai compilé quelques manières de faire qui sont faciles à "automatiser" au travers d'une application pour smartphone ou sur un système embarquée type "Arduino" ou "Raspberry".
Cependant ces méthodes ne sont ni plus ni moins que des indicateurs de "risque", elles vont simplement vous dire "Attention il y a peut-être un objet de surveillance" par ici, cela implique de faux positifs.
Reconnaissance d'une caméra par "champs magnétiques"
La plupart des smartphones récents embarquent ce que l'on appelle un "magnétomètre".
Ce petit capteur est un excellent outil pour la détection de "métaux".
Certains l'utilisent également dans des applications de type boussole ...
Bref, ce magnétomètre, est utilisé par les détecteurs de métaux.
Vous pouvez donc utiliser dans cette expérience un smartphone avec une application "magnétomètre" / "détecteur de métaux", ou bien, un véritable objet de détection de métaux si vous en avez un !
Il faut cependant prendre en compte que le capteur embarqué par votre smartphone n'est pas très très "puissant".
Il faudra coller le smartphone sur l'objet métallique pour obtenir une détection ...
Lorsque vous passerez le détecteur de métaux, ou votre smartphone sur une caméra (appareil photo, caméra de smartphone, caméscope, ...), vous pourrez constater que le capteur va s'affoler par l'intensité du champ magnétique !
Reconnaissance d'une caméra par le "reflet"
Comme toutes surfaces en verre, lorsque celle-ci sera exposée à de la lumière, une lentille renverra un reflet.
Aussi, de nombreux outils s'appuient sur cette science, pour identifier les caméras via une reconnaissance dudit reflets !
La plupart des outils sur le marché utilisent des jeux de lumière d'une ou plusieurs couleurs pour repérer la ou les caméras à l'aide de leurs reflets.
Bien entendu plus il y a de couleurs et de jeux de lumière, plus la reconnaissance sera pertinente et la caméra facile à repérer
Une démonstration ?
Voici un script HTML5, que j'ai développé rapidement (et que je n'ai malheureusement pas spécialement pris le temps d'optimiser) : detectFlashReflect
Vous pouvez le voir directement en action ici : [JSFiddle]
Dans cet exemple simplifié je m'appuie sur le reflet d'une seule lumière blanche, celle d'un flash.
Cet exemple est donc "minimaliste", et n'a pour unique vocation, que de montrer un fonctionnement.
Celui-ci prend pour paramètre 2 images "identiques".
L'une avec flash et l'autre sans.
Puis ensuite, il les compare et recherche les grosses zones "blanches", qui sont typiques d'un flash sur du verre, celui d'une lentille par exemple !
L'idée ici, pour reconnaître lesdites zones "blanches", c'est avant tout de définir sur une photo ce qui est blanc ... et ... blanc ...
Car malheureusement ... ou heureusement, la richesse des couleurs, fait qu'il n'y a pas un seul "blanc" unique (pour les gouverner tous ... ) ...
Il est donc important de savoir que pour chaque couleur, correspond à celle-ci, un code "RVB" (Rouge Vert Bleu) plus souvent utilisé à l'anglaise "RGB" (Red Green Blue)
Pour Info :
Un code RGB, est une combinaison de 3 nombres correspondant chacune à 3 couleurs :
Le rouge : 255 - 0 - 0
Le vert : 0 - 255 - 0
Le bleu : 0 - 0 - 255
Pour obtenir une couleur sombre voir noir, il faut que ces 3 numéros soient le plus proche de 0
Noir correspondant à la couleur : 0, 0, 0
Pour obtenir une couleur clair voir blanc, il faut que ces 3 numéros soient le plus proche de 255 (la valeur maximum), généralement entre 250 et 255.
Blanc correspondant à la couleur : 255,255,255
Donc dans l'idée, si l'on souhaite reconnaître un flash dans une lentille :
On compare une photo sans flash, et une avec.
On extrait ensuite ici, toutes les zones blanches qui sont "continues" qui ne sont pas présentes sur la photo sans flash, et l'on obtient alors les potentielles zones où seraient cachées des caméras !
Pour affiner les résultats je permets de définir la taille minimum que doivent avoir ces zones.
Et hop ça fait des Chocapics !
Reconnaissance des Caméra par "infrarouge"
Là non plus, il n'est pas nécessaire d'avoir fait 20 ans d'études pour comprendre comment ça marche.
Une caméra qui souhaite "voir" dans le "noir" sera équipée de LED infrarouge (des LED qui affichent une lumière invisible à l'oeil nu, mais qui sera visible via un appareil photo numérique)
Si vous voulez faire un test chez vous :
Utilisez la caméra de votre smartphone, pointez là en direction de la LED de la télécommande de votre télévision, puis appuyez sur une touche de la télécommande.
Vous devriez voir sur votre smartphone, la petite LED située au bout de la télécommande s'allumer.
Là aussi, pour un développeur le travail est d'autant simplifié !
Une simple photo dans le noir, et toutes les petites zones "claire" ont de fortes chances d'être les LED infrarouges d'une caméra !
Pour ce qui est des micros
Pour l'instant je n'ai pas encore beaucoup de matière sur le sujet, mais je suis ouvert aux propositions fournies par vos commentaires !
Une petite application qui fait le taff ?
Alors personnellement je recommande très rarement d'utiliser une application codée par une autre personne que moi-même ... j'aime m'équiper de mes propres outils, sans doute par paranoïa ;)
J'ai donc développé rapidement un proof of concept pour Android :
https://dyrk.org/divers/DetectCam.apk
Cependant j'espère que des développeurs parmi vous auront envie de développer à leurs tours des outils à moindre coût !
Des outils physiques, des applications mobiles ou des logiciels pour la communauté !
Conclusion
Soyez prudent, l'agent 007 est peut-être sur vos traces !