ipopba - stock.adobe.com
Cyberhebdo : LeMagIT met l’IA au service de l’information de ses lecteurs
LeMagIT vient de lancer sa revue de presse internationale hebdomadaire sur les cyberattaques. Un prolongement logique du travail de veille réalisé depuis bientôt 3 ans pour le bulletin météo ransomware mensuel, réalisé avec l’aide de ChatGPT.
Depuis septembre 2020, LeMagIT propose tous les mois à ses lecteurs un véritable bulletin météo ransomware. Celui-ci s’appuie notamment sur le décompte des revendications de cyberattaques publiées par les cybercriminels, lequel est régulièrement corrigé et redressé. Mais LeMagIT compte également les attaques évoquées publiquement dans la presse du monde entier. Ce travail de veille a récemment été sensiblement amélioré avec l’aide de ChatGPT.
Un métaflux RSS dans une seule langue
Historiquement, l’actualité était suivie dans un classique lecteur RSS, en s’appuyant sur plusieurs flux RSS générés par Google News à partir de recherches sur les mots clés cyber et attaque, dans plusieurs langues et pour différentes régions du monde. Problème : les titres des articles sont dans leur langue d’origine. En outre, une même dépêche peut être reprise par différents titres. Et c’est sans compter avec les communiqués de presse parfois confondus avec de véritables articles de presse.
En l’absence de ressources internes de développement, nous avons fait appel à ChatGPT pour construire un script Python simplifiant notre travail de veille.
Ce script Python se charge de récupérer lesdits flux RSS, en ignorant certaines sources à l’intérêt trop limité. Dans la mesure du possible, les doublons sont supprimés. Les articles déjà collectés lors d’une précédente exécution du script sont également ignorés.
Les titres des articles provenant des sources non anglophones sont traduits en faisant appel à l’API de DeepL.
Le script Python ajoute alors les articles nouvellement trouvés à un métaflux RSS exclusivement anglophone. Hébergé sur GitHub, ce script est exécuté toutes les 30 minutes avec GitHub Actions. Le tout est accessible à tous, librement.
Une curation semi-automatique
Le métaflux RSS obtenu doit être manuellement consulté de manière régulière : l’identification des articles évoquant effectivement une cyberattaque n’est pas automatisée et plusieurs essais se sont traduits par un trop grand nombre de faux négatifs. Autrement dit : ChatGPT s’est souvent montré incapable de voir qu’un article parlait d’une cyberattaque, alors que c’était évident pour un humain.
Mais le modèle d’OpenAI est plutôt efficace en matière de résumés. Il est donc mis à contribution pour une autre étape : le partage et l’inventaire des actualités relatives à des cyberattaques.
Nous avons demandé l’aide de ChatGPT pour produire une application REST avec Flask. Celle-ci est invoquée à distance, soit en ligne de commande, soit avec un raccourci iOS/macOS. C’est l’URL de l’article qui est fournie.
À la réception de l’URL, un script Python fait appel à Selenium et à la librairie readerability-lxml pour extraire l’article de la page Web. Le texte est alors fourni à ChatGPT via son API développeurs pour lui demander de produire un résumé en cinq phrases, ainsi que d’extraire le nom de la victime et le pays où se situent les faits.
La date, l’URL, les résultats fournis par le modèle d’OpenAI et le titre de l’article d’origine sont ajoutés à un fichier JSON qui est stocké localement et parallèlement actualisé sur GitHub. Il est systématiquement vérifié manuellement.
Nous utilisons également ces éléments pour partager l’article traité sur Twitter, après ajustement manuel du résumé produit par ChatGPT.
Une revue de presse hebdomadaire
Ce fichier JSON va bien sûr être mis à contribution pour la préparation du bulletin météo ransomware que vous retrouvez mensuellement dans LeMagIT. Chacun peut également le consulter et se pencher dessus, et proposer des corrections.
Mais nous commençons également à l’utiliser pour produire de manière semi-automatique une revue de presse hebdomadaire, le Cyberhebdo du MagIT, dont la première édition vient d’être publiée.
C’est un autre script Python qui récupère les événements de moins d’une semaine trouvés dans le fichier JSON. Il en soumet le décompte et la liste des pays représentés à ChatGPT, pour lui demander de rédiger un court texte d’introduction.
Le script Python se charge de produire le code HTML intégrant les réponses de ChatGPT ainsi que les éléments – sourcés – relatifs à des cyberattaques observées durant la semaine écoulée.
Ce dernier script Python est exécuté de manière automatique, une fois par semaine, avec l’aide des GitHub Actions.