Explorer l’automatisation de l’outil de sécurité SDL

Effectué

Pour aider nos développeurs à mettre en œuvre les exigences de sécurité pendant le développement du code et après sa publication, Microsoft leur propose une suite d’outils de développement sécurisés qui permettent de vérifier automatiquement le code source et de détecter les failles de sécurité. Microsoft définit et publie une liste des outils approuvés pour nos développeurs, comme les compilateurs et les environnements de développement, ainsi que leurs contrôles de sécurité intégrés. Nos développeurs utilisent les dernières versions des outils approuvés pour profiter des nouvelles fonctionnalités de sécurité.

En plus de fournir des outils de développement sécurisés, Microsoft met en place et applique les exigences d’analyse de code SDL à l’aide d’outils de sécurité automatisés. Beaucoup de ces outils sont intégrés au pipeline de validation et analysent automatiquement le code pour détecter les failles de sécurité lors de son archivage et lors de la compilation et du test des nouvelles versions. Les problèmes découverts par nos outils de sécurité automatisés doivent être corrigés avant que les nouvelles versions puissent réussir l’examen de sécurité et être approuvées pour publication.

Nos outils de sécurité automatisés se répartissent en plusieurs grandes catégories pour tester le code à différents stades de développement, depuis la validation du code jusqu’à sa publication pour une utilisation dans des environnements de production. Le tableau ci-dessous résume les types d’outils que nous utilisons chez Microsoft pour l’analyse de code SDL.

Outil de sécurité Description
Analyse du code statique Analyse le code source pour détecter d’éventuelles failles de sécurité, y compris la présence d’informations d’identification dans le code.
Analyse binaire Évalue les vulnérabilités au niveau du code binaire pour confirmer que le code est prêt pour la production.
Analyse de chiffrement Valide les pratiques recommandées en matière de chiffrement dans le code source et l’exécution du code.
Validation de la configuration Analyse la configuration des systèmes de production par rapport aux normes de sécurité et aux pratiques recommandées.

Analyse du code statique et analyse binaire

L’analyse du code source précédant la compilation fournit une méthode hautement évolutive de révision du code de sécurité et permet de garantir le respect des politiques de codage sécurisées. Nos outils d’analyse de code statique, comme Roslyn, analysent le code source pour rechercher les vulnérabilités et les failles de sécurité courantes, telles que les fonctions non sécurisées. Nous utilisons également CredScan pour détecter les informations d’identification et les autres secrets intégrés dans le code source. Les failles découvertes par ces outils sont signalées comme des bogues que nos développeurs doivent corriger.

La plupart de nos outils d’analyse de code statique sont intégrés dans le pipeline de validation pour identifier les vulnérabilités à chaque fois que le logiciel est construit et empêcher l’archivage de code non sécurisé. Nous intégrons également des outils d’analyse de code statique dans l’environnement du développeur pour détecter certaines failles, comme la présence de fonctions non sécurisées, et remplacer le code non sécurisé par des alternatives plus sûres pendant que le développeur code.

En plus de l’analyse statique du code source, nous utilisons des outils automatisés comme BinSkim pour analyser le code compilé afin de rechercher des failles de sécurité au niveau binaire, telles que les paramètres du compilateur/éditeur de liens et d’autres caractéristiques binaires relative à la sécurité. Nos outils d’analyse binaire sont exécutés sur chaque version afin de détecter les failles de sécurité binaires et les signaler pour correction avant que cette version ne soit publiée.

Analyse de chiffrement

Microsoft veille à ce que toutes les données, y compris les informations sensibles relatives à la sécurité et les données de gestion et de contrôle, soient protégées contre la divulgation ou l’altération involontaires, lorsque celles-ci sont transmises ou stockées, à l’aide d’un chiffrement puissant. Le SDL limite les développeurs aux modules de chiffrement approuvés qui implémentent le chiffrement de manière fiable et sécurisée. Pour appliquer cette stratégie, nos outils analysent et valident les implémentations de chiffrement dans le code source et pendant l’exécution du code. L’utilisation non sécurisée du chiffrement est signalée pour correction et validée lors de la révision de la sécurité.

Validation de la configuration

Chez Microsoft, nos équipes en charge de l’exploitation sont intégrées aux équipes de développement à l’aide du modèle DevOps. Dans le cadre de DevOps, nous continuons de valider le fonctionnement sécurisé de notre code après la publication d’une version dans les environnements de production. Les équipes en charge de l’exploitation utilisent des listes de contrôle de déploiement sécurisé, une analyse de configuration de base, une analyse de vulnérabilité et des systèmes de détection d’intrusion basés sur l’hôte pour valider la configuration du logiciel et l’utilisation de celui ci conformément aux pratiques recommandées en matière de sécurité. Les défauts de configuration détectés par les équipes en charge de l’exploitation sont signalés pour correction, tandis que tous les bogues découverts sont affectés à l’équipe de développement appropriée pour être corrigés au niveau du code. En intégrant la sécurité opérationnelle dans nos exigences SDL, nous contribuons à assurer la sécurité continue de nos produits et services même après leur publication.

En savoir plus