Le Club OSINT & Veille de l’AEGE poursuit sa série d’articles les « Guides & astuces OSINT » avec la présentation de l’application Overpass Turbo, qui permet de déterminer précisément le lieu exact de la prise de vue d’images ou de vidéos.
Le challenge CTF HEXA, organisé au cours du weekend du 28-29 janvier 2023 et sponsorisé par Sopra Steria, a été l’opportunité de mettre en lumière certaines applications de géolocalisation telles qu'Overpass Turbo. En effet, la maîtrise de cet outil s'est révélée primordiale pour pouvoir remplir certaines des missions confiées. De la géolocalisation à partir d’une image à la localisation d'un lieu avec de simples informations, cet outil, reposant sur une immense base de données, impressionne. De ce fait, savoir utiliser Overpass Turbo s’impose désormais comme l’une des compétences nécessaires pour assurer une géolocalisation rapide et précise.
Qu’est ce qu’Overpass Turbo ?
Véritable interface de requête pour Open Street Map (OSM), Overpass Turbo permet d'interagir facilement avec l’ensemble des données cartographiques présentes dans la base de données collaborative. Cette dernière regroupe tous les types d’information présents dans une zone géographique délimitée (bâtiments, lignes de transports, mobiliers urbains, forêts, points d’eau, etc.). La puissance de cette application surpasse celles des autres services de cartographie en ligne, tels que Google Maps ou Bing Maps, puisqu’elle permet une manipulation précise des données. Ainsi, déterminer un lieu à partir des éléments visibles sur une image est réalisable dans le cas où l'application est bien utilisée.
Géométrie des éléments
Afin de mieux comprendre l’environnement d’OSM, il est intéressant de souligner qu’un identifiant unique est attribué à chaque objet et que trois types d’objets sont recensés dans la base de données.
-
Le premier est un nœud (node). Sa représentation géographique est un point comportant une latitude et une longitude. Par exemple, cet arbre ci-dessous est un nœud dont l’identifiant unique est : 9049957454.
-
Le deuxième est un chemin (way), qui se définit par la connexion d’au moins deux nœuds. Il est représenté par une suite linéaire de nœuds. Ici, cette voie de tramway est un chemin possédant l’identifiant unique 218283039.
Noeud représentant un arbre dans un parc / Chemin représentant une rail de tram
-
Le troisième est une relation (relation), qui combine plusieurs chemins et peut aussi contenir des nœuds. Ainsi, ce stade est une relation en ce sens où il réunit plusieurs chemins pour délimiter une surface complexe. Son identifiant est 13028146.
Relation représentant un stade d’athlétisme
Présentation des balises
La maîtrise de l’utilisation des balises est primordiale pour retrouver les objets sur la carte. Ainsi, il ne suffit pas d’écrire le nom d’un objet (ex : arbre) pour identifier son emplacement : l’utilisateur doit savoir manier les balises, autrement dit les tags. En effet, chaque objet est étiqueté et correspond à une paire clé/valeur. La clé est la catégorie principale dont fait partie l’objet : elle regroupe les grandes familles d’objets telles que les bâtiments (buildings), les énergies (power) ou encore les éléments naturels (natural). Pour chaque clé, plusieurs valeurs sont proposées. Elles correspondent à des catégories secondaires qui permettent de préciser la nature de l’objet. À titre d’illustration, l'objet « arbre » possède la clé « natural » et la valeur « tree ». La balise de l’objet correspond donc au tag ["natural"="tree"]. À noter que la base de données recensant l’ensemble des clés et valeurs est consultable sur le site taginfo.openstreetmap.
Application concrète
Pour bien comprendre la puissance de l’application, il est intéressant d’appliquer les notions présentées ci-dessus sur un cas concret. Lors de l’édition 2023 du CTF Hexa, l’une des missions (Final countdown) a été de retrouver un lieu à partir de la consigne suivante :
« Comme prévu, nous nous cachons dans le bâtiment de la zone 4 (zone trouvée lors d’une mission précédente). L'homme religieux nous y a attendus comme prévu […]. De là, nous ne pourrons pas rejoindre la mer à pied (plus de trois kilomètres à pied) […]. J'ai marché pendant cinq minutes et je suis arrivé sur un terrain où des habitants jouaient au football […]. Donnez-nous l'identifiant du nœud OSM de ce "bâtiment" pour que nous puissions envoyer une équipe. »
Ce court passage offre quatre informations brutes importantes permettant d’élaborer une stratégie de résolution :
-
La zone géographique : zone 4 ;
-
L’information sur le bâtiment : bâtiment religieux ;
-
La distance par rapport à la mer : plus de 3 kilomètres ;
-
Le temps séparant le bâtiment d’un terrain de foot : 5 minutes à pied.
Délimitation graphique de la zone 4
Après une rapide analyse des informations précédentes, il a été simple de reformuler une stratégie pour identifier la cible. En effet, sachant que le bâtiment religieux se situe en Malaisie, il s’agit très probablement d’une mosquée (la grande majorité de la population étant de confession musulmane). De plus, en connaissant le temps qui sépare la potentielle mosquée du terrain de foot, il est facile de déduire la distance approximative : 400 mètres pour une personne marchant à 5 km/h. Par conséquent, la démarche à suivre a été d’identifier une mosquée présente dans la zone 4, éloignée au maximum de 400 mètres d’un terrain de foot et située à plus de 3 kilomètres de la mer.
Cette mission, particulièrement laborieuse à réaliser avec une cartographie en ligne usuelle, peut être facilement réalisée grâce à Overpass Turbo.
Initialisation
Le paramétrage est une étape importante. Dans cette situation, trois paramètres doivent être établis.
[timeout:700] : définit un temps maximum de 700 secondes d'exécution pour une requête
[maxsize:2000000000] : augmente la capacité pour exécuter des requêtes jusqu’à 2GB
[bbox:{{bbox}}] : filtre les recherches à la zone visible sur la carte
Première étape : Déterminer l’ensemble des terrains de foot dans la zone 4
La première étape permet de trouver l’ensemble des terrains de foot dans la zone voulue. Le bloc principal réunit tous les nœuds, chemins et relations qui correspondent à des terrains de foot. Le premier tag utilisé est la paire ["leisure"="pitch"] composé de la clé « leisure » (loisir) et la valeur « pitch » (terrain). Afin d’affiner la recherche, un second tag ["sport"="soccer"] précisant la nature du terrain de sport est apposé. L’ensemble des terrains de foot trouvés sont stockés dans la variable var_soccer, qui est alors récupérée puis affichée. Ainsi, après avoir exécuté cette première phase, un total de 12 terrains de sport est recensé dans la zone déterminée.
Affichage de l’ensemble des terrains de sport après l’exécution du code
Seconde étape : Déterminer l’ensemble des mosquées proche des terrains de sport sélectionnés
Cette seconde phase vient compléter la précédente et a pour but d’afficher les mosquées situées à moins de 400 mètres des terrains de foot répertoriés auparavant. Dans le code présenté ci-dessus, la première étape a changé. En effet, le bloc principal présent lors de la première étape est remplacé par une simple ligne de commande nwr["leisure"="pitch"]. Cette manière d’écrire l’instruction permet d’éviter les répétitions en regroupant tous les types d’objets (node, way, relation) sous une même dénomination « nwr », le résultat restant inchangé.
La nouvelle partie ajoutée concerne la seconde étape. Elle utilise la variable var_soccer de la première partie pour affiner la recherche du tag ["building"="mosque"] avec le filtre de distance (around.var_soccer:400). Cette commande permet alors de ne récupérer que les mosquées à moins de 400 mètres des terrains de foot. Il est utile de noter que seuls les objets de type nœud sont recherchés puisque la réponse demandée est l’identifiant du nœud OSM de la mosquée. Ainsi, après exécution, seuls deux terrains correspondent aux filtres utilisés.
Affichage de l’ensemble des mosquées à moins de 400 mètres des stades
En se servant de la dernière information, qui affirme que la mosquée doit être distante de plus de 3 kilomètres de la côte, il est possible de déduire que le bâtiment où se cache les fugitifs est donc la mosquée de Masjid Abdul Rahman Limbong, possédant l’identifiant OSM : 3975813161.
Localisation d’une image grâce à Overpass Turbo
Il est possible d’approfondir l’utilisation d’Overpass Turbo en géolocalisant une image. En effet, l’identification d’éléments caractéristiques sur une photo et le croisement des informations qui en découlent permettent d’affiner les recherches. Pour illustrer la démarche, il a été intéressant de s’appuyer sur une autre mission du CTF Hexa 2023. La mission intitulée « Chocolate » avait pour but de retrouver le nom de la rue où avait été prise cette photo.
Image jointe à la consigne du challenge “Chocolate”
Éléments caractéristiques de la photo
Tout d’abord, il s’agit de mettre en évidence les éléments permettant de fournir des renseignements potentiels.
Mise en évidence des éléments identifiables sur l’image
Une rapide analyse de la photo permet d’identifier quatre éléments intéressants :
-
Un possible restaurant, par la présence d’un porte-menu fixé au mur et d’une terrasse comprenant tables et chaises. Un nom à deux particules est partiellement visible sur la devanture dont la première partie termine par « alle » et la seconde partie commence par « Wo » (rectangle jaune).
-
Un magasin dont la devanture comporte la fin d’un nom « TSCH » accompagné d’un drapeau suisse (rectangle bleu).
-
Deux arbres (rectangles orange).
-
Des rails de tramway entre deux voies (encadré en rouge).
Choix des balises et affinage du modèle
Les informations collectées à la suite de l’analyse de la photo sont utiles pour déterminer la stratégie de recherche à mettre en place. Pour que l’outil Overpass Turbo puisse fonctionner efficacement, il faut pouvoir croiser un certain nombre d'éléments afin d’affiner la recherche. Cependant, dans le cas présent, chercher une rue particulière parcourue par un tramway, comprenant une allée d’arbres, un restaurant et un magasin, est impossible. En effet, il existe un trop grand nombre de possibilités à couvrir, l’outil nécessite des informations plus précises.
L’élément essentiel sur lequel il va être intéressant de travailler est le restaurant. Dans Overpass Turbo, il est possible d'exécuter une recherche sur des bâtiments, tels que des restaurants, en filtrant par le nom de l'établissement. Néanmoins, sur la photo, le nom de ce dernier est en partie dissimulé. Il faudrait pouvoir chercher en utilisant les lettres qui apparaissent, c’est-à-dire trouver les restaurants avec un nom découpé en deux parties dont la première partie termine par « alle » et la seconde partie commence par « Wo ». Il existe, pour cela, des modèles nommés « expression régulière » qui décrivent des motifs sur des chaînes de caractères. Il est bon de savoir qu’un tutoriel sur ce chapitre est consultable sur le site : wiki.cartocite.fr.
Une possibilité est de préciser que la première partie du nom commence par au moins une lettre – minuscule ou majuscule – (^[a-zA-Z]+) et se termine par (alle). Le second mot, séparé par un espace ( ), commence par les lettres (Wo) et finit par au moins une lettre – minuscule ou majuscule – ([a-zA-Z]+$). La requête suivante est ainsi obtenue : ["name"~"^[a-zA-Z]+alle Wo[a-zA-Z]+$"].
Affichage des restaurants dont le nom respecte l’expression régulière établie
Après quelques minutes d’attente, un point apparaît en Suisse, à Zurich. En cliquant sur le noeud affiché, plusieurs informations sont renseignées, telles que le nom du restaurant (Bierhalle Wolf), le nom de la rue (Limmatquai) ou encore le site Internet.
Informations du noeud affiché / Mise en évidence des éléments sur la carte
En zoomant plus précisément sur la carte, il est facile de replacer les éléments identifiables sur la photo. En effet, les rails de tramway (encadré en rouge), les arbres (encadré en orange), le magasin (encadré en bleu) et le restaurant (encadré en jaune) correspondent à la disposition spatiale de l’image initiale.
Enfin, pour s’assurer de la bonne localisation de la photo, il ne reste plus qu’à vérifier sur Google Maps.
Vue depuis Google Street View du restaurant Bierhalle Wolf
En se rendant devant le restaurant Bierhalle Wolf avec Google Street View, la même image est disponible.
Ce challenge d’OSINT aura donc permis de mettre en lumière la puissance d’Overpass Turbo afin de géolocaliser un lieu de manière précise à partir du croisement d’informations communes. Sa capacité à localiser dépend de la richesse de la base de données dans la zone considérée, mais surtout de la stratégie que l’utilisateur met en place pour résoudre le problème posé. Aussi, l’analyse au préalable de l’image et la connaissance des tags à utiliser sont les véritables clés qui permettent d’exploiter tout le potentiel de l’application.
Il ne fait aucun doute que cet outil, une fois maîtrisé, fait gagner un temps précieux aux Osinters dans les recherches et investigations en tout genre nécessitant de localiser un lieu à partir d’éléments factuels ou d’une image quelconque.
Pablo Salvan pour le club OSINT & Veille de l’AEGE
Pour aller plus loin :