Analyse de composition logicielle: un guide de l’analyse de vulnérabilité

Chaque application logicielle peut contenir des vulnérabilités. En effet, selon un rapport de 2021, pas moins de 100 % des applications testées par des chercheurs en sécurité comportaient des vulnérabilités, et 85 % d’entre elles étaient considérées comme critiques.

Heureusement, grâce aux outils d’analyse de composition logicielle (SCA, ou Software Composition Analysis), il est possible de détecter la plupart des vulnérabilités avant de déployer le logiciel en production. Les scanners SCA peuvent identifier et analyser les vulnérabilités qui se cachent à la fois dans le code source et dans les fichiers binaires, même dans les cas où les développeurs auraient peu de chances de détecter les vulnérabilités par le biais d’examens manuels du code.

C’est pourquoi le scan de vulnérabilités à l’aide d’outils SCA devrait être une étape essentielle de tout pipeline de livraison d’applications. Poursuivez votre lecture pour découvrir le fonctionnement du SCA et comment tirer parti des outils SCA pour renforcer la sécurité des applications que vous créez.

Comment fonctionne l’analyse de vulnérabilité SCA?

Les scans SCA fonctionnent de manière simple : en analysant le code source et/ou les fichiers binaires, les outils SCA recherchent la présence de composants d’application connus pour leur manque de sécurité.

Dans la plupart des cas, les outils SCA comparent les composants d’application aux bases de données de vulnérabilités, qui répertorient les vulnérabilités de sécurité que les chercheurs ont signalées dans les bibliothèques open source, les modules, les images de conteneurs et d’autres ressources. En identifiant les versions spécifiques des composants tiers dans une application, puis en déterminant si ces versions sont associées à des vulnérabilités connues, les outils SCA peuvent signaler les risques de sécurité. Les outils SCA avancés peuvent également déterminer si un risque peut être exploité en fonction de la configuration spécifique ou de l’environnement d’une application. Grâce à ces informations, les développeurs peuvent remédier aux risques, par exemple en mettant à jour une bibliothèque open source non sécurisée vers une version plus récente qui l’est également.

Il est important de comprendre que, bien que les outils SCA puissent détecter de nombreux types de vulnérabilités, l’une de leurs principales limites est qu’ils ne peuvent généralement identifier que les risques associés aux composants logiciels open source. Les outils SCA ne peuvent pas détecter les problèmes de sécurité causés par le code original que les développeurs écrivent eux-mêmes, à moins que ces problèmes ne soient enregistrés dans des bases de données de vulnérabilités open source. Les vulnérabilités qui existent dans le code open source, mais qui n’ont pas encore été identifiées par les chercheurs en sécurité ou la communauté open source, ne peuvent pas non plus être détectées à l’aide des outils SCA.

Quand effectuer des analyses de vulnérabilité ?

Bien que les analyses de vulnérabilité SCA puissent être effectuées à n’importe quel stade du cycle de développement logiciel, elles sont plus utiles lorsqu’elles ont lieu avant le déploiement. En d’autres termes, les développeurs doivent analyser les applications avant de les mettre en production, afin de détecter les vulnérabilités avant que les risques n’affectent les utilisateurs finaux.

Notez également que les analyses SCA peuvent être effectuées à plusieurs stades du cycle de livraison logiciel. Dans de nombreux cas, il est judicieux d’analyser le code source dès le début du cycle de développement, afin de détecter les vulnérabilités qui ont pu être introduites par l’importation de code tiers dans la base de code d’une application.

Ensuite, des analyses SCA peuvent être effectuées contre des composants d’application binaires tels que des images de conteneurs dans des environnements de préproduction (environnements de staging). En analysant les fichiers binaires, les développeurs peuvent détecter d’autres types de vulnérabilités, telles que l’utilisation d’images de base non sécurisées dans les applications conteneurisées, qui ne seraient pas nécessairement évidentes lors de l’analyse du code source de l’application.

Exemples d’analyse de la vulnérabilité SCA

Pour illustrer la manière dont le SCA peut aider à détecter les vulnérabilités avant le déploiement d’une application, examinez les cas d’utilisation du SCA suivants.

Détecter les vulnérabilités dans le code source

Imaginez que vous développez une application Python et que vous incluez le module urllib.parse dans le code source. Ce module est sujet à une vulnérabilité connue qui peut permettre des attaques par injection.

Un outil SCA peut analyser votre code source Python, détecter l’utilisation d’un module non sécurisé et vous avertir du risque afin que vous puissiez prendre des mesures correctives (qui, dans le cas de la vulnérabilité urllib.parse, impliquerait la mise à niveau vers une version plus récente).

Détection de la vulnérabilité des images de conteneurs

Lorsque vous créez des conteneurs, il est courant d’utiliser ce que l’on appelle des images de base qui contiennent diverses bibliothèques et outils que vous pouvez utiliser comme base de votre environnement d’application conteneurisé.

Si vous choisissez une image de base (telle que l’image de base Ubuntu 18.04 sur Docker Hub, qui contient actuellement 21 vulnérabilités connues) qui comporte des vulnérabilités connues, les outils SCA peuvent signaler le risque. Vous pouvez alors prendre des mesures pour atténuer le risque, par exemple en incluant du code dans votre conteneur pour mettre à jour les composants vulnérables de l’image de base vers des versions plus récentes.

Détection des vulnérabilités Helm chart

Les charts de Helm, qui sont utilisés pour installer des applications dans Kubernetes, peuvent également contenir diverses vulnérabilités. Les outils SCA peuvent analyser les charts de Helm avant qu’ils ne soient déployés dans un cluster Kubernetes, ce qui permet aux développeurs de réagir aux risques de sécurité en leur sein.

Conclusion

L’analyse de la composition des sources est le meilleur moyen de détecter les vulnérabilités qui proviennent des logiciels open source, tant dans le code source des applications que dans les fichiers binaires. Si vous importez des ressources tierces dans les logiciels que vous créez, vous devez effectuer des analyses de vulnérabilité SCA pour détecter les risques de sécurité avant qu’ils ne puissent être exploités.

En tant qu’outil d’analyse SCA pouvant s’intégrer de manière transparente dans votre pipeline de livraison de logiciels DevOps, JFrog Xray facilite l’exécution de scanners de vulnérabilité en continu lorsque le code passe du développement à la production. Avec Xray, vous avez l’assurance de détecter les vulnérabilités avant que les pirates ne les exploitent.