
Phase 3 : Pendant le développement
Activités de test de sécurité à effectuer pendant la phase de développement, y compris les revues de code et les analyses de code.
Introduction
Théoriquement, le développement est la mise en oeuvre d'une conception. Cependant, dans le monde réel, de nombreuses décisions de conception sont prises lors du développement du code. Il s'agit souvent de décisions plus petites qui étaient soit trop détaillées pour être décrites dans la conception, soit de problèmes pour lesquels aucune politique ou directive standard n'était proposée. Si la conception et l'architecture n'étaient pas adéquates, le développeur sera confronté à de nombreuses décisions. S'il n'y avait pas suffisamment de politiques et de normes, le développeur sera confronté à encore plus de décisions.
Phase 3.1 Parcours du code
L'équipe de sécurité doit effectuer un parcours du code avec les développeurs et, dans certains cas, les architectes système. Un parcours du code est un examen de haut niveau du code au cours duquel les développeurs peuvent expliquer la logique et le flux du code implémenté. Il permet à l'équipe de revue de code d'obtenir une compréhension générale du code et permet aux développeurs d'expliquer pourquoi certaines choses ont été développées de la manière dont elles l'ont été.
Le but n'est pas d'effectuer une revue de code, mais de comprendre à un niveau élevé le flux, la disposition et la structure du code qui compose l'application.
Phase 3.2 Revues de code
Muni d'une bonne compréhension de la façon dont le code est structuré et des raisons pour lesquelles certaines choses ont été codées de la manière dont elles l'ont été, le testeur peut maintenant examiner le code réel pour détecter les défauts de sécurité.
Les revues de code statiques valident le code par rapport à un ensemble de listes de contrôle, notamment :
- Exigences métier en matière de disponibilité, de confidentialité et d'intégrité ;
- Guide OWASP ou listes de contrôle Top 10 pour les expositions techniques (selon la profondeur de la revue) ;
- Problèmes spécifiques liés au langage ou au cadre utilisé, tels que le document Scarlet pour PHP ou les listes de contrôle de codage sécurisé Microsoft pour ASP.NET ; et
- Toutes les exigences spécifiques à l'industrie, telles que Sarbanes-Oxley 404, COPPA, ISO/IEC 27002, APRA, HIPAA, les directives Visa Merchant ou d'autres régimes réglementaires.
En termes de retour sur les ressources investies (principalement du temps), les revues de code statiques produisent des retours de qualité bien supérieure à toute autre méthode de revue de sécurité et reposent le moins sur les compétences du réviseur. Cependant, elles ne sont pas une solution miracle et doivent être considérées attentivement dans un régime de test complet.
Pour plus de détails sur les listes de contrôle OWASP, veuillez vous référer à la dernière édition du Top 10 OWASP.