Nous allons parler architecture et plus exactement, du nombre de machines nécessaires pour faire tourner un service de micro-messageries à la Twitter, en regardant ce qui se passe en ce moment pour Parler.
Ce type d’information assez stratégique est très difficile à trouver. Peu d’entreprises partagent les détails de leur infrastructure. C’est une information plutôt confidentielle et qui évolue certainement chaque semaine.
… Sauf lorsque l’on s’est fait mettre dehors par son hébergeur actuel, et qu’il faut bien retrouver une maison assez grande..
Intéressons-nous au réseau social Parler. Je ne ferai pas de politique ici. Vous trouverez d’autres ressources vous expliquant pourquoi la plate-forme porte une réputation assez sulfureuse. Nous en avons entendu parler surtout depuis la fermeture du compte Twitter de Donald Trump début 2021 et qui a rejoint cette plate-forme. Parler est donc un clone de Twitter, lancé en 2018.
Imaginez quelques instants la situation : vous êtes le patron de cette plate-forme. Et vous revendiquez haut et fort « la liberté d’expression » (notez les guillemets) sans donc apporter de la modération aux différents contenus créés par la communauté d’utilisateur. Jusqu’ici tout va bien. Les utilisateurs affluent et quittent Twitter, le nombre d’inscrits augmente, et tout semble rouler…
La plate-forme est rapidement critiquée pour son inaction ou sa lenteur à retirer des messages à caractère raciste, antisémiste entre autre. Allez lire la page Wikipedia si vous souhaitez un avis plus détaillé.
Tout bascule après les événements du 6 janvier 2021. La plateforme est accusée d’avoir facilité et entrainé les événements qui conduisent à la prise du Capitole. On en reparlera tout à l’heure, car les utilisateurs du réseau social en question ont pris des photos, et beaucoup de vidéos, toutes publiées sur ce réseau ce jour-ci….
Apple et Google demandent alors la mise en place d’outils de modération, ce qui tarde à être effectué dans les temps par la société. Les 2 sociétés décident finalement de retirer l’application de leur store respectif, mettant une fin provisoire à l’expansion de l’application.
Cependant ce n’est pas terminé.
48 heures plus tard, c’est l’hébergeur de Parler qui va venir toquer le 9 janvier dernier, à la porte du patron. Il lui demander de quitter sous 7 jours, avec l’ensemble de ses serveurs. Alors on parle de serveurs virtualisés, pas d’ordinateurs physiques branchés dans une salle informatique. Parler utilise le service d’infrastructure as a cloud d’Amazon, notre cher ami AWS.
Lorsqu’une entreprise comme AWS (qui est le plus gros hébergeur de cloud, et de loin), décide de vous mettre dehors… cela va devenir compliqué.
Du coup le CEO de Parler s’est dit : je vais attaquer AWS en justice ! Bon il a avoué quelques heures plus tard que même son cabinet d’avocat avait décidé de le laisser tomber… quand ça veut pas, ça veut pas !
Du coup, un tweet que j’ai du mal à identifier comme étant vrai, est passé sur Twitter et ensuite a été commenté sur Hacker news. On y voit une demande de Jared (l’url est cassée pour l’instant). Je n’ai pas réussi à retrouver l’identité de la personne sur LinkedIn.
Ce tweet c’est cette capture d’écran, avec une liste au père Noël pour héberger et reprendre en l’état l’activité du réseau social et de ses 8 millions d’utilisateur (2.3m en décembre et bien plus il semble ensuite). Cela semble concerner la partie données du réseau social, et pas la partie applicative.
Cela ressemble à un email dans lequel l’auteur décrit l’ensemble des besoins pour faire tourner l’application Parler.
En version texte :
- 40x i3.Metal instances (64 vCPU’s, 512 Gb ram (more ram, of course, better for those)), 14 Tb nVME e/a (Scylla cluster)
- 70-100x (96 vCPUs, 768 GB RAM) – 4 Tb nVME e/a (PSQL cluster, could use more RAM and CPU, but not easy to get)
- 300-400 various other instances, less picky, generally 8-16 cores w/ 32-64 Gb of ram as available
- Internal traffic ~300-400 Gb of traffic/minute
- External traffic ~100-120 Gb of traffic/minute
Cela semble vraiment énorme. Rien que la première ligne représente environ 60 000 USD par mois chez AWS, en utilisant la grille de calcul ici. Avec des r6g.metal, et sur une base de 100Gb de stockage. La deuxième ligne semble être pour une base de données. Je suis à 250 000 USD par mois. Et ensuite encore 136 000 USD pour les « 300/400 » serveurs divers… 446 000 USD par mois, le CEO avait parlé de 300 000 USD par mois… bref pourquoi pas.
Pour la ligne 1, on parle ici de Scylla DB. C’est une base NoSQL, une nouvelle implémentation d’Apache Cassandra en C++ au lieu de Java. Etant donné que ce n’est pas un service proposé par AWS, cela me semble crédible.
Cela a entrainé un communiqué de presse sur le site de Scylla DB le 17 janvier, dans lequel on apprend que la société met aussi fin à sa relation commerciale avec Parler. A ce rythme, même le livreur d’Uber Eat ne voudra plus venir déposer des Pizzas chez Parler.
Pour la ligne 2, cela permet de supposer aussi quelque chose d’assez commun : Parler n’a pas utilisé le service managé de base de données, Amazon RDS. Si tout ceci est vrai, ils ont donc installé et ensuite géré eux-même leurs clusters de bases postgreSQL. C’est assez courant lorsque l’on démarre et que l’on n’y connaît rien sur AWS. On va supposer qu’ils connaissent Amazon RDS et que simplement, le coût était plus intéressant en installant son propre cluster pgSQL. Mouais…
Les volumes de données pourtant sont crédibles. donk_enby, une chercheuse en sécurité a d’ailleurs aspiré l’ensemble des contenus, des vidéos et des images du réseau dans la semaine, avant sa fermeture. On parle de contenu déjà publique et librement accessible sur Internet. C’est une bonne initiative car cela évite que des informations importantes ne soient effacées.
Du coup, et bien certains Hackers ont déjà re-créé une carte interactive de l’envahissement du Capitole le 6 janvier dernier. La carte se base sur les photos prises par les utilisateurs de Parler. Chaque photo conserve les données de géolocalisation et l’heure de la capture. Imaginez John, très content de venir écouter Donald, et qui file avec ses copains vers le Capitole, jusqu’à embarquer quelques dossiers sensibles trouvés dans les bureaux du Capitole… Et donc ce John a filmé et pris quelques photos de ses exploits, photos publiées sur Parler…
Il faut savoir que le réseau Parler ne retire pas les informations EXIF des photos. Ces chers manifestants ont donc largement partagé leur présence et toutes les preuves nécessaires pour qu’un jour le FBI passe leur rendre une petite visite…
Pour revenir à @Donk_enby, notre hackeuse, elle a simplement utilisé Ghidra pour faire du reverse-engineering sur l’application Parler et un iPad. Une fois le schéma d’API découvert et la façon dont le client Parler discute avec les serveurs, elle a pu identifier les URLs intéressantes. Il s’avère que le schéma d’URL est assez pourri car les développeurs ont utilisé un incrément de séquence pour identifier les ressources comme les photos ou les vidéos. Il suffisait d’incrémenter de 1 en 1 et d’aspirer à chaque fois…
Il n’a fallut que quelques heures pour écrire un script et aspirer toutes les ressources. Elle a ensuite été assistée par une équipe de The Archive Team pour terminer.
Bref c’est 56 To de données avec l’ensemble des posts publics, 412 millions de fichiers dont 150 millions de photos et plus d’1 millions de vidéos. Parler ne modifie pas les fichiers originaux à priori et donc, les informations personnelles comme le type d’appareil, sa géolocalisation ou autre, sont restées dans les fichiers informatiques. Miam miam…
Je vous conseille aussi de regarder le projet « The Insurrection » par ProPublica, qui permet de revoir les événements de cette journée du 6 janvier 2021, en utilisant les vidéos des utilisateurs de Parler. C’est assez choquant parfois, car certaines images ne sont pas passées à la télévision.
Vous y verrez la photo prise de dos, et la présence de journalistes avec des équipements de photo.
Observez la main levée à droite et le sweat moutarde…
Du coup on retrouve une image de presse (de bien meilleur qualité) par SAUL LOEB de l’AFP (trouvée ici). J’ai cherché 2mn sur internet. On peut supposer que notre caméraman est la personne au fond à droite…
Et cette histoire d’hébergeur alors ?
Au moment où j’écris cet article, il semble qu’Epik, un hébergeur américain, a repris le site Parler. Cependant l’application mobile est toujours bannie des plate-formes Apple et Google.
Attendons de voir dans les jours qui viennent, je pense que de nouveaux projets sur l’utilisation de ces données vont apparaître rapidement. Cela nous rappelle la force des réseaux sociaux. Chacun est acteur et spectateur. Chacun peut filmer, prendre en photo et se raconter son histoire. Cependant, cela ne retire en rien la gravité de ce qui s’est passé ce jour là.
J’en profite pour vous conseiller de revoir l’excellente intervention de Fabrice Epelboin à Devoxx France 2016 : Algorithmes, les nouveaux povoirs du développeur.
A suivre…
1 like
Très intéressant en effet. Merci!
On ne sait pas la nature des données stockées tantôt dans Scylla DB, tantôt dans pgSQL?
Et pourquoi ce doute (mouais) sur l’usage de pgSQL? Après tout ils ont peut être une expertise sur cette excellente base, avec un coût moindre. Et puis, pour le coup, ça leurs permet de changer d’hébergeur sans « trop » de difficultés puisque pas de couplage fort avec la solution d’Amazon…
Ils vont finir chez Yandex le copycat de Google en Russie 😉