WhatsApp lance son mode Lockdown et adopte Rust à grande échelle
De rouille et dors
Afin de sécuriser WhatsApp, Meta a procédé au « plus grand déploiement jamais réalisé de code Rust sur un ensemble diversifié de plateformes et de produits », et annonce vouloir accélérer l'adoption du langage de programmation sécurisé Rust au cours des prochaines années. La messagerie intègre par ailleurs un mode anti-logiciels espion ou malveillants.
Le 30 janvier à 10h25
6 min
Sécurité
Sécurité
WhatsApp vient d'annoncer, ce mardi 27 janvier, « une nouvelle mesure de protection de la confidentialité : les paramètres de compte stricts » (« Strict Account Settings » en VO), semble-t-il inspirée du mode de protection avancé (« Advanced Protection Mode » en VO) introduit par Google en 2020 puis du mode Lockdown mis en œuvre par Apple en 2022 pour réduire la surface d'attaque des Android et iPhone face aux logiciels espion « mercenaires ».
Elle s'adresse en effet elle aussi aux personnes qui, journalistes ou personnalités publiques notamment, « peuvent avoir besoin de mesures de sécurité extrêmes pour se protéger contre les cyberattaques rares et hautement sophistiquées », ou qui pensent « être la cible d'une attaque informatique », précise WhatsApp sur son blog :
« Si vous activez cette fonctionnalité, certains réglages de compte seront verrouillés sur les paramètres les plus restrictifs, ayant pour effet de limiter le fonctionnement de WhatsApp dans certains cas de figure, en bloquant par exemple les pièces jointes et les médias envoyés par des personnes qui ne figurent pas dans vos contacts. »
Les paramètres de compte stricts, qui seront déployés progressivement au cours des prochaines semaines, seront accessibles en accédant à Paramètres > Confidentialité > Avancé.
Une décision qui remonte à la faille Stagefright de 2015
WhatsApp précise que ces paramètres de compte stricts « constituent l’un des nombreux moyens que nous avons développés pour vous protéger des cybermenaces les plus avancées ». L'entreprise indique également avoir « déployé en coulisses un langage de programmation appelé Rust pour protéger vos photos, vidéos et messages face aux logiciels espions, et vous permettre de partager et de discuter en toute confiance ».
Dans un billet technique séparé, mais publié dans la foulée, Meta revient plus en détails sur le fait que WhatsApp a « adopté et déployé une nouvelle couche de sécurité pour ses utilisateurs, développée avec le langage de programmation sécurisé Rust », dans le cadre de ses efforts visant à renforcer ses défenses contre les menaces liées aux logiciels malveillants.
Meta explique que cette décision fait suite à la découverte, en 2015, de la vulnérabilité Stagefright qui permettait de pirater les terminaux Android à partir d'un simple MMS :
« Le bug résidait dans le traitement des fichiers multimédias par les bibliothèques fournies par le système d'exploitation, de sorte que WhatsApp et d'autres applications ne pouvaient pas corriger la vulnérabilité sous-jacente. Comme la mise à jour vers la dernière version d'un logiciel peut souvent prendre des mois, nous avons cherché des solutions qui permettraient d'assurer la sécurité des utilisateurs de WhatsApp, même en cas de vulnérabilité du système d'exploitation. »
Les développeurs de WhatsApp ont réalisé qu'une bibliothèque C++ utilisée par l'application pour envoyer et formater des fichiers MP4 (appelée « wamedia ») pouvait être modifiée afin de « détecter les fichiers qui ne respectaient pas la norme MP4 et qui pouvaient déclencher des bogues dans une bibliothèque OS vulnérable du côté du destinataire, mettant ainsi en danger la sécurité de la cible ».
Plutôt que de la réécrire, ils en ont développé une version Rust compatible avec la version C++ originale, puis « remplacé 160 000 lignes de code C++(hors tests) par 90 000 lignes de code Rust (tests compris) ».
Le « plus grand déploiement jamais réalisé de code Rust »
Meta précise avoir rajouté « davantage de contrôles » au fil du temps, et que WhatsApp vérifie désormais les « types de fichiers à haut risque » tels que les .pdf, qui « sont souvent vecteurs de logiciels malveillants » :
« Nous détectons également lorsqu'un type de fichier se fait passer pour un autre, grâce à une extension ou un type MIME falsifié. Enfin, nous signalons de manière uniforme les types de fichiers connus pour être dangereux, tels que les exécutables ou les applications, afin qu'ils soient traités de manière spéciale dans l'expérience utilisateur de l'application. »
Cet ensemble de vérifications, qu'ils appellent « Kaleidoscope », « protège les utilisateurs de WhatsApp contre les clients non officiels et les pièces jointes potentiellement malveillantes », avance Meta : « Bien que les vérifications de format ne permettent pas d'arrêter toutes les attaques, cette couche de défense contribue à en atténuer bon nombre ».
Rappelant que le chiffrement de bout en bout de WhatsApp est utilisé par ses trois milliards d'utilisateurs, Meta avance que « nous pensons qu'il s'agit du plus grand déploiement jamais réalisé de code Rust sur un ensemble diversifié de plateformes et de produits destinés aux utilisateurs finaux dont nous ayons connaissance », et précise que « nous prévoyons d'accélérer l'adoption de Rust au cours des prochaines années ».
Une faille de sécurité corrigée, et une plainte « ridicule »
WhatsApp vient par ailleurs de corriger une faille de sécurité, découverte dans l'application Android par les équipes du Projet Zero de Google en septembre 2025. Elle permettait à un attaquant de rajouter des victimes à des groupes, « puis de leur envoyer un fichier multimédia malveillant automatiquement téléchargé sur l'appareil de la victime sans aucune interaction de sa part », rapporte Neowin.
Il était cela dit possible de s'en prémunir en activant la confidentialité avancée des discussions dans WhatsApp (en appuyant sur les trois petits points en haut à droite, puis sur Infos du groupe), soulignait Neowin dans un précédent article, ou en désactivant le téléchargement automatique des médias (via Paramètres -> Stockage et données).
Ces explications détaillées sur le renforcement de la sécurité de WhatsApp ont par ailleurs été mises en ligne alors que le 23 janvier, trois cabinets d'avocats ont porté plainte contre Meta. Ils l'accusent rien moins que d'avoir comploté pour cacher le fait que les messages WhatsApp ne seraient pas chiffrés de bout en bout, et qu'il serait extrêmement simple à ses employés d'y accéder.
Une accusation qualifiée de « fiction sans fondement » par le porte-parole de Meta et de « ridicule » par plusieurs experts en cryptographie, d'autant que l'un de ces cabinets d'avocats est aussi celui de NSO, l'éditeur du logiciel espion Pegasus condamné l'an passé pour avoir piraté WhatsApp.
WhatsApp lance son mode Lockdown et adopte Rust à grande échelle
-
Une décision qui remonte à la faille Stagefright de 2015
-
Le « plus grand déploiement jamais réalisé de code Rust »
-
Une faille de sécurité corrigée, et une plainte « ridicule »
Commentaires (20)
Abonnez-vous pour prendre part au débat
Déjà abonné ? Se connecter
Cet article est en accès libre, mais il est le fruit du travail d'une rédaction qui ne travaille que pour ses lecteurs, sur un média sans pub et sans tracker. Soutenez le journalisme tech de qualité en vous abonnant.
Accédez en illimité aux articles
Profitez d’un média expert et unique
Intégrez la communauté et prenez part aux débats
Partagez des articles premium à vos contacts
Abonnez-vousModifié le 30/01/2026 à 10h34
Le 30/01/2026 à 10h39
Parce que l'idée de faire quelques tools avec en "vibecode" m'a tenté. Mais sans connaissance du langage (et c'est pas le plus évident à appréhender - la syntaxe !), c'est hors de question pour plein de raisons (sécurité, qualité du code, etc).
Même si globalement j'ai l'impressio que les LLM arrivent à cracher du code correct de base.
Le 30/01/2026 à 10h47
Modifié le 30/01/2026 à 10h54
Mais clairement, Rust est tellement bien pensé niveau sécurité comparé à C/C++ que... C'est beaucoup moins problématique/risqué de recourir aux LLM à ce niveau là.
Mais il ne faut pas hésiter à demander à différents LLM un audit, en croisant ces derniers, à la fin, pour les éventuels bugs et soucis de sécurité, généralement ça aide bien.
Mention spéciale pour Codex qui se débrouille particulièrement bien en la matière, même avec codex 5.2 low. À côté Gemini se plante une à deux fois sur trois, ne passant pas le cap de la compilation et devant re-corriger les erreurs derrières. Pareil pour Claude, il est verbeux et explique bien, mais omet/oublie beaucoup de choses et doit corriger et re-passer à la moulinette régulièrement.
Par contre, quelqu'un n'y connaissant rien en C qui demanderait à faire un projet from scratch aux LLM, là, ouille, gros risques... Modifier/adapter quelques projets ouverts, pourquoi pas, mais sinon... À moins de se faire un truc perso dans un environnement cloisonné, là pourquoi pas.
Le 30/01/2026 à 11h01
Une demande en batch pour supprimer des fichiers identifiés à partir d'une expression régulière : je n'ai pas eu d'expression fonctionnelle ; j'ai lancé la génération de la réponse plusieurs fois, sans changer la demande et il ne me renvoyait pas la même construction de l'expression.
Une autre pour du powershell, et c'était pas mieux. C'était juste quelques lignes de script ; j'ai oublié de quoi il s'agissait, mais je cherchais une cmdlet que je ne connaissais pas. La cmdlet était bien ce que je cherchais, mais sa proposition d'usage incluait un argument qui n'existait pas ; et il s'est emmêlé les pinceaux dans le type d'identifiant à mettre à mettre derrière un autre argument.
Le 02/02/2026 à 12h11
Le 30/01/2026 à 11h03
En général, ils arrivent à donner bonne illusion.
Le code, ce n'est rien de plus qu'un cas particulier de texte. Donc oui, ça fait de la merde et tout ne se passe pas bien non.
C'est d'autant plus difficile que lorsqu'on code, il y a beaucoup d'implicite dont on ne se rend même plus compte. Dans les prompts, il faut alors préciser l'implicite de manière... explicite ! c'est un exercice loin d'être évident, et pour un résultat non garanti.
Modifié le 30/01/2026 à 11h36
Par contre quelque chose qui m'a vraiment surpris, c'est que les plus gros LLM sont très bons pour faire du reverse engeenering sur des formats de fichiers non documentés... J'ai pu par exemple potasser sur la traduction d'un jeu récent, extraire et recompresser et parser le texte d'un format propriétaire d'un jeu narratif japonais récent, alors que sans ça le travail aurait été dingue... En moins d'une heure, c'était bouclé...
Même sur des executables ils bossent bien, et peuvent utiliser ghidra
Le 30/01/2026 à 11h05
Tu peux voir le LLM comme le stagiaire, qui a bouffé de la théorie en veux-tu en voilà, mais qui est incapable de comprendre un contexte donné si tu ne prends pas le temps de lui expliquer. Donc il va pouvoir coder... mais si tu fournis mal le contexte, c'est la catastrophe 9x/10.
Et puis comme avec un stagiaire, ou pas, il est important de review le code qu'il te sort (et le plan auparavant). Et pour ça il faut comprendre ce que tu lis. Donc une connaissance minimale du langage, des bonnes pratiques, etc, restent indispensables selon moi pour éviter au maximum les effets de bord (sécurité, performances, maintenabilité...).
Tu peux toujours lui fournir de la documentation pour mieux le guider (ou plutôt utiliser des skills). Mais ça n'enlève pas la nécessité de vérifier, ni la possibilité qu'il fasse n'importe quoi pour X raisons.
Il ne faut pas oublier que le LLM reste une machine "prédictive", statistique.
Il ne connait rien du contexte dans lequel tu l'utilises, et est incapable de concevoir celui-ci. C'est au développeur de donner ces informations là... et donc de vérifier qu'il s'y est bien tenu.
Modifié le 30/01/2026 à 12h25
Déjà en entré le prompt peut être inadapté/incomplet/..., le contexte médiocre et quand tu ne connais pas ton sujet ça a de forte chance d'être le cas.
Puis ensuite faute de trouver une réponse pertinente le LLM peu inventer une réponse et de manière générale il n'y a aucune intelligence dedans donc logiquement le code peut être correct mais pas du tout faire ce qui est attendu, faire semblant de le faire....
Bref si tu ne comprend pas ce que fait le code c'est une mauvaise idée et mème si t'es un ingénieur chez Cloudflare avec probablement un peu d'expérience tu peux te ridiculiser en publiant n'importe quoi https://tech.lgbt/@JadedBlueEyes/115967791152135761
Le 30/01/2026 à 11h22
Je comprends mieux maintenant.
Modifié le 30/01/2026 à 10h57
Ce n'est pas encore tout à fait finalisé, mais ça a bien pris forme.
Le 30/01/2026 à 10h54
J'ai fait un premier essai, pour voir un peu le langage, et je trouve sa syntaxe inutilement complexe, avec des notions qui ne devraient pas exister dans un langage (par ex. les macro, et le fait de les appeler avec une syntaxe différente des fonctins, beurk).
Je suis plutôt orienté artisanat logiciel, et j'essai donc d'appréhender le développement logiciel comme un tout. Maintenance, évolutivité, sécurité, etc..
Si Rust a des atouts indéniables d'un point de vue sécurité, sa syntaxe et sa courbe d'apprentissage le rendent difficile à lire et à comprendre pour un non spécialiste Rust, pénalisant alors la maintenabilité. C'est un langage qui nécessite un réel investissement avant de pouvoir vraiment l'utiliser.
Après, je ne fais pas de C/C++ mais du C#. Les apports en sécurité sont donc un peu moindre qu'en C ou C++, puisque la gestion de la mémoire répond à un paradigme déjà différent.
J'attends de voir aussi comment évolue son outillage, les débogueurs, cargo, l'intégration dans les IDE, etc.
Le 30/01/2026 à 13h46
Le 30/01/2026 à 15h36
L'année dernière, j'ai décidé de me remettre au C++ (pour me mettre à jour) et de commencer le Rust. Je vais peut être commencer par le C++ alors ;)
Merci pour ton retour :)
Le 31/01/2026 à 09h28
Le 31/01/2026 à 11h09
Et cela fait si longtemps que je n'ai pas fait de C++ que la partie "oublie des mauvaises pratiques" est déjà faite à 90%
Et puis, quoi qu'il arrive, je vais peut être reprendre un projet en C++, donc autant que je commence par là, rien qu'à cause de ça ;)
Le 31/01/2026 à 18h16
Le C++ moderne change par rapport à l'ancien C++ en étant plus propre, notamment sur la gestion mémoire. Il y a bien parfois quelques petits égarements dans la norme mais au global c'est propre.
Ah mon sens le seul atout de Rust, c'est son aspect fonctionnel qui est plus prédominant et de fait plus intéressant à récupérer comme on repasse au C++. Pour le reste, les concepts d'ownership et sémantique de move se retrouve en C++, et font parti des bonnes pratiques depuis le C++ 11.
Le 31/01/2026 à 19h12
Je ne vois pas comment expliquer à quelqu’un qui découvre le langage pourquoi il faut écrire decltype(auto) et pas auto (et je ne parle pas de auto(x) que nous a rajouté C++23). Je ne sais pas non plus expliquer la différence entre une lvalue, une rvalue, une prvalue, une rvalue reference. Je sais à peu près qui correspond à quoi, et j’en sais suffisamment pour retrouver mes petits quand je suis confronté à un problème où j’ai besoin de faire la différence. Des exemples comme ça, il y en a pléthore dans le langage, plein de subtilités (l’ADL, on en parle ? CRTP ?) qui font que pour moi C++ est un langage qui demande un certain niveau d’expertise.
Et par contre, je suis certain que chaque personne qui code en C++ sera un jour confronté à un message d’erreur du compilateur lui parlant de ça (généralement, c’est le moment où les collègues font appel à moi). C’est tout ça qui fait que j’ai du mal à recommander C++ aujourd’hui, malgré toutes ses qualités. Pour moi Rust est beaucoup plus simple à appréhender, et je pense qu’il vaut mieux apprendre Rust puis C++, qu’apprendre directement C++.
Et sinon, entre tokio et les coroutines C++, le choix est à mon sens vite fait :)
Après c’est forcément différent pour chacun, par exemple pour fdorin, qui a déjà un bagage.
Le 01/02/2026 à 00h57
Signaler un commentaire
Voulez-vous vraiment signaler ce commentaire ?