# IC05 - Log4shell
*Costanza Pazzaglia - Esther Fabre - Arthur Dauge - Alexis Poujol - Yoann Betton*
# 1. Introduction
## Résumé
Dans le cadre de l'UV IC05, nous avons décidé d'étudier la *propagation de la faille log4shell* sur internet.
Pour ce faire nous nous sommes servi de plusieurs outils. Pour les vidéos, commentaires et interactions Youtube nous avons utilisé Youtube Data Tool afin de pouvoir récuperer nos données. Nous avons aussi analysé des données de Twitter et Google en nous servant de Open Source Insight et de la bibliothèque Python [snscrape](https://github.com/JustAnotherArchivist/snscrape).
Pour étudier les données de Twitter nous avions initialement fait une demande pour utiliser une API avec un accès étudiant. Nous n'avons pas pu l'utiliser pour nos recherches car elle est limitée à 7 jours et nos données remontent à décembre 2021.
Une fois récupérées, nous avons traité les données avec les outils présentés et manipulés pendant le semestre à l'image de Gephi, Gource, Excel, R, Python.
Nous avons étudié différents aspects de notre sujet :
- la chronologique de la propagation de la nouvelle dans différents canal d'information,
- les modifications des développeurs sur le dépôt Github de la bilbiothèque log4j pour corriger la faille,
- les acteurs et pays qui ont le plus "parlé" de cette vulnerabilité,
- les mots qui ont été employés le plus pour l'expliquer et les langues qui ont été le plus utilisées pour diffuser la nouvelle.
La ligne directrice de nos recherches se fonde sur la vitesse de propagation des informations sur log4shell en fonction des plateformes étudiées. Nous allons aussi nous intéresser aux types de contenus produits touchant des communautés différentes, ainsi qu'aux différentes thématiques concernées par la faille.
## Contexte
### Log4j & Log4shell
Log4shell est une vulnérabilité de type exécution de code à distance touchant la librairie Java Log4j.
Cette vulnérabilité est divulguée le 24 novembre 2021 par l'équipe de sécurité cloud Alibaba, puis, le 9 décembre 2021, un chercheur en sécurité nommé "p0rz9" publie sur Twitter des informations sur cette vulnérabilité (Voir figure 1) en montrant comment l'utiliser pour exécuter du code à distance.
|  |
|:--:|
| *Figure 1 : Premier tweet dévoilant la vulnérabilité log4shell (tweet supprimé depuis)* |
Cette faille est largement présente dans de nombreux systèmes d’information. Elle est susceptible dans les cas les plus défavorables de permettre à un attaquant de prendre le contrôle à distance de l’application visée, voir de la totalité du système d’information où elle est présente.
D’après le [bulletin d’information d’Apache](https://logging.apache.org/log4j/2.x/security.html) visible en figure 2, la vulnérabilité affecte Log4J dans les versions 2.0.
La sévérité de cette faille est critique ; sur un échelle de 0 à 10 de la sévérité : on retrouve ici le score de 10, qui est le maximum, ce qui est très rare.
| |
|:--:|
| *Figure 2 : Bulletin d'information d'Apache* |
Comme le montre la figure 3, Apache et les autorités publiques, en particulier l’ANSSI, recommandent de mettre à jour Log4J dans la version 2.15.0 dans les plus brefs délais.
| [](https://www.ssi.gouv.fr/uploads/2021/12/anssi-communique_presse-log4shell.pdf) |
|:--:|
| *Figure 3 : Communiqué de presse de l'ANSSI* |
De plus, tout logiciel utilisant Log4j dans les configurations vulnérables se trouve aussi vulnérable. Cela concerne de nombreux logiciels complémentaires, comme Steam ou Minecraft.
| [](https://twitter.com/eastdakota/status/1469800951351427073) |
|:--:|
| *Figure 4 : tweet du PDG de cloudfare* |
Pour mieux se rendre compte de l'ampleur de cette faille, nous avons utilisé un outil google :
### Open Source Insights (Google)
Open Source Insights est un service expérimental développé par Google pour aider les développeurs à mieux comprendre la structure et la sécurité des paquets de logiciels open source.
L'objectif de ce projet, est de fournir aux développeurs une image de la façon dont leur logiciel est assemblé, de la façon dont cela change lorsque les dépendances évoluent, et des conséquences possibles.
| [](https://deps.dev/) |
|:--:|
| *logo d'open source insights* |
Open Source Insights analyse des millions de paquets open source, construit leurs graphiques de dépendances et les annote avec des informations sur la propriété, les licences, la popularité et d'autres métadonnées. Il met régulièrement à jour les données pour que les informations restent actuelles et pertinentes, tout en permettant aux développeurs de regarder en arrière et de voir comment les choses ont changé au fil du temps.
#### Comment fonctionne-t-il ?
Le projet scanne tous les paquets disponibles qu'il peut découvrir, soit en lisant le site d'accueil du paquet pour un système comme npm, soit en scrutant GitHub et d'autres sites d'hébergement de dépôts.
Le projet supporte entre autre Maven, l'outil de construction et de gestion des dépendances le plus populaire pour Java.
| [](https://maven.apache.org/repository/index.html) |
|:--:|
| *logo de Maven* |
Or Log4j est une bibliothèque java, on peut donc à l'aide de ces outils, lister tous les autres programmes java utilisant Log4j.
Ainsi, nous avons pû en extraire ce graphe :
| [](https://deps.dev/maven/org.apache.logging.log4j%3Alog4j-core/2.17.2/dependencies/graph) |
|:--:|
| *Figure 5 : Graphe représentant les paquets maven utilisant la version 2.17.2 de log4j (version vulnérable à log4shell)* |
Ce graphe représente les dépendances directes des paquets utilisant log4j 2.17.2. Comme l'explique la figure 6, il faut y rajouter les paquets avec dépendances indirectes, qui sont eux aussi vulnérables à log4shell !
|  |
|:--:|
| *Figure 6 : Paquets aussi vulnérables par dépendance indirecte* |
On y retrouve énormement de librairies/logiciel cœur d'apache/oracle comme [Jakarta](https://jakarta.ee/), [Geronimo](https://geronimo.apache.org/), mais aussi des projets d'autres entreprises comme google : [Guice](https://github.com/google/guice), [Allocation-instrumenter](https://github.com/google/allocation-instrumenter/) etc..
Au total, plus de 17 000 paquets java, ont été impactés par la faille log4shell.
# 3. Méthodes et Outils
Afin de construire des bases de données suffisantes pour mener à bien une analyse sur la propogation de cette faille, nous avons choisi de récolter des données sur différents canaux d'information, ainsi que d'étudier le dépôt Github de librarie log4j dans le but d'étudier les corrélations entre les modifications apportés par les développeurs et les productions de contenus.
## YouTube
Les données relatives aux vidéos Youtube ont été extraites avec l'outil "Youtube Datatool" et en particulier le module "Video Network". Nous avons choisi d'effectuer nos recherches à partir des mots clés "log4j" et "log4shell". Nous verrons par la suite qu'il est intéressant de comparer les résultats obtenus à partir de ces deux mots clés. Nous avons utilisé un seul niveau de profondeur de recherche et une iteration de 50 vidéos pour construire notre jeu de données. Le résultat de cette recherche nous a permis de construire deux bases de données d'environ 1500 vidéos, pour lesquelles nous avions les informations suivantes :
* Leur titre
* Leur date de publication
* Leur nom de la chaine youtube la publiant
* Leur catégorie (education, sciences...)
* Leur nombre de vues
* Leur nombre de likes
* Leur nombre de commentaires
* Leur nombre de dislikes
Nous avons ensuite nettoyé ces bases de données des vidéos n'étant pas de langue anglaise, afin de mieux visualiser les groupes formés par les vidéos, dans le but de rendre l'analyse plus intéressante. Nous obtenons ainsi deux bases de données d'environ 900-1000 vidéos, qui seront analysées à l'aide de Gephi.
## Extraction manuelle
Pour récuperer des données complémentaires comme celles liées à la presse internationale et aux canaux de diffusion classiques, nous avons fait le choix de procéder à une collecte manuelle. Il n'était en effet pas évident de mettre en place un processus permettant d' extraire ces données de manière automatisée.
Par ailleurs, récupérer ces données manuellement a permis à tous les membres du groupe de participer à la récolte et à la construction de nos bases.
## Twitter
Pour récupérer les tweets contenant le #log4shell entre le 9 décembre et le 30 décembre, initialement, nous avions fait une demande d'accès à l'api twitter en tant qu'étudiants (undergraduate). Le problème était que nous étions limités à la recherche de tweets dans un historique de 7 jours, ce qui ne ne permettait pas de récupérer les contenus publiés au cours du mois de décembre 2021.
Nous avons donc utilisé [snscrape](https://github.com/JustAnotherArchivist/snscrape), un scraper de tweets développé en python, permettant ainsi de contourner ces limitations.
Les données scrapées par snscrape étaient sous format json, nous avons donc dû les convertir en csv avec cette [api](https://www.convertcsv.io/products/json2csv) pour mieux les extraire et les manipuler avec python.
Nous avons ensuite nettoyé manuellement et automatiquement la base, en retirant par exemple les liens de redirection https://t.co/...... dans le but de mener une analyse textuelle sur leur contenu.
## Github
GitHub est un service web d'hébergement et de gestion de développement de logiciels, utilisant le logiciel de gestion de versions Git. La librarie log4j a son propre dépot git sur [github](https://github.com/apache/logging-log4j2) en open-source, permettant aux developpeurs du monde entier de collaborer sur cette librarie.
Nous avons utilisé l'outil Insights du dépot Github afin d'y récuperer manuellement des statistiques sur log4j. De plus, nous avons utilisé [gource](https://gource.io/), un outil open-source de visualisation pour les dépôts git, pour visualiser les tentatives de correction de la vulnérabilité log4shell en temps réel.
# 4. Résultats
## Github
Grâce à l'outil Insights, on remarque que depuis 2018, le dépot github log4j n'était plus vraiment actif et soudainement fin 2021/début 2022, on observe un pic de modifications (sur la partie droite du graphique en figure 7). Les deux contributeurs les plus actifs sur cette dernière période sont *garydgregory* et *remkop*, deux développeurs experts d'apache.
||
|:-:|
|*Figure 7 : Graphique du nombre de "commits" (modifications de code) du dépot github log4j*|
||
|:-:|
|*Figure 8 : Histogramme du nombre de commits du dépot log4j*|
On remarque sur l'histogramme en figure 8 qu'à partir de la révélation de la faille début décembre 2021, le nombre de *commits* a considérablement augmenté. Il est d'ailleurs resté relativement élevé jusqu'à fin janvier / février. Ce regain d'activité du dépot est dû aux tentatives des développeurs du projet de corriger la faille log4shell, qui à mis plusieurs semaines avant d'être parfaitement corrigé.
Une autre représentation de l'évolution chronologique des modifications du dépot github log4j avec gource :
<iframe width="728" height="410" src="https://www.youtube.com/embed/ce3Hn5MYsKY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
On retrouve bien entre-autre Gary Gregory (garydgregory) et Remko Popma (remkop) dans l'animation gource, ainsi qu'une forte activité de modification autour de la mi-décembre.
L'étude du dépôt Github de la librairie log4j nous a permis de visualiser et comprendre quelle a été l'impact de la divulgation de cette faille pour les développeurs.
## Youtube Data Tools
Nous allons dans cette partie exploiter les bases de données issues de la recherche de vidéos sur Youtube data tools.
Une première représentation intéressante à faire est de représenter la densité de sortie des vidéos ayant un lien avec la faille (Voir figure 9). Cette représentation a été faite avec un jeu de données extrait sur Youtube Data Tools, en utilisant le mot clé log4Shell.
||
|:-:|
|*Figure 9 : Densité des sorties de vidéos Youtube*|
Le graphe correspond à ce que nous attendions, il y a beaucoup plus de vidéos qui sont sorties à ce sujet aux alentours de décembre 2021, mois lors duquel fut découverte la faille log4shell.
Nous avons ensuite utilisé Gephi pour représenter le réseau de vidéos. Nous avons réalisé deux représentations, en partant de la base de donnée obtenue avec le mot "log4j", puis avec celle partant du mot "log4shell". Nous avons restreint au mois de décembre 2021 la période pour les vidéos, afin d'avoir une meilleur vision des sujets concernés par la faille.
### Log4shell
Dans un premier temps, nous avons simplement représenté le jeu de donnée sans tri. Nous avons ensuite utilisé la fonction statistique "modularity", puis coloré les noeuds et les liens en fonction des classes obtenues avec cette fonction. Nous avons également augmenté la taille des noeuds en fonction du degré de la vidéo. Nous obtenons le graphe suivant (les noms des clusters ont été rajoutés à la main après observation des résultats):
||
|:-:|
|*Figure 10 : Représentation gephi pour la recherche "log4shell" selon la classe de modularité sans tri*|
Nous pouvons déjà observer une certaine tendance : un grand groupe de vidéos très connectées au centre, et des clusters, plus petits aux extrémités.
Nous pouvons améliorer cette représentation, car beaucoup de classes représentent des vidéos liées par la langue de la vidéo, comme des vidéos françaises, espagnoles, allemandes... Ces classes ne sont pas très intéressantes à analyser. Nous avons supprimé les vidéos appartenant à des classes regroupant les vidéos de mêmes langues, puis nous avons supprimé à la main les vidéos aux noms autre qu'anglais. Nous sommes ainsi passés d'environ 1500 vidéos à 900 vidéos. Notons que cette méthode tri est imparfaite, car certaines vidéo anglaises ont été supprimées lors de la suppression des classes de modularité, et certaines vidéos de langues autres que anglaise ont pu être oubliées lors du tri à la main, le nombre de vidéos étant important.
Nous obtenons avec cette méthode le graphe suivant :
||
|:-:|
|*Figure 11 : Représentation gephi pour la recherche "log4shell" selon la classe de modularité avec les langues triées*|
On retrouve la même tendance, un centre avec beaucoup de vidéos qui parlent principalement de log4j et de la faille log4shell, puis des groupes de vidéos qui parlent d'autre thématiques aux extrémités du graphe. On retrouve notamment une forte communauté gaming, des vidéos concernant la sécurité informatique, avec le risque de cyberattaque en Ukraine par exemple, ou encore des vidéos tutoriels sur le hacking ou sur Linux.
Il est également intéressant de visualiser ces vidéos en utilisant les catégories de vidéos. Nous pouvons voir en figure 12 que le centre du graphe, où la densité de vidéos semble plus forte, est composé principalement de vidéos éducatives, ou parlant de technologie et de science. Nous pouvous aussi voir que les groupes éloignés du centre font référence à d'autres catégories. On aperçoit par exemple une forte communauté gaming, mais elle est très loin des vidéos traitant de la faille log4shell. Certaines vidéos concernent l'automobile, en effet, Tesla s'est inquiété de l'impact de la faille log4shell pour la sécurité de ses voitures, car la faille permet de prendre le contrôle de la voiture, aussi bien que d'autres appareils informatiques. D'ailleurs, sur la figure 10 (avant le tri de langues), il y avait un gros cluster Tesla, mais les vidéos ont été supprimées car elles étaient majoritairement françaises.
||
|:-:|
|*Figure 12 : Représentation gephi selon les catégories de vidéos pour la recherche "log4shell"*|
Afin de comprendre comment certains groupes de vidéos, n'ayant à priori pas de rapport évident avec la faille log4shell, se sont retrouvés dans ces jeux de données, il est intéressant de regarder sur la figure 13 les vidéos qui font le lien entre le centre et les petits clusters :
|  |
|:-------------------------------------------------------------------------------------------:|
| *Figure 13 : Représentation gephi, zoom sur les vidéos liens pour la recherche "log4shell"* |
Pour la quasi totalité des clusters, il y a en fait une seule vidéo qui fait le lien entre le sujet du cluster et la faille. Par exemple on retrouve un gros cluster minecraft car une seule vidéo a parlé du danger que pose la faille log4j pour minecraft. Les vidéos minecraft fonctionnant très bien sur Youtube, cela a créé des liens avec des vidéos très populaires. La même conclusion peut être faite pour les autres clusters.
### Log4j
Nous avons utilisé exactement la même méthode avec le mot clé "log4j". Nous obtenons le résultat suivant, avant avoir effectué le tri des langues :
||
|:-:|
|*Figure 14 : Représentation gephi pour la recherche "log4j" selon la classe de modularité sans tri*|
Nous avons encore plus de clusters composés de vidéos ayant la même langue, ce qui justifie encore plus le tri effectué.
Après le tri des langues nous obtenons :
||
|:-:|
|*Figure 15 : Représentation gephi pour la recherche "log4J" selon la classe de modularité avec les langues triées*|
En visualisant avec la catégorie de vidéo :
||
|:-:|
|*Figure 16 : Représentation gephi selon les catégories de vidéos pour la recherche "log4J"*|
Nous pouvons voir que nous obtenons des graphes très similaires à ceux obtenus avec la recherche log4shell, alors que nous sommes ici parti de la librairie log4j. Cela confirme bien que cette dernière a principalement fait parler d'elle sur internet à cause de la faille dont elle a été atteinte.
La structure du graphe est donc presque la même. Un centre très dense où nous trouvons beaucoup de vidéos ayant pour object l'éducation et la science-technologie. Autour de ce centre, des clusters de vidéos ne traitant pas directement de log4j, mais pour lesquelles une seule vidéos a fait le lien (Voir figure 17).
En ce qui concerne les groupes de vidéos en eux-mêmes, nous retrouvons à nouveau la classe ayant pour sujet principal log4shell (en rose), au centre du graphe. Il y a aussi des clusters ayant pour sujet des tutos sur la librairie log4J, sur l'informatique en général, sur le hacking, sur la cybersécurité...
||
|:-:|
|*Figure 17 : Représentation gephi, zoom sur les vidéos liens pour la recherche "log4J"*|
Computerphile est une chaine youtube qui réalise des vidéos sur des sujets informatique divers. Il a fait une vidéo parlant de log4shell, ce qui a fait le lien avec le reste de ses vidéos, qui ne traitent pas de log4J. Une analyse similaire est à faire avec le cluster minecraft.
Il est également intéressant de représenter l'évolution de sortie des vidéos (figure 18). Nous pouvons voir que dans un premier temps les vidéos sorties sont plutôt celles en marge du graphe. C'est seulement lorsque la faille log4shelle a sévi que beaucoup de vidéos sur ce sujet sont sorties, ce qui a créé des liens avec les clusters de vidéos déjà sorties, qui n'ont pas directement pour thème la faille ou la librairie.
||
|:-:|
|*Figure 18 : affichage dynamique des vidéos pour la recherche "log4J"*|
Une dernière analyse que nous pouvons faire sur géphi est de représenter la taille des noeuds en fonction du nombre de vues des vidéos (Figure 19).
||
|:-:|
|*Figure 19 : Affichage avec la taille des bulles en fonction du nombre de vues*|
Nous pouvons voir que les vidéos parlant de log4J ou log4shell ne sont pas du tout les plus vues. Au contraire, le coeur du graphe semble composé de vidéos peu vues, et au contraire les vidéos les plus vues sont celles en marge du graphe.
Cette analyse est encore plus frappante si nous affichons uniquement les vidéos ayant accumulé plus de 300.000 vues (ce qui ne représente pas un nombre de vues spectaculaire sur Youtube pour une faille aussi importante, surtout à l'échelle internationale). Aucune ne parle directement de log4j ou log4shell.
||
|:-:|
|*Figure 20 : affichage des vidéos les plus vues >300.000 vues*|
Ces représentations montrent que la faille log4shell reste un sujet niche, destiné à une audience très restreinte. Bien qu'à première vue beaucoup de vidéos et de réactions sur YouTube y fassent référence, on se rend compte que peu de vidéos traitent du sujet en lui même.
## Presse Internationale
En ce qui concerne les données recuperées grâce à l'extraction manuelle, nous avons étudié comment la nouvelle de la faille log4Shell s'est propagée dans la presse internationale.
Pour ce faire nous avons fait une liste de 23 pays et leurs principaux journaux.
* Grande Bretagne : The Telegraph, The Guardian, The Independent, The Times ;
* Irlande : Irish Independent , The Irish Times ;
* Etats-Unis : The Boston Globe, Los Angeles Times, The New York Times, Time, The Washington Post, USA Today;
* Canada : National Post, The Globe and Mail, Calgary Herald, 24h de Montreal ;
* Australia : The Australian, The Guardian Australia, The Saturday Paper ;
* Inde : The Hindu, The Indian Express, The Times of India ;
* Chine : South China Morning Post, The Economic Observer, China Daily ;
* Japon : Asahi Shimbun, Yomiuri Shimbun, Mainichi Shimbun, Sankei Shimbun ;
* Russie : Izvestiya (Известия), Moskovskaya Pravda (Московская правда) ;
* Allemagne : Süddeutsche Zeitung, Der Spiegel;
* Suisse : Basler Zeitung, Neue Zürcher Zeitung, LaRegione ;
* Autriche : Kurier, Die Presse ;
* Luxembourg : Luxemburger Wort, Tageblatt;
* Belgique : Het Belang van Limburg, The Brussels Times, L'Avenir ;
* Espagne : El Confidencial, El Correo, El Pais;
* Mexique : La Jornada, Proceso ;
* Colombie : El Espectador, El Tiempo ;
* Argentine : Clarín, La Nación, Pagina 12 ;
* Italie : La Repubblica, Il Corriere della Sera, Il Fatto quotidiano, La Stampa ;
* Pays-Bas : NRC Handelsblad, Het Parool;
* Portugal : Correio da Manhã, Público, Expresso ;
* Brésil : Folha de São Paulo, O Globo, Istoé, Jornal do Brasil ;
* France : Le Figaro, Le Monde, L'Obs, Le Parisien.
Nous avons ensuite compté pour chaque journal combien d'articles traitant de la faille log4shell avait été publiés, à quelle date et le titre de l'article (Voir figure 21).
||
|:--:|
| *Figure 21: Nombre d'articles publiés par des journaux traitant de la faille log4shell*
***Remarque :*** il est intéressant de noter que parmi tous ces médias, seul le compte twitter du journal [*Le Monde*](https://twitter.com/lemondefr/status/1470480875515174915) a tweeté (et ce une seule fois) avec le #log4shell sur la période du 8 au 30 décembre 2021).
A l'aide de cette base de données, nous avons pu créer un nuage de mots à partir des titres des articles :
||
|:--:|
| *Figure 22: Nuage de mots des titres de la presse internationale* |
Nous pouvons observer qu'en dehors des mots qui sont directement liés à la faille (par exemple: *vulnerable, security, flaw,* etc.), le mot le plus utilisé est *Minecraft*, ce qui est assez étonnant dans un contexte de presse internationale.
De plus, nous avons voulu étudier dans quelle langue étaient écrits les articles:
||
|:-:|
| *Figure 23: Pourcentage des langues utilisés dans les articles* |
La langue la plus utilisée est l'anglais. En effet, les articles de Grande Bretagne, Irlande, Etats-Unis, Australie et certains du Canada, Inde et Belgique sont en anglais. En allemand, nous avons les articles de l'Allemange, de l'Autriche, du Luxembourg et certains de la Suisse. C'est étonnant de retrouver un pourcentage si élévé pour la langue française, étant donné qu'on ne compte que les presses quebecoise et belge en plus de celle française. En langue espagnole on a tous les articles de l'Espagne, de l'Argentine, du Mexique et de la Colombie: le pourcentage n'est donc pas très elevé par rapport à l'allemand.
On peut en conclure que cette faille est plutôt eurocentrée.
Nous avons ensuite étudié l'évolution de la publication des articles en fonction du temps:
||
|:--:|
| *Figure 24: Nombre de publications en fonction de la date* |
Nous observons que le pic est situé au 13/12/2021 avec 9 articles, c'est-à-dire 4 jours après que la faille soit rendue publique. Les 3 premiers articles datent du 10/12/2021 et ce sont des articles d'Irlande, Etats-Unis et France. On note également un second pic, certes plus petit, apres la mi-décembre. Ceci pourrait être expliqué par le fait que les développeurs ont été très actifs à cette période pour proposer des patchs dans le but de corriger cette faille, comme nous l'avons vu précédemment avec l'outil Insight du dépôt Github.
Nous avons ensuite décidé sur la figure 25 de rajouter une information sur la langue au graphique représentant l'évolution des publications d'article en fonction du temps.
||
|:--:|
| *FIgure 25: Nombre de publications en fonction de la date et des langues* |
On remarque que mise à part pour les articles en anglais, nous avons plutôt des événements isolés entre eux.
Nous sommes ensuite passés à l'étude des catégories de nos articles de presse. Pour ce faire nous avons pris en compte les articles analysés avant (c'est-à-dire ceux qui présentent la faille), mais aussi les articles qui mentionnent la faille sous d'autres aspects que celui de la vulgarisation.
||
|:--:|
| *Figure 26 : Catégorisation des articles de presse* |
La majorité des articles sont de vulgarisation, suivi par ceux de géopolitique (Voir figure 26). La plupart des articles de géopolitique parlent de cyber sécurité en Russie vis-à-vis de le guerre avec l'Ukraine. Les articles sur les jeux vidéos et la technologie parlent principalement de Minecraft et de Twitter et Apple. On ne retrouve également que très peu d'articles d'experts.
L'analyse des articles de la presse internationale montre que peu d'articles ont été publiés au sujet de la faille log4shell. De plus, l'étude des catégories permet de mettre le doigt sur le fait que la grande partie des articles sont des vulgarisations de la présentation de la faille et de ses enjeux. Ceci est cohérent avec le fait que ces articles sont plutôt axés grand public et non pas adressé à un public d'expert.
## Twitter
Quelques informations sur notre base de données de tweets scrapés avec snscrape :
- tweets contenant le #log4shell
- entre le 8 et 30 décembre
- 12219 tweets
- 41 langues
||
|:--:|
| *Figure 27: Pourcentage des langues utilisés dans les tweets* |
- 266 comptes certifiés ont twitté 767 fois : les comptes avec le plus d'abonnés :
- [@lemonde](https://twitter.com/lemondefr/status/1470480875515174915) à tweeté une seule fois, et ce tweet a fait peu d'interaction.
- [@BlackBerry](https://twitter.com/BlackBerry/status/1471661459138568192) : à tweeté 6 fois, et ses tweets ont reçu pas mal de likes et de retweets.
- [@ndtvindia](https://twitter.com/ndtvindia/status/1471748163769802759) à tweeté 2 fois, avec un peu d'interaction.
- Les twittos les plus actifs (pas nécessairement certifiés):
- [@nigroeneveld](https://twitter.com/nigroeneveld) a tweeté 142 fois, mais ses tweets ont suscité très peu d'interaction.
- [@UK_Daniel_Card](https://twitter.com/UK_Daniel_Card) : 75 fois
- [@MrsYisWhy](https://twitter.com/MrsYisWhy) : 72 fois
- [@securityaffairs](https://twitter.com/securityaffairs) : 59 fois
- [@opsmatters_uk](https://twitter.com/opsmatters_uk) : 53 fois
- [@SCMagazine](https://twitter.com/SCMagazine) : 49 fois
||
|:--:|
| *Figure 28: Les twittos les plus actifs avec le #log4shell* |
||
|:--:|
| *Figure 29: pour comparaison avec l'histogramme du nombre de tweet par utilisateur* |
Ces deux visualisations nous montrent qu'en moyenne, le nombre de tweets par utilisateur est très faible. Les utilisateurs qui se détachent sont des comptes personnels dexperts en cybersécurité reconnus ou des médias spécialisés en cybersécurité.
Enfin, nous avons réalisé un nuage de mots avec le contenu des tweets, pour en saisir les mots les plus présents. On retrouve bien évidement "log4shell" et "log4j", mais aussi "apache" (l'organisme gérant log4j) ou encore les termes techniques de cette faille : *exploit, vulnerability, zero day, attack, critical vulnerability*; mais aussi le mot clé *Minecraft* (en tout petit au centre en vertical)!
||
|:--:|
| *Figure 30: Nuage des 200 mots les plus présents (après nettoyage) dans le contenu des tweets avec le #log4shell* |
Ce graphique nuage de mots semble à première vue similaire à celui obtenu avec avec les données de la presse internationale. Néanmoins, on note la présence de termes plus techniques et savants dans le domaine de la cybersécurité, spécifiques aux utilisateurs de Twitter qui ont réagi à la divulgation de cette faille.
### Analyse textuelle et *Topic Modeling*
Nous avons par la suite décidé de mettre en place une démarche de *Topic Modeling* dans le but de découvrir les structures thématiques sous-jacentes à notre base de tweets. Pour cela, nous avons utilisé le modèle probabliste *LDA* (Latent Dirichlet Allocation). L'idée derrière ce modèle génératif est de considérer chaque document (nos tweets avec le #log4shell) comme un mélange de *topics* correspondant eux mêmes à une série de termes présents dans les tweets. Afin de réaliser cela, nous avons utilisé la librarie Python [*gensim*](https://radimrehurek.com/gensim/) et en particulier le package [*ldamodel*](https://radimrehurek.com/gensim/models/ldamodel.html). Après voir tokenizé, retiré les *stopwords* et la ponctuation, lemmatisé et créé des bigrammes, nous avons pu construire et entrainer notre modèle génératif sur notre base de tweets. Afin de trouver quel était le nombre de *topics* optimal, nous avons étudié l'évolution du score de cohérence du modèle en fonction du nombre de *topics*. A partir de 5 thèmes, le gain en terme de score de cohérence du modèle était négligeable (score de cohérence $\approx 0.35$). Nous avons donc choisi de n'en retenir que 5. Ensuite, nous avons utilisé la librarie open source [*pyLDAvis*](https://pyldavis.readthedocs.io/en/latest/readme.html) pour obtenir une visualisation interactive des *topics* générés par notre modèle (disponible [ici](https://wwwetu.utc.fr/~bettonyo/ic05/lda.html) en plein écran).
<iframe width="728" height="410" src="https://wwwetu.utc.fr/~bettonyo/ic05/lda.html" title="LDA" frameborder="0" scrolling="yes" style="overflow:hidden;"></iframe>
Cette [visualisation](https://wwwetu.utc.fr/~bettonyo/ic05/lda.html) nous offre premièrement une représentation spatiale réalisée à partir d'une *MDS* (Positionnement Mutidimensionnel). Elle nous informe sur les similarités / dissimilarités entre les *topics*.
De plus, on retrouve sur la partie droite les 30 premiers mots qui composent chaque *topic* :
- Le premier topic est composé des termes *log, shell* et *vunerability*. On remarque que le premier est présent dans la quasi totalité des tweets de notre base. On peut l'interpréter comme étant un topic "général", lié à la révélation de la faille.
- Le second est composé des termes *find, update, version, check, code* et *patch*. On remarque que celui-ci semble être lié à l'identification des logiciels et applications impactés par cette faille informatique ainsi qu'aux mises à jour nécessaires pour la corriger.
- Le troisème *topic* est lié aux risques et exploitations potentielles engendrés par la faille log4shell. Il est en effet composé des termes *exploit, attack, hack, block* et *risk*.
Cette analyse du contenu sématique de notre base de tweets vient appuyer les premières observations que nous avions faites à partir de l'étude des principaux twittos : Twitter semble être un canal de diffusion sur lequel les acteurs qui ont le plus réagi sont majoritairement des développeurs et experts dans le domaine de la cybersécurité. Les structures thématiques qui se dégagent de la *LDA* sont en effet propres à une communauté experte.
# 5. Analyse des résultats
## Vitesse de propagation de la nouvelle
Afin d'avoir une visualisation permettant de condenser les informations que nous avons jugées pertinentes pour illustrer la dynamique de diffusion de la révélation de la faille log4shell, nous avons créé un graphique (Voir figure 31) sur lequel sont superposés 3 indicateurs :
- L'intérêt Google Trend,
- Le nombre de vidéos postées sur YouTube,
- Le nombre de tweets publiés.
Pour qu'ils soient comparables, nous les avons normalisés, c'est à dire que pour chaque indicateurs, nous avons divisé chaque valeur par la valeur maximale observée sur la période de temps considérée.
||
|:--:|
| *Figure 31: Comparaison de la dynamique temporelle des principaux indicateurs étudiés* |
On remarque que les 3 indicateurs évoluent de la même manière dans le temps. Tout d'abord ils atteignent leur pic début décembre au moment de la révélation de la faille. Cela a généré une production de contenus importante. Par la suite, on observe que la tendance des 3 indicateurs semble suivre une baisse exponentielle puis stagne à de valeurs très basses, ce qui est un phénomène assez classique et souvent observé lorsqu'on étudie la propagation d'une information.
Un léger décalage est présent entre les courbes représentant l'évolution du nombre de tweets et celle des vidéos YouTube. Ceci est propre au format et s'explique par le fait qu'écrire, tourner, monter et publier une vidéo est moins rapide que poster un simple tweet depuis son smartphone.
Il est intéressant de noter que la production de contenu et les réactions des internautes sont extrément condensées autour du mois de décembre, et qu'une fois le mois de janvier passé, seulement très peu de personnes continuaient à réagir à cette nouvelle. De plus, on remarque un regain d'activités dans la production de tweets et de vidéos YouTube aux alentours de la deuxième partie du mois de décembre. Comme nous l'avons vu avec l'étude du Github de la librairie log4j, cette période correspond au moment où les développeurs ont activement contribué pour apporter des solutions et des *patchs* permettant de corriger la faille log4shell. De nombreuses vidéos et tweets ont alors été publiés pour parler de ces modifications et expliquer comment il fallait procéder pour mettre à jour la librairie.
La propagation de cette nouvelle a donc été très rapide et ce en particulier grâce aux canaux d'informations numériques. Le fait que l'intérêt sur le sujet est très vite diminué montre encore une fois que la divulgation de la faille log4shell est un sujet niche, destiné à un public plutôt expert.
Par ailleurs, l'étude des données issues de la presse et l'analyse des publications de tweets par heure nous ont permis de nous rendre compte que la diffusion de cette nouvelle a été plutôt eurocentrée. En effet, les pics de publication de tweets ont eu lieu autour du fuseau horaire européen, comme nous le montre le graphique en figure 32. Nous nous attendions plutôt à ce qu'elle soit centrée autour des USA, étant donné qu'Apache est une société américaine et que log4j est utilisée dans de nombreux logiciels développés par des entreprises américaines. En réalité, peu de journaux américains ont relayé cette nouvelle et les internautes américains n'étaient pas majoratires sur les réseaux sociaux.
||
|:--:|
| *Figure 32: Graphique représentant le nombre de tweets par heure* |
## Communautés et domaines :
Après nous être intéressés à la vitesse de propagation de la nouvelle, nous nous sommes intéressés aux communautés, ainsi qu'aux différentes domaines impactés par la faille que nous avons pu mettre en évidence grâce à nos différentes sources de données. La tendance est qu'à chaque canal d'information correspond une ou plusieurs communautés.
### Presse :
L'analyse des différents articles de presse nous a permis de confirmer qu'ils étaient axés plutôt grand public et non pas à une commaunuté experte. On retrouve en effet de nombreux articles de vulgarisation qui présentent la faille en surface. Il est intéressant de noter que les articles abordant les conséquences et enjeux géopolitiques que provoquent log4shell occupent une part importante dans notre base de données.
### Twitter :
La double étude des principaux twittos ayant twitté après la révélation de la faille log4shell et du contenu de leurs tweets nous ont permis de comprendre que ce réseau social abritait une communauté experte en cybersécurité. En effet, nous avons compris que ces acteurs s'intéressaient à la faille en elle-même en présentant les enjeux, risques et menances provoquées par cette faille mais aussi en étudiant comment était-il possible de la corriger en mettant à jour la librarie log4j sur les différentes applications et logiciels l'utilisant. On retrouve donc une catégorie de personne étroitement liée à l'activité des développeurs de la librairie comme en témoigne le second pic de tweets atteints au moment où ces derniers ont mis en ligne les *patchs* permettant de résoudre la faille. Nous ne nous attendions pas à ce que les experts soient aussi présents dans la communauté Twitter.
### Youtube :
Le modèle plus souple du format vidéo permet une variété très importante de types de contenus (Voir figure 12-16). Toutefois la majorité des vidéos publiées sur youtube que nous avons récupérées sont essentiellement des vidéos de vulgarisation ou des tutoriels (concernant la faille ou non).
Le principal apport de Youtube à notre étude est qu'il nous a permis de visualiser quels sont les domaines impactés par la faille (Voir figure 11-15), mais surtout de comprendre pourquoi ces groupes sont très représentés. Les domaines les plus présents sont le gaming, communauté très présente sur Youtube surtout avec Minecraft, mais également ceux de la cybersécurité, notamment concernant la guerre en Ukraine, le hacking, et Elon Musk et Tesla.
Parmis les plateformes que nous avons explorées, Youtube est celle qui nous a permis de comprendre pourquoi des domaines surprenants sont en lien avec la faille log4shell qui reste en réalité un sujet niche. En effet, on remarque qu'il existe un petit nombre de vidéos qui font le lien entre la faille et les domaines annexes (voir figure 13-17). Pour Minecraft par exemple, nous voyons qu'une vidéo explique qu'il est possible de hacker des serveurs en exploitant la faille. La communauté Minecraft étant très active sur Youtube, beaucoup de liens ont été créés, ce qui explique la présence importante de cette thématique sur nos représentations Gephi.
# 6. Conclusion
Dans l'ensemble, les conclusions que nous avons trouvées sont conformes à ce que nous attendions. La nouvelle de la faille s'est effectivement propagée très vite durant le mois de decembre 2021, puis plus personne n'en a parlé très rapidement. On remarque cependant un léger décalage avec Youtube qui peut être expliqué par la présence de beaucoup de vidéos dérivées, ne traitant pas de manière directe le sujet.
Nous avons également trouvé les domaines que nous avions déjà identifiés lors de nos recherches (Tesla, Minecraft, cybersécurité...). Toutefois, notre étude a permis d'identifier sur quelles plateformes les communautés ont été les plus actives, et aussi comprendre pourquoi certains groupes sont plus présents que d'autres.
Nous avons également pu identifier quels sont les types de contenus publiés sur les différentes plateformes. Bien qu'il soit cohérent que la vulgarisation et le tutoriel soient prépondérants sur Youtube, il est surprenant de constater que la thématique du gaming soit présente sur la presse internationale. Il est aussi surprenant que Twitter regroupe plutôt la communauté experte, étant donné le format très restreint des tweets pour expliquer la faille.
Nous pensons avoir mené une étude plutôt complète, car nous avons utilisé des multiples sources de données. En effet, nous avons essayé de construire une base de données complète en choisissant des données de formats différents (vidéo, article, tweet) présentes en quantités différentes (70 articles, 900 vidéos et 12000 tweets), le tout en les extrayant et en les traitant de plusieurs manières (extraction manuelle ou automatique, tri des langues ou non). Cette variété nous a permis de construire une analyse intéressante, qui nous a méné à des conclusions nous permettant de bien caractériser la propagation de la nouvelle en fonction de la plateforme.