1/ Apprenez à connaître les domaines extérieurs au vôtre
Développement, Opérations/Production et Sécurité sont trois mondes aux cultures distinctes. Pour les DevOps, la sécurité est parfois perçue comme une contrainte supplémentaire lors de la création d’une application. La participation d’experts des trois domaines à des ateliers communs peut donc aider à mieux comprendre les enjeux de chacun et sensibiliser à l’importance de la sécurité. Des démonstrations d’attaque informatique sont également un moyen de montrer aux équipes DevOps les risques réels pesant sur une application ainsi que l’intérêt d’acquérir les bons réflexes, renforçant ainsi leur responsabilisation. Le début d’une culture partagée de la sécurité.
2/ Coopérez à chaque étape de la conception d’une application
Le meilleur moyen de protéger une application est d’impliquer les professionnels de la sécurité à chaque étape de son développement : en amont durant la conception (Security by design), dans le workflow quotidien et pendant le déploiement. Cette coopération renforcée visera dans un premier temps les applications les plus critiques, tout en facilitant l’acculturation à l’approche DevSecOps, avant qu’elle soit systématisée à tous les projets. Côté outils, intégrer une solution de gestion de la sécurité à la plateforme de développement habituelle permettra aux développeurs d’adopter les processus de contrôle tout en conservant l’environnement de travail auquel ils sont habitués.
3/ Prévoyez des temps de formation
Former à la sécurité les architectes logiciels, les administrateurs ou les développeurs demande du temps… et de l’investissement. Les formations peuvent se fonder sur les normes ISO 27001 (management de la sécurité) et ISO 27005 (sécurité des systèmes d’information). Commencer par former les profils les plus expérimentés facilite la diffusion des bonnes pratiques au sein des équipes. Un développeur senior formé au codage sécurisé fera par exemple de la pédagogie auprès des profils plus juniors afin qu’ils prennent conscience des failles qui peuvent exister tout au long du cycle de vie de l’application
4/ Modélisez les menaces
Acquérir une vision globale des menaces en listant les vulnérabilités d’une application et les contrôles existants offre une feuille de route sur les points d’amélioration prioritaires. Le document de modélisation, en constante évolution, encourage le partage d’informations entre les équipes et leur fait visualiser l’application à travers les yeux d’un hacker. Cette modélisation favorise également l’atteinte des objectifs de sécurité plus tôt dans le cycle de développement.
5/ Industrialisez les contrôles de sécurité
Les contrôles sont un pilier de la stratégie DevSecOp pour sécuriser les projets en continu. Leur automatisation répond aux cadences soutenues de l’intégration continue (CI) et du déploiement continu (CD). Parmi les solutions les plus répandues et les plus complémentaires : les outils de test statique (SAST) qui analysent le code pour y détecter des erreurs de programmation, et les outils de test dynamique (DAST) qui vérifient la résilience de l’application en simulant l’action d’un pirate informatique.
6/ Anticipez les risques liés aux composants
De nombreuses applications ont recours à des composants open source, dont les vulnérabilités ne sont pas toujours détectées. Les mises à jour et les correctifs des fournisseurs tiers devront également être implémentés de façon régulière pour éviter toute faille de sécurité. L’industrialisation des contrôles jouera donc là-aussi un rôle essentiel pour détecter les anomalies. Des communautés en ligne comme OWASP (Open Web Application Security Project) publient par ailleurs des recommandations de sécurisation et proposent des outils pour contrôler le niveau de protection des applications dotées de composants open source.