Ceci est la traduction d'un billet de mon collègue Johnathan Nightingale, qui travaille sur la sécurité de Firefox. Les remarques sur la traduction sont bienvenues dans les commentaires, rouverts (temporairement ?) pour l'occasion.

Les gens veulent savoir qu'ils sont en sécurité quand ils naviguent sur le Web. La sécurité varie grandement d'un navigateur à l'autre, et on voit du coup un nombre grandissant de gens tentant de comparer l'historique de sécurité des différents navigateurs. C'est une bonne nouvelle : non seulement ça informe les utilisateurs, mais en plus ça permet aux éditeurs de navigateurs de se situer par rapport aux autres et de s'améliorer.

En terme de sécurité, il est essentiel de s'assurer qu'on mesure ce qui est important. Mozilla en a déjà parlé, mais ça mérite d'être répété : si vous ne mesurez pas ce qui compte, vous encouragez en fait les fournisseurs de navigateurs à truquer le système plutôt qu'à améliorer leurs logiciels.

Quelles sont les choses à mesurer pour la sécurité ?

Il n'existe pas une mesure unique qui puisse donner une vue complète de la sécurité. Tout modèle de mesure de la sécurité se doit de prendre en compte plusieurs facteurs. Quoi qu'il en soit, il y a trois principaux éléments qui sous-tendent un modèle bien construit. C'est ce que j'appelle SEC en anglais (Severity / Exposure Windows / Complete Disclosure) ou SDC en français (Sévérité / Durée d'exposition / Complète divulgation). Explications :

Sévérité : un bon modèle de mesure mettra en avant les failles sévères, exploitable de façon automatisée, plus que les bogues gênants ou qui demande une collaboration active de l'utilisateur avec l'attaquant. Mesurer la sévérité encourage les éditeurs à s'attaquer avant tout aux bogues les plus dangereux, plutôt que de faire gonfler leurs chiffres avec des corrections de bogues mineurs alors que les grosses failles restent béantes.

Durée d'exposition : le comptage des bogues n'apporte pas d'information vraiment utile, alors qu'il est très important de savoir pendant combien de temps chaque bogue met les utilisateurs en danger. Mesurer la durée d'exposition (ou fenêtre d'exposition) encourage les fournisseurs à boucher rapidement les trous, et à distribuer rapidement les rustines aux utilisateurs.

Complète divulgation : Les autres paramètres que l'on compile n'ont quasiment pas de sens s'il n'est pas possible de voir tous les bogues résolus. Certains fournisseurs ne communiquent que sur les failles trouvées par des sources externes, cachant celles découvertes par les équipes internes. Cela leur permet d'afficher un chiffre faible donc flatteur. Limiter la prise en compte des bogues à ceux qui sont découverts par les gens de l'extérieur est mauvais à double titre. D'une part ça récompense les fournisseurs qui sont purement réactifs et d'autre part (ce qui est encore pire), ça n'encourage pas les fournisseurs qui mettent en place en interne des équipes de sécurité compétentes. Ce sont ces équipes qui trouvent la majorité des failles de sécurité. Il est important que la mesure de la sécurité prenne en compte ces efforts et les encourage.

Quelle est la solution ?

Si une méthode simple permettant d'inclure toute cette information existait, nous serions déjà en train de l'utiliser. L'année dernière quand nous avons commencé à écrire sur ce sujet, notre objectif était de développer des idées autour de tout cela et de changer le niveau de discussion.

Une chose est sûre, cela ne va pas être facile... Le première étape est de savoir clairement ce qu'on attend de toute méthode d'évaluation de la sécurité. Si ça ne repose pas sur ces trois piliers essentiels que sont la Sévérité, la Durée d'exposition et la Complète divulgation, il faut se demander pourquoi. Et surtout ne pas hésiter à poser la question à ceux qui publient ces rapports...

Johnathan Nightingale, Human shield.