Les 0-days ces "Failles non corrigées"

Les 0-days ces "Failles non corrigées"

Dans le journal officiel du 21 mars 2021, de nouvelles traductions franco-françaises ont fait leur apparition avec quelques perles comme :

  • backdoor / trapdoor, traduit par poterne logicielle 😱 alors que l'expression porte dérobée est déjà utilisée et compréhensible mais passons…;
  • zero-day / zero-day flaw / zero-day vulnerability, traduit par faille non corrigée, ce qui pour moi est une erreur et en change le sens (lire jusqu’à la fin avant de protester 😉).

L'origine

Sans réécrire l'article Wikipédia https://en.wikipedia.org/wiki/Zero-day_(computing) plutôt complet, voici quelques compléments.

Zero day ou 0-day vient à l'origine de la Warez (1) des années 90 et 2000, activité qui consistait (2) à obtenir des logiciels (jeux, roms, films, musique...) fermés et/ou payants pour les déverrouiller (les "cracker") puis les diffuser sur différents canaux (BBS, DCC sur irc, news group, dump FTP ou FXP...) en monnayant ou en échange d'autres logiciels ou contre des accès privés à d'autres dumps ou gratuitement. Ancien membre d'Undernuke, MJ13, Les Foqs, Post Scriptum, Alliance-Team, #Hamac, #Princess, #warez-france, #warez-humour, CdC BO2K team et Paradox, si tu me lis : bisous 😘.

Lorsqu'un logiciel (jeu, film, vous avez compris) était diffusé illégalement, avant même sa sortie publique et/ou commerciale, il était qualifié de "Zero Day" : il était publié zéro jour après sa sortie (cette phrase est étrange 😉). En France, il nous arrivait aussi de parler de "fraîche".

Le "0" de 0-day fait opposition au "n" de n-days, décrivant un contenu publié n jours après sa sortie publique.

Zero-day dans la sécurité

Le terme a migré de la Warez à la sécurité informatique (la cybersécurité aujourd'hui) décrivant la fraîcheur d'une vulnérabilité. Je parle de vulnérabilité mais souvent, le terme 0-day inclut aussi le fait de disposer du code d'exploitation de la vulnérabilité, permettant de compromettre le logiciel en question.

Une vulnérabilité dite 0-day est donc un bug ayant une portée sécurité (une faille), découvert dans un logiciel (3) et connu uniquement du découvreur ainsi que d'un cercle limité de personnes ou entités avec qui il l'a partagé (non je ne vais pas parler des collisions de bug, c'est un autre sujet). En général, l’éditeur du logiciel est exclu de ces sachants.

Pour faire très très simple : s’il y’a pas de correctifs de sécurité, c’est une 0-day.

Quand un expert en sécurité dit <<j'ai une 0-day Wordpress>>, comprenez <<je connais (ou quelqu'un m'a donné) une vulnérabilité et le code d'exploitation associé, touchant le logiciel Wordpress et non connue de l'éditeur ou connue de l'éditeur mais sans correctif disponible pour l'instant>>

Les détails de la définition sont discutables mais en générale, une fois un correctif de sécurité publié par l'éditeur, la vulnérabilité n'est plus considérée comme une 0-day mais comme une n-day.

Il existe un marché des 0-day, avec plusieurs programmes d’achat/revente publiant leurs tarifs publiquement comme Zerodium (ex-Vupen), Exodus Intelligence… et également un marché des n-days avec Exodus intelligence et d’autres. Il y’a bien entendu plusieurs entreprises françaises qui sont spécialisées dans ce domaine, mais ne trouvant pas cette information sur leur site web, je préfère ne pas les citer 😉.

Les érodées ?

J’arrête tout de suite ceux qui me vont me parler des « érodées », incompréhension d’un rédacteur du site de propagande russe Sputnik, lors d’une interview téléphonique ayant compris « les érodés » (les-zérodées) au lieu des « zéro-days » 🤦‍♂️ :

<<Rien n'empêche à penser que les "érodés", ces fameuses failles informatiques, utilisées par les pirates initiés, existent>>

https://fr.sputniknews.com/france/201703081030371219-france-vote-electronique-opinion/

https://web.archive.org/web/20170308103413/https://fr.sputniknews.com/france/201703081030371219-france-vote-electronique-opinion/

Faille non corrigée, selon Légifrance

Quand Légifrance traduit 0-day par "faille non corrigée, vulnérabilité non corrigée" cela change le sens ou peut laisser libre court à l’interprétation selon laquelle elle n’est pas corrigée car le correctif est bien disponible mais n’a pas été déployé.

https://www.legifrance.gouv.fr/download/pdf?id=x5Au6KIZ7dCbg-_TGrJNxp4D9hyQf34ghN2d3q4OtX0=

Le diable étant toujours caché dans les détails, je me dois de modérer mon propos car le texte complet parle de « Faille identifiée par des utilisateurs d’un système informatique, à laquelle il n’existe pas encore de parade. » qui ce me semble plus juste.

https://www.legifrance.gouv.fr/download/pdf?id=x5Au6KIZ7dCbg-_TGrJNxp4D9hyQf34ghN2d3q4OtX0=

Fun fact et définition étendue

Pour rentrer un peu plus dans les subtilités des 0-day, il y’a en fait plusieurs catégories :

  • Les vulnérabilités touchants les logiciels (3) connus, surveillés et référencés par les grands organismes encadrant la cybersécurité (comme le NIST): Windows, Apple iOS, Google Chrome, tous les produits Cisco, Oracle… pour les plus connus. Selon la manière de compter, il y’a aux alentours d’un million de logiciels surveillés. Ces vulnérabilités sont référencées par des identifiants, les fameuses « CVE », comme CVE-2021-27078 touchant Exchange ou les CNNVD (les CVE chinoises), comme CNVD-2021-14770 (correspondant à CVE-2021-27078);
  • Les vulnérabilités touchants les logiciels peu connus, non surveillés ou non référencés et dont les vulnérabilités ne sont pas référencées ;
  • Les vulnérabilités touchants les logiciels développés spécifiquement  pour des entreprises et dont les vulnérabilités ne sont pas référencées.

Généralement (encore une fois 😉), quand les gens parlent de 0-day, cela concerne la première catégorie et parfois la seconde. D’ailleurs, il y'a quelques années, j'avais passé des entretiens de recrutement pour intégrer une équipe et l'un des responsables m'avait demandé <<avez-vous déjà trouvé des 0-days?>> (Responsable de l’équipe 1, si tu te reconnais 😉).

Ce à quoi j'avais répondu : non, mais sans pouvoir détailler, car je pensais principalement à la première catégorie, alors que des vulnérabilités 0-day, je/nous en trouvons toutes les semaines sur des produits non surveillés ou développés spécifiquement.

Pourquoi tout ça ?

Tout simplement car il est important de bien définir les choses, d’avoir un vocabulaire commun pour pouvoir traiter ces problématiques très techniques et critiques comme les 0-days.

Une vraie 0-day ne sera pas traitée comme une vulnérabilité connue disposant d’un correctif non-encore déployé.

(1) oui, j’ai toujours dit « la warez », certains disent « le warez ». J’attends que l’académie française tranche, comme pour la covid 😉

(2) et qui consiste toujours d’ailleurs !

(3) Je parle de logiciels au sens large car finalement, tout est logiciel : Windows c’est un logiciel, un iPhone c’est un (des) logiciels, un lave-linge c’est un logiciel qui tourne sur du matériel spécifique, des ASIC ce sont des logiciels sous forme de circuits intégrés/imprimés (oui, je tire un peu le modèle mais ce n’est pas loin d’être vrai)…