Mises à jour de framework

Effectué

De nombreux développeurs choisissent principalement les frameworks et bibliothèques qu’ils utilisent pour générer leurs logiciels selon des préférences de fonctionnalités ou personnelles. Le choix du framework est toutefois important, non seulement d’un point de vue conceptuel et de fonctionnalités, mais également du point de vue de la sécurité. Choisir une infrastructure avec des fonctionnalités de sécurité modernes et la maintenir à jour constituent une des meilleures approches pour garantir la sécurité de vos applications.

Choisir votre infrastructure avec soin

Lorsque vous choisissez une infrastructure, le facteur le plus important en matière de sécurité est la façon selon laquelle elle est prise en charge. Les meilleures infrastructures présentent des dispositions de sécurité et sont prises en charge par de vastes communautés qui améliorent et testent l’infrastructure. Aucun logiciel n’est exempt de bogues ou complètement sécurisé, mais lorsqu’une vulnérabilité est identifiée, nous voulons être sûrs qu’il sera fermé ou qu’une solution de contournement sera rapidement possible.

« Prise en charge » est souvent synonyme de « moderne ». Les anciens frameworks tendent à être remplacés ou à perdre en popularité. Même si vous connaissez bien de nombreuses applications écrites avec un ancien framework ou que vous avez une expérience significative sur celui-ci, il peut être judicieux de choisir une bibliothèque moderne comportant les fonctionnalités dont vous avez besoin. Les frameworks récents tendent à s’appuyer sur les leçons tirées des versions antérieures et permettent donc de réduire les risques de menaces pour les nouvelles applications. Vous devrez vous occuper d’une application en plus si une vulnérabilité est détectée dans l’ancien framework dans lequel vos applications héritées sont écrites.

Pour plus d’informations sur la conception sécurisée et la réduction de la surface des menaces, consultez Microsoft Azure Well-Architected Framework - Sécurité.

Tenir votre framework à jour

Les frameworks de développement de logiciels (tels que Java Spring et .NET Core) proposent des mises à jour et de nouvelles versions régulièrement. Ces mises à jour incluent de nouvelles fonctionnalités, suppriment d’anciennes fonctionnalités, et généralement des correctifs de sécurité ou des améliorations. Quand nous laissons nos frameworks devenir obsolètes, ceci provoque une « dette technique ». Plus ils seront obsolètes, plus il nous sera difficile et risqué de mettre à jour notre code vers la dernière version. En outre, tout comme le choix d’infrastructure initial, le fait de continuer à utiliser les anciennes versions de l’infrastructure vous expose à plus de menaces de sécurité qui ont été résolues dans les versions plus récentes de l’infrastructure.

Par exemple, depuis 2016-2017, plus de 30 vulnérabilités ont été détectées dans le framework Apache Struts. L’équipe de développement a rapidement traité ces vulnérabilités, mais certaines entreprises n’ont pas appliqué les correctifs et en ont payé le prix sous la forme d’une violation de données. Veillez à maintenir vos infrastructures et bibliothèques à jour.

Comment mettre à jour mon infrastructure ?

Certaines infrastructures, comme Java ou .NET, doivent être installées et tendent à être régulièrement mises à jour. Une bonne pratique consiste à se tenir informé des nouvelles versions et d’envisager la création d’une branche de votre code pour les essayer lorsqu’elles sont publiées. Par exemple, .NET Core dispose d’une page de notes de publication que vous pouvez consulter pour retrouver les dernières versions disponibles.

Vous pouvez mettre à jour des bibliothèques plus spécialisées, comme les frameworks JavaScript ou les composants .NET, via un gestionnaire de package. NPM et Webpack sont des choix de projets web populaires et sont pris en charge par la plupart des IDE et outils de création. Dans .NET, nous utilisons NuGet pour gérer nos dépendances de composants. Comme la mise à jour du framework de base, la création d’une branche de votre code, la mise à jour des composants et le test sont une bonne approche pour valider une nouvelle version d’une dépendance.

Notes

L’outil en ligne de commande dotnet comprend une option add package et remove package pour ajouter ou supprimer des packages NuGet, mais n’a pas de commande update package correspondante. Il s’avère toutefois que vous pouvez exécuter dotnet add package <package-name> dans votre projet et le package est alors automatiquement mis à niveau vers la dernière version. Il s’agit d’un méthode simple de mise à jour de dépendances sans ouvrir l’IDE.

Tirer parti de la sécurité intégrée

Vérifiez toujours les fonctionnalités de sécurité fournies par vos infrastructures. N’utilisez jamais votre propre sécurité s’il existe une technique ou fonctionnalité intégrée standard. Appuyez-vous également sur des algorithmes et workflows éprouvés, car ils ont souvent été examinés par un grand nombre d’experts, vérifiés et renforcés pour que vous soyez assuré de leur fiabilité et sécurité.

Le framework .NET Core inclut un nombre incalculable de fonctionnalités de sécurité. En voici parmi les principales décrites dans la documentation :

Chacune de ces fonctionnalités a été écrite par des experts en la matière, puis soumise à une batterie de tests pour s’assurer qu’elle fonctionne comme prévu, et uniquement comme prévu. D’autres frameworks offrent des fonctionnalités similaires ; contactez le fournisseur du framework pour savoir ce qu’il propose dans chaque catégorie.

Avertissement

Écrire vos propres commandes de sécurité au lieu d’utiliser celles fournies par votre framework n’est pas seulement une perte de temps, c’est tout simplement moins sécurisé.

Microsoft Defender pour le cloud

Quand vous utilisez Azure pour héberger vos applications web, Defender pour le cloud vous avertit si vos infrastructures sont obsolètes dans le cadre de l’onglet des recommandations. N’oubliez pas de le consulter de temps en temps pour voir s’il y a des avertissements liés à vos applications.

Screenshot of Microsoft Defender for Cloud recommending a framework upgrade.

Résumé

Si possible, choisissez une infrastructure moderne pour créer vos applications, utilisez toujours les fonctionnalités de sécurité intégrées et veillez à la maintenir à jour. Avec ces règles simples, vous êtes sûr que votre application s’appuie sur une base solide.