Bruce Schneier: divulgation ou mise en réserve des vulnérabilités

Bruce Schneier
Un débat est en cours sur la question de savoir si le gouvernement américain – plus précisément, la NSA et l’United States Cyber Command – devrait stocker les vulnérabilités d’Internet ou les divulguer et les réparer. C’est un problème complexe qui illustre bien toute la difficulté à séparer l’attaque de la défense dans le cyberespace.

Une vulnérabilité logicielle est une erreur de programmation qui donne un accès système à un adversaire. Heartbleed est un exemple récent, mais des centaines sont découverts chaque année.

Les vulnérabilités non publiées sont qualifiées de vulnérabilités « zero-day » (jour zéro), et elles sont très précieuses car personne n’est protégé. Quelqu’un avec une de ces vulnérabilités peut attaquer des systèmes dans le monde entier en toute impunité.

Quand quelqu’un en découvre une, il peut l’utiliser soit pour se défendre, soit pour attaquer. La défense consiste à alerter le vendeur pour obtenir un correctif. De nombreuses vulnérabilités sont découvertes par les fournisseurs eux-mêmes et corrigées sans tambour ni trompette. D’autres sont découvertes par les chercheurs et les pirates.

Un correctif n’éradique pas la vulnérabilité, mais la plupart des utilisateurs se protègent par l’application régulière de correctifs sur leurs systèmes.

L’attaque consiste à utiliser la vulnérabilité à d’autres attaques. C’est le jour zéro par excellence, parce que le vendeur ne sait même pas que la vulnérabilité existe avant de constater son exploitation par des criminels ou des pirates.

Le fournisseur du logiciel affecté finira par l’apprendre – plus ou moins rapidement en fonction du nombre d’utilisations –et publiera un correctif pour annuler la vulnérabilité.

Quand une vulnérabilité est découverte par une unité offensive cyber militaire découvre –ou par un fabricant d’armes cyber – elle garde cette vulnérabilité secrète pour l’utiliser pour distribuer une cyberarme. Utilisée furtivement, elle pourrait rester secrète pendant une longue période. Tant qu’elle n’est pas utilisée, elle restera secrète jusqu’à ce que quelqu’un d’autre la découvre.

Les découvreurs peuvent vendre les vulnérabilités. Il y a un marché riche pour les vulnérabilités jour zéro à des fins offensives–tant militaires et commerciales que pour les marchés noirs. Certains fournisseurs proposent des primes pour inciter les découvreurs à communiquer avec eux, mais les montants sont beaucoup plus faibles.

La NSA peut jouer en défense ou en attaque. Elle peut alerter le vendeur et obtenir un correctif pour une vulnérabilité encore secrète, ou elle peut la garder et l’utiliser pour espionner les systèmes informatiques étrangers. Les deux options sont des objectifs importants de la politique américaine, mais la NSA doit choisir celle qui est à poursuivre. En fixant la vulnérabilité, elle renforce la sécurité de l’Internet contre tous les attaquants : autres pays, criminels, pirates. En laissant la vulnérabilité ouverte, elle est en mesure de mieux attaquer des tiers sur Internet. Mais chaque utilisation renforce le risque que le gouvernement ciblé apprenne l’existence de la vulnérabilité, et l’exploite à son compte, ou que la vulnérabilité devienne publique et que les  criminels commencent à l’utiliser.

Il n’est pas possible de défendre les réseaux américains tout en laissant simultanément les réseaux étrangers ouverts aux attaques. Tout le monde utilise les mêmes logiciels, donc corriger pour nous signifie corriger aussi pour les autres, et laisser les autres vulnérables c’est nous laisser aussi vulnérables. Comme le professeur de droit à Harvard Jack Goldsmith l’a écrit,

« chaque arme offensive est une brèche (potentielle) dans notre défense–et vice versa. »

Pour rendre les choses encore plus difficiles, on assiste à une course aux armements dans le cyberespace. Les Chinois, les Russes et beaucoup d’autres pays, trouvent aussi des vulnérabilités. Si nous laissons une vulnérabilité non corrigée, nous courons le risque qu’un autre pays la découvre indépendamment et l’utilise dans une cyberarme à laquelle nous serons vulnérables. Mais si nous corrigeons toutes les vulnérabilités que nous trouvons, nous n’aurons plus de cyberarme à utiliser contre d’autres pays.

Beaucoup de gens ont pesé dans ce débat. Le groupe présidentiel d’examen du renseignement et des technologies de la communication, convoqué  après les révélations de Snowden, a conclu (recommandation NR 30), que des vulnérabilités devraient seulement être amassées dans de rares cas et pour de courtes périodes. Cory Doctorow l’apparente à un problème de santé publique. J’ai dit des choses semblables. Dan Geer recommande que le gouvernement américain s’accapare le marché des vulnérabilités et les corrige toutes. Le FBI et les agences de renseignements affirment que cela reviendrait à un désarmement unilatéral.

On dirait une énigme insoluble, mais la réponse dépend de la façon dont les vulnérabilités sont distribuées dans les logiciels.

Si les vulnérabilités sont rares, alors il est évident que chaque vulnérabilité que nous trouvons et corrigeons améliore la sécurité. Nous neutralisons la vulnérabilité, même si elle est déjà connue du gouvernement chinois. Nous empêchons les criminels de la trouver et de l’utiliser. Nous améliorons la sécurité générale de nos logiciels, parce que nous pouvons trouver et corriger la plupart des vulnérabilités.

Si les vulnérabilités sont nombreuses et cela semble être le cas – celles que les Américains trouveront et celles que les Chinois trouveront seront en grande partie différentes. Cela signifie que corriger les vulnérabilités que nous trouvons ne rendra pas la découverte de nouvelles sensiblement plus difficile pour les criminels. Nous n’améliorons pas vraiment la sécurité des logiciels en général en divulguant et en corrigeant les vulnérabilités inconnues, parce que le pourcentage est faible comparé à l’ensemble des vulnérabilités.

Mais tandis que les vulnérabilités sont abondantes, elles ne sont pas uniformément réparties. Certaines sont plus difficiles à trouver que d’autres. Les outils qui automatisent la recherche et la correction de catégories entières de vulnérabilités,  et les pratiques de codage qui évitent les plus simples, améliorent considérablement la sécurité des logiciels. Et quand une personne découvre une vulnérabilité, il est probable qu’une autre personne la trouve bientôt, ou l’a trouvée récemment. Heartbleed, par exemple, est restée inconnue pendant deux ans, et puis deux chercheurs l’ont découverte indépendamment à deux jours d’intervalle. C’est pourquoi il est important pour le gouvernement de pécher par excès de divulgation et de correction.