Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
SEC11-BP04 Mener des examens de code
Mettez en œuvre des examens de code pour vérifier la qualité et la sécurité d’un logiciel en cours de développement. Les examens de code impliquent que des membres de l’équipe autres que l’auteur du code d’origine examinent le code pour détecter les problèmes et les vulnérabilités potentiels et vérifier le respect des normes et des bonnes pratiques de codage. Ce processus permet de détecter les erreurs, les incohérences et les failles de sécurité qui auraient pu être omises par le développeur d’origine. Utilisez des outils automatisés pour faciliter les examens de code.
Résultat escompté : vous incluez des examens de code pendant le développement afin d’améliorer la qualité du logiciel en cours d’écriture. Vous perfectionnez les membres moins expérimentés de l’équipe grâce aux enseignements identifiés lors de l’examen de code. Vous identifiez les opportunités d’automatisation et soutenez le processus d’examen de code à l’aide d’outils et de tests automatisés.
Anti-modèles courants :
-
Vous n’effectuez pas d’examen de code avant le déploiement.
-
La même personne écrit et examine le code.
-
Vous n’utilisez pas d’automatisation ni d’outils pour assister ou orchestrer les examens de code.
-
Vous ne formez pas les concepteurs à la sécurité des applications avant qu’ils procèdent à l’examen du code.
Avantages liés au respect de cette bonne pratique :
-
Amélioration de la qualité du code.
-
Amélioration de la cohérence de développement du code grâce à la réutilisation d’approches communes.
-
Réduction du nombre de problèmes découverts lors des tests de pénétration et des étapes ultérieures.
-
Amélioration du transfert de connaissances au sein de l’équipe.
Niveau d’exposition au risque si cette bonne pratique n’est pas respectée : moyen
Directives d’implémentation
Les examens de code permettent de vérifier la qualité et la sécurité du logiciel au cours de son développement. Les examens manuels impliquent qu’un membres de l’équipe autre que l’auteur du code d’origine examine le code pour détecter les problèmes et les vulnérabilités potentiels et vérifie le respect des normes et des bonnes pratiques de codage. Ce processus permet de détecter les erreurs, les incohérences et les failles de sécurité qui auraient pu être omises par le développeur d’origine.
Envisagez d’utiliser la sécurité Amazon CodeGuru pour vous aider à effectuer des examens de code automatisés. La sécurité CodeGuru utilise le machine learning et un raisonnement automatisé pour analyser votre code et identifier les vulnérabilités de sécurité et les problèmes de codage potentiels. Intégrez des examens de code automatisés à vos référentiels de code existants et à vos pipelines d’intégration continue/de déploiement continu (CI/CD).
Étapes d’implémentation
-
Établissez un processus d’examen de code :
-
Définissez à quel moment les examens de code doivent avoir lieu, par exemple avant de fusionner le code dans la branche principale ou avant de le déployer en production.
-
Déterminez qui doit participer au processus d’examen de code, par exemple les membres de l’équipe, les développeurs senior et les experts en sécurité.
-
Décidez de la méthodologie d’examen de code, y compris du processus et des outils à utiliser.
-
-
Configurez les outils d’examen de code :
-
Évaluez et sélectionnez les outils d’examen de code qui répondent aux besoins de votre équipe, tels que les demandes d’extraction GitHub ou la sécurité CodeGuru.
-
Intégrez les outils choisis à vos référentiels de code et à vos pipelines CI/CD existants.
-
Configurez ces outils pour appliquer les exigences d’examen de code, telles que le nombre minimal de réviseurs et les règles d’approbation.
-
-
Définissez une liste de contrôle et des directives d’examen de code :
-
Créez une liste de contrôle ou des directives d’examen de code explicitant ce qui doit être examiné. Tenez compte de facteurs tels que la qualité du code, les vulnérabilités de sécurité, le respect des normes de codage et les performances.
-
Partagez la liste de contrôle ou les directives avec l’équipe de développement et vérifiez que tout le monde comprend les attentes.
-
-
Formez les développeurs aux bonnes pratiques d’examen de code :
-
Offrez à votre équipe une formation sur la manière de mener des examens de code efficaces.
-
Sensibilisez votre équipe aux principes de sécurité des applications et aux vulnérabilités courantes à rechercher lors des examens.
-
Encouragez le partage des connaissances et les sessions de programmation en binômes pour perfectionner les membres moins expérimentés de l’équipe.
-
-
Mettez en œuvre le processus d’examen de code :
-
Intégrez l’étape d’examen de code dans votre flux de travail de développement, par exemple en créant une demande d’extraction et en affectant des réviseurs.
-
Exigez que les modifications de code fassent l’objet d’un examen de code avant la fusion ou le déploiement.
-
Encouragez une communication ouverte et des commentaires constructifs pendant le processus d’examen.
-
-
Surveillez et améliorez :
-
Vérifiez régulièrement l’efficacité de votre processus d’examen de code et recueillez les commentaires de l’équipe.
-
Identifiez les opportunités d’automatisation ou d’amélioration des outils afin de rationaliser le processus d’examen de code.
-
Mettez à jour et affinez en permanence la liste de contrôle ou les directives d’examen de code en fonction des enseignements tirés et des bonnes pratiques du secteur.
-
-
Favorisez une culture d’examen de code :
-
Soulignez l’importance des examens de code pour maintenir la qualité et la sécurité du code.
-
Célébrez les réussites et les enseignements tirés du processus d’examen de code.
-
Favorisez un environnement de collaboration et de soutien dans lequel les développeurs se sentent à l’aise pour effectuer et recevoir des commentaires.
-
Ressources
Bonnes pratiques associées :
Documents connexes :
Exemples connexes :
Vidéos connexes :