En règle générale, on ne s’attend pas à entendre une entreprise de cybersécurité déclarer qu’il faut « ignorer les vulnérabilités ». Après tout, les vulnérabilités sont à l’origine de failles d’une telle ampleur qu’elles alimentent nos fils d’actualité pendant des mois en retours d’expérience, analyses et recommandations.
Et vous ne verrez certainement pas l’expression « ignorer les vulnérabilités » associée à l’idée d’« améliorer la sécurité ».
C’est désormais chose faite — même si, comme la plupart des conseils, celui-ci s’accompagne de réserves et de nuances.
Vous ne devriez certainement pas ignorer toutes les vulnérabilités, mais il s’avère qu’il existe une catégorie de vulnérabilités que vous pouvez sans risque ignorer pour le moment, ou du moins reléguer au second plan pour vous en occuper plus tard. J’ai découvert ce concept en lisant le rapport État de la gestion des vulnérabilités open source en 2018 de WhiteSource Software.
Outre des statistiques très intéressantes, le rapport avance l’idée que les vulnérabilités des logiciels open source peuvent être regroupées en deux catégories : inopérantes et exploitables.
La catégorisation de WhiteSource repose sur le principe que certaines vulnérabilités sont inopérantes, c’est-à-dire qu’elles ne sont pas exploitables parce qu’elles ne sont pas sollicitées par du code personnalisé. Selon cette logique, la capacité à les analyser et à les différencier permet aux équipes de sécurité et aux développeurs de se concentrer sur les vulnérabilités jugées opérantes, et ainsi de réduire le temps et les efforts nécessaires tout en améliorant la sécurité globale de l’application.

Prenons par exemple une application personnalisée qui s’appuie sur un composant open source contenant une fonction vulnérable. Selon la définition de White Source, la fonction vulnérable de cet exemple pourrait être déclarée « inactive », car elle n’est jamais appelée par l’application personnalisée. Les lecteurs avertis remarqueront que la fonction vulnérable pourrait être appelée par une fonction d’un composant open source (qu’il s’agisse d’un autre composant ou du même), ce qui la rendrait alors active. Lorsque j’ai interrogé WhiteSource sur cette possibilité, l’entreprise a précisé sa classification en indiquant que ce cas de figure était bien pris en compte. Si le code vulnérable est appelé soit par du code personnalisé, soit indirectement par l’intermédiaire d’un autre composant open source, il est qualifié d’« actif ». À l’inverse, s’il n’existe aucun chemin, direct ou indirect, permettant d’appeler la fonction vulnérable, celle-ci est qualifiée d’« inactive ».
Étant donné que les recherches de WhiteSource ont établi non seulement que 96,8 % des développeurs s’appuient sur des composants open source, mais aussi que 7,5 % de l’ensemble des projets présentent des vulnérabilités, pouvoir déterminer quelles vulnérabilités traiter en priorité serait assurément très utile. WhiteSource a également constaté que pas moins de 64 % des produits open source ne contenaient que des vulnérabilités inexploitables qui, selon l’entreprise, peuvent être ignorées sans risque.
Cela dit, même si je ne suis pas convaincu qu’il faille simplement ignorer avec désinvolture les vulnérabilités présentes dans un code sous prétexte qu’elles ne sont pas activement sollicitées, je vois l’intérêt d’utiliser une telle distinction pour hiérarchiser la gestion des vulnérabilités. En se concentrant sur le code vulnérable qui est activement sollicité, les développeurs et les professionnels de la sécurité peuvent immédiatement améliorer la sécurité globale d’une application. Cela permet de mieux tirer parti des développeurs expérimentés, qui, selon le rapport de White Source, consacrent en moyenne plus de temps que les développeurs débutants à corriger les vulnérabilités.
Il est nécessaire de mettre en place une méthode de hiérarchisation des priorités. WhiteSource a indiqué que près de 3 500 vulnérabilités avaient été signalées en 2017, soit une hausse de 60 % par rapport à 2016. Ces 3 500 vulnérabilités signalées n’affectent pas toutes chaque application ou organisation, mais il faut garder à l’esprit que ces chiffres sont cumulatifs. Autrement dit, ces 3 500 vulnérabilités sont de nouvelles vulnérabilités qui viennent s’ajouter au total existant.
Il va sans dire que le code, qu’il soit propriétaire ou open source, comporte de nombreuses vulnérabilités. La possibilité de hiérarchiser les mesures correctives selon que ces vulnérabilités sont « exploitables » ou « non exploitables » s’inscrit dans le cadre des nouvelles stratégies de sécurité, qui évaluent les risques en fonction de la menace existentielle, entre autres facteurs. La menace existentielle que représente une vulnérabilité non exploitable est quasiment nulle. Cela dit, ignorer les vulnérabilités non exploitables n’est peut-être pas la meilleure approche à long terme. Il est possible qu’elles deviennent un jour exploitables. Les modifications apportées au code propriétaire lors de l’ajout ou de l’amélioration de fonctionnalités, ainsi que l’évolution des composants open source au fil du temps, peuvent ouvrir un chemin d’exécution qui appelle une fonction vulnérable. C’est notamment pour cette raison qu’une analyse du code source ciblant spécifiquement les vulnérabilités doit, dans l’idéal, être effectuée en continu et, au minimum, lors de la compilation finale.
Mais pour respecter les délais et utiliser efficacement le temps des développeurs, reléguer les vulnérabilités « inefficaces » en fin de file afin de pouvoir corriger immédiatement les vulnérabilités « effectives » pourrait bien être l’un des meilleurs moyens dont disposent actuellement les développeurs pour renforcer la sécurité.
À propos de l’auteur

Lori MacVittie est ingénieure émérite et évangéliste en chef au sein du bureau du directeur technique de F5. Elle possède une expertise approfondie dans la fourniture d’applications, les stratégies d’automatisation et les infrastructures. Elle est réputée pour sa capacité à rendre la complexité intelligible, qu’elle définisse des garde-fous pour les agents d’IA, analyse des architectures multicloud fragiles ou explore les limites des systèmes évolutifs. Elle cumule plus de trente ans d’expérience dans le secteur, couvrant le développement d’applications, l’architecture informatique ainsi que l’exploitation des réseaux et des systèmes. Avant de rejoindre F5, elle a été rédactrice spécialisée dans les technologies et a reçu plusieurs distinctions. MacVittie est titulaire d’un master en informatique et est une autrice prolifique dont les publications couvrent la sécurité, le cloud et l’architecture d’entreprise. Elle est également une passionnée de jeux de société et de jeux vidéo, et assume pleinement ses avis bien tranchés sur le fromage.
Autres articles de Lori Mac VittieArticles de blog associés

F5 NGINXaaS pour Google Cloud : des applications résilientes et évolutives
Découvrez comment NGINXaaS s’intègre à Google Cloud pour renforcer les performances et la sécurité, et préparer vos applications critiques à un avenir propulsé par l’IA.
L’intégration de F5 Web Application Firewall (WAF) à AWS est disponible dès aujourd’hui
En faisant appel à un partenaire de déploiement AWS WAF tel que F5, vous pouvez renforcer la sécurité de vos applications web grâce à des règles personnalisées qui bloquent les schémas d’attaque courants, comme les injections SQL ou les attaques par scripts intersites (XSS).
Appliquer le principe de Peter Parker à l’inspection TLS
« Un grand pouvoir implique de grandes responsabilités. » Si l’on en trouve des échos chez Voltaire et Churchill, cette citation est surtout connue grâce aux bandes dessinées Spider-Man, où elle est attribuée à l’oncle Ben. Bien entendu, si cette phrase est si répandue dans la culture populaire, c’est notamment parce qu’elle peut s’appliquer à une multitude de situations et de sujets, y compris à l’inspection TLS.
Le NetOps a besoin de défenseurs, pas d’adversaires
Il est important de reconnaître que les équipes NetOps ne sont pas toujours celles qui font obstacle au déploiement de la dernière nouveauté, application ou service. Les freins à la rapidité sont souvent dus au fait que les organisations n’adoptent pas tous les principes du DevOps lorsqu’elles cherchent à transformer leurs opérations informatiques.
Mise à jour des services applicatifs : sécurité, rapidité et visiteurs suspects
Il est de nouveau temps de nous pencher sur les services applicatifs que les entreprises utilisent réellement pour rendre leurs applications plus rapides et plus sûres. On constate notamment une hausse du recours aux services de protection contre les bots, ainsi que la progression lente mais régulière de HTTP/2. Bien qu’il ne s’agisse pas d’une application…
Les templates prennent le contrôle du cloud
Les modèles s’imposent dans le cloud. Lisez le blog de F5 pour découvrir comment l’infrastructure en tant que code et les API déclaratives automatisent la mise à disposition des applications.