vendredi 2 janvier 2015

Une toile délicate et fragile : vulnérabilités et correctifs pour nos browsers en 2014

Les technologies qui tissent notre Internet ont toutes présenté divers accrocs en 2014 et, en ce qui concerne la première d'entre elles - entendez le navigateur web, un bref résumé des correctifs publiés sur l'année 2014 nous donne une idée de la fragilité de cette délicate toile dont nous ne pouvons plus nous passer.

Les informations qui suivent ont été consolidées sur la base des données publiques communiquées par les éditeurs de janvier 2014 à janvier 2015 (à date de publication de cet article) :

Cet article se veut donc sans parti pris, comme un cliché sans légende pour une réflexion laissée ouverte à votre attention. Une seule question m'obsède, peut-on mesurer le niveau de sécurité d'une application au nombre de vulnérabilités qui sont corrigées à son propos ou à la fréquence de publication desdits correctifs ? Et si tel n'est pas le cas, pourquoi nous obstiner à employer ce critère ?

Je vous encourage donc à continuer votre réflexion en allant consulter le sujet "software security, disclosure, and bug bounties" posté sur la liste de diffusion DailyDave (http://seclists.org/dailydave/2014/q4/50) pour retrouver certains des sous-jacents non exprimés ici (je ne suis - malheureusement - pas assez calée pour en tirer la substantifique moelle sans paraphraser les auteurs concernés).

PS : un grand merci à ces deux personnes qui m'ont fait l'honneur de relire la première version de cet article : @follc pour ses conseils avisés sur le fond de cet article et @helkhoury pour l'orientation de mon prochain article.

Jess - @JessicaGallante

 

En résumé


Les éditeurs de nos quatre navigateurs ont tous, mois après mois, publié un ou plusieurs bulletin(s) de sécurité affectant leurs technologies :
  • Chrome : 18 publications
  • Firefox : 10 publications
  • Internet Explorer : 12 Publications
  • Safari : 9 publications



... et l'année 2014 a présenté quatre mois "bingo" : Février, Avril, Juin et Septembre : pour lesquels tous les navigateurs ont présenté un ou plusieurs bulletins de sécurité à appliquer.

Une étude de la moyenne entre deux publications de correctifs pour nos quatre navigateurs permet de constater que celle-ci oscille entre ~20 jours et ~42 jours (à comparer avec les délais de publication du patch tuesday mensuel Microsoft ou du critical patch update trimestriel Oracle) :
  • Chrome : 19 jours
  • Firefox : 33 jours
  • Internet Explorer : 25 jours
  • Safari : 41 jours

... et cette étude nous permet de constater que, tous navigateurs confondus et sur une base hebdomadaire, 33 semaines sur 52 ont été concernées par la publication de correctifs pour un ou plusieurs de ces quatre navigateurs Web :


En détail


Chrome


L'analyse des données publiées en 2014 sur  http://googlechromereleases.blogspot.fr permet de constater que Google a corrigé (au moins) 447 vulnérabilités dont 65 sont qualifiées avec un niveau de sévérité élevé et au moins 2 avec un niveau de sévérité critique :
  • 18.11.14 : 42 security fix (11 CVE High)
  • 07.10.14 : 159 security fix (6 CVE high et 1 CVE critical)
  • 24.09.14 : 1 security fix
  • 09.09.14 : 4 security fix (1 high)
  • 26.08.14 : 50 security fix (4 CVE high et 1 CVE critical)
  • 12.08.14 : 12 security fix (2 CVE high)
  • 16.07.14 : 26 security fix
  • 10.06.14 : 4 security fix (2 CVE high)
  • 20.05.14 : 23 security fix (3 CVE high)
  • 13.05.14 : 3 security fix (3 CVE high)
  • 24.04.14 : 9 security fix (2 CVE high)
  • 08.04.14 : 31 security fix (9 CVE high)
  • 14.03.14 : 4 security fix (4 CVE high) (Pwn2Own 2014)
  • 11.03.14 : 7 security fix (4 CVE high)
  • 03.03.14 : 19 security fix (3 CVE high)
  • 20.02.14 : 28 security fix (5 CVE high)
  • 27.01.14 : 14 security fix (2 CVE high)
  • 14.01.14 : 11 security fix (4 CVE high)

Notons que Google ne précise pas le niveau de sévérité des CVE ouverts pour son propre compte dans ces articles. Si l'on se réfère à la NVD, une quinzaine de CVE supplémentaires peut donc être qualifiée avec un niveau de sévérité élevé.

La comparaison des scores CVSS de la NVD avec les sévérités attribuées par Google permet également de constater qu'un "désaccord" de sévérité concerne une vingtaine de CVE (High pour Google et Medium pour la NVD ou inversement).

A titre indicatif, la durée la plus longue entre deux publications de correctifs pour Chrome est supérieure à 44 jours (entre le 18.11.14 et le 01.01.15) et la durée la plus courte a été de 3 jours (entre le 11.03.14 et le 14.03.14 avec Pwn2Own 2014 les 12/13 mars) - la moyenne entre deux publications s'établissant à 19,5 jours.

Finalement, une analyse rapide des "crédits" mentionnés par Google permet de noter que plus de 50% des CVE remontés l'ont été par les équipes Google (18 références), "cloudfuzzer" (15 références), Atte Kettunen de l'OUSPG (10 références), Collin Payne (8 références), Khalil Zhani, miaubiz et pour plus d'information, rendez-vous sur http://www.chromium.org/Home/chromium-security/hall-of-fame et sur https://www.google.com/about/appsecurity/hall-of-fame/).

 

Firefox


L'analyse des données publiées en 2014 sur https://www.mozilla.org/security/known-vulnerabilities/firefox/ permet de constater que Mozilla a corrigé (au moins) 88 vulnérabilités MFSA dont 32 sont qualifiées avec un niveau de sévérité élevé et au moins 32 avec un niveau de sévérité critique :
  • 02.12.14 : 9 MFSA (3 MFSA high et 4 MFSA critical)
  • 14.10.14 : 9 MFSA (4 MFSA high et 3 MFSA critical)
  • 24.09.14 : 1 MFSA (1 MFSA critical)
  • 02.09.14 : 7 MFSA (3 MFSA high et 3 MFSA critical)
  • 22.07.14 : 11 MFSA (5 MFSA high et 3 MFSA critical)
  • 10.06.14 : 7 MFSA (2 MFSA high et 5 MFSA critical)
  • 29.04.14 : 14 MFSA (7 MFSA high et 4 critical)
  • 25.03.14 : 1 MFSA (1 MFSA high)
  • 18.03.14 : 17 MFSA (3 MFSA high et 5 MFSA critical)
  • 04.02.14 : 13 MFSA (4 MFSA high et 4 MFSA critical)

Notons que Mozilla attribue une sévérité à un MFSA qui peut lui même englober plusieurs CVE. Si l'on consolide les statistiques correspondant à ces CVE, Mozilla a corrigé 108 CVE avec 88 MFSA au cours de l'année 2014 (44 CVE correspondant à des MFSA critiques et 33 CVE correspondant à des MFSA élevés).

La comparaison des scores CVSS de la NVD avec les sévérités attribuées par Mozilla permet également de constater qu'un "désaccord" de sévérité concerne environ 33 CVE (High pour Mozilla et Medium pour la NVD ou inversement).

A titre indicatif, la durée la plus longue entre deux publications de correctifs pour Firefox a été de 49 jours (pour les curieux, notez le cycle : 42/7+35/42/42/42/22+20/42+7 ^^) et la durée la plus courte a été de 7 jours (entre le 18.03.14 et le 25.03.14) - la moyenne entre deux publications s'établissant à 33,5 jours.

Finalement, une analyse rapide des "crédits" mentionnés par Mozilla permet de noter que la majorité des CVE remontés le sont par de très nombreux contributeurs parmi lesquels nous pouvons à nouveau mentionner la "Google Chrome Security Team" référencée 9 fois, Atte Kettunen de l'OUSPG (4 références), et 8 entrées pour TippingPoint (5 pour le Pwn2Own 2014 et 3 pour la "Zero Day Initiative").

 

Internet Explorer


L'analyse des données publiées en 2014 sur  https://technet.microsoft.com/en-us/library/security/ permet de constater que Microsoft a publié 11 bulletins pour IE6/7/8/9/10/11 (dont un hors cycle) et 1 bulletin pour IE6/7/8/9/11 - tous les bulletins étant qualifiés avec un niveau de sévérité critique (pour les clients) et l'ensemble des bulletins totalisant 248 corrections :
  • 09.12.14 : 14 fix (critical MS14-080)
  • 11.11.14 : 17 fix (critical MS14-065)
  • 14.10.14 : 11 fix (critical MS14-056)
  • 09.09.14 : 37 fix (critical MS14-052)
  • 12.08.14 : 26 fix (critical MS14-051)
  • 08.07.14 : 25 fix (critical MS14-037)
  • 10.06.14 : 60 fix (critical MS14-035)
  • 13.05.14 : 2 fix (critical MS14-029)
  • 01.05.14 : 1 fix (critical MS14-021) (OOB)
  • 08.04.14 : 6 fix (critical MS14-018) (IE6/7/8/9/11)
  • 11.03.14 : 18 fix (critical MS14-012)
  • 11.02.14 : 24 fix (critical MS14-010)

Notons que Microsoft attribue une sévérité à un bulletin qui peut lui-même englober plusieurs CVE. Si l'on consolide les statistiques correspondant à ces CVE, Microsoft a corrigé 248 CVE avec les 12 bulletins 2014 concernant Internet Explorer.

La comparaison des scores CVSS de la NVD avec les sévérités attribuées par Microsoft permet de constater qu'une vingtaine de CVE sont qualifiés comme Medium par la NVD, que seuls 4 CVE présentent une note CVSS à 10 ou que seuls 4 d'entre eux sont inconnues dans la NVD (tous ont été ajoutés postérieurement à la publication d'un bulletin MS avec la mention "modification purement informative").

A titre indicatif, la durée la plus longue entre deux publications de correctifs pour Internet Explorer a été de 35 jours (maximum 2014 entre 2 patch tuesday) et la durée la plus courte a été de 12 jours (entre le OOB du 01.05.14 et le patch tuesday du 13.05.14) - la moyenne entre deux publications s'établissant à 25 jours.

Finalement, une analyse rapide des "crédits" mentionnés par Microsoft permet de noter que 55% des CVE sont remontés par des chercheurs ou organisations créditées 12 fois ou plus : 70 références pour Palo Alto (dont 58 pour le seul magicien Dr Bo Qu), 55 pour Qihoo, 23 pour des chercheurs anonymes ou "hachés" travaillant avec le programme HP Zero Day initiative, 14 pour Trend Micro, 13 pour Abdul-Aziz Hariri et 12 pour NSFOCUS et plus de 82% sont remontés par des chercheurs ou organisations crédités 5 fois ou plus. A noter que le programme HP Zero Day Initiative est crédité pour 35% des CVE remontés.

Safari


L'analyse des données publiées en 2014 sur http://support.apple.com/en-us/HT1222 permet de constater que Apple a corrigé (au moins) 97 vulnérabilités référencées par des CVE :
  • 11.12.14 : 0 CVE ?
  • 03.12.14 : 13 CVE
  • 17.11.14 : 2 CVE
  • 17.09.14 : 9 CVE
  • 13.08.14 : 7 CVE
  • 30.06.14 : 12 CVE
  • 21.05.14 : 22 CVE
  • 01.04.14 : 27 CVE
  • 25.02.14 : 5 CVE

Apple ne se prononçant pas sur la sévérité des CVE référencés, une analyse des scores CVSS fournis par la NVD permet de constater que seulement 7 CVE sont qualifiés avec une sévérité élevée.

A titre indicatif, la durée la plus longue entre deux publications de correctifs pour Safari a été de 61 jours (entre le 17.09.14 et le 17.11.14) et la durée la plus courte a été de 8 jours (entre le 03.12.14 et le 11.12.14 bien que le APPLE-SA du 11.12.14 ne référence aucun CVE (?)) - la moyenne entre deux publications s'établissant à 41,5 jours.

Finalement, une analyse rapide des "crédits" mentionnés par Apple permet de noter que 39% des vulnérabilités ont été remontées par les équipes Apple, 33% par la "Google Chrome Security Team" et le "Google Project Zero" et 4% par le programme "Zero Day Initiative" de HP.

De la difficulté de cette étude


Lorsque @nathplanteur et moi avons discuté cet été à propos de cette idée d'article, j'ai tout d'abord pensé qu'il me serait aisé de consolider les données publiées par les éditeurs concernés car chacun d'entre eux réalise un travail fantastique en terme de communication et présentation au public et que de nombreux sites publics traitent de ce sujet.

Force est de constater que je me trompais et, en toute humilité, voici quelques écueils rencontrés sur lesquels j'ai été obligée de procéder à un choix pour la rédaction de cet article :
  • Certains éditeurs communiquent à propos du niveau de sévérité d'une vulnérabilité (Chrome, Internet Explorer), d'autres communiquent à propos du niveau de sévérité du bulletin (Firefox) et d'autres ne communiquent pas (Safari) : j'ai choisi de consolider mes données à partir du niveau de sévérité 1/ communiqué par l'éditeur pour la vulnérabilité, 2/ communiqué par l'éditeur par le bulletin et 3/ communiquée par la NVD.
  • Un fort taux de "désaccord" existe entre le niveau de sévérité communiqué par un éditeur pour une vulnérabilité et le niveau de sévérité qualifié par la NVD (sauf pour Microsoft) : j'ai choisi de conserver le niveau de sévérité communiqué par l'éditeur pour ma consolidation et tenté, pour chaque éditeur, de donner une idée de ce volume de désaccord.
  • Chacun des éditeurs dispose d'une stratégie qui lui est propre pour gérer les avertissements de sécurité concernant des vulnérabilités pour lesquelles aucun correctif n'est disponible (proposition de contournement technique ou fonctionnel par exemple) : j'ai choisi de ne pas tenir compte de ce critère dans la consolidation temporelle des données car il m'a semblé extrêmement compliqué de retracer cet historique à posteriori.

 

J'aime et je n'aime pas


Tous


J'aime l'idée que les "crédits" sont publiés par les éditeurs pour les chercheurs qui les aident à améliorer le niveau de sécurité de leurs logiciels et, je l'avoue, cela me laisse toujours admirative devant le coté magique dont certains d'entre eux sont pour moi auréolés. J'aime aussi particulièrement cette volonté de la part de Google, Microsoft et Mozilla (dans une moindre mesure pour celle d'Apple) de communiquer en détail sur les vulnérabilités identifiées et sur les corrections qui leurs sont apportées.

Je n'aime pas cette idée de "désaccord" entre l'éditeur et la NVD même si, pour moi, le niveau de sévérité/impact communiqué par l'éditeur demeure le critère principal et je n'aime pas l'absence de tracker propre à chaque éditeur qui permettrait d'aller les questionner sur la base d'une référence CVE comme nous pouvons le faire avec la NVD.

Chrome


J'aime la qualité et la concision des publications Google pour les correctifs de sécurité : les vulnérabilités sont identifiées par leur CVE et/ou par leur identifiant "issue" et un niveau de sévérité est communiqué.

Je n'aime pas le fait que les vulnérabilités identifiées par Google ne fassent pas l'objet d'une communication sur le niveau de sévérité.

Firefox


J'aime le visuel et l'esthétique du site dédié aux bulletins et la qualité et le détail des bulletins MFSA de Mozilla : les vulnérabilités sont identifiées par leur CVE et/ou par leur identifiant "issue" et un niveau de sévérité est communiqué.

Je n'aime pas la couleur orange pour la sévérité High des bulletins MFSA, le fait que de multiples technologies soient regroupées sous un même indice MFSA et l'absence de date sur la page principale dédiée à tous les bulletins.

Internet Explorer


J'aime la qualité et le niveau de détail sur lesquels Microsoft s'attache pour communiquer sur les vulnérabilités impactant leurs logiciels : chaque bulletin est comme un bijou à étudier et foisonne de tant d'idées et de suggestions à tester qu'il serait même intéressant d'y consacrer un article retraçant l'évolution du format même du bulletin au cours des années passées : les vulnérabilités sont identifiées par un CVE et un niveau de sévérité est communiqué.

Je n'aime pas que les bulletins soient modifiés à posteriori (y compris plusieurs mois plus tard) avec l'ajout de nouveaux CVE sans que ceci soit facilement identifiable sans avoir à ouvrir lesdits bulletins et à consulter les révisions correspondantes.

Safari


J'aime l'idée que Apple ait choisi d'appliquer une politique à contre courant sur la communication publique quant à la gestion des vulnérabilités impactant leurs produits ("For the protection of our customers, Apple does not disclose, discuss or confirm security issues until a full investigation has occurred and any necessary patches or releases are available."), je ne sais si cela est utile ou bénéfique mais cela à tout du moins le mérite d'être présenté "différemment".

Je n'aime pas l'absence de communication sur le niveau de sévérité ou d'impact des vulnérabilités corrigées, la difficulté à savoir immédiatement si un security update inclut ou non les correctifs pour Safari et/ou si un bulletin propre à Safari sera publié après un security update et le niveau de détail minimum minimorum des bulletins Apple (et encore moins les bulletins "vides").

Décembre : Cinq semaines

Cinq semaines pour décorer nos demeures et nos tables de parures festives et de mets délicats, pour préparer l'accueil de nos proches et partager avec eux les mémoires de nos anciens, les souvenirs de l'année écoulée et les rires joyeux des enfants qui s’émerveillent.

Première semaine : pensons aux préparatifs


Notre première semaine de décembre commence avec la froideur de l'hiver et les premiers préparatifs pour Noël. Le mois de Novembre a été brumeux pour Microsoft, qu'en sera-t-il de ce mois-ci. Commençons donc notre revue mensuelle par la sortie de MFSA pour Firefox & Thunderbird le 2 décembre 2014 et la publication d'une mise à jour OpenVPN le 2 décembre également pour une vulnérabilité datée de 2005. Le jour suivant - 3 décembre - voit la publication d'une mise à jour pour Safari par Apple et la sortie du DSA 3085-1 pour Wordpress qui correspond au bulletin du 20 novembre.

Les pré-notifications pour Microsoft et Adobe du 4 décembre nous informent sur une sortie d'au moins 3 bulletins critiques pour Microsoft et d'un bulletin critique pour Adobe Reader/Acrobat pour la semaine suivante alors sortent le même jour un bulletin VMSA pour vSphere (et la mise à jour "silencieuse" (?) du bulletin VMSA 2014-0008 de septembre 2014 qui fournit désormais les correctifs adéquats pour vCenter/ESXi en version 5.1) et l'information d'un 0day dans Internet Explorer (CVE-2014-8967) par ZDI (qui applique sa politique "120-day disclosure deadline").

Pour cloturer cette première semaine, notons le débat autour de l'ASLR sous Linux sur OSS-SEC (#Offset2lib et sur le fait que Grsecurity n'est pas affecté et que ce type de problème a été fixé par PaX il y a 13 ans), la publication de reliability fixes pour OpenBSD le 5 décembre et la médiatisation des premiers PoC pour MS14-068 Kerberos du Patch Tuesday de Novembre.

Seconde semaine : il est temps de s'y mettre


La second semaine de décembre débute avec l'angoisse du temps qui passe et un joli prélude au patch tuesday avec la publication entre le 8 et le 9 décembre de plusieurs bulletins pour les principaux résolveurs DNS (Bind 9.9, Bind 9.10, Unbound et PowerDNS) pour des vulnérabilités de type Déni de service identifiées par l'ANSSI.

Le 9 décembre voit se déployer l'ombre d'une longue semaine avec un patch tuesday Microsoft incluant 7 mises à jour dont 3 critiques et 4 importantes dont le critique MS14-080 qui "resolves 14 privately reported vulns in Internet Explorer 6/7/8/9/10/11" - Notons que ce patch tuesday inclut également le bulletin important MS14-075 Exchange qui nous manquait lors du patch tuesday de novembre - et un patch tuesday Adobe qui corrige 6 CVE en priorité 1 pour Adobe Flash Player et 20 CVE en priorité 1 pour Adobe Reader/Acrobat.

Ne passons pas à côté le 9 décembre de la mise à jour (habituelle) pour Chrome sur Flash, d'un bulletin VMSA supplémentaire de VMWARE pour vCAC, d'un RHSA important pour RPM (CVE-2013-6435, ch-apt-cun son tour), d'une mise à jour de LibreSSL en version 2.1.2 suite (semble-t-il) à la communication de vulnérabilités par les Google #CCProjectZeroMembers, d'une nouvelle publication de reliability fixes par OpenBSD (dont unbound pour le déni de service ANSSI) et d'une jolie vidéo de démonstration d'exécution de code en dépit d'un chiffrement BitLocker [1] pour tous ceux d'entre vous qui ont laissé "tomber" le defunt (?) #Truecrypt cette année.

Vous vouliez sortir tôt pour faire vos achats de noël ? Attendez un peu. Le 10 décembre continue avec des bulletins pour FreeBSD (dont BIND pour le déni de service ANSSI), à nouveau un VMSA (mais pour AirWatch), un bulletin Asterisk pour un déni de service, une dernière mise à jour pour Joomla en version 2.5.28 avec une fin de vie de la branche 2.5 au 31 décembre 2014 et une mise à jour pour ceux d'entre nous qui TYPO3.

Allé, là on va pouvoir y aller. Le 11 décembre voit une mise à jour fixant 3 CVE dans Docker, une jolie (oO) injection SQL en aveugle sur GLPI et à nouveau un APPLE-SA pour Safari alors que le 12 décembre voit sortir les RHSA pour BIND sur le déni de service ANSSI.

Troisième semaine : Plus qu'une semaine ...


Pour notre dernière semaine avant Noël, il serait dommage de passer à côté de bulletins multiples pour Oracle Solaris le 16 décembre accompagnés de bulletins pour l'orchestrateur PuppetLabs le même jour, d'un bulletin FreeBSD pour Unbound (déni de service ANSSI) le 17 décembre, de deux dénis de service fixés dans le parser ELF de file(1) annoncé sur OSS-SEC et d'une mise à jour pour l'orchestrateur Chef le même jour également.

Faisons une pause temporelle sur le 18 décembre avec une vulnérabilité GIT/Mercurial (CVE-2014-9390, <no-dsa> Minor issue pour Debian, corrigée par Apple dans Xcode le même jour), une mise à jour de PHP pour ses versions 5.4/5.5/5.6 mais surtout un avertissement de sécurité pour NTP avec de multiples CVE (corrigés par exemple par Debian et RedHat le 20 décembre alors que Openntpd est annoncé comme non vulnérable).


Quatrième semaine : Dans deux jours c'est noël


Si vous comptiez sur les deux derniers jours avant Noël pour faire vos achats de dernière minute et bien c'est (au quai de la) rapée. Tombent à analyser le 22 décembre un avertissement du CERT "oCERT" sur UnZIP, les bulletins Ubuntu/Apple/Cisco pour NTP et un DSA pour cpio (CVE-2014-9112 qui devrait vous rappeler quelque chose) alors que l23 décembre continue avec les bulletins FreeBSD/F5 pour NTP et un bulletin "tellement rafraichissant" pour BlueCoat (SA86 POODLE / CVE-2014-8730) qui indique "At this time, no products are known to be vulnerable"

Et Internet étant ce qu'il est, le jour du Noël signe une trêve bienvenue pour l'analyse et un travail de fourmi pour application des correctifs pour les administrateurs qui sans être au soleil ne sont pas pour autant concerné par le gel.

Cinquième semaine : et maintenant le nouvel an ...


Signant la fin de celle-ci ou le début d'une nouvelle année riche de problèmes^Wsolutions en tout genre, les derniers jours de décembre se voient accompagnés de requêtes de CVE bien particulières sur OSS-SEC : Double Free dans PHP le 29 décembre 2014 avec le CVE-2014-9425 présentant la particularité "been here since 2002", demande de CVE dans GnuPG2/GPG2 le 29 décembre, demande de CVE dans emacs (oO) le 31 décembre 2014 ...


Et maintenant ?


Et, comme il est d'usage, je vous souhaite à tous une excellente année 2015 :)

Jess - @JessicaGallante

PS : Merci @helpacsoout, @philoupas, @AdBaz1.

PPS : Merci à toi Nath pour m'avoir laissé panser doucement un nouveau noël.


[1] : http://cryptoservices.github.io/fde/2014/12/08/code-execution-in-spite-of-bitlocker.html