Pivoter avec des éléments techniques – les MOOCs du Hamas

Pivoter avec des éléments techniques – les MOOCs du Hamas

Cet article a été réalisé sur la base du travail de recherches en sources ouvertes des participants à la dernière formation généraliste OpenFacto fin juin 2019. Elle est le fruit des deux jours de formation et d’un travail collaboratif de groupe de fin de stage sur un sujet non résolu.

Le Hamas lance une campagne de levée de fonds bitcoin

Le 31 janvier 2019, les Brigades d’Al Qassam, la branche armée du Hamas considérée comme un groupe terroriste par les Etats-Unis, l’UE et d’autres pays, lancent une campagne de soutien de ses forces en bitcoin avec la promotion sur ses supports de communication de l’adresse suivante : 3PajPWymUexhewHPczmLQ8CMYatKAGNj3y.

Quelques visuels de la campagne de levée de fonds du Hamas
Le site donne à présent une adresse BTC unique aux sympathisants pour effectuer leurs transferts

Cette campagne est notamment étudiée en détail par plusieurs analystes OSINT comme Ghost Security Group qui analyse le circuit crypto en février 2019.

Analyse graphique par @RaijinRising de Ghost Security Group

Bellingcat en fera un tutorial sur la recherche sur les crypto-monnaies en utilisant le cas spécifique des Brigades Al Qassam en mars 2019.

Rebondir du Hamas à un MOOC: l’adresse bitcoin

En réalisant une simple recherche de l’adresse bitcoin des Brigades Al Qassam sur le moteur de recherche Google, on découvre parmi les résultats le site internet d’une école islamique en ligne : la Islamic Digital School/ Ahmed Yassine Institute. L’adresse BTC retrouvée sur le site pour faire des dons à l’école, semble être la même que celle utilisée par les Brigades Al Qassam, affiliée au Hamas.

Visuel que l’on retrouve à cette adresse  et archive

Pivoter à partir des éléments techniques

Avec comme point de départ un site internet, on peut observer et rechercher plusieurs éléments afin de trouver de nouveaux indices pour rebondir et pivoter sur la suite.

On commence donc par observer la conception du site en se demandant si la qualité est au rendez-vous, si on comprend à quoi il sert, dans quelle langue il est écrit. On repère aussi les emails, les numéros de téléphone, les adresses physiques, les liens vers les réseaux sociaux et les images. Parfois en basculant sur une autre langue, le site peut s’avérer plus complet.

Dans notre cas, le site internet ressemble à une page de blog déroulante écrite en anglais et en arabe. La mission de l’Institut Ahmed Yassine – le chef spirituel du Hamas – est d’être la première école en ligne sur l’islam. L’école dispense un cursus de formation sur l’Islam avec la remise d’un diplôme.

site de l’Institut Ahmed Yassine

On peut ensuite prendre le nom de domaine/url « ahmedyassineinstitute.com » et faire une recherche whois et un traceroute en utilisant le site ping. Le WHOIS permet d’obtenir des informations sur le propriétaire du site et sur la société qui héberge le site. Les informations sont devenues de plus en plus rare depuis la loi sur le Règlement Général sur la Protection des Données personnelles (RGPD). Un traceroute permet de voir le chemin que prend un paquet de données pour aller de sa machine au serveur qui héberge le site en question.

WHOIS du site internet
Traceroute qui nous amène au Royaume Uni

Le domaine est enregistré par une société américaine depuis le 18 Septembre 2018 avec deux adresses IP localisées en Angleterre (188.241.39.12 et 188.241.39.10). En utilisant Exonerator, on constate que ces adresses ne sont a priori pas utilisées comme relai par TOR.

Ensuite il est crucial de rechercher des mentions du site ailleurs sur internet pour voir où il apparaît et si cela peut nous aider à rebondir sur d’autres éléments d’intérêt. Une recherche de l’URL avec le dork suivant intext: »ahmedyassineinstitute.com » sur les moteurs de recherche mène à une discussion sur Reddit et une page Facebook sous le nom de Islamic Digital School.

La conversation sur Reddit débat de la véracité du site internet et de la page Facebook indiquant qu’il pourrait s’agir d’une tentative de déstabilisation de la République Tchèque et de la Slovaquie par l’extrême droite ou les russes.

La page Facebook fait bien référence au site initial et se présente également comme une école sur l’islam en ligne. La page Facebook est postérieure au site et a été créée en octobre 2018.

Elle cible la population tchèque et slovaque car elle propose les cours dans la langue. La page est gérée par deux comptes facebook localisés en Angleterre. Il n’y a pas plus d’éléments exploitables à ce stade. Il est intéressant de noter que les statistiques du site internet sont très basses (le site n’est pas classé) tandis que le nombre de followers sur la page Facebook atteint + 5600.

Le code source de la page permet de regarder comment le site est construit. Sans être expert, il peut être utile de rechercher par exemple un tracker UA (Google-Analytics) qui est utilisé dans l’analyse de trafic du site par un webmaster pouvant déboucher sur d’autres sites administrés par la même personne. Dans notre cas, il n’y a rien.

L’étude des photos est aussi intéressante pour savoir s’il s’agit de photos de banques d’images ou des photos originales. Avec un reverse image ou en regardant le code, on peut vite se rendre compte de quoi il s’agit.

ici on peut voir que de photo (.jpg) proviennent d’un site ethnews.com et d’une banque d’images 123rf.com
En faisant un reverse image d’une autre photo, on voit qu’elle est très répandue en ligne

Enfin, il s’agit de regarder tous liens qui peuvent être tirés d’une adresse physique, d’un numéro de téléphone, d’un email pour continuer à pivoter vers de nouveaux éléments. Dans notre cas, on retrouve un email sur le nom de domaine  – et un email personnel associé à un certain Zaki Qishawi. En basculant le site en langue arabe on peut aussi obtenir l’écriture exacte: زكي قيشاوي.

La même technique peut être utilisée pour pivoter par la suite sur ces emails :

  • 1) recherche de la mention de l’email en ligne,
  • 2) utilisation de cet email sur les réseaux sociaux
  • 3) décomposer l’email en user name – ici zaky007 pour voir s’il apparaît quelque part
  • 4) chercher en anglais et dans la langue d’origine les mentions du nom complet de la personne pour rebondir sur les réseaux sociaux, les réseaux professionnels et voir si des liens peuvent être tirés.

Ici et sans rentrer dans une recherche approfondie sur cette personne, le même email est utilisé en 2012 sur un forum par un individu avec un pseudo concordant cherchant à vendre des panneaux solaires.

Premières conclusions basées sur les éléments techniques d’un site internet

A partir d’un lien entre une adresse bitcoin attribué au Hamas et un nouveau site internet, on voit bien qu’en se concentrant uniquement sur ce site internet de façon méthodologique, nous pouvons tirer des informations qui permettent de rebondir:

  • site dont le thème principal est la formation en ligne sur l’islam et qui fait référence au guide spirituel du Hamas
  • site en langue arabe et anglaise de facture moyenne
  • site hébergé sur des serveurs au Royaume-Uni
  • site dont on discute dans le contexte de la Slovaquie et la République Tchèque dans lesquels les communautés musulmanes locales sont chahutées avec un fort sentiment anti-musulman en République Tchèque et des lois controversées en Slovaquie.
  • Page Facebook du site qui est administré par deux comptes localisés au Royaume Uni
  • Un email lié à une personne et un nom qui sont mentionnés sur internet et les réseaux sociaux.

On pourrait donc imaginer que l’étape suivante serait de se concentrer sur l’email et l’identité de l’individu mentionné sur le site, ainsi que sur la mention de cette initiative dans les géographies qui apparaissent dans la conversation Reddit.

Instagram, son User ID et ses sites miroirs : le cas du Bastion Social

Instagram, son User ID et ses sites miroirs : le cas du Bastion Social

Fondé en mai 2017 suite à l’occupation par des militants du GUD (Groupe Union Défense) d’un bâtiment inoccupé appartenant à la Mairie de Lyon, le Bastion Social a brièvement incarné le renouveau du militantisme d’extrême-droite en France. S’inspirant du modèle italien du mouvement Casapound, les militants français ont ainsi prôné la création de centres sociaux destinés à aider “les français les plus démunis” et l’application de la “préférence nationale”. Si le mouvement essaime alors rapidement et que des sections locales du Bastion Social sont successivement ouvertes à Strasbourg, Chambéry, Aix-en-Provence, Marseille et Clermont-Ferrand, ses membres ne perdent pas pour autant leurs vieilles habitudes et continuent de faire le coup de poing. Les affaires d’agressions, souvent à caractère raciste, se multiplient et entachent la communication lissée et l’image caritative que veut se donner le groupe. C’est officiellement pour cette raison que le Président Emmanuel Macron annonce la dissolution du mouvement en février 2019, à l’occasion du dîner annuel du Conseil représentatif des institutions juives de France (Crif). En réalité, comme l’a révélé Médiapart, c’est plutôt l’incitation du mouvement à créer un groupe organisé en vue des affrontements de l’acte III du mouvement des gilets jaunes le 1er décembre 2018 à Paris, qui en est la raison. Cette annonce, confirmée en conseil des ministres le 24 avril dernier, force le mouvement à fermer ses locaux, mais aussi ses multiples comptes sur les réseaux sociaux.

Pourtant, moins de six mois plus tard, ce sont donc deux nouveaux groupes qui font leur apparition sur les réseaux sociaux, “Vent d’Est” en Alsace et “Audace” à Lyon. Leurs logos partagent la même charte graphique et la communication à propos de maraudes et d’actions écologiques n’est pas sans rappeler celle du Bastion Social. Pour Vent d’Est, on constate que moins de 24h après sa première et unique publication, le groupe compte 805 abonnés sur Instagram contre seulement 85 sur Facebook et 13 sur Twitter. Si ce différentiel d’audience d’un réseau à l’autre pourrait être expliqué par la pratique courante d’achat d’abonnés, un rapide coup d’œil à la liste permet de s’assurer qu’il s’agit bien de véritables militants tant les références d’extrême-droite sont nombreuses: croix celtiques, fleurs de lys, 88 (pour “Heil Hitler”, H étant la 8ème lettre de l’alphabet) etc. Mais alors comment expliquer ce nombre important d’abonnés ?

Le “User ID” d’Instagram

Intéressons-nous au fonctionnement d’Instagram. Il faut comprendre que si le réseau social permet de modifier à tout moment son nom d’utilisateur (précédé par un @), chaque compte se voit attribuer à sa création un identifiant utilisateur unique et inaltérable, le “User ID”. Bien que celui-ci ne soit pas visible sur la plateforme, de nombreux sites internet permettent de le consulter gratuitement (comme ici). OpenFacto en parlait justement dans son dernier billet. Dans notre cas, il suffit donc d’entrer le nom d’utilisateur du compte de Vent d’Est “@vent.est” sur l’un de ces sites pour obtenir son User ID, le n°2840585800.

Les sites miroirs d’Instagram

Puisque l’on soupçonne Vent d’Est d’être lié au défunt Bastion Social, on s’intéresse aux comptes Instagram de cette organisation qui utilisaient comme nom d’utilisateur le modèle suivant: “@bastion_social_nomdelaville”. Si l’on n’en trouve aucune trace via l’outil de recherche de la plateforme elle-même, une recherche Google donne des résultats sur divers sites tels que “pictame.com”, “pikdo.net” ou bien encore “picgra.com”.

Il s’agit là de sites miroirs d’Instagram qui copient le contenu du réseau social et proposent généralement quelques statistiques d’audience. Si leur intérêt est limité pour un utilisateur lambda, leurs fonctionnalités de recherche sont généralement plus pratiques que celles d’Instagram. Surtout, on y retrouve bien souvent du contenu ayant été supprimé ou modifié sur la plateforme initiale.

Une recherche sur Google “bastion_social_strasbourg” donne donc ce résultat:

On apprend ici que le compte associé au nom d’utilisateur “@bastion_social_strasbourg” a auparavant été associé à celui “@gud.alsace”. Mais surtout, en cliquant sur ce lien, on arrive sur la page de Vent d’Est. Dans l’URL, on retrouve le User ID du compte “@vent.est” ainsi que le nom d’utilisateur “gud.alsace”.

On a donc ici la preuve qu’il s’agit du même compte, celui-ci ayant été successivement associé aux noms d’utilisateur “@gud.alsace”, “@bastion_social_strasbourg” et “@vent.est”.

Deuxième cas

En appliquant la même méthode pour le compte Instagram du groupe Audace, on trouve que son User ID est le n°2789465095.

On réitère la recherche Google, cette fois-ci avec le nom d’utilisateur “bastion_social_lyon” en filtrant pour obtenir uniquement les résultats sur le site pictame.com.

Dès le premier résultat, la réponse est claire: il s’agit bel et bien du même compte Instagram. En cliquant sur le lien, on tombe sur la page d’Audace et on retrouve encore une fois dans l’URL le User ID. Celui-ci a donc été associé successivement à “@gud.lyon”, “@bastion_social_lyon” et “@audace_lyon”.

Que s’est-il passé ?

Lors de la dissolution du Bastion Social, plutôt que de supprimer définitivement les multiples comptes Instagram de l’organisation, les militants ont en fait décidé de les vider de leurs contenus et de les mettre en sommeil sous des noms d’utilisateurs anodins. Ils pensaient ainsi avoir effacé leurs traces tout en conservant leurs centaines d’abonnés. En septembre dernier, alors que les mêmes militants créaient de nouvelles structures, ils ont recyclé ces comptes pour immédiatement bénéficier de leur audience. La parade aurait pu fonctionner, mais c’était sans compter sur les traces laissées par le User ID et les sites miroirs d’Instagram.

En conclusion, lorsque l’on s’intéresse à un compte Instagram, il est important de ne pas limiter ses recherches à la plateforme même. Outre le manque de fonctionnalités de l’outil de recherche, le site ne propose pas d’archives. A contrario, une recherche Google à l’aide de quelques googledorks permet de trouver les informations voulues. Enfin, il est toujours intéressant de comprendre le fonctionnement basique du réseau social étudié, l’existence du User ID permettant ici de s’assurer qu’il s’agit bien des mêmes comptes.

Sébastien est un jeune chercheur sur le militantisme radical et membre de la communauté OpenFacto.

Instaloader, l’outil de choix pour Instagram

Instagram : obtenir les infos d’un compte….

L’amie @technisette a publié en juillet, sur le site Osint Curious, deux très bons billets sur les recherches possibles sur Instagram.
Une des astuces données concernait l’affichage des informations d’un compte au format Json dans le navigateur, en utilisant directement l’API du site.

Exemple :
https://i.instagram.com/api/v1/users/1034466/info/ pour obtenir les informations du compte de Starbucks devrait nous donner ceci :

{"user": {"pk": 1034466, "username": "starbucks", "full_name": "Starbucks Coffee \u2615", "is_private": false, "profile_pic_url": "https://scontent-cdg2-1.cdninstagram.com/vp/0e07d26e60e5b4598da83e18d6672315/5E1DA749/t51.2885-19/s150x150/54247905_1011601952363831_7925609498994016256_n.jpg?_nc_ht=scontent-cdg2-1.cdninstagram.com", "profile_pic_id": "2009724254929369404_1034466", "is_verified": true, "has_anonymous_profile_picture": false, "media_count": 1862, "follower_count": 18237408, "following_count": 3690, "following_tag_count": 0, "biography": "Inspiring and nurturing the human spirit -- one person, one cup, and one neighborhood at a time.", "external_url": "https://starbucks.app.link/scm", "external_lynx_url": "https://l.instagram.com/?u=https%3A%2F%2Fstarbucks.app.link%2Fscm\u0026e=ATNJawA5OtI3O7vco1wUa4fc1fLWc4KBhCcKY2jbbC5DVIcNtS-GmZVb40iCqnvpS8H05o_ANTUbGFcZkfi4ivEy7B6aSRc", "total_igtv_videos": 1, "has_igtv_series": false, "total_ar_effects": 0, "usertags_count": 2200976, "is_favorite": false, "is_favorite_for_stories": false, "is_favorite_for_highlights": false, "is_interest_account": true, "hd_profile_pic_versions": [{"width": 320, "height": 320, "url": "https://scontent-cdg2-1.cdninstagram.com/vp/b447438839ebcb82a485046cd1977143/5E1FC931/t51.2885-19/s320x320/54247905_1011601952363831_7925609498994016256_n.jpg?_nc_ht=scontent-cdg2-1.cdninstagram.com"}, {"width": 640, "height": 640, "url": "https://scontent-cdg2-1.cdninstagram.com/vp/68053010283eec0a0f078c612629be6e/5E24F18A/t51.2885-19/s640x640/54247905_1011601952363831_7925609498994016256_n.jpg?_nc_ht=scontent-cdg2-1.cdninstagram.com"}], "hd_profile_pic_url_info": {"url": "https://scontent-cdg2-1.cdninstagram.com/vp/848fb88682d02055ef3285373e567810/5E387C31/t51.2885-19/54247905_1011601952363831_7925609498994016256_n.jpg?_nc_ht=scontent-cdg2-1.cdninstagram.com", "width": 1080, "height": 1080}, "mutual_followers_count": 0, "has_highlight_reels": true, "can_be_reported_as_fraud": false, "direct_messaging": "UNKNOWN", "fb_page_call_to_action_id": "", "address_street": "", "business_contact_method": "CALL", "category": "Marque", "city_id": 0, "city_name": "", "contact_phone_number": "+18007827282", "is_call_to_action_enabled": false, "latitude": 0.0, "longitude": 0.0, "public_email": "", "public_phone_country_code": "1", "public_phone_number": "8007827282", "zip": "", "instagram_location_id": "22092443056", "is_business": true, "account_type": 2, "can_hide_category": true, "can_hide_public_contacts": true, "should_show_category": true, "should_show_public_contacts": true, "should_show_tabbed_inbox": false, "is_facebook_onboarded_charity": false, "has_active_charity_business_profile_fundraiser": false, "charity_profile_fundraiser_info": {"pk": 1034466, "is_facebook_onboarded_charity": false, "has_active_fundraiser": false, "consumption_sheet_config": {"can_viewer_donate": false, "currency": null, "donation_url": null, "privacy_disclaimer": null, "donation_disabled_message": "Nous rencontrons des probl\u00e8mes de connexion. Veuillez renouveler votre don plus tard.", "donation_amount_config": null}}, "include_direct_blacklist_status": true, "is_potential_business": true, "is_bestie": false, "has_unseen_besties_media": false, "show_account_transparency_details": true, "auto_expand_chaining": false, "highlight_reshare_disabled": false, "show_post_insights_entry_point": false, "about_your_account_bloks_entrypoint_enabled": false}, "status": "ok"}

Certaines infos ne sont pas forcément visibles sur la page d’accueil du profil.

Toutefois, depuis plusieurs jours, le lien ci-dessus ne donne aucun résultat :

Comment retrouver simplement cette granularité d’information?

Vous avez dit « useragent« ?

Le useragent, c’est l’identifiant de votre navigateur. Il indique en général votre système d’exploitation (windows, mac, Linux, Android, iOS…), sa version, etc…

Si vous voulez connaître le vôtre, vous pouvez demander à https://www.whatsmyua.info/

Le mien est le suivant :


La bonne ou la mauvaise nouvelle (selon que l’on est un bon analyste ou un méchant pirate…), c’est qu’un useragent, cela se modifie (on dit en anglais que cela se spoofe) : soit directement dans les paramètres du navigateur, soit en utilisant une extension telle que User-Agent Switcher.

Si Instagram nous dit qu’il y a une erreur de type « useragent mismatch« , c’est que notre user-agent ne correspond pas à celui attendu par le site.

En effectuant une recherche sur Google du type « Instagram official user-agent », on découvre le site internet WhatsmyBrowser.com qui recense les user-agents utilisés un peu partout sur internet.

Notez la présence de la référence Instagram 72.0.0.21.98 dans le premier de la liste des user-agents référencés…

Et si on ajoutait cette référence à notre propre navigateur?!

Nous ouvrons dès lors l’extension User-Agent Switcher :


Et nous collons la référence Instagram 72.0.0.21.98 à la suite de notre chaîne de caractères correspondant à notre user-agent et nous validons an cliquant sur Apply :

Et voilà!!!

Il suffit de rafraîchir la page Instagram pour récupérer les informations du compte!

P.S. : Nous vous rappellons qu’il est possble d’obtenir le numéro d’identifiant utilisateur d’un compte en ajoutant /?__a=1 à la suite de son URL :

https://www.instagram.com/nom-compte/?__a=1

Firefox (IV) – Sécuriser un peu plus sa navigation

Firefox (IV) – Sécuriser un peu plus sa navigation

Les extensions pour Firefoxpour l'OSINT sur OpenFacto

Si par construction Firefox présente d’emblée un niveau de sécurité intéressant, et prend de même soin de notre vie privée un peu mieux qu’un autre navigateur, il est toutefois possible d’affiner un peu plus encore ses réglages pour des recherches en Sources Ouvertes.

Il s’agit là de quelques conseils qui ne prétendent pas à l’exhaustivité mais qui permettent d’ajouter une petite couche supplémentaire à votre navigation.

Ce billet est le quatrième billet d’une série sur le navigateur Firefox.

Les profils utilisateurs ou comment séparer ses différentes activités…

La première règle essentielle de prudence et de sécurité à appliquer serait de séparer complètement ses activités de surf personnel et celles dédiées à l’OSINT. Or, l’expérience montre que c’est en fait une règle très difficile à respecter au quotidien.
Tout le monde ne dispose pas d’un poste internet dédié à ce seul usage (idéal!), ou des ressources matérielles (ou des compétences techniques…) pour faire tourner une machine virtuelle (VM) dédiée aux Recherches en Sources Ouvertes.

Une solution intermédiaire consiste à créer des profils utilisateurs distincts dans Firefox, chaque profil disposant dès lors de ses propres réglages, ses propres extensions, et par incidence, ses propres cookies, historiques de navigation, etc…

Dans Firefox, tapez about:profiles dans la barre d’URL.

Depuis cette vue, vous pouvez dès lors créer un nouveau profil utilisateur.

Vous pouvez également démarrer Firefox avec l’option -P ou --ProfileManager pour créer et gérer ces nouveaux profils.

Un tutoriel très explicite est disponible sur le site de la Fondation Mozilla.

A titre d’exemple, voici une stratégie de profils qu’il est possible de mettre en place, sachant que Firefox est capable de lancer un navigateur par profil sans aucun problème :

  • Un profil pour votre surf personnel
  • Un profil orienté OSINT/réseaux sociaux, dans lequel vous ferez évoluer vos avatars, qui de cette façon ne contamineront pas votre navigation habituelle…
  • Un profil orienté technologie, cyber…

Évidemment, vous adapterez la situation à votre propre cas.

Paramétrage du DNS-over-HTTPS (DoH)

Un serveur DNS est un serveur qui, pour faire simple, se comporte comme un gros annuaire qui traduit une adresse de nom de domaine (ex : liberation.fr) en son adresse IP (85.118.46.182).

Un résolveur DNS est un cache, un relais, géré le plus souvent par votre fournisseur d’accès, et qui redistribue les données des serveurs DNS vers les utilisateurs. C’est un intermédiaire, un tampon.

A chaque fois que vous tapez une URL dans la barre d’URL et que vous validez, une requête au résolveur DNS est donc adressée pour faire cette correspondance (En réalité, pas tout à fait, les navigateurs ont un système de cache, mais je simplifie…).

Par défaut, Firefox effectue cette requête en clair. Vous comprenez donc qu’à ce stade, votre fournisseur peut donc savoir quels sont les sites internet que vous fréquentez.
Pour assurer un peu plus de confidentialité à nos requêtes nous allons donc activer la fonctionnalité DNS-over-HTTPS (DoH) de Firefox, qui va noyer ses requêtes dans le trafic https de l’utilisateur, qui est lui chiffré.


Comment faire?

  • 1ère étape : Dans le menu Firefox, choisissez Outils, puis Préférences. ou tapez about:preferences dans la barre URL et appuyez sur Entrée.
  • 2ème étape : Dans la section Général (la section qui s’ouvre en premier), faites défiler vers le bas jusqu’au panneau Paramètres du réseau, puis appuyez sur le bouton Paramètres.

En bas de cet onglet, cochez la case « Activer le DNS via HTTPS« .

Par défaut, Mozilla envoie ces requêtes à CloudFlare (1.1.1.1), un serveur de DNS américain. C’est déjà pas mal, mais nous allons quant à nous utiliser ceux de Quad9 : https://dns.quad9.net/dns-query
Cette organisation propose des résolveurs DNS libres d’accès, récursifs et ouverts. Ils permettent notamment un accès plus aisé à certains sites filtrés par les opérateurs…. Stéphane Bortzmeyer avait chroniqué Quad9 sur son blog en 2017.

Attention toutefois : Comme S. Bortzmeyer le signale, Quad9 est un résolveur DNS « menteur » ce qui signifie qu’il bloque certains domaines signalés pour activité malveillante (ex : distribution de virus, malware…). Donc si l’objet de vos recherches est précisément l’étude de ces activités, il vous faudra choisir un résolveur non-menteur.

Votre navigateur est désormais paré pour le DNS via HTTPS.

Pour le vérifier, faites le test suivant.

DNSSEC Resolver Test sur OpenFacto.fr

Vérifions tout de même ces réglages dans les paramètres de Firefox en tapant dans la barre d’URL about:config.

Une fois passé le bouton de confirmation un poil anxiogène suivant :

Nous allons vérifier deux valeurs de clefs de paramétrage :

  • network.trr.mode

La valeur de la clef devrait être à 2 et non à 0 comme par défaut, ce qui signifie que vous requêtes DNS vont passer en priorité par DoH.

  • network.trr.uri

Ici la valeur devrait être https://dns.quad9.net/dns-query

Paramétrage de l’Encrypted Server Name Indication (ESNI)

Puisque nous sommes dans l’antre du about:config, nous allons activer par ce biais une nouvelles fonctionnalité, l’ESNI. Elle permet de cacher à votre fournisseur d’accès, le nom même des sites que vous visitez.

Cherchez la valeur suivante : network.security.esni.enabled et passez la à true.

Cookies

Deux actions peuvent être menées sur les cookies, qui sont activés par défaut sur Firefox :

  • Activer le blocage des cookies tiers, qui sont pour l’essentiel des cookies utilisés pour vous pister durant votre activités sur le net.

Cliquez sur le bouton de menu paramètre et choisissez Blocage de contenu. Le panneau Vie privée et sécurité des Préférences de Firefox s’ouvre. C’est l’endroit où vous pouvez examiner vos paramètres pour le Blocage de contenu, parmi lesquels ceux des cookies.

Pour bloquer les cookies : Sélectionnez Personnalisé et cochez la case Cookies.

Fx65Custom-ThirdPartyCookies

Traqueurs tiers est le paramètre par défaut pour le blocage des cookies.

  • Supprimer les cookies à la fermeture de Firefox

Pour supprimer tous les cookies et les données de site à la fermeture de Firefox :

  1. Cliquez sur le bouton de menu de Firefox et sélectionnez Préférences
  2. Sélectionnez le panneau Vie privée et sécurité et allez à la rubrique Cookies et données de site.
  3. Cochez la case Supprimer les cookies et les données des sites à la fermeture de Firefox.

À chaque fermeture de Firefox, les cookies enregistrés dans votre ordinateur sont supprimés.

Copier-Coller

Lorsque vous copiez/collez des données sur un site internet, celui-ci peut dans certains cas le détecter, vous empêcher de le faire ou substituer les données que vous essayez d’attraper…

Pour bloquer cela, allez dans le about:config, et cherchez la clef : dom.event.clipboardevents.enabled
Passez la à False.

Quelques ressources complémentaires

Cet article avait pour but de vous présenter quelques réglages intéressants pour la vie privée et ayant peu ou pas d’impact sur votre navigation.
D’autres réglages sont possibles. Bloquer le referrer, par exemple, sera sans doute très utile mais empêchera plusieurs sites de fonctionner….
Vous trouverez ci-après deux sites vous les listant :

Un dernier conseil, qui m’a sauvé la mise il y a quelques semaines de cela.

Utilisez Firefox Sync.

Firefox Sync permet de synchroniser vos onglets, vos favoris, votre historique, les préférences, les mots de passe, formulaires pré-remplis, les extensions (c’est paramétrable). Les données sont envoyées chiffrées sur les serveurs de la fondation Mozilla.

Vous pouvez récupérer instantanément votre environnement préféré lors de vos vacances chez Mamie, sur sa machine, mais également en cas de perte de votre ordinateur ou panne système.


Firefox (III) – Les outils de développement – Cas pratique – OSINT sur Zello

Firefox (III) – Les outils de développement – Cas pratique – OSINT sur Zello

Ce billet est le troisième billet d’une série sur le navigateur Firefox.

Nous avons vu dans la première de cette série d’articles sur les outils de développement web de Firefox (« dev tools » pour aller plus vite), comment ils pouvaient être utilisés de manière fine pour collecter de l’information en source ouvertes.
Nous vous proposons aujourd’hui un cas pratique complet d’utilisation de ces outils sur le site internet Zello.com.

Qu’est-ce que Zello?

Zello est une application pour téléphone mobile ou tablette Android et iOS transformant ces derniers en Talkie-Walkie : un gros bouton push-to-talk, un canal public ou privé que vous créez à volonté… Vous voilà équipé de petites radios mobiles à portée mondiale, de très bonne qualité audio, très utiles lors de vos déplacements en famille, par exemple. Les communications, audio ou texte, transitent via le réseau internet.

Cette facilité d’emploi en a fait un réseau également très utilisé lors des conflits par les populations civiles, les groupes armés (au Dombass par exemple), ou les services d’urgences (Casques blancs en Syrie…).

Les chaînes (channel) publiques sont susceptibles d’héberger des messages audio librement accessibles au public et donc de fournir des informations de contexte assez précieuses pour la recherche en sources ouvertes. Mais travailler en OSINT sur le site de Zello n’est pas une sinécure.
Voilà pourquoi les dev tools de Firefox vont nous aider.

Chercher de l’information sur Zello.

Pour cet exemple, nous nous intéressons à la région d’Idleb (Syrie), qui fait l’objet d’une intense campagne de bombardements par le régime syrien et les forces russes depuis plusieurs mois.

L’idée de départ, notre postulat, est que l’application Zello est peut-être utilisée par les secouristes, la population, ou les combattants et que peut-être, nous pouvons récupérer de l’information importante via des bribes de conversation audio.

Zello ne dispose pas d’un moteur de recherches très puissant et qui plus est, ce dernier est plutôt bien caché!

Nous allons donc utiliser un GoogleDork, une requête un peu spécifique, pour rechercher des chaînes en lien avec le secteur d’Idleb.


Les utilisateurs locaux utilisent l’arabe, il nous faut donc contextualiser la recherche en utilisant la graphie arabe de la ville.


إدلب site:zello.com

La recherche renvoie environ 150 résultats mais pour un aspect pratique et concret, nous nous intéressons aux chaînes récentes (moins de trois ans) et comportant si possible un nombre important d’abonnés (subscribers).

La chaîne مرصد ابو عرب سراقب (Observatoire Abu Arab Saraqeb) est particulièrement intéressante :

Créée il y a trois mois environ, elle regroupe déjà plus de 270.000 utilisateurs. Une traduction sommaire de la biographie du profil nous indique qu’il s’agit d’un poste d’observation militaire, destiné à la surveillance du trafic aérien. Le groupe dispose de trois administrateurs, et seize modérateurs, il est donc animé et vivant. Il s’agit d’un système d’alerte équivalent à Sentry Syria, à destination des populations civiles.
A ce stade, il serait déjà possible de s’abonner à cette chaîne sur l’application mobile, en respectant le cas échéant quelques précautions élémentaires (profil, burner phone, etc…).

Effectuons donc un archivage de cette chaîne susceptible de disparaître, sur Archive.Today et sur Archive.org.

Une question se pose : cette chaîne dispose-t-elle de messages publics accessibles sur son site?

L’URL de recherche sur Zello n’est pas facilement accessible.
Pour obtenir les derniers messages postés sur l’ensemble des canaux il faut utiliser cet outil :

https://zello.com/shared/#latest/1//////undefined

Notez la présence peu commune de multiples slashs sur cette URL…
Sur cette page, il est possible de rechercher par channel, par profil, par utilisateur ayant partagé un message. Il est possible de filtrer par langue.

Effectuons un recherche sur la chaîne مرصد ابو عرب سراقب.
Elle retourne une réponse paginées, par tranche de 10 messages, « plus de 1.000 enregistrements » selon le site. On le voit là aussi, la réponse du site est plutôt floue.

Lors de l’analyse d’un site, l’étude d’une URL est aussi très importante.

Cliquez sur le bouton Next. L’URL devient alors :

https://zello.com/shared/#latest/2/%D9%85%D8%B1%D8%B5%D8%AF%20%D8%A7%D8%A8%D9%88%20%D8%B9%D8%B1%D8%A8%20%D8%B3%D8%B1%D8%A7%D9%82%D8%A8/////undefined

Juste après « #latest/« , le chiffre 1 a été remplacé par le chiffre 2 : la pagination est donc accessible simplement en incrémentant cette valeur de 1… Intéressant!

Pour chaque message, les informations disponibles a priori sont les suivantes : nom de l’utilisateur à l’initiative du message, durée du message, chaîne, heure approximative et nombre de lecture dudit message. Pour l’instant, c’est assez vague.
Lorsque l’on clique sur un des messages, apparaît alors le lecteur suivant :

S’il est possible de lire le son, cette première séquence ne permet pas d’aller beaucoup loin dans la recherche, alors même que l’on dispose d’une banque audio visiblement assez conséquente. Plutôt frustrant donc!

Les dev tools à la rescousse!

Ouvrons les dev tools de Firefox, et notamment l’outil Réseau, (CTRL+MAJ+E), sur la page de recherches de la chaîne et réactualisons la page.

En filtrant les requêtes réseau, on constate que le site est assez surchargé de liens vers les réseaux sociaux Facebook, Google, Twitter, Linkedin, etc…
Autant le dire tout de suite, Zello est très gourmand en matière de données personnelles… Heureusement, le Plugin uBlock bloque l’essentiel de ces requêtes…

A ce stade, filtrons ces requêtes en ne gardant que celles au format XHR, prenons la première URL et observons son contenu dans l’onglet « réponse » à droite.

Bingo!
Nous constatons que les dix premiers résultats sont envoyés grâce à un fichier Json contenant l’ensemble des informations (metadonnées), des messages.
Comme dans le premier volet de cette série d’articles sur Firefox, nous cliquons sur cette URL en tant que cURL avec le bouton droit et exportons son contenu dans un terminal, au format Json (le > zello.json à la fin).

curl 'https://zello.com/shared/-/latest/1/%D9%85%D8%B1%D8%B5%D8%AF%20%D8%A7%D8%A8%D9%88%20%D8%B9%D8%B1%D8%A8%20%D8%B3%D8%B1%D8%A7%D9%82%D8%A8/////undefined' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0' -H 'Accept: /' -H 'Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3' --compressed -H 'Content-Type: application/x-www-form-urlencoded' -H 'X-Requested-With: XMLHttpRequest' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Referer: https://zello.com/shared/' -H 'Cookie: __cfduid=de2c760986dd4346c968fb357057eb0ef1565680803; PHPSESSID=ea80d5b5aab44ac731725ea949d93851' -H 'Cache-Control: max-age=0' -H 'TE: Trailers' --data 'nonce=9qyne6zvzcv02xmbbl95q5xgjg63p412n491shpfgfs24zr64a5yahv5v6u7f4wl' > zello.json

Il est possible de transformer facilement ce fichier en un fichier tabulaire (csv ou xls) avec un outil tel qu’OpenRefine. Pour l’exemple ci-dessous, certaines colonnes inutiles ou redondantes ont été retirées.

zello-json.csv

1565817526Q7yjr081KxhQabo asad assafhttps://s3.amazonaws.com/zello.sharedmessages/Q7yjr081KxhQ08/14/2019 16:18:46 Android 4.65abo asad assafar15658174841565817527
1565793585UxmZEqic5jMgshhehdhdhdhhttps://s3.amazonaws.com/zello.sharedmessages/UxmZEqic5jMg08/14/2019 09:39:451Android 4.65shhehdhdhdhar15657935431565793585
15657935314sDN5fB4RK3Snor nortvhttps://s3.amazonaws.com/zello.sharedmessages/4sDN5fB4RK3S08/14/2019 09:38:51Android 4.64nor nortvar15657934381565793532
1565793477EdqnvlAwFY5qzzddrreewwhttps://s3.amazonaws.com/zello.sharedmessages/EdqnvlAwFY5q08/14/2019 09:37:57Android 4.65zzddrreewwar15657933441565793477
1565793436SD9FMXQID33iahmad.tec200https://s3.amazonaws.com/zello.sharedmessages/SD9FMXQID33i08/14/2019 09:37:16Android 4.69ahmad.tec200en15657934121565793437
1565779734xoanwLa4F36Odgdytuhttps://s3.amazonaws.com/zello.sharedmessages/xoanwLa4F36O08/14/2019 05:48:548Android 4.65dgdytuar15657780851565779734
1565727084g2she5inRHo2ytrewqjhgdaahttps://s3.amazonaws.com/zello.sharedmessages/g2she5inRHo208/13/2019 15:11:24Android 4.67ytrewqjhgdaaar15657268611565727084
1565698368BI5F4jD63Ockahmdalomlahttps://s3.amazonaws.com/zello.sharedmessages/BI5F4jD63Ock08/13/2019 07:12:481Android 4.56ahmdalomlaar15656982971565698368
1565692805DePxegwqPJbOhasan.basid.jdihttps://s3.amazonaws.com/zello.sharedmessages/DePxegwqPJbO08/13/2019 05:40:05Android 4.67hasan.basid.jdiar15656926851565692805
15656399517wj3tUEXJga2xjssdjjdddhttps://s3.amazonaws.com/zello.sharedmessages/7wj3tUEXJga208/12/2019 14:59:112Android 4.67xjssdjjdddar15656392361565639952

Nous constatons qu’en réalité, les données librement disponibles sur l’application Zello sont beaucoup plus verbeuses que ce qu’il était possible d’imaginer au départ :
– L’horodatage de l’envoi est complet et lisible, la version du logiciel employé également…
– Mais surtout, ce fichier donne l’adresse directe de téléchargement du fichier audio, sur un serveur Amazon S3!

Nous disposons donc désormais d’une liste de fichiers téléchargeables, certes avec des noms apocryphes (ex : Q7yjr081KxhQ…), mais grâce au fichier csv obtenu via les Dev Tools de Firefox, nous disposons également d’une table de correspondance indiquant date, heure de la mise en ligne, ainsi que l’identifiant de l’auteur….

La suite?

L’objet de cet article est essentiellement de vous montrer, à l’aide d’un cas concret, comment les Outils de Développement Web du navigateur Firefox peuvent vous aider dans vos recherches en Sources Ouvertes.

Vous remarquerez que nous n’avons utilisé aucun outil miraculeux hormis Firefox mais qu’en suivant une démarche méthodique simple (Que cherche-t’on?, requête google adaptée, première analyse de page, archivage, analyse fine complémentaire via les dev tools….), nous avons pu remonter des informations essentielles à notre recherche,

Mais en plus de la collecte d’informations, ces outils ouvrent de nouvelles perspectives pour l’automatisation de cette collecte, dont voici quelques pistes :

  • Il paraît impossible a priori de déterminer facilement le nombre total de messages disponibles (« plus de mille » nous indique le site…). Toutefois, en remplaçant la valeur numérique dans l’URL par 100, 101 (etc…)


https://zello.com/shared/#latest/2/%D9%85%D8%B1%D8%B5%D8%AF%20%D8%A7%D8%A8%D9%88%20%D8%B9%D8%B1%D8%A8%20%D8%B3%D8%B1%D8%A7%D9%82%D8%A8/////undefined

et en observant le contenu affiché, il est possible de constater que le premier message a été posté il y a cinq mois (valeur numérique 101) :

  • Le corollaire de cette constatation, est qu’il est sans doute possible (spoiler : oui c’est possible!) de créer un script informatique simple (en Python, en Bash, en DOS, en R…), sous forme d’une boucle allant de 1 (première page), à 101 (dernière page), capable de récupérer en quelques minutes, l’intégralité des messages (1.010 à la date de rédaction de cet article) de cette chaîne Zello!
  • Enfin, disposer d’un gros millier d’adresses Amazon S3 permet également d’envisager de créer une boucle identique, capable d’aspirer facilement l’intégralité de ces données pour analyse et archivage….
  • Ces données peuvent être analysées de plusieurs manières : contenu des conversations (type d’aéronefs, bilan humains, géolocalisation des impacts….), statistiques sur la fréquence des observations qui donnent une idée de l’intensité des bombardements, et peuvent aider les enquêtes (citoyennes, journalistiques, judiciaires…) en livrant des éléments de contexte difficiles à recueillir d’une autre manière…

Ces pistes feront l’objet de petits articles supplémentaires ici-même dans quelques temps! 🙂